diff --git a/poetry.lock b/poetry.lock index aaebf2d..4b1991c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,685 +1,43 @@ -[[package]] -name = "alabaster" -version = "1.0.0" -description = "A light, configurable Sphinx theme" -category = "main" -optional = true -python-versions = ">=3.10" - -[[package]] -name = "babel" -version = "2.18.0" -description = "Internationalization utilities" -category = "main" -optional = true -python-versions = ">=3.8" - -[package.extras] -dev = ["backports.zoneinfo", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata"] - -[[package]] -name = "black" -version = "26.3.1" -description = "The uncompromising code formatter." -category = "main" -optional = true -python-versions = ">=3.10" - -[package.dependencies] -click = ">=8.0.0" -mypy-extensions = ">=0.4.3" -packaging = ">=22.0" -pathspec = ">=1.0.0" -platformdirs = ">=2" -pytokens = ">=0.4.0,<0.5.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} - -[package.extras] -colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.10)"] -jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] -uvloop = ["uvloop (>=0.15.2)", "winloop (>=0.5.0)"] - -[[package]] -name = "certifi" -version = "2026.1.4" -description = "Python package for providing Mozilla's CA Bundle." -category = "main" -optional = true -python-versions = ">=3.7" - -[[package]] -name = "charset-normalizer" -version = "3.4.4" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" -optional = true -python-versions = ">=3.7" - -[[package]] -name = "click" -version = "8.3.1" -description = "Composable command line interface toolkit" -category = "main" -optional = true -python-versions = ">=3.10" - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -category = "main" -optional = true -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" - -[[package]] -name = "coverage" -version = "7.13.4" -description = "Code coverage measurement for Python" -category = "main" -optional = true -python-versions = ">=3.10" - -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - -[package.extras] -toml = ["tomli"] - -[[package]] -name = "docutils" -version = "0.21.2" -description = "Docutils -- Python Documentation Utilities" -category = "main" -optional = true -python-versions = ">=3.9" - -[[package]] -name = "exceptiongroup" -version = "1.3.1" -description = "Backport of PEP 654 (exception groups)" -category = "main" -optional = true -python-versions = ">=3.7" - -[package.dependencies] -typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "flake8" -version = "7.3.0" -description = "the modular source code checker: pep8 pyflakes and co" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.dependencies] -mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.14.0,<2.15.0" -pyflakes = ">=3.4.0,<3.5.0" - -[[package]] -name = "flake8-import-order" -version = "0.19.2" -description = "Flake8 and pylama plugin that checks the ordering of import statements." -category = "main" -optional = true -python-versions = "*" - -[package.dependencies] -pycodestyle = "*" -setuptools = "*" - -[[package]] -name = "idna" -version = "3.11" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" -optional = true -python-versions = ">=3.8" - -[package.extras] -all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] - -[[package]] -name = "imagesize" -version = "1.4.1" -description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "main" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[[package]] -name = "iniconfig" -version = "2.3.0" -description = "brain-dead simple config-ini parsing" -category = "main" -optional = true -python-versions = ">=3.10" - -[[package]] -name = "jinja2" -version = "3.1.6" -description = "A very fast and expressive template engine." -category = "main" -optional = true -python-versions = ">=3.7" - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "markdown-it-py" -version = "3.0.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -category = "main" -optional = true -python-versions = ">=3.8" - -[package.dependencies] -mdurl = ">=0.1,<1.0" - -[package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark"] -code-style = ["pre-commit (>=3.0,<4.0)"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] -linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins"] -profiling = ["gprof2dot"] -rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "markupsafe" -version = "3.0.3" -description = "Safely add untrusted strings to HTML/XML markup." -category = "main" -optional = true -python-versions = ">=3.9" - -[[package]] -name = "mccabe" -version = "0.7.0" -description = "McCabe checker, plugin for flake8" -category = "main" -optional = true -python-versions = ">=3.6" - -[[package]] -name = "mdit-py-plugins" -version = "0.5.0" -description = "Collection of plugins for markdown-it-py" -category = "main" -optional = true -python-versions = ">=3.10" - -[package.dependencies] -markdown-it-py = ">=2.0.0,<5.0.0" - -[package.extras] -code-style = ["pre-commit"] -rtd = ["myst-parser", "sphinx-book-theme"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" -category = "main" -optional = true -python-versions = ">=3.7" - -[[package]] -name = "mypy-extensions" -version = "1.1.0" -description = "Type system extensions for programs checked with the mypy type checker." -category = "main" -optional = true -python-versions = ">=3.8" - -[[package]] -name = "myst-parser" -version = "4.0.1" -description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," -category = "main" -optional = true -python-versions = ">=3.10" - -[package.dependencies] -docutils = ">=0.19,<0.22" -jinja2 = "*" -markdown-it-py = ">=3.0,<4.0" -mdit-py-plugins = ">=0.4.1,<1.0" -pyyaml = "*" -sphinx = ">=7,<9" - -[package.extras] -code-style = ["pre-commit (>=4.0,<5.0)"] -linkify = ["linkify-it-py (>=2.0,<3.0)"] -rtd = ["ipython", "sphinx (>=7)", "sphinx-autodoc2 (>=0.5.0,<0.6.0)", "sphinx-book-theme (>=1.1,<2.0)", "sphinx-copybutton", "sphinx-design", "sphinx-pyscript", "sphinx-tippy (>=0.4.3)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.9.0,<0.10.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] -testing = ["beautifulsoup4", "coverage[toml]", "defusedxml", "pygments (<2.19)", "pytest (>=8,<9)", "pytest-cov", "pytest-param-files (>=0.6.0,<0.7.0)", "pytest-regressions", "sphinx-pytest"] -testing-docutils = ["pygments", "pytest (>=8,<9)", "pytest-param-files (>=0.6.0,<0.7.0)"] - -[[package]] -name = "numpy" -version = "2.2.6" -description = "Fundamental package for array computing in Python" -category = "main" -optional = false -python-versions = ">=3.10" - -[[package]] -name = "ounce" -version = "1.1.1" -description = "Fast, simple, non-fancy, and non-magical package for manipulating units of measure" -category = "main" -optional = false -python-versions = ">=3.7,<4" - -[[package]] -name = "packaging" -version = "26.0" -description = "Core utilities for Python packages" -category = "main" -optional = true -python-versions = ">=3.8" - -[[package]] -name = "pathspec" -version = "1.0.4" -description = "Utility library for gitignore style pattern matching of file paths." -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -hyperscan = ["hyperscan (>=0.7)"] -optional = ["typing-extensions (>=4)"] -re2 = ["google-re2 (>=1.1)"] -tests = ["pytest (>=9)", "typing-extensions (>=4.15)"] - -[[package]] -name = "pbr" -version = "7.0.3" -description = "Python Build Reasonableness" -category = "main" -optional = true -python-versions = ">=2.6" - -[package.dependencies] -setuptools = "*" - -[[package]] -name = "platformdirs" -version = "4.9.2" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -category = "main" -optional = true -python-versions = ">=3.10" - -[[package]] -name = "pluggy" -version = "1.6.0" -description = "plugin and hook calling mechanisms for python" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["coverage", "pytest", "pytest-benchmark"] - -[[package]] -name = "polliwog" -version = "3.0.0a9" -description = "2D and 3D computational geometry library" -category = "main" -optional = false -python-versions = "<4,>=3.7" - -[package.dependencies] -numpy = "*" -ounce = ">=1.1.0,<2.0" -vg = ">=2.0.0" - -[package.extras] -serialization = ["jsonschema (>=4,<5)", "simplejson (>=3,<4)"] - -[[package]] -name = "pycodestyle" -version = "2.14.0" -description = "Python style guide checker" -category = "main" -optional = true -python-versions = ">=3.9" - -[[package]] -name = "pyflakes" -version = "3.4.0" -description = "passive checker of Python programs" -category = "main" -optional = true -python-versions = ">=3.9" - -[[package]] -name = "pygments" -version = "2.19.2" -description = "Pygments is a syntax highlighting package written in Python." -category = "main" -optional = true -python-versions = ">=3.8" - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pytest" -version = "9.0.2" -description = "pytest: simple powerful testing with Python" -category = "main" -optional = true -python-versions = ">=3.10" - -[package.dependencies] -colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} -iniconfig = ">=1.0.1" -packaging = ">=22" -pluggy = ">=1.5,<2" -pygments = ">=2.7.2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-cov" -version = "7.0.0" -description = "Pytest plugin for measuring coverage." -category = "main" -optional = true -python-versions = ">=3.9" - -[package.dependencies] -coverage = {version = ">=7.10.6", extras = ["toml"]} -pluggy = ">=1.2" -pytest = ">=7" - -[package.extras] -testing = ["process-tests", "pytest-xdist", "virtualenv"] - -[[package]] -name = "pytokens" -version = "0.4.1" -description = "A Fast, spec compliant Python 3.14+ tokenizer that runs on older Pythons." -category = "main" -optional = true -python-versions = ">=3.8" - -[package.extras] -dev = ["black", "build", "mypy", "pytest", "pytest-cov", "setuptools", "tox", "twine", "wheel"] - -[[package]] -name = "pyyaml" -version = "6.0.3" -description = "YAML parser and emitter for Python" -category = "main" -optional = true -python-versions = ">=3.8" - -[[package]] -name = "requests" -version = "2.32.5" -description = "Python HTTP for Humans." -category = "main" -optional = true -python-versions = ">=3.9" - -[package.dependencies] -certifi = ">=2017.4.17" -charset_normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "setuptools" -version = "82.0.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.13.0)"] -core = ["importlib_metadata (>=6)", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.18.0,<1.19.0)", "pytest-mypy"] - -[[package]] -name = "sh" -version = "2.2.2" -description = "Python subprocess replacement" -category = "main" -optional = true -python-versions = "<4.0,>=3.8.1" - -[[package]] -name = "snowballstemmer" -version = "3.0.1" -description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." -category = "main" -optional = true -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] -name = "sphinx" -version = "8.1.3" -description = "Python documentation generator" -category = "main" +name = "alabaster" +version = "1.0.0" +description = "A light, configurable Sphinx theme" optional = true python-versions = ">=3.10" - -[package.dependencies] -alabaster = ">=0.7.14" -babel = ">=2.13" -colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} -docutils = ">=0.20,<0.22" -imagesize = ">=1.3" -Jinja2 = ">=3.1" -packaging = ">=23.0" -Pygments = ">=2.17" -requests = ">=2.30.0" -snowballstemmer = ">=2.2" -sphinxcontrib-applehelp = ">=1.0.7" -sphinxcontrib-devhelp = ">=1.0.6" -sphinxcontrib-htmlhelp = ">=2.0.6" -sphinxcontrib-jsmath = ">=1.0.1" -sphinxcontrib-qthelp = ">=1.0.6" -sphinxcontrib-serializinghtml = ">=1.1.9" -tomli = {version = ">=2", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["sphinxcontrib-websupport"] -lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] -test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] - -[[package]] -name = "sphinxcontrib-apidoc" -version = "0.6.0" -description = "A Sphinx extension for running 'sphinx-apidoc' on each build" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.dependencies] -pbr = "*" -Sphinx = ">=5.0.0" - -[[package]] -name = "sphinxcontrib-applehelp" -version = "2.0.0" -description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "2.0.0" -description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.1.0" -description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["html5lib", "pytest"] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "main" -optional = true -python-versions = ">=3.5" - -[package.extras] -test = ["flake8", "mypy", "pytest"] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "2.0.0" -description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["defusedxml (>=0.7.1)", "pytest"] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "2.0.0" -description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" -category = "main" -optional = true -python-versions = ">=3.9" - -[package.extras] -lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] -standalone = ["Sphinx (>=5)"] -test = ["pytest"] - -[[package]] -name = "tinymetabobjloader" -version = "2.0.0rc14.dev2" -description = "Tiny but powerful Wavefront OBJ loader" -category = "main" -optional = true -python-versions = "*" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ + {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, + {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, +] [[package]] -name = "tomli" -version = "2.4.0" -description = "A lil' TOML parser" -category = "main" +name = "babel" +version = "2.18.0" +description = "Internationalization utilities" optional = true python-versions = ">=3.8" - -[[package]] -name = "typing-extensions" -version = "4.15.0" -description = "Backported and Experimental Type Hints for Python 3.9+" -category = "main" -optional = true -python-versions = ">=3.9" - -[[package]] -name = "urllib3" -version = "2.6.3" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -optional = true -python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ + {file = "babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35"}, + {file = "babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d"}, +] [package.extras] -brotli = ["brotli (>=1.2.0)", "brotlicffi (>=1.2.0.0)"] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["backports-zstd (>=1.0.0)"] +dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)", "jinja2 (>=3.0)", "pytest (>=6.0)", "pytest-cov", "pytz", "setuptools", "tzdata ; sys_platform == \"win32\""] [[package]] -name = "vg" -version = "2.0.0" -description = "Linear algebra for humans: a very good vector-geometry and linear-algebra toolbelt" -category = "main" -optional = false -python-versions = ">=3.7,<4" - -[package.dependencies] -numpy = "*" - -[extras] -cli = ["click", "tinymetabobjloader"] -doc = ["sh", "click", "Sphinx", "sphinxcontrib-apidoc", "myst-parser"] -format = ["sh", "click", "black"] -lint = ["sh", "click", "setuptools", "flake8", "flake8-import-order"] -obj = ["tinymetabobjloader"] -test = ["sh", "click", "pytest", "pytest-cov", "coverage"] - -[metadata] -lock-version = "1.1" -python-versions = ">=3.10,<4" -content-hash = "204e47cf2fe300853e46eaf0f304f0356281e6e4d2531f7cd1aca2e4a4b53da6" - -[metadata.files] -alabaster = [ - {file = "alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b"}, - {file = "alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e"}, -] -babel = [ - {file = "babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35"}, - {file = "babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d"}, -] -black = [ +name = "black" +version = "26.3.1" +description = "The uncompromising code formatter." +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"format\"" +files = [ {file = "black-26.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:86a8b5035fce64f5dcd1b794cf8ec4d31fe458cf6ce3986a30deb434df82a1d2"}, {file = "black-26.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5602bdb96d52d2d0672f24f6ffe5218795736dd34807fd0fd55ccd6bf206168b"}, {file = "black-26.3.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c54a4a82e291a1fee5137371ab488866b7c86a3305af4026bdd4dc78642e1ac"}, @@ -708,11 +66,45 @@ black = [ {file = "black-26.3.1-py3-none-any.whl", hash = "sha256:2bd5aa94fc267d38bb21a70d7410a89f1a1d318841855f698746f8e7f51acd1b"}, {file = "black-26.3.1.tar.gz", hash = "sha256:2c50f5063a9641c7eed7795014ba37b0f5fa227f3d408b968936e24bc0566b07"}, ] -certifi = [ + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +packaging = ">=22.0" +pathspec = ">=1.0.0" +platformdirs = ">=2" +pytokens = ">=0.4.0,<0.5.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.10)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2) ; sys_platform != \"win32\"", "winloop (>=0.5.0) ; sys_platform == \"win32\""] + +[[package]] +name = "certifi" +version = "2026.1.4" +description = "Python package for providing Mozilla's CA Bundle." +optional = true +python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c"}, {file = "certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120"}, ] -charset-normalizer = [ + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = true +python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d"}, {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8"}, {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad"}, @@ -827,15 +219,45 @@ charset-normalizer = [ {file = "charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f"}, {file = "charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a"}, ] -click = [ + +[[package]] +name = "click" +version = "8.3.1" +description = "Composable command line interface toolkit" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"format\" or extra == \"cli\" or extra == \"doc\" or extra == \"lint\" or extra == \"test\"" +files = [ {file = "click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6"}, {file = "click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a"}, ] -colorama = [ + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "(extra == \"doc\" or extra == \"test\") and sys_platform == \"win32\" or platform_system == \"Windows\" and (extra == \"doc\" or extra == \"test\" or extra == \"format\" or extra == \"cli\" or extra == \"lint\")" +files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -coverage = [ + +[[package]] +name = "coverage" +version = "7.13.4" +description = "Code coverage measurement for Python" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"test\"" +files = [ {file = "coverage-7.13.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fc31c787a84f8cd6027eba44010517020e0d18487064cd3d8968941856d1415"}, {file = "coverage-7.13.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a32ebc02a1805adf637fc8dec324b5cdacd2e493515424f70ee33799573d661b"}, {file = "coverage-7.13.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e24f9156097ff9dc286f2f913df3a7f63c0e333dcafa3c196f2c18b4175ca09a"}, @@ -943,43 +365,176 @@ coverage = [ {file = "coverage-7.13.4-py3-none-any.whl", hash = "sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0"}, {file = "coverage-7.13.4.tar.gz", hash = "sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91"}, ] -docutils = [ + +[package.dependencies] +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} + +[package.extras] +toml = ["tomli ; python_full_version <= \"3.11.0a6\""] + +[[package]] +name = "docutils" +version = "0.21.2" +description = "Docutils -- Python Documentation Utilities" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2"}, {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, ] -exceptiongroup = [ + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +description = "Backport of PEP 654 (exception groups)" +optional = true +python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"test\" and python_version == \"3.10\"" +files = [ {file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"}, {file = "exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219"}, ] -flake8 = [ + +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "flake8" +version = "7.3.0" +description = "the modular source code checker: pep8 pyflakes and co" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"lint\"" +files = [ {file = "flake8-7.3.0-py2.py3-none-any.whl", hash = "sha256:b9696257b9ce8beb888cdbe31cf885c90d31928fe202be0889a7cdafad32f01e"}, {file = "flake8-7.3.0.tar.gz", hash = "sha256:fe044858146b9fc69b551a4b490d69cf960fcb78ad1edcb84e7fbb1b4a8e3872"}, ] -flake8-import-order = [ + +[package.dependencies] +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.14.0,<2.15.0" +pyflakes = ">=3.4.0,<3.5.0" + +[[package]] +name = "flake8-import-order" +version = "0.19.2" +description = "Flake8 and pylama plugin that checks the ordering of import statements." +optional = true +python-versions = "*" +groups = ["main"] +markers = "extra == \"lint\"" +files = [ {file = "flake8_import_order-0.19.2-py3-none-any.whl", hash = "sha256:2dfe60175e7195cf36d4c573861fd2e3258cd6650cbd7616da3c6b8193b29b7c"}, {file = "flake8_import_order-0.19.2.tar.gz", hash = "sha256:133b3c55497631e4235074fc98a95078bba817832379f22a31f0ad2455bcb0b2"}, ] -idna = [ + +[package.dependencies] +pycodestyle = "*" +setuptools = "*" + +[[package]] +name = "idna" +version = "3.11" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"}, {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"}, ] -imagesize = [ + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "imagesize" +version = "1.4.1" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, ] -iniconfig = [ + +[[package]] +name = "iniconfig" +version = "2.3.0" +description = "brain-dead simple config-ini parsing" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"test\"" +files = [ {file = "iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12"}, {file = "iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"}, ] -jinja2 = [ + +[[package]] +name = "jinja2" +version = "3.1.6" +description = "A very fast and expressive template engine." +optional = true +python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] -markdown-it-py = [ + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, ] -markupsafe = [ + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "3.0.3" +description = "Safely add untrusted strings to HTML/XML markup." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695"}, @@ -1070,27 +625,103 @@ markupsafe = [ {file = "markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8"}, {file = "markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"}, ] -mccabe = [ + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +optional = true +python-versions = ">=3.6" +groups = ["main"] +markers = "extra == \"lint\"" +files = [ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] -mdit-py-plugins = [ + +[[package]] +name = "mdit-py-plugins" +version = "0.5.0" +description = "Collection of plugins for markdown-it-py" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "mdit_py_plugins-0.5.0-py3-none-any.whl", hash = "sha256:07a08422fc1936a5d26d146759e9155ea466e842f5ab2f7d2266dd084c8dab1f"}, {file = "mdit_py_plugins-0.5.0.tar.gz", hash = "sha256:f4918cb50119f50446560513a8e311d574ff6aaed72606ddae6d35716fe809c6"}, ] -mdurl = [ + +[package.dependencies] +markdown-it-py = ">=2.0.0,<5.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["myst-parser", "sphinx-book-theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = true +python-versions = ">=3.7" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, ] -mypy-extensions = [ + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"format\"" +files = [ {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"}, {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"}, ] -myst-parser = [ + +[[package]] +name = "myst-parser" +version = "4.0.1" +description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "myst_parser-4.0.1-py3-none-any.whl", hash = "sha256:9134e88959ec3b5780aedf8a99680ea242869d012e8821db3126d427edc9c95d"}, {file = "myst_parser-4.0.1.tar.gz", hash = "sha256:5cfea715e4f3574138aecbf7d54132296bfd72bb614d31168f48c477a830a7c4"}, ] -numpy = [ + +[package.dependencies] +docutils = ">=0.19,<0.22" +jinja2 = "*" +markdown-it-py = ">=3.0,<4.0" +mdit-py-plugins = ">=0.4.1,<1.0" +pyyaml = "*" +sphinx = ">=7,<9" + +[package.extras] +code-style = ["pre-commit (>=4.0,<5.0)"] +linkify = ["linkify-it-py (>=2.0,<3.0)"] +rtd = ["ipython", "sphinx (>=7)", "sphinx-autodoc2 (>=0.5.0,<0.6.0)", "sphinx-book-theme (>=1.1,<2.0)", "sphinx-copybutton", "sphinx-design", "sphinx-pyscript", "sphinx-tippy (>=0.4.3)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.9.0,<0.10.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "defusedxml", "pygments (<2.19)", "pytest (>=8,<9)", "pytest-cov", "pytest-param-files (>=0.6.0,<0.7.0)", "pytest-regressions", "sphinx-pytest"] +testing-docutils = ["pygments", "pytest (>=8,<9)", "pytest-param-files (>=0.6.0,<0.7.0)"] + +[[package]] +name = "numpy" +version = "2.2.6" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ {file = "numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb"}, {file = "numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90"}, {file = "numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163"}, @@ -1147,55 +778,214 @@ numpy = [ {file = "numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00"}, {file = "numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd"}, ] -ounce = [ + +[[package]] +name = "ounce" +version = "1.1.1" +description = "Fast, simple, non-fancy, and non-magical package for manipulating units of measure" +optional = false +python-versions = ">=3.7,<4" +groups = ["main"] +files = [ {file = "ounce-1.1.1-py3-none-any.whl", hash = "sha256:5273cf7b609ed1b9fb814af6cc3000476262ccd327bd20c0e799f6ed5052f638"}, {file = "ounce-1.1.1.tar.gz", hash = "sha256:b0d71780666793942aeb7e929121dad1ef709c187ee398d505544d97f89bf4a8"}, ] -packaging = [ + +[[package]] +name = "packaging" +version = "26.0" +description = "Core utilities for Python packages" +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"doc\" or extra == \"format\" or extra == \"test\"" +files = [ {file = "packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529"}, {file = "packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4"}, ] -pathspec = [ + +[[package]] +name = "pathspec" +version = "1.0.4" +description = "Utility library for gitignore style pattern matching of file paths." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"format\"" +files = [ {file = "pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723"}, {file = "pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645"}, ] -pbr = [ + +[package.extras] +hyperscan = ["hyperscan (>=0.7)"] +optional = ["typing-extensions (>=4)"] +re2 = ["google-re2 (>=1.1)"] +tests = ["pytest (>=9)", "typing-extensions (>=4.15)"] + +[[package]] +name = "pbr" +version = "7.0.3" +description = "Python Build Reasonableness" +optional = true +python-versions = ">=2.6" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "pbr-7.0.3-py2.py3-none-any.whl", hash = "sha256:ff223894eb1cd271a98076b13d3badff3bb36c424074d26334cd25aebeecea6b"}, {file = "pbr-7.0.3.tar.gz", hash = "sha256:b46004ec30a5324672683ec848aed9e8fc500b0d261d40a3229c2d2bbfcedc29"}, ] -platformdirs = [ + +[package.dependencies] +setuptools = "*" + +[[package]] +name = "platformdirs" +version = "4.9.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"format\"" +files = [ {file = "platformdirs-4.9.2-py3-none-any.whl", hash = "sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd"}, {file = "platformdirs-4.9.2.tar.gz", hash = "sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291"}, ] -pluggy = [ + +[[package]] +name = "pluggy" +version = "1.6.0" +description = "plugin and hook calling mechanisms for python" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"test\"" +files = [ {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, ] -polliwog = [ + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["coverage", "pytest", "pytest-benchmark"] + +[[package]] +name = "polliwog" +version = "3.0.0a9" +description = "2D and 3D computational geometry library" +optional = false +python-versions = "<4,>=3.7" +groups = ["main"] +files = [ {file = "polliwog-3.0.0a9-py3-none-any.whl", hash = "sha256:a2693992a7c5aa4a386639813906a34e9082d6ea5984a711d8c298b21556c351"}, {file = "polliwog-3.0.0a9.tar.gz", hash = "sha256:987a180c567ccbef25b64abe4d69d1c3d377026d7e0c6eeb2d510cf666148903"}, ] -pycodestyle = [ + +[package.dependencies] +numpy = "*" +ounce = ">=1.1.0,<2.0" +vg = ">=2.0.0" + +[package.extras] +serialization = ["jsonschema (>=4,<5)", "simplejson (>=3,<4)"] + +[[package]] +name = "pycodestyle" +version = "2.14.0" +description = "Python style guide checker" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"lint\"" +files = [ {file = "pycodestyle-2.14.0-py2.py3-none-any.whl", hash = "sha256:dd6bf7cb4ee77f8e016f9c8e74a35ddd9f67e1d5fd4184d86c3b98e07099f42d"}, {file = "pycodestyle-2.14.0.tar.gz", hash = "sha256:c4b5b517d278089ff9d0abdec919cd97262a3367449ea1c8b49b91529167b783"}, ] -pyflakes = [ + +[[package]] +name = "pyflakes" +version = "3.4.0" +description = "passive checker of Python programs" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"lint\"" +files = [ {file = "pyflakes-3.4.0-py2.py3-none-any.whl", hash = "sha256:f742a7dbd0d9cb9ea41e9a24a918996e8170c799fa528688d40dd582c8265f4f"}, {file = "pyflakes-3.4.0.tar.gz", hash = "sha256:b24f96fafb7d2ab0ec5075b7350b3d2d2218eab42003821c06344973d3ea2f58"}, ] -pygments = [ + +[[package]] +name = "pygments" +version = "2.19.2" +description = "Pygments is a syntax highlighting package written in Python." +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"doc\" or extra == \"test\"" +files = [ {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, ] -pytest = [ + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pytest" +version = "9.0.2" +description = "pytest: simple powerful testing with Python" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"test\"" +files = [ {file = "pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b"}, {file = "pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11"}, ] -pytest-cov = [ + +[package.dependencies] +colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""} +iniconfig = ">=1.0.1" +packaging = ">=22" +pluggy = ">=1.5,<2" +pygments = ">=2.7.2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} + +[package.extras] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-cov" +version = "7.0.0" +description = "Pytest plugin for measuring coverage." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"test\"" +files = [ {file = "pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861"}, {file = "pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1"}, ] -pytokens = [ + +[package.dependencies] +coverage = {version = ">=7.10.6", extras = ["toml"]} +pluggy = ">=1.2" +pytest = ">=7" + +[package.extras] +testing = ["process-tests", "pytest-xdist", "virtualenv"] + +[[package]] +name = "pytokens" +version = "0.4.1" +description = "A Fast, spec compliant Python 3.14+ tokenizer that runs on older Pythons." +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"format\"" +files = [ {file = "pytokens-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a44ed93ea23415c54f3face3b65ef2b844d96aeb3455b8a69b3df6beab6acc5"}, {file = "pytokens-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:add8bf86b71a5d9fb5b89f023a80b791e04fba57960aa790cc6125f7f1d39dfe"}, {file = "pytokens-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:670d286910b531c7b7e3c0b453fd8156f250adb140146d234a82219459b9640c"}, @@ -1239,7 +1029,19 @@ pytokens = [ {file = "pytokens-0.4.1-py3-none-any.whl", hash = "sha256:26cef14744a8385f35d0e095dc8b3a7583f6c953c2e3d269c7f82484bf5ad2de"}, {file = "pytokens-0.4.1.tar.gz", hash = "sha256:292052fe80923aae2260c073f822ceba21f3872ced9a68bb7953b348e561179a"}, ] -pyyaml = [ + +[package.extras] +dev = ["black", "build", "mypy", "pytest", "pytest-cov", "setuptools", "tox", "twine", "wheel"] + +[[package]] +name = "pyyaml" +version = "6.0.3" +description = "YAML parser and emitter for Python" +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f"}, {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4"}, {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3"}, @@ -1314,96 +1116,297 @@ pyyaml = [ {file = "pyyaml-6.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007"}, {file = "pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f"}, ] -requests = [ + +[[package]] +name = "requests" +version = "2.32.5" +description = "Python HTTP for Humans." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, ] -setuptools = [ + +[package.dependencies] +certifi = ">=2017.4.17" +charset_normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "setuptools" +version = "82.0.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"lint\" or extra == \"doc\"" +files = [ {file = "setuptools-82.0.0-py3-none-any.whl", hash = "sha256:70b18734b607bd1da571d097d236cfcfacaf01de45717d59e6e04b96877532e0"}, {file = "setuptools-82.0.0.tar.gz", hash = "sha256:22e0a2d69474c6ae4feb01951cb69d515ed23728cf96d05513d36e42b62b37cb"}, ] -sh = [ + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.13.0) ; sys_platform != \"cygwin\""] +core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.18.*)", "pytest-mypy"] + +[[package]] +name = "sh" +version = "2.2.2" +description = "Python subprocess replacement" +optional = true +python-versions = "<4.0,>=3.8.1" +groups = ["main"] +markers = "extra == \"doc\" or extra == \"format\" or extra == \"lint\" or extra == \"test\"" +files = [ {file = "sh-2.2.2-py3-none-any.whl", hash = "sha256:e0b15b4ae8ffcd399bc8ffddcbd770a43c7a70a24b16773fbb34c001ad5d52af"}, {file = "sh-2.2.2.tar.gz", hash = "sha256:653227a7c41a284ec5302173fbc044ee817c7bad5e6e4d8d55741b9aeb9eb65b"}, ] -snowballstemmer = [ + +[[package]] +name = "snowballstemmer" +version = "3.0.1" +description = "This package provides 32 stemmers for 30 languages generated from Snowball algorithms." +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064"}, {file = "snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895"}, ] -sphinx = [ + +[[package]] +name = "sphinx" +version = "8.1.3" +description = "Python documentation generator" +optional = true +python-versions = ">=3.10" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2"}, {file = "sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"}, ] -sphinxcontrib-apidoc = [ + +[package.dependencies] +alabaster = ">=0.7.14" +babel = ">=2.13" +colorama = {version = ">=0.4.6", markers = "sys_platform == \"win32\""} +docutils = ">=0.20,<0.22" +imagesize = ">=1.3" +Jinja2 = ">=3.1" +packaging = ">=23.0" +Pygments = ">=2.17" +requests = ">=2.30.0" +snowballstemmer = ">=2.2" +sphinxcontrib-applehelp = ">=1.0.7" +sphinxcontrib-devhelp = ">=1.0.6" +sphinxcontrib-htmlhelp = ">=2.0.6" +sphinxcontrib-jsmath = ">=1.0.1" +sphinxcontrib-qthelp = ">=1.0.6" +sphinxcontrib-serializinghtml = ">=1.1.9" +tomli = {version = ">=2", markers = "python_version < \"3.11\""} + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["flake8 (>=6.0)", "mypy (==1.11.1)", "pyright (==1.1.384)", "pytest (>=6.0)", "ruff (==0.6.9)", "sphinx-lint (>=0.9)", "tomli (>=2)", "types-Pillow (==10.2.0.20240822)", "types-Pygments (==2.18.0.20240506)", "types-colorama (==0.4.15.20240311)", "types-defusedxml (==0.7.0.20240218)", "types-docutils (==0.21.0.20241005)", "types-requests (==2.32.0.20240914)", "types-urllib3 (==1.26.25.14)"] +test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=8.0)", "setuptools (>=70.0)", "typing_extensions (>=4.9)"] + +[[package]] +name = "sphinxcontrib-apidoc" +version = "0.6.0" +description = "A Sphinx extension for running 'sphinx-apidoc' on each build" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinxcontrib_apidoc-0.6.0-py3-none-any.whl", hash = "sha256:668592f933eee858f3bc0d0810d56d50dfa0a70f650a2faaaad501b9a3504633"}, {file = "sphinxcontrib_apidoc-0.6.0.tar.gz", hash = "sha256:329b9810d66988f48e127a6bd18cc8efbbd1cd20b8deb4691a35738af49ad88d"}, ] -sphinxcontrib-applehelp = [ + +[package.dependencies] +pbr = "*" +Sphinx = ">=5.0.0" + +[[package]] +name = "sphinxcontrib-applehelp" +version = "2.0.0" +description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5"}, {file = "sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1"}, ] -sphinxcontrib-devhelp = [ + +[package.extras] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "2.0.0" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp documents" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2"}, {file = "sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad"}, ] -sphinxcontrib-htmlhelp = [ + +[package.extras] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.1.0" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8"}, {file = "sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9"}, ] -sphinxcontrib-jsmath = [ + +[package.extras] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] +test = ["html5lib", "pytest"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +optional = true +python-versions = ">=3.5" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, ] -sphinxcontrib-qthelp = [ + +[package.extras] +test = ["flake8", "mypy", "pytest"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "2.0.0" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp documents" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb"}, {file = "sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab"}, ] -sphinxcontrib-serializinghtml = [ + +[package.extras] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] +test = ["defusedxml (>=0.7.1)", "pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "2.0.0" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331"}, {file = "sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d"}, ] -tinymetabobjloader = [ - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2a752c5bb0aa73cdb6b15687b503232a4b794adf93fa7d5865222d340fd5f5e9"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:213d7986f7e8b115460053832b478dfaaa4109dcd2c7b1f5f978890c4107e85e"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bc579c06b12e26334f5d613ad632c144a98dc0328a6741f3dec299e9253d9159"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp310-cp310-win_amd64.whl", hash = "sha256:6a4a8f9ec9e64accdb06f0866c7199628e2fd63eaadd3de9a0bdaa4935e05739"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp310-cp310-win_arm64.whl", hash = "sha256:5e39417fa568bb596eb450e831baf7de469c73123c4cb3b748dfc5d40112fcf1"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:19be156282972000e4e2959761d6ed642d7ff8094a8b3ac133a853e3ba405b29"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1189f2a8d2db94dec5b80aa38ee2ea4d38448f4657042c40648fb7a4367fdec6"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c4acb4a6d40869f12d4673fca253f32183f593b21ef99072c49414eb4823dc1d"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp311-cp311-win_amd64.whl", hash = "sha256:7f0c92c6782103932b90b0ad9a466f88b4ee2a1ddcee872dba4706a9eda7b1a0"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp311-cp311-win_arm64.whl", hash = "sha256:d1ced4a141d7c7a2bcc3a303f7f2b0d6b4617197fbf2fefa18690c439b20e782"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8219219e34cf1e73c91531b92c0460b57bb0bb4ec0aa5313a16052db35d1f079"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:54c9ebe2150e31b6ea4c748d81ad1c3258643b94bc30bb377a33e54d683b445d"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:deb7554794c9007547b6f45bfe4a7e223e44560113b75d88e6bb53139d9bcd22"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp312-cp312-win_amd64.whl", hash = "sha256:e1c20e0797e4bfee56402c3a31233b31d3c021d11af2faaeb0ea7b1471eb846b"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp312-cp312-win_arm64.whl", hash = "sha256:4deb12e662ebf54e39a1428fec69780f8735977e66c026345d0a1fa1e5a8d049"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fb78b7decee24136a361fe1e9ce85fa117266c93434f7244c0c3b36f702cdb9a"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c3aa956d4a8d49604dce4cd0e354f843a57a4d07d1cf0db4a224423e4c82f9d4"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:87004bba00d01d086c6ee9720ba79aa751c9ca36c41b83733794527e809416df"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp313-cp313-win_amd64.whl", hash = "sha256:ccae9c4fc6c3803855acc0d2fa9df844321cc99b2f93a00c3274f23a0230bdfe"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp313-cp313-win_arm64.whl", hash = "sha256:cbcf5864aaa193e8d9f17d87848b34871f97cb496d171ef247517e2a221f535a"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:352a9956d9db59e408b282b7724ac3bda398800ff568eca629ede3dd355d8502"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02b4389bdae85868639355b7b96ce56188119f9ab5b34a381cd2001e4209942f"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:491a94df79b466a68cf545f0b26c036ce24ff60810bc3b28e6f6e6d767484949"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314-win_amd64.whl", hash = "sha256:e31158803649edd0e004447e4aa07652e9ff0c2031376b6dedb3d9c1a817839a"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314-win_arm64.whl", hash = "sha256:c1500cc13d1daceabccdd5b16105b6a0385dcb29e5558e433d0a350845d563d5"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f1151019a2700b54c0074e1189ce121ba8735db6bef59b717bbc17136cea1fe6"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2e29e5217353dfc813ace79bcd7fec50853a9115150bdd901707d4019dc53c9"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c1faca6bd29be44a08a0049f6436bcf6ce172237b8c259435a8882a65b2da797"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314t-win_amd64.whl", hash = "sha256:e3126352bf302bfa5062775672c213105d6b4ea01dfd1f490863bf4711d43ef0"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp314-cp314t-win_arm64.whl", hash = "sha256:cf33e5a71186ab964a678e4f02a2f7759e50b57d11ff3bade7ae83549baaaf33"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8eed2733edb171a0c5234dc93dbdbc8b1a735e61ff64b580c585e4b9cdcc418"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f23b50dcffe970c5b1b50a64c01d323295475aedd22343e70ec4b29ecaf2e428"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp38-cp38-win_amd64.whl", hash = "sha256:bbfa065a90c1f92e6ed36ef35de4fe26793184bf43140495bc178a0aa416c9db"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9becf7eb2d28e0f606b592d7892a04ddc3b77ac6224fbb6afbd3ae6cd3988d39"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dc7003f6a9476f7bccb24223ed1dd0c7f5389391d3ba24a4b44c5b3d99eaa86d"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eba4a482642ee28212b6268300a056e88ef62ba78fe784cf9321169ea3c93873"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp39-cp39-win_amd64.whl", hash = "sha256:b1b1ea4919cf430bc2b1e64d6e0869b5ed36dfbfa2a9d81df367f2393d910268"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2-cp39-cp39-win_arm64.whl", hash = "sha256:b2a204cc3a8768a3c458c03bc5521930b2ea9c751ecf064426a28c384a4b2dda"}, - {file = "tinymetabobjloader-2.0.0rc14.dev2.tar.gz", hash = "sha256:4b645df3e7af70520b0c1e2bce7469322d55996a42e433792f65b03842a0f1cc"}, + +[package.extras] +lint = ["mypy", "ruff (==0.5.5)", "types-docutils"] +standalone = ["Sphinx (>=5)"] +test = ["pytest"] + +[[package]] +name = "tinymetabobjloader" +version = "2.0.0rc14.dev3" +description = "Tiny but powerful Wavefront OBJ loader" +optional = true +python-versions = "*" +groups = ["main"] +markers = "extra == \"cli\" or extra == \"obj\"" +files = [ + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dad08aa914fe1be87b48c0f0c7b9ecce7dfb4eb9a502261419f6d446830588d7"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e6aa9bd31e4ae708e8c60611c38dc87c99d8a3262103ce7bf70117bbfa480ab"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e5abf47c1b327a18fccc7b0dc16a402caa145986c50e2b950453eaa3e1a9a2ae"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp310-cp310-win_amd64.whl", hash = "sha256:c0079a1207493883ea2bacc53eab528bda2dd7d82a5e6512d411edbd4d45830a"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp310-cp310-win_arm64.whl", hash = "sha256:b80f99f9586b7c99058e73c03dd4f60be6f98f436c42a2b09b0d30d0ffe299f1"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2fc7b1bc04c53fe3a11aec7050676543a62c9996e09a8fac5d8b128caaf0cbef"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b2ae6aeacecc570478ac1155888ae3fcc819498174c4135c930a33bc1eaa049f"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0732717f98698fd5f9d6aea0a159eb35e5bc0879bcc8789aefb80dc77fff62ae"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp311-cp311-win_amd64.whl", hash = "sha256:b22e2ca5e27c60d6f778207685ff27a7566ac8428f3bbeab862b39be924c211f"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp311-cp311-win_arm64.whl", hash = "sha256:80cf711bdb3e5fc9987a9b698879764b6fb068852e29f03b4a339509f6bd7c32"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:863f3780aebd1c60067a19ba91478e795bd1a91cce145c2663fe6ba9dc62b4c3"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6fc669c64b5f2d5d6b421d82c5adeed67e69abc91f90733d12c5e6d93eab880e"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:feaf910897cb3d81b6a0067a2ef737fad3509e1cf2119bf96eb17810da685702"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp312-cp312-win_amd64.whl", hash = "sha256:c3a5d4b43cff26c6bc89f36a76f720f202437497ce646ded6648db280d5f8450"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp312-cp312-win_arm64.whl", hash = "sha256:11012fefd4f56f3c02a387a817cc0917c17bf097480ea89c0e30a278412de6ba"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c20d6afe7417dda30748f939e1f0d913dd04a4740b999f45955ad8eaec498615"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9733321766d4f4e67f4ebe2012e670e8ff6803cd6aa0bc30672b8787df9a02b2"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f5db9ab93284474a6bf2c95b8fb959cefc305b314d7f3a260d0ac4d0d3a77855"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp313-cp313-win_amd64.whl", hash = "sha256:72aa05ca2c850df5bbaf3fff054da9a9052024bd09a06eca4c24225404c1b63f"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp313-cp313-win_arm64.whl", hash = "sha256:c6ec61dc73ca06a1da312e82c2efe55cdaefb361621d5c026e763b71dbe11226"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:bf92d817c0fe6a8f8b2554cad27e894a286c53a0a055619be903a13b8069f185"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da490461a3043d0166be7e8e5ed0acf47fac2fc13aab75cca78eb648215e6b51"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:0be3a4727a60db50c63025a44308002aa9c87c5cb80049df54c266af83e68d71"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314-win_amd64.whl", hash = "sha256:9364dfad63c8c6a4c08848f19da828d2e1394d2577cae7a5e08d8d4f3cc3ab0e"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314-win_arm64.whl", hash = "sha256:258022af028ff5de2782ffa858e6a17aa126467fb443844f9bf430af284fb3a3"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:db79c61dd2fb3607e31ad5088fca18d39642b31e3fa4cde4cd28e320e8c11f26"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c2cc86195c75f7bd246c7251d20c225bf1aa76d90cd6f5c8f452a84cb7f206e5"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3eac13411b00280a5743448dd42cc88d947f466de0a641af79168a93bbc65bd6"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314t-win_amd64.whl", hash = "sha256:95631762804b0dd184c0949289d8bde50bd97fa3d6097154c525e40851fa28fa"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp314-cp314t-win_arm64.whl", hash = "sha256:dbd473ceb2b9dc2ba052040dbccf2671c691b671d7ffc3f9bbf4987e50b2a2ec"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c8e40945e3ec7f57d24d6cf40c08f50f8e77008b57a900583c23ab1959a5baf"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ec12d3d99bcac03a02b980add724a0460c969183ce021e540ec0d30a32864e84"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp38-cp38-win_amd64.whl", hash = "sha256:7962f8758715f1f7d0211b91d68d906192527d2118edb50fff3bba0412375e23"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:73624dce210a5265fc1deac5c3840b03ad565b00944396e47023e8404ab712ec"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:161c6d94bbfb000d7d9c809af02b7c9ac79d41d5cd8b64111ef5ba8d9a574529"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1379aaf87e411e3463583724682ec38755fc6a22a776e557ed6954300e7d6f0a"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp39-cp39-win_amd64.whl", hash = "sha256:cfc56919afa8e0a8b97512b17de66e3ff099f014c8cc34955d4251638a54932b"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3-cp39-cp39-win_arm64.whl", hash = "sha256:1f08100e01da64c135c9855353f97690071f8fb7cffa94fc217054ec8ba911c9"}, + {file = "tinymetabobjloader-2.0.0rc14.dev3.tar.gz", hash = "sha256:82703b3846d97958297b4e252e4481dcd89731ab5de3057715cc290a6ce430fb"}, ] -tomli = [ + +[[package]] +name = "tomli" +version = "2.4.0" +description = "A lil' TOML parser" +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "(extra == \"doc\" or extra == \"format\" or extra == \"test\") and python_version == \"3.10\" or extra == \"test\" and python_full_version <= \"3.11.0a6\"" +files = [ {file = "tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867"}, {file = "tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9"}, {file = "tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95"}, @@ -1452,15 +1455,63 @@ tomli = [ {file = "tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a"}, {file = "tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c"}, ] -typing-extensions = [ + +[[package]] +name = "typing-extensions" +version = "4.15.0" +description = "Backported and Experimental Type Hints for Python 3.9+" +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "(extra == \"format\" or extra == \"test\") and python_version == \"3.10\"" +files = [ {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, ] -urllib3 = [ + +[[package]] +name = "urllib3" +version = "2.6.3" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = true +python-versions = ">=3.9" +groups = ["main"] +markers = "extra == \"doc\"" +files = [ {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] -vg = [ + +[package.extras] +brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] + +[[package]] +name = "vg" +version = "2.0.0" +description = "Linear algebra for humans: a very good vector-geometry and linear-algebra toolbelt" +optional = false +python-versions = ">=3.7,<4" +groups = ["main"] +files = [ {file = "vg-2.0.0-py3-none-any.whl", hash = "sha256:86eafd1f096e3dbaa79cdbae5378d019e8cf60e67b619f69f9ed40ce1eeb1e57"}, {file = "vg-2.0.0.tar.gz", hash = "sha256:2a3f14951c81852c76727460abb8f977bf6e15bb07480e3f3bb01da1cd362570"}, ] + +[package.dependencies] +numpy = "*" + +[extras] +cli = ["click", "tinymetabobjloader"] +doc = ["Sphinx", "click", "myst-parser", "sh", "sphinxcontrib-apidoc"] +format = ["black", "click", "sh"] +lint = ["click", "flake8", "flake8-import-order", "setuptools", "sh"] +obj = ["tinymetabobjloader"] +test = ["click", "coverage", "pytest", "pytest-cov", "sh"] + +[metadata] +lock-version = "2.1" +python-versions = ">=3.10,<4" +content-hash = "6f3865a5615921259cb69344ba046e815d861d0e43bf67e9eb68882ce998674c" diff --git a/pyproject.toml b/pyproject.toml index 6aa40e8..bad63f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ numpy = "*" ounce = ">=1.1.0,<2.0" polliwog = ">=3.0.0a3" # polliwog = {git = "https://github.com/lace/polliwog.git", branch = "slice-mapping"} -tinymetabobjloader = {version = "2.0.0rc14.dev2", optional = true} +tinymetabobjloader = {version = "2.0.0rc14.dev3", optional = true} vg = ">=2.0.0" black = {version = "26.3.1", optional = true} coverage = {version = "7.13.4", optional = true}