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