From 76da1c8cbbe4422061843e40490a551d14983a31 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Sun, 27 Jul 2025 05:49:13 +0200 Subject: [PATCH 1/6] initial commit --- mkdocs.yml | 12 +++----- pyproject.toml | 45 +++++++++++++++++++++--------- src/flutter/flet_rive/pubspec.yaml | 2 +- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 4fa315c..36fe3ca 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -98,6 +98,7 @@ plugins: # - footnotes - search: lang: en + - open-in-new-tab - mike: alias_type: symlink - glightbox @@ -122,21 +123,16 @@ plugins: show_labels: false show_if_no_docstring: true docstring_section_style: spacy + separate_signature: true inherited_members: true preload_modules: [ flet ] filters: - "!^_" # Exclude private members starting with only one underscore - - "!before_update" - - "!before_event" - - "!clean" - - "!did_mount" - - "!init" - - "!is_isolated" - - "!update" - - "!will_unmount" extensions: - griffe_modernized_annotations + - griffe_warnings_deprecated inventories: + - url: https://docs.flet.dev/objects.inv - url: https://docs.python.org/3/objects.inv domains: [ py, std ] - url: https://typing-extensions.readthedocs.io/en/latest/objects.inv diff --git a/pyproject.toml b/pyproject.toml index 17bf0e3..7a1d75d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,22 +20,40 @@ Issues = "https://github.com/flet-dev/flet-rive/issues" "flutter.flet_rive" = ["**/*"] [dependency-groups] +test = [ + "pytest >=7.2.0", +] dev = [ - "pre-commit>=4.2.0", - "ruff>=0.11.7", + "pre-commit >=4.2.0", + "ruff >=0.11.7", + { include-group = 'test' }, +] +docs-coverage = [ + "docstr-coverage >=2.3.2", ] docs = [ - "mkdocs", - "mkdocs-material", - "mkdocstrings[python]", - "mkdocstrings-python-xref", - "mike", - "markdown>=3.6", - "pymdown-extensions", - "mkdocs-glightbox", - "mkdocs-section-index", - "griffe-modernized-annotations", - "pygments>=2.16", + "mkdocs >=1.6.1", + "mkdocs-material >=9.6.15", + "mkdocstrings-python >=1.16.12", + "mkdocstrings-python-xref >=1.16.3", + "mike >=2.1.3", + "markdown >=3.6", + "pymdown-extensions >=10.16", + "mkdocs-exclude >=1.0.2", + "mkdocs-glightbox >=0.4.0", + "mkdocs-open-in-new-tab >=1.0.8", + "mkdocs-section-index >=0.3.10", + "griffe-modernized-annotations >=1.0.8", + "griffe-warnings-deprecated >=1.1.0", + "pygments >=2.16", + "markdown-exec[ansi] >=1.11.0", + "pydocstyle >=6.3.0", + "linkcheckmd >=1.4.0", + { include-group = 'docs-coverage' }, +] +all = [ + { include-group = 'dev' }, + { include-group = 'docs' }, ] [build-system] @@ -64,6 +82,7 @@ select = [ "I" ] preview = true +pydocstyle = { convention = 'google' } [tool.ruff.format] quote-style = "double" diff --git a/src/flutter/flet_rive/pubspec.yaml b/src/flutter/flet_rive/pubspec.yaml index 8ffb3bd..54d2083 100644 --- a/src/flutter/flet_rive/pubspec.yaml +++ b/src/flutter/flet_rive/pubspec.yaml @@ -26,4 +26,4 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.0 From 8768f58b1ae06f4f6174454a36a0d90a12935cbe Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Sun, 27 Jul 2025 06:09:56 +0200 Subject: [PATCH 2/6] update --- .github/workflows/docs.yml | 1 + .gitignore | 135 ++++++++++++++++++++++++++++++++++++- .pre-commit-config.yaml | 30 +++++++-- src/flet_rive/__init__.py | 2 + src/flet_rive/rive.py | 14 ++-- 5 files changed, 167 insertions(+), 15 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e467b6c..0ba4074 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - dev paths: - 'LICENSE' - 'CHANGELOG.md' diff --git a/.gitignore b/.gitignore index 006e58f..891876a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,135 @@ -*.egg-info/ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python build/ develop-eggs/ dist/ -.DS_store -.venv/ \ No newline at end of file +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock +uv.lock + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# VS Code +.vscode/ + +# PDM +.pdm.toml +__pypackages__/ + +.DS_Store diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e69f06f..0997bef 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,9 +1,27 @@ repos: - - repo: https://github.com/pycqa/isort - rev: 5.13.2 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.12.5 hooks: - - id: isort - - repo: https://github.com/ambv/black - rev: 22.12.0 + # Run the linter. + - id: ruff + args: [ --fix ] + # Run the formatter. + - id: ruff-format + + - repo: https://github.com/executablebooks/mdformat + rev: 0.7.22 hooks: - - id: black + - id: mdformat + additional_dependencies: + - mdformat-ruff + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: end-of-file-fixer + - id: trailing-whitespace + + - repo: https://github.com/aio-libs/sort-all + rev: v1.3.0 + hooks: + - id: sort-all diff --git a/src/flet_rive/__init__.py b/src/flet_rive/__init__.py index 0200d02..ff5e0bd 100644 --- a/src/flet_rive/__init__.py +++ b/src/flet_rive/__init__.py @@ -1 +1,3 @@ from .rive import Rive as Rive + +__all__ = ["Rive"] diff --git a/src/flet_rive/rive.py b/src/flet_rive/rive.py index f2b2bec..28fc414 100644 --- a/src/flet_rive/rive.py +++ b/src/flet_rive/rive.py @@ -14,7 +14,8 @@ class Rive(ft.ConstrainedControl): src: str """ - The source of your rive animation. + The source of your rive animation. + Can either be a URL or a path to a local asset file. """ @@ -25,7 +26,7 @@ class Rive(ft.ConstrainedControl): artboard: Optional[str] = None """ - The name of the artboard to use. + The name of the artboard to use. If not specified, the default artboard of the provided `src` is used. """ @@ -41,8 +42,8 @@ class Rive(ft.ConstrainedControl): use_artboard_size: bool = False """ - Determines whether to use the inherent size of the artboard, - i.e. the absolute size defined by the artboard, + Determines whether to use the inherent size of the artboard, + i.e. the absolute size defined by the artboard, or size the control based on the available constraints only (sized by parent). """ @@ -74,7 +75,8 @@ class Rive(ft.ConstrainedControl): clip_rect: Optional[ft.Rect] = None """ Clip the artboard to this rect. - - If not supplied it'll default to the constraint size provided by the parent widget. + + If not supplied it'll default to the constraint size provided by the parent + control. Unless the Artboard has clipping disabled, then no clip will be applied. """ From cce94179d3425691b96490521e5b8e939a49a875 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Sun, 27 Jul 2025 17:33:58 +0200 Subject: [PATCH 3/6] remove mdformat from pre-commit --- .pre-commit-config.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0997bef..8f2d1ab 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,13 +8,6 @@ repos: # Run the formatter. - id: ruff-format - - repo: https://github.com/executablebooks/mdformat - rev: 0.7.22 - hooks: - - id: mdformat - additional_dependencies: - - mdformat-ruff - - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: From bb4e51c81a7a340b5f0ba7eb22f6c487f99e6a66 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Sun, 27 Jul 2025 20:18:53 +0200 Subject: [PATCH 4/6] update mkdocs watch items | unshow `Event.get_event_field_type` --- mkdocs.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 36fe3ca..96bcb43 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -91,7 +91,10 @@ validation: # Watch watch: - docs - - src + - src/flet_rive + - CHANGELOG.md + - LICENSE + - README.md # Plugins plugins: @@ -128,6 +131,7 @@ plugins: preload_modules: [ flet ] filters: - "!^_" # Exclude private members starting with only one underscore + - "!get_event_field_type" extensions: - griffe_modernized_annotations - griffe_warnings_deprecated From 6d426c6bf9c153c614fb1e40b0d96748e87271d4 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Sun, 27 Jul 2025 21:25:56 +0200 Subject: [PATCH 5/6] fixes --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 0ba4074..ba85155 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -53,7 +53,7 @@ jobs: - name: Install dependencies run: | uv pip install -e . - uv pip install --group docs + uv pip install --group all - name: Deploy to GitHub Pages run: uv run mkdocs gh-deploy --force From d0f8932f298595ead9c0bee20bfe568f5f743061 Mon Sep 17 00:00:00 2001 From: ndonkoHenri Date: Sun, 27 Jul 2025 21:51:40 +0200 Subject: [PATCH 6/6] lint dependency group --- .github/workflows/docs.yml | 2 +- pyproject.toml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ba85155..f38365c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -53,7 +53,7 @@ jobs: - name: Install dependencies run: | uv pip install -e . - uv pip install --group all + uv pip install --group docs --group lint - name: Deploy to GitHub Pages run: uv run mkdocs gh-deploy --force diff --git a/pyproject.toml b/pyproject.toml index 7a1d75d..8604bf2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,9 +23,12 @@ Issues = "https://github.com/flet-dev/flet-rive/issues" test = [ "pytest >=7.2.0", ] +lint = [ + "ruff >=0.11.7", +] dev = [ "pre-commit >=4.2.0", - "ruff >=0.11.7", + { include-group = 'lint' }, { include-group = 'test' }, ] docs-coverage = [