From 580b8d7f52aeb215fc650187700f8fd13ed78618 Mon Sep 17 00:00:00 2001 From: ful1e5 <24286590+ful1e5@users.noreply.github.com> Date: Thu, 22 Apr 2021 16:39:58 +0530 Subject: [PATCH 1/5] =?UTF-8?q?=F0=9F=91=94=20Compact=20code=20for=20`gene?= =?UTF-8?q?rator.py`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- builder/applbuild/generator.py | 109 +++++++++++++++------------------ 1 file changed, 49 insertions(+), 60 deletions(-) diff --git a/builder/applbuild/generator.py b/builder/applbuild/generator.py index 3a72545..c379680 100644 --- a/builder/applbuild/generator.py +++ b/builder/applbuild/generator.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +"""This module provides build methods for ``macOSBigSur``.""" + from pathlib import Path from typing import Any, Dict @@ -11,29 +13,25 @@ from clickgen.packagers import WindowsPackager, XPackager -def xbuild( - config: Dict[str, Dict[str, Any]], - x_out_dir: Path, -) -> None: +def xbuild(config: Dict[str, Dict[str, Any]], x_out_dir: Path) -> None: """Build `macOSBigSur` cursor theme for only `X11`(UNIX) platform. :param config: `macOSBigSur` configuration. - :type config: Dict[str, Dict[str, Any]] + :type config: Dict - :param x_out_dir: Path to the output directory, \ - Where the `X11` cursor theme package will\ - generate. It also creates a directory if not exists. + :param x_out_dir: Path to the output directory,\ + Where the `X11` cursor theme package will generate.\ + It also creates a directory if not exists. :type x_out_dir: Path + + :param info: Content theme name & comment + :type info: Info """ for _, item in config.items(): - png = item["png"] - hotspot = item["hotspot"] - x_sizes = item["x_sizes"] - delay = item["delay"] + with CursorAlias.from_bitmap(item["png"], item["hotspot"]) as alias: + x_cfg = alias.create(item["x_sizes"], item["delay"]) - with CursorAlias.from_bitmap(png, hotspot) as alias: - x_cfg = alias.create(x_sizes, delay) print(f"Building '{x_cfg.stem}' XCursor...") XCursor.create(x_cfg, x_out_dir) @@ -45,33 +43,29 @@ def wbuild(config: Dict[str, Dict[str, Any]], win_out_dir: Path) -> None: """Build `macOSBigSur` cursor theme for only `Windows` platforms. :param config: `macOSBigSur` configuration. - :type config: Dict[str, Dict[str, Any]] + :type config: Dict - :param win_out_dir: Path to the output directory, \ - Where the `Windows` cursor theme package will\ - generate. It also creates a directory if not exists. + :param win_out_dir: Path to the output directory,\ + Where the `Windows` cursor theme package will generate.\ + It also creates a directory if not exists. :type win_out_dir: Path + + :param info: Content theme name & comment + :type info: Info """ for _, item in config.items(): - png = item["png"] - hotspot = item["hotspot"] - x_sizes = item["x_sizes"] - delay = item["delay"] - - with CursorAlias.from_bitmap(png, hotspot) as alias: - alias.create(x_sizes, delay) + with CursorAlias.from_bitmap(item["png"], item["hotspot"]) as alias: + alias.create(item["x_sizes"], item["delay"]) if item.get("win_key"): - position = item["position"] - win_size = item["win_size"] - win_key = item["win_key"] - canvas_size = item["canvas_size"] - win_delay = item["win_delay"] - win_cfg = alias.reproduce( - win_size, canvas_size, position, delay=win_delay - ).rename(win_key) + size=item["win_size"], + canvas_size=item["canvas_size"], + position=item["position"], + delay=item["win_delay"], + ).rename(item["win_key"]) + print(f"Building '{win_cfg.stem}' Windows Cursor...") WindowsCursor.create(win_cfg, win_out_dir) @@ -84,45 +78,40 @@ def build( """Build `macOSBigSur` cursor theme for `X11` & `Windows` platforms. :param config: `macOSBigSur` configuration. - :type config: Dict[str, Dict[str, Any]] + :type config: Dict - :param x_out_dir: Path to the output directory, \ - Where the `X11` cursor theme package will\ - generate. It also creates a directory if not exists. + :param x_out_dir: Path to the output directory,\ + Where the `X11` cursor theme package will generate.\ + It also creates a directory if not exists. :type x_out_dir: Path - :param win_out_dir: Path to the output directory, \ - Where the `Windows` cursor theme package will\ - generate. It also creates a directory if not exists. + :param win_out_dir: Path to the output directory,\ + Where the `Windows` cursor theme package will generate.\ + It also creates a directory if not exists. :type win_out_dir: Path - """ - def win_build(item: Dict[str, Any], alias: CursorAlias) -> None: - position = item["position"] - win_size = item["win_size"] - win_key = item["win_key"] - canvas_size = item["canvas_size"] - win_delay = item["win_delay"] - - win_cfg = alias.reproduce( - win_size, canvas_size, position, delay=win_delay - ).rename(win_key) - print(f"Building '{win_cfg.stem}' Windows Cursor...") - WindowsCursor.create(win_cfg, win_out_dir) + :param info: Content theme name & comment + :type info: Info + """ for _, item in config.items(): - png = item["png"] - hotspot = item["hotspot"] - x_sizes = item["x_sizes"] - delay = item["delay"] - with CursorAlias.from_bitmap(png, hotspot) as alias: - x_cfg = alias.create(x_sizes, delay) + with CursorAlias.from_bitmap(item["png"], item["hotspot"]) as alias: + x_cfg = alias.create(item["x_sizes"], item["delay"]) + print(f"Building '{x_cfg.stem}' XCursor...") XCursor.create(x_cfg, x_out_dir) if item.get("win_key"): - win_build(item, alias) + win_cfg = alias.reproduce( + size=item["win_size"], + canvas_size=item["canvas_size"], + position=item["position"], + delay=item["win_delay"], + ).rename(item["win_key"]) + + print(f"Building '{win_cfg.stem}' Windows Cursor...") + WindowsCursor.create(win_cfg, win_out_dir) add_missing_xcursor(x_out_dir / "cursors") XPackager(x_out_dir, THEME_NAME, COMMENT) From 39d3a74661c271707c515d1a44ebf1a35bd7a78b Mon Sep 17 00:00:00 2001 From: ful1e5 <24286590+ful1e5@users.noreply.github.com> Date: Fri, 23 Apr 2021 16:29:12 +0530 Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=A7=B9=20Removed=20setup.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- builder/setup.py | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 builder/setup.py diff --git a/builder/setup.py b/builder/setup.py deleted file mode 100644 index 4d4cc18..0000000 --- a/builder/setup.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -from setuptools import setup - -setup( - name="applbuild", - version="1.1.4", - description="Generate 'macOSBigSur' cursor theme from PNGs file", - url="https://github.com/ful1e5/apple_cursor", - packages=["applbuild"], - package_dir={"applbuild": "applbuild"}, - author="Kaiz Khatri", - author_email="kaizmandhu@gamil.com", - install_requires=["clickgen==1.1.9"], - classifiers=[ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - ], - python_requires=">=3.8", - zip_safe=True, -) From 65587817715999cf63ba3e96a32f2d6b927997d8 Mon Sep 17 00:00:00 2001 From: ful1e5 <24286590+ful1e5@users.noreply.github.com> Date: Fri, 23 Apr 2021 16:29:40 +0530 Subject: [PATCH 3/5] =?UTF-8?q?=F0=9F=93=A6=20Build=20without=20setup.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- builder/Makefile | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/builder/Makefile b/builder/Makefile index f401995..2032a47 100644 --- a/builder/Makefile +++ b/builder/Makefile @@ -9,17 +9,12 @@ WIN_CANVAS_SIZE ?= 32 WIN_SIZE ?= 24 clean: - @rm -rf applbuild.egg-info build dist + @python3 -m pip uninstall -y clickgen @find -iname "*.pyc" -delete + @rm -rf applbuild/__pycache__ - # Removing setup.py package files if installed - @if [ -f "files.txt" ]; then - @xargs rm -rf < files.txt - @rm -rf files.txt - @fi - -setup: clean setup.py - @python3 setup.py install --user --record files.txt +setup: clean + @python3 -m pip install clickgen==1.1.9 --user build: setup build.py @python3 build.py --xsizes $(X_SIZES) --win-size $(WIN_SIZE) --win-canvas-size $(WIN_CANVAS_SIZE) From e886686749aca1ae53c82f86486f2b84363b3ce3 Mon Sep 17 00:00:00 2001 From: ful1e5 <24286590+ful1e5@users.noreply.github.com> Date: Fri, 23 Apr 2021 16:34:21 +0530 Subject: [PATCH 4/5] =?UTF-8?q?=F0=9F=94=97=20Relative=20imports=20inside?= =?UTF-8?q?=20applbuild=20modules?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- builder/applbuild/configure.py | 47 +++++++++++++++++----------------- builder/applbuild/generator.py | 5 ++-- builder/applbuild/symlinks.py | 2 +- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/builder/applbuild/configure.py b/builder/applbuild/configure.py index e53d135..64bb96c 100644 --- a/builder/applbuild/configure.py +++ b/builder/applbuild/configure.py @@ -1,12 +1,12 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from pathlib import Path -from typing import Any, Dict, Tuple, TypeVar, Union +from typing import Any, Dict, Tuple, TypeVar -from applbuild.constants import WIN_CURSORS_CFG, WIN_DELAY, X_CURSORS_CFG, X_DELAY from clickgen.util import PNGProvider +from .constants import WIN_CURSORS_CFG, WIN_DELAY, X_CURSORS_CFG, X_DELAY + X = TypeVar("X") @@ -14,29 +14,31 @@ def to_tuple(x: X) -> Tuple[X, X]: return (x, x) -def get_config(bitmaps_dir: Union[str, Path], **kwargs) -> Dict[str, Any]: - """Return configuration of `macOSBigSur` pointers. +def get_config(bitmaps_dir, **kwargs) -> Dict[str, Any]: + """Return configuration of `GoogleDot` pointers. :param bitmaps_dir: Path to .png file's directory. - :type bitmaps_dir: Union[str, Path] - - :param x_sizes: List of pixel-sizes for xcursors. - :type x_sizes: List[int] + :type bitmaps_dir: ``str`` or ``pathlib.Path`` - :param win_canvas_size: Windows cursor's canvas pixel-size. - :type win_canvas_size: int + :param **kwargs: + See below - :param win_size: Pixel-size for Windows cursor. - :type win_size: int + :Keyword Arguments: + * *x_sizes* (``List[int]``) -- + List of pixel-sizes for xcursors. + * *win_canvas_size* (``int``) -- + Windows cursor's canvas pixel-size. + * *win_size* (``int``) -- + Pixel-size for Windows cursor. Example: ```python get_config( - "./bitmaps", - x_sizes=[(24, 24), (32, 32)], - win_canvas_size=(32, 32), - win_size=(24, 24), + bitmaps_dir="./bitmaps", + x_sizes=[24, 28, 32], + win_canvas_size=32, + win_size=24, ) ``` """ @@ -49,6 +51,7 @@ def get_config(bitmaps_dir: Union[str, Path], **kwargs) -> Dict[str, Any]: for size in raw_x_sizes: x_sizes.append(to_tuple(size)) + png_provider = PNGProvider(bitmaps_dir) config: Dict[str, Any] = {} for key, item in X_CURSORS_CFG.items(): @@ -57,13 +60,12 @@ def get_config(bitmaps_dir: Union[str, Path], **kwargs) -> Dict[str, Any]: hotspot: Tuple[int, int] = (x_hot, y_hot) delay: int = int(item.get("delay", X_DELAY)) - pngs = PNGProvider(bitmaps_dir).get(key) - - if not pngs: - raise FileNotFoundError(f"{key} not found in {bitmaps_dir}") + png = png_provider.get(key) + if not png: + raise FileNotFoundError(f"{key} not found") data = { - "png": pngs, + "png": png, "x_sizes": x_sizes, "hotspot": hotspot, "delay": delay, @@ -94,7 +96,6 @@ def get_config(bitmaps_dir: Union[str, Path], **kwargs) -> Dict[str, Any]: "win_size": win_size, "win_delay": win_delay, } - else: config[key] = data diff --git a/builder/applbuild/generator.py b/builder/applbuild/generator.py index c379680..19af6e9 100644 --- a/builder/applbuild/generator.py +++ b/builder/applbuild/generator.py @@ -6,12 +6,13 @@ from pathlib import Path from typing import Any, Dict -from applbuild.constants import AUTHOR, COMMENT, THEME_NAME, URL -from applbuild.symlinks import add_missing_xcursor from clickgen.builders import WindowsCursor, XCursor from clickgen.core import CursorAlias from clickgen.packagers import WindowsPackager, XPackager +from .constants import AUTHOR, COMMENT, THEME_NAME, URL +from .symlinks import add_missing_xcursor + def xbuild(config: Dict[str, Dict[str, Any]], x_out_dir: Path) -> None: """Build `macOSBigSur` cursor theme for only `X11`(UNIX) platform. diff --git a/builder/applbuild/symlinks.py b/builder/applbuild/symlinks.py index ab981a8..a9902ee 100644 --- a/builder/applbuild/symlinks.py +++ b/builder/applbuild/symlinks.py @@ -12,7 +12,7 @@ def add_missing_xcursor(directory: Union[str, Path]) -> None: """Add missing `XCursor` to the Unix cursor package. :param directory: directory where XCursors are available. - :type directory: Union[str, Path] + :type directory: ``str`` or ``pathlib.Path`` """ symlinks: List[Dict[str, Union[str, List[str]]]] = [ From 7147fb6dcc41e81e92b37b1e7abccab708ebe847 Mon Sep 17 00:00:00 2001 From: ful1e5 <24286590+ful1e5@users.noreply.github.com> Date: Sat, 24 Apr 2021 15:59:49 +0530 Subject: [PATCH 5/5] =?UTF-8?q?=F0=9F=93=83=20Changes=20logs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 +++++++++ Makefile | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b1ae8d..23c3592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [unreleased] +### Added + +- Setup target updated inside `builder/Makefile` + +### Changed + +- `applbuild` modules relative imports +- Removed `setup.py` from `builder/` + ## [1.1.4] - 4 Apr 2021 ### Added diff --git a/Makefile b/Makefile index b7a2b70..db4a356 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,6 @@ windows: clean render bitmaps @cd builder && make build_windows && make clean - # Installation theme := macOSBigSur src := ./themes/$(theme)