feat: adapt to new assemblicon API with MSIX artifact support
This commit is contained in:
1 parent
75a080bf09
commit
a049b23c77
6 files changed
+122
-48
No files matched your search
@@ -1,5 +1,10 @@
|
||||
from pathlib import Path
|
||||
from assemblicon.highlevel.utils import DEFAULT_FD_THUMBNAIL_HWS
|
||||
from assemblicon.highlevel.utils import (
|
||||
DEFAULT_FD_THUMBNAIL_HWS,
|
||||
DEFAULT_MSIX_SCALES,
|
||||
DEFAULT_MSIX_APP44_TARGETSIZES,
|
||||
DEFAULT_MSIX_EXT_TARGETSIZES,
|
||||
)
|
||||
from assemblicon.highlevel.environment import Environment
|
||||
from assemblicon.highlevel.context import Context
|
||||
from assemblicon.logger import APP_LOGGER as LOGGER
|
||||
@@ -23,11 +28,12 @@ def main() -> None:
|
||||
iconset_input,
|
||||
iconset_output,
|
||||
opts.svg_render,
|
||||
# TODO: For easy testing, we only build 32x32 and 48x48.
|
||||
# Enable full generation after testing.
|
||||
# DEFAULT_FD_THUMBNAIL_HWS,
|
||||
(32, 48, 256),
|
||||
DEFAULT_FD_THUMBNAIL_HWS,
|
||||
DEFAULT_MSIX_SCALES,
|
||||
DEFAULT_MSIX_APP44_TARGETSIZES,
|
||||
DEFAULT_MSIX_EXT_TARGETSIZES,
|
||||
tempdir_initializer,
|
||||
opts.format_selection,
|
||||
)
|
||||
env = Environment(prologue)
|
||||
ctx = Context(env)
|
||||
|
||||
@@ -1,19 +1,28 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional
|
||||
from assemblicon.cli import (
|
||||
SvgRenderKind,
|
||||
StdOptsSetup,
|
||||
create_argparser,
|
||||
parse_standard_opts,
|
||||
)
|
||||
from assemblicon.highlevel.address import Family
|
||||
from assemblicon.lowlevel.artrdr import SvgRenderKind
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class AuroraOpts:
|
||||
selection: Optional[list[str]]
|
||||
"""The list holding all name of jobs for building."""
|
||||
"""
|
||||
The list holding all name of jobs for building.
|
||||
``None`` for building artifacts of all jobs.
|
||||
"""
|
||||
svg_render: SvgRenderKind
|
||||
"""The render kind for SVG file."""
|
||||
format_selection: Optional[set[Family]]
|
||||
"""
|
||||
The set holding all formats of artifacts for building.
|
||||
``None`` for building artifacts of all formats.
|
||||
"""
|
||||
|
||||
|
||||
def parse() -> AuroraOpts:
|
||||
@@ -26,6 +35,14 @@ def parse() -> AuroraOpts:
|
||||
ns = parser.parse_args()
|
||||
opts = parse_standard_opts(setup, ns)
|
||||
|
||||
format_selection = (
|
||||
None
|
||||
if opts.format_selection is None
|
||||
else {item.to_assemblicon_type() for item in opts.format_selection}
|
||||
)
|
||||
|
||||
return AuroraOpts(
|
||||
selection=opts.selection, svg_render=opts.svg_render.to_assemblicon_type()
|
||||
selection=opts.selection,
|
||||
svg_render=opts.svg_render.to_assemblicon_type(),
|
||||
format_selection=format_selection,
|
||||
)
|
||||
@@ -1,12 +1,23 @@
|
||||
from ..types import AuroraContext, AuroraEnvironment
|
||||
from assemblicon.highlevel.utils import FdContext, WinCategory, MacCategory
|
||||
from assemblicon.highlevel.utils import (
|
||||
FdContext,
|
||||
IcoCategory,
|
||||
IcnsCategory,
|
||||
MsixCategory,
|
||||
)
|
||||
from assemblicon.highlevel.source import (
|
||||
SvgSource,
|
||||
TempArtSource,
|
||||
NewArtSource,
|
||||
BlenderSource,
|
||||
)
|
||||
from assemblicon.highlevel.sink import FdArtSink, WinArtSink, MacArtSink, TempArtSink
|
||||
from assemblicon.highlevel.sink import (
|
||||
FdArtSink,
|
||||
IcoArtSink,
|
||||
MsixArtSink,
|
||||
IcnsArtSink,
|
||||
TempArtSink,
|
||||
)
|
||||
from assemblicon.lowlevel.artproc import (
|
||||
art_anchor_to_offset,
|
||||
default_art_resize,
|
||||
@@ -24,8 +35,9 @@ def register(ctx: AuroraContext) -> None:
|
||||
TempArtSource("image-jpeg.png"),
|
||||
NewArtSource(),
|
||||
FdArtSink(FdContext.Applications, "org.sarasaschipworkshop.picture"),
|
||||
WinArtSink(WinCategory.Application, "sarasacw-picture"),
|
||||
MacArtSink(MacCategory.Application, "sarasacw-picture"),
|
||||
IcoArtSink(IcoCategory.Application, "sarasacw-picture"),
|
||||
MsixArtSink(MsixCategory.Application, "sarasacw-picture"),
|
||||
IcnsArtSink(IcnsCategory.Application, "sarasacw-picture"),
|
||||
),
|
||||
build_sarasacw_picture_icon,
|
||||
)
|
||||
@@ -34,7 +46,8 @@ def register(ctx: AuroraContext) -> None:
|
||||
(
|
||||
BlenderSource("apps", "notepad.blend"),
|
||||
TempArtSink("notepad.png"),
|
||||
WinArtSink(WinCategory.Application, "notepad"),
|
||||
IcoArtSink(IcoCategory.Application, "notepad"),
|
||||
MsixArtSink(MsixCategory.Application, "notepad"),
|
||||
),
|
||||
build_notepad_icon,
|
||||
)
|
||||
@@ -46,8 +59,9 @@ def build_sarasacw_picture_icon(
|
||||
inner_src: TempArtSource,
|
||||
new_art: NewArtSource,
|
||||
fd_sink: FdArtSink,
|
||||
win_sink: WinArtSink,
|
||||
mac_sink: MacArtSink,
|
||||
ico_sink: IcoArtSink,
|
||||
msix_sink: MsixArtSink,
|
||||
icns_sink: IcnsArtSink,
|
||||
) -> None:
|
||||
app = new_art.pull()
|
||||
frame = frame_src.pull(env)
|
||||
@@ -67,16 +81,19 @@ def build_sarasacw_picture_icon(
|
||||
|
||||
# save artifact
|
||||
fd_sink.push(env, app)
|
||||
win_sink.push(env, app)
|
||||
mac_sink.push(env, app)
|
||||
ico_sink.push(env, app)
|
||||
msix_sink.push(env, app)
|
||||
icns_sink.push(env, app)
|
||||
|
||||
|
||||
def build_notepad_icon(
|
||||
env: AuroraEnvironment,
|
||||
src: BlenderSource,
|
||||
temp_sink: TempArtSink,
|
||||
win_sink: WinArtSink,
|
||||
ico_sink: IcoArtSink,
|
||||
msix_sink: MsixArtSink,
|
||||
) -> None:
|
||||
src.pull_to_temp(env, temp_sink)
|
||||
with temp_sink.repull(env) as art:
|
||||
win_sink.push(env, art)
|
||||
ico_sink.push(env, art)
|
||||
msix_sink.push(env, art)
|
||||
@@ -1,7 +1,18 @@
|
||||
from ..types import AuroraContext, AuroraEnvironment
|
||||
from assemblicon.highlevel.utils import FdContext, WinCategory, MacCategory
|
||||
from assemblicon.highlevel.utils import (
|
||||
FdContext,
|
||||
IcoCategory,
|
||||
IcnsCategory,
|
||||
MsixCategory,
|
||||
)
|
||||
from assemblicon.highlevel.source import SvgSource, TempArtSource
|
||||
from assemblicon.highlevel.sink import TempArtSink, FdArtSink, WinArtSink, MacArtSink
|
||||
from assemblicon.highlevel.sink import (
|
||||
TempArtSink,
|
||||
FdArtSink,
|
||||
IcoArtSink,
|
||||
MsixArtSink,
|
||||
IcnsArtSink,
|
||||
)
|
||||
|
||||
|
||||
def register(ctx: AuroraContext) -> None:
|
||||
|
||||
@@ -1,14 +1,25 @@
|
||||
import PIL.Image
|
||||
import PIL.ImageEnhance
|
||||
from ..types import AuroraContext, AuroraEnvironment
|
||||
from assemblicon.highlevel.utils import FdContext, WinCategory, MacCategory
|
||||
from assemblicon.highlevel.utils import (
|
||||
FdContext,
|
||||
IcoCategory,
|
||||
IcnsCategory,
|
||||
MsixCategory,
|
||||
)
|
||||
from assemblicon.highlevel.source import (
|
||||
SvgSource,
|
||||
BitmapSource,
|
||||
TempArtSource,
|
||||
FdArtSource,
|
||||
)
|
||||
from assemblicon.highlevel.sink import TempArtSink, FdArtSink, WinArtSink, MacArtSink
|
||||
from assemblicon.highlevel.sink import (
|
||||
TempArtSink,
|
||||
FdArtSink,
|
||||
IcoArtSink,
|
||||
MsixArtSink,
|
||||
IcnsArtSink,
|
||||
)
|
||||
from assemblicon.geometry import Rectangle, Point
|
||||
from assemblicon.lowlevel.artio import new_artifact
|
||||
from assemblicon.lowlevel.artproc import (
|
||||
@@ -42,8 +53,9 @@ def register(ctx: AuroraContext) -> None:
|
||||
BitmapSource("bitmap", "Niinsaare_järv.jpg"),
|
||||
TempArtSink("image-jpeg.png"),
|
||||
FdArtSink(FdContext.MimeTypes, "image-jpeg"),
|
||||
WinArtSink(WinCategory.Extension, "jpg"),
|
||||
MacArtSink(MacCategory.Extension, "jpg"),
|
||||
IcoArtSink(IcoCategory.Extension, "jpg"),
|
||||
MsixArtSink(MsixCategory.Extension, "jpg"),
|
||||
IcnsArtSink(IcnsCategory.Extension, "jpg"),
|
||||
),
|
||||
build_image_jpeg_icon,
|
||||
)
|
||||
@@ -55,8 +67,9 @@ def register(ctx: AuroraContext) -> None:
|
||||
BitmapSource("bitmap", "Tulipa_suaveolens_floriade_to_Canberra-mask.png"),
|
||||
SvgSource("image-png-checkerboard.svg"),
|
||||
FdArtSink(FdContext.MimeTypes, "image-png"),
|
||||
WinArtSink(WinCategory.Extension, "png"),
|
||||
MacArtSink(MacCategory.Extension, "png"),
|
||||
IcoArtSink(IcoCategory.Extension, "png"),
|
||||
MsixArtSink(MsixCategory.Extension, "png"),
|
||||
IcnsArtSink(IcnsCategory.Extension, "png"),
|
||||
),
|
||||
build_image_png_icon,
|
||||
)
|
||||
@@ -66,8 +79,9 @@ def register(ctx: AuroraContext) -> None:
|
||||
TempArtSource("component", "image-base.png"),
|
||||
BitmapSource("bitmap", "Van_Gogh_-_Starry_Night_-_Google_Art_Project.jpg"),
|
||||
FdArtSink(FdContext.MimeTypes, "image-bmp"),
|
||||
WinArtSink(WinCategory.Extension, "bmp"),
|
||||
MacArtSink(MacCategory.Extension, "bmp"),
|
||||
IcoArtSink(IcoCategory.Extension, "bmp"),
|
||||
MsixArtSink(MsixCategory.Extension, "bmp"),
|
||||
IcnsArtSink(IcnsCategory.Extension, "bmp"),
|
||||
),
|
||||
build_image_bmp_icon,
|
||||
)
|
||||
@@ -77,8 +91,9 @@ def register(ctx: AuroraContext) -> None:
|
||||
TempArtSource("component", "image-base.png"),
|
||||
BitmapSource("bitmap", "Hot-air_balloon_in_Tambov_-_02.jpg"),
|
||||
FdArtSink(FdContext.MimeTypes, "image-gif"),
|
||||
WinArtSink(WinCategory.Extension, "gif"),
|
||||
MacArtSink(MacCategory.Extension, "gif"),
|
||||
IcoArtSink(IcoCategory.Extension, "gif"),
|
||||
MsixArtSink(MsixCategory.Extension, "gif"),
|
||||
IcnsArtSink(IcnsCategory.Extension, "gif"),
|
||||
),
|
||||
build_image_gif_icon,
|
||||
)
|
||||
@@ -107,8 +122,9 @@ def build_image_jpeg_icon(
|
||||
bitmap_src: BitmapSource,
|
||||
temp_sink: TempArtSink,
|
||||
fd_sink: FdArtSink,
|
||||
win_sink: WinArtSink,
|
||||
mac_sink: MacArtSink,
|
||||
ico_sink: IcoArtSink,
|
||||
msix_sink: MsixArtSink,
|
||||
icns_sink: IcnsArtSink,
|
||||
) -> None:
|
||||
jpg_image = base_src.pull(env)
|
||||
|
||||
@@ -143,8 +159,9 @@ def build_image_jpeg_icon(
|
||||
# save for FD
|
||||
fd_sink.push(env, jpg_image)
|
||||
# save for windows and mac
|
||||
win_sink.push(env, jpg_image)
|
||||
mac_sink.push(env, jpg_image)
|
||||
ico_sink.push(env, jpg_image)
|
||||
msix_sink.push(env, jpg_image)
|
||||
icns_sink.push(env, jpg_image)
|
||||
|
||||
|
||||
def build_image_png_icon(
|
||||
@@ -154,8 +171,9 @@ def build_image_png_icon(
|
||||
bitmap_mask_src: BitmapSource,
|
||||
checkerboard_src: SvgSource,
|
||||
fd_sink: FdArtSink,
|
||||
win_sink: WinArtSink,
|
||||
mac_sink: MacArtSink,
|
||||
ico_sink: IcoArtSink,
|
||||
msix_sink: MsixArtSink,
|
||||
icns_sink: IcnsArtSink,
|
||||
) -> None:
|
||||
png_image = base_src.pull(env)
|
||||
|
||||
@@ -200,8 +218,9 @@ def build_image_png_icon(
|
||||
# save for FD
|
||||
fd_sink.push(env, png_image)
|
||||
# save for windows and mac
|
||||
win_sink.push(env, png_image)
|
||||
mac_sink.push(env, png_image)
|
||||
ico_sink.push(env, png_image)
|
||||
msix_sink.push(env, png_image)
|
||||
icns_sink.push(env, png_image)
|
||||
|
||||
|
||||
def build_image_bmp_icon(
|
||||
@@ -209,8 +228,9 @@ def build_image_bmp_icon(
|
||||
base_src: TempArtSource,
|
||||
bitmap_src: BitmapSource,
|
||||
fd_sink: FdArtSink,
|
||||
win_sink: WinArtSink,
|
||||
mac_sink: MacArtSink,
|
||||
ico_sink: IcoArtSink,
|
||||
msix_sink: MsixArtSink,
|
||||
icns_sink: IcnsArtSink,
|
||||
) -> None:
|
||||
bmp_image = base_src.pull(env)
|
||||
|
||||
@@ -233,8 +253,9 @@ def build_image_bmp_icon(
|
||||
# save for FD
|
||||
fd_sink.push(env, bmp_image)
|
||||
# save for windows and mac
|
||||
win_sink.push(env, bmp_image)
|
||||
mac_sink.push(env, bmp_image)
|
||||
ico_sink.push(env, bmp_image)
|
||||
msix_sink.push(env, bmp_image)
|
||||
icns_sink.push(env, bmp_image)
|
||||
|
||||
|
||||
def build_image_gif_icon(
|
||||
@@ -242,8 +263,9 @@ def build_image_gif_icon(
|
||||
base_src: TempArtSource,
|
||||
bitmap_src: BitmapSource,
|
||||
fd_sink: FdArtSink,
|
||||
win_sink: WinArtSink,
|
||||
mac_sink: MacArtSink,
|
||||
ico_sink: IcoArtSink,
|
||||
msix_sink: MsixArtSink,
|
||||
icns_sink: IcnsArtSink,
|
||||
) -> None:
|
||||
gif_image = base_src.pull(env)
|
||||
|
||||
@@ -266,5 +288,6 @@ def build_image_gif_icon(
|
||||
# save for FD
|
||||
fd_sink.push(env, gif_image)
|
||||
# save for windows and mac
|
||||
win_sink.push(env, gif_image)
|
||||
mac_sink.push(env, gif_image)
|
||||
ico_sink.push(env, gif_image)
|
||||
msix_sink.push(env, gif_image)
|
||||
icns_sink.push(env, gif_image)
|
||||
Generated
+1
-1
@@ -5,7 +5,7 @@ requires-python = ">=3.13"
|
||||
[[package]]
|
||||
name = "assemblicon"
|
||||
version = "0.1.0"
|
||||
source = { git = "https://github.com/SarasasChipWorkshop/assemblicon#0073298d45d6c44fc164456ebdec5f0d3ada5dff" }
|
||||
source = { git = "https://github.com/SarasasChipWorkshop/assemblicon#d0a3d48c174aad51f493224d47ec4600a3935591" }
|
||||
dependencies = [
|
||||
{ name = "pillow" },
|
||||
]
|
||||
|
||||
Reference in new issue
Block a user