From b7b3e0c17f0cec2e68e375202c04d38dd44b8fa9 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 09:55:21 +0200 Subject: [PATCH 01/11] Manage project with rye. --- .pre-commit-config.yaml | 2 +- .python-version | 1 + docs/source/changes.md | 1 + pyproject.toml | 30 +++++++++++++++++++++------- requirements-dev.lock | 44 +++++++++++++++++++++++++++++++++++++++++ requirements.lock | 44 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 .python-version create mode 100644 requirements-dev.lock create mode 100644 requirements.lock diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e5e222812..b34fa0ce8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -98,7 +98,7 @@ repos: hooks: - id: check-manifest args: [--no-build-isolation] - additional_dependencies: [setuptools-scm, toml, wheel] + additional_dependencies: [hatchling, hatch-vcs] - repo: meta hooks: - id: check-hooks-apply diff --git a/.python-version b/.python-version new file mode 100644 index 000000000..8531a3b7e --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.12.2 diff --git a/docs/source/changes.md b/docs/source/changes.md index 34b8abaef..5416f1f0a 100644 --- a/docs/source/changes.md +++ b/docs/source/changes.md @@ -39,6 +39,7 @@ releases are available on [PyPI](https://pypi.org/project/pytask) and - {pull}`593` recreate `PythonNode`s every run since they carry the `_NoDefault` enum as the value whose state is `None`. - {pull}`594` publishes `NodeLoadError`. +- {pull}`596` add project management with rye. ## 0.4.7 - 2024-03-19 diff --git a/pyproject.toml b/pyproject.toml index 92efc1d14..db8cd0e7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,3 @@ -[build-system] -build-backend = "setuptools.build_meta" -requires = ["setuptools>=64", "setuptools_scm>=8"] - -[tool.setuptools_scm] -version_file = "src/_pytask/_version.py" - [project] name = "pytask" description = "In its highest aspirations, pytask tries to be pytest as a build system." @@ -90,6 +83,26 @@ Tracker = "https://github.com/pytask-dev/pytask/issues" [project.scripts] pytask = "pytask:cli" +[build-system] +requires = ["hatchling", "hatch_vcs"] +build-backend = "hatchling.build" + +[tool.rye] +managed = true +dev-dependencies = [] + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.hooks.vcs] +version-file = "src/_pytask/_version.py" + +[tool.hatch.build.targets.wheel] +packages = ["src/pytask"] + +[tool.hatch.version] +source = "vcs" + [tool.setuptools] include-package-data = true zip-safe = false @@ -103,6 +116,9 @@ license-files = ["LICENSE"] where = ["src"] namespaces = false +[tool.setuptools_scm] +version_file = "src/_pytask/_version.py" + [tool.ruff] target-version = "py38" fix = true diff --git a/requirements-dev.lock b/requirements-dev.lock new file mode 100644 index 000000000..3ed4f6c0f --- /dev/null +++ b/requirements-dev.lock @@ -0,0 +1,44 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false + +-e file:. +attrs==23.2.0 + # via pytask +click==8.1.7 + # via click-default-group + # via pytask +click-default-group==1.2.4 + # via pytask +fsspec==2024.3.1 + # via universal-pathlib +greenlet==3.0.3 + # via sqlalchemy +markdown-it-py==3.0.0 + # via rich +mdurl==0.1.2 + # via markdown-it-py +networkx==3.3 + # via pytask +optree==0.11.0 + # via pytask +packaging==24.0 + # via pytask +pluggy==1.4.0 + # via pytask +pygments==2.17.2 + # via rich +rich==13.7.1 + # via pytask +sqlalchemy==2.0.29 + # via pytask +typing-extensions==4.11.0 + # via optree + # via sqlalchemy +universal-pathlib==0.2.2 + # via pytask diff --git a/requirements.lock b/requirements.lock new file mode 100644 index 000000000..3ed4f6c0f --- /dev/null +++ b/requirements.lock @@ -0,0 +1,44 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false + +-e file:. +attrs==23.2.0 + # via pytask +click==8.1.7 + # via click-default-group + # via pytask +click-default-group==1.2.4 + # via pytask +fsspec==2024.3.1 + # via universal-pathlib +greenlet==3.0.3 + # via sqlalchemy +markdown-it-py==3.0.0 + # via rich +mdurl==0.1.2 + # via markdown-it-py +networkx==3.3 + # via pytask +optree==0.11.0 + # via pytask +packaging==24.0 + # via pytask +pluggy==1.4.0 + # via pytask +pygments==2.17.2 + # via rich +rich==13.7.1 + # via pytask +sqlalchemy==2.0.29 + # via pytask +typing-extensions==4.11.0 + # via optree + # via sqlalchemy +universal-pathlib==0.2.2 + # via pytask From 3b0185c4fdf52b5b5b80d379facdcca9fb49672c Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 09:59:44 +0200 Subject: [PATCH 02/11] Clean pyproject. --- pyproject.toml | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index db8cd0e7f..a6d8d1360 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -98,27 +98,11 @@ allow-direct-references = true version-file = "src/_pytask/_version.py" [tool.hatch.build.targets.wheel] -packages = ["src/pytask"] +packages = ["src/pytask", "src/_pytask"] [tool.hatch.version] source = "vcs" -[tool.setuptools] -include-package-data = true -zip-safe = false -platforms = ["unix", "linux", "osx", "win32"] -license-files = ["LICENSE"] - -[tool.setuptools.package-dir] -"" = "src" - -[tool.setuptools.packages.find] -where = ["src"] -namespaces = false - -[tool.setuptools_scm] -version_file = "src/_pytask/_version.py" - [tool.ruff] target-version = "py38" fix = true From f4d341c540d6a7d53d196c9f167c2dc897f50644 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 10:17:39 +0200 Subject: [PATCH 03/11] Remove manifest.in. --- .gitignore | 1 + .pre-commit-config.yaml | 6 - MANIFEST.in | 15 -- pyproject.toml | 9 -- requirements-dev.lock | 326 +++++++++++++++++++++++++++++++++++++++- requirements.lock | 326 +++++++++++++++++++++++++++++++++++++++- 6 files changed, 651 insertions(+), 32 deletions(-) delete mode 100644 MANIFEST.in diff --git a/.gitignore b/.gitignore index d5e3ea27b..f7ba9054e 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ src/_pytask/_version.py *.pkl tests/test_jupyter/*.txt +.venv diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b34fa0ce8..ac4020908 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -93,12 +93,6 @@ repos: - id: codespell additional_dependencies: [tomli] exclude: (\.ipynb) -- repo: https://github.com/mgedmin/check-manifest - rev: "0.49" - hooks: - - id: check-manifest - args: [--no-build-isolation] - additional_dependencies: [hatchling, hatch-vcs] - repo: meta hooks: - id: check-hooks-apply diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 033b54aa5..000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,15 +0,0 @@ -include CITATION -include LICENSE - -recursive-include src *.pyi -recursive-include src py.typed - -exclude .coveragerc -exclude *.yaml -exclude *.yml -exclude tox.ini - -prune docs -prune docs_src -prune scripts -prune tests diff --git a/pyproject.toml b/pyproject.toml index a6d8d1360..47e9d56b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,15 +91,9 @@ build-backend = "hatchling.build" managed = true dev-dependencies = [] -[tool.hatch.metadata] -allow-direct-references = true - [tool.hatch.build.hooks.vcs] version-file = "src/_pytask/_version.py" -[tool.hatch.build.targets.wheel] -packages = ["src/pytask", "src/_pytask"] - [tool.hatch.version] source = "vcs" @@ -193,9 +187,6 @@ skip = "*.js,*/termynal.css" [tool.refurb] python_version = "3.8" -[tool.check-manifest] -ignore = ["src/_pytask/_version.py"] - [tool.coverage.report] exclude_also = [ "pragma: no cover", diff --git a/requirements-dev.lock b/requirements-dev.lock index 3ed4f6c0f..6b0a2800c 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -4,41 +4,365 @@ # last locked with the following flags: # pre: false # features: [] -# all-features: false +# all-features: true # with-sources: false -e file:. +aiohttp==3.9.4 + # via pytask +aiosignal==1.3.1 + # via aiohttp +alabaster==0.7.16 + # via sphinx +apeye==1.4.1 + # via sphinx-toolbox +apeye-core==1.1.5 + # via apeye +asttokens==2.4.1 + # via stack-data attrs==23.2.0 + # via aiohttp + # via jsonschema # via pytask + # via referencing +autodocsumm==0.2.12 + # via sphinx-toolbox +babel==2.14.0 + # via sphinx +beautifulsoup4==4.12.3 + # via furo + # via nbconvert + # via sphinx-toolbox +bleach==6.1.0 + # via nbconvert +cachecontrol==0.14.0 + # via sphinx-toolbox +certifi==2024.2.2 + # via requests +charset-normalizer==3.3.2 + # via requests click==8.1.7 # via click-default-group # via pytask + # via sphinx-click click-default-group==1.2.4 # via pytask +comm==0.2.2 + # via ipykernel +contourpy==1.2.1 + # via matplotlib +coverage==7.4.4 + # via pytest-cov +cssutils==2.10.2 + # via dict2css +cycler==0.12.1 + # via matplotlib +debugpy==1.8.1 + # via ipykernel +decorator==5.1.1 + # via ipython +deepdiff==7.0.1 + # via pytask +defusedxml==0.7.1 + # via nbconvert +dict2css==0.3.0.post1 + # via sphinx-toolbox +docutils==0.20.1 + # via myst-parser + # via nbsphinx + # via sphinx + # via sphinx-click + # via sphinx-prompt + # via sphinx-tabs + # via sphinx-toolbox +domdf-python-tools==3.8.0.post2 + # via apeye + # via apeye-core + # via dict2css + # via sphinx-toolbox +execnet==2.1.1 + # via pytest-xdist +executing==2.0.1 + # via stack-data +fastjsonschema==2.19.1 + # via nbformat +filelock==3.13.4 + # via cachecontrol + # via sphinx-toolbox +fonttools==4.51.0 + # via matplotlib +frozenlist==1.4.1 + # via aiohttp + # via aiosignal fsspec==2024.3.1 # via universal-pathlib +furo==2024.1.29 + # via pytask greenlet==3.0.3 # via sqlalchemy +html5lib==1.1 + # via sphinx-toolbox +idna==3.7 + # via apeye-core + # via requests + # via yarl +imagesize==1.4.1 + # via sphinx +iniconfig==2.0.0 + # via pytest +ipykernel==6.29.4 + # via nbmake +ipython==8.23.0 + # via ipykernel + # via pytask +jedi==0.19.1 + # via ipython +jinja2==3.1.3 + # via myst-parser + # via nbconvert + # via nbsphinx + # via sphinx + # via sphinx-jinja2-compat +jsonschema==4.21.1 + # via nbformat +jsonschema-specifications==2023.12.1 + # via jsonschema +jupyter-client==8.6.1 + # via ipykernel + # via nbclient +jupyter-core==5.7.2 + # via ipykernel + # via jupyter-client + # via nbconvert + # via nbformat +jupyterlab-pygments==0.3.0 + # via nbconvert +kiwisolver==1.4.5 + # via matplotlib markdown-it-py==3.0.0 + # via mdit-py-plugins + # via myst-parser # via rich +markupsafe==2.1.5 + # via jinja2 + # via nbconvert + # via sphinx-jinja2-compat +matplotlib==3.8.4 + # via pytask +matplotlib-inline==0.1.6 + # via ipykernel + # via ipython +mdit-py-plugins==0.4.0 + # via myst-parser mdurl==0.1.2 # via markdown-it-py +mistune==3.0.2 + # via nbconvert +msgpack==1.0.8 + # via cachecontrol +multidict==6.0.5 + # via aiohttp + # via yarl +myst-parser==2.0.0 + # via pytask +natsort==8.4.0 + # via domdf-python-tools +nbclient==0.6.8 + # via nbconvert + # via nbmake +nbconvert==7.16.3 + # via nbsphinx +nbformat==5.10.4 + # via nbclient + # via nbconvert + # via nbmake + # via nbsphinx +nbmake==1.5.3 + # via pytask +nbsphinx==0.9.3 + # via pytask +nest-asyncio==1.6.0 + # via ipykernel + # via nbclient networkx==3.3 # via pytask +numpy==1.26.4 + # via contourpy + # via matplotlib optree==0.11.0 # via pytask +ordered-set==4.1.0 + # via deepdiff packaging==24.0 + # via ipykernel + # via matplotlib + # via nbconvert # via pytask + # via pytest + # via sphinx +pandocfilters==1.5.1 + # via nbconvert +parso==0.8.4 + # via jedi +pexpect==4.9.0 + # via ipython + # via pytask +pillow==10.3.0 + # via matplotlib +platformdirs==4.2.0 + # via apeye + # via jupyter-core pluggy==1.4.0 # via pytask + # via pytest +prompt-toolkit==3.0.43 + # via ipython +psutil==5.9.8 + # via ipykernel +ptyprocess==0.7.0 + # via pexpect +pure-eval==0.2.2 + # via stack-data pygments==2.17.2 + # via furo + # via ipython + # via nbconvert + # via nbmake # via rich + # via sphinx + # via sphinx-prompt + # via sphinx-tabs +pyparsing==3.1.2 + # via matplotlib +pytest==8.1.1 + # via nbmake + # via pytask + # via pytest-cov + # via pytest-xdist + # via syrupy +pytest-cov==5.0.0 + # via pytask +pytest-xdist==3.5.0 + # via pytask +python-dateutil==2.9.0.post0 + # via jupyter-client + # via matplotlib +pyyaml==6.0.1 + # via myst-parser +pyzmq==25.1.2 + # via ipykernel + # via jupyter-client +referencing==0.34.0 + # via jsonschema + # via jsonschema-specifications +requests==2.31.0 + # via apeye + # via cachecontrol + # via pytask + # via sphinx rich==13.7.1 # via pytask +rpds-py==0.18.0 + # via jsonschema + # via referencing +ruamel-yaml==0.18.6 + # via sphinx-toolbox +ruamel-yaml-clib==0.2.8 + # via ruamel-yaml +six==1.16.0 + # via asttokens + # via bleach + # via html5lib + # via python-dateutil +snowballstemmer==2.2.0 + # via sphinx +soupsieve==2.5 + # via beautifulsoup4 +sphinx==7.2.6 + # via autodocsumm + # via furo + # via myst-parser + # via nbsphinx + # via pytask + # via sphinx-autodoc-typehints + # via sphinx-basic-ng + # via sphinx-click + # via sphinx-copybutton + # via sphinx-design + # via sphinx-prompt + # via sphinx-tabs + # via sphinx-toolbox + # via sphinxext-opengraph +sphinx-autodoc-typehints==2.0.1 + # via sphinx-toolbox +sphinx-basic-ng==1.0.0b2 + # via furo +sphinx-click==5.1.0 + # via pytask +sphinx-copybutton==0.5.2 + # via pytask +sphinx-design==0.5.0 + # via pytask +sphinx-jinja2-compat==0.2.0.post1 + # via sphinx-toolbox +sphinx-prompt==1.8.0 + # via sphinx-toolbox +sphinx-tabs==3.4.5 + # via sphinx-toolbox +sphinx-toolbox==3.5.0 + # via pytask +sphinxcontrib-applehelp==1.0.8 + # via sphinx +sphinxcontrib-devhelp==1.0.6 + # via sphinx +sphinxcontrib-htmlhelp==2.0.5 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.7 + # via sphinx +sphinxcontrib-serializinghtml==1.1.10 + # via sphinx +sphinxext-opengraph==0.9.1 + # via pytask sqlalchemy==2.0.29 # via pytask +stack-data==0.6.3 + # via ipython +syrupy==4.6.1 + # via pytask +tabulate==0.9.0 + # via sphinx-toolbox +tinycss2==1.2.1 + # via nbconvert +tornado==6.4 + # via ipykernel + # via jupyter-client +traitlets==5.14.2 + # via comm + # via ipykernel + # via ipython + # via jupyter-client + # via jupyter-core + # via matplotlib-inline + # via nbclient + # via nbconvert + # via nbformat + # via nbsphinx typing-extensions==4.11.0 + # via domdf-python-tools # via optree + # via sphinx-toolbox # via sqlalchemy universal-pathlib==0.2.2 # via pytask +urllib3==2.2.1 + # via requests +wcwidth==0.2.13 + # via prompt-toolkit +webencodings==0.5.1 + # via bleach + # via html5lib + # via tinycss2 +yarl==1.9.4 + # via aiohttp diff --git a/requirements.lock b/requirements.lock index 3ed4f6c0f..6b0a2800c 100644 --- a/requirements.lock +++ b/requirements.lock @@ -4,41 +4,365 @@ # last locked with the following flags: # pre: false # features: [] -# all-features: false +# all-features: true # with-sources: false -e file:. +aiohttp==3.9.4 + # via pytask +aiosignal==1.3.1 + # via aiohttp +alabaster==0.7.16 + # via sphinx +apeye==1.4.1 + # via sphinx-toolbox +apeye-core==1.1.5 + # via apeye +asttokens==2.4.1 + # via stack-data attrs==23.2.0 + # via aiohttp + # via jsonschema # via pytask + # via referencing +autodocsumm==0.2.12 + # via sphinx-toolbox +babel==2.14.0 + # via sphinx +beautifulsoup4==4.12.3 + # via furo + # via nbconvert + # via sphinx-toolbox +bleach==6.1.0 + # via nbconvert +cachecontrol==0.14.0 + # via sphinx-toolbox +certifi==2024.2.2 + # via requests +charset-normalizer==3.3.2 + # via requests click==8.1.7 # via click-default-group # via pytask + # via sphinx-click click-default-group==1.2.4 # via pytask +comm==0.2.2 + # via ipykernel +contourpy==1.2.1 + # via matplotlib +coverage==7.4.4 + # via pytest-cov +cssutils==2.10.2 + # via dict2css +cycler==0.12.1 + # via matplotlib +debugpy==1.8.1 + # via ipykernel +decorator==5.1.1 + # via ipython +deepdiff==7.0.1 + # via pytask +defusedxml==0.7.1 + # via nbconvert +dict2css==0.3.0.post1 + # via sphinx-toolbox +docutils==0.20.1 + # via myst-parser + # via nbsphinx + # via sphinx + # via sphinx-click + # via sphinx-prompt + # via sphinx-tabs + # via sphinx-toolbox +domdf-python-tools==3.8.0.post2 + # via apeye + # via apeye-core + # via dict2css + # via sphinx-toolbox +execnet==2.1.1 + # via pytest-xdist +executing==2.0.1 + # via stack-data +fastjsonschema==2.19.1 + # via nbformat +filelock==3.13.4 + # via cachecontrol + # via sphinx-toolbox +fonttools==4.51.0 + # via matplotlib +frozenlist==1.4.1 + # via aiohttp + # via aiosignal fsspec==2024.3.1 # via universal-pathlib +furo==2024.1.29 + # via pytask greenlet==3.0.3 # via sqlalchemy +html5lib==1.1 + # via sphinx-toolbox +idna==3.7 + # via apeye-core + # via requests + # via yarl +imagesize==1.4.1 + # via sphinx +iniconfig==2.0.0 + # via pytest +ipykernel==6.29.4 + # via nbmake +ipython==8.23.0 + # via ipykernel + # via pytask +jedi==0.19.1 + # via ipython +jinja2==3.1.3 + # via myst-parser + # via nbconvert + # via nbsphinx + # via sphinx + # via sphinx-jinja2-compat +jsonschema==4.21.1 + # via nbformat +jsonschema-specifications==2023.12.1 + # via jsonschema +jupyter-client==8.6.1 + # via ipykernel + # via nbclient +jupyter-core==5.7.2 + # via ipykernel + # via jupyter-client + # via nbconvert + # via nbformat +jupyterlab-pygments==0.3.0 + # via nbconvert +kiwisolver==1.4.5 + # via matplotlib markdown-it-py==3.0.0 + # via mdit-py-plugins + # via myst-parser # via rich +markupsafe==2.1.5 + # via jinja2 + # via nbconvert + # via sphinx-jinja2-compat +matplotlib==3.8.4 + # via pytask +matplotlib-inline==0.1.6 + # via ipykernel + # via ipython +mdit-py-plugins==0.4.0 + # via myst-parser mdurl==0.1.2 # via markdown-it-py +mistune==3.0.2 + # via nbconvert +msgpack==1.0.8 + # via cachecontrol +multidict==6.0.5 + # via aiohttp + # via yarl +myst-parser==2.0.0 + # via pytask +natsort==8.4.0 + # via domdf-python-tools +nbclient==0.6.8 + # via nbconvert + # via nbmake +nbconvert==7.16.3 + # via nbsphinx +nbformat==5.10.4 + # via nbclient + # via nbconvert + # via nbmake + # via nbsphinx +nbmake==1.5.3 + # via pytask +nbsphinx==0.9.3 + # via pytask +nest-asyncio==1.6.0 + # via ipykernel + # via nbclient networkx==3.3 # via pytask +numpy==1.26.4 + # via contourpy + # via matplotlib optree==0.11.0 # via pytask +ordered-set==4.1.0 + # via deepdiff packaging==24.0 + # via ipykernel + # via matplotlib + # via nbconvert # via pytask + # via pytest + # via sphinx +pandocfilters==1.5.1 + # via nbconvert +parso==0.8.4 + # via jedi +pexpect==4.9.0 + # via ipython + # via pytask +pillow==10.3.0 + # via matplotlib +platformdirs==4.2.0 + # via apeye + # via jupyter-core pluggy==1.4.0 # via pytask + # via pytest +prompt-toolkit==3.0.43 + # via ipython +psutil==5.9.8 + # via ipykernel +ptyprocess==0.7.0 + # via pexpect +pure-eval==0.2.2 + # via stack-data pygments==2.17.2 + # via furo + # via ipython + # via nbconvert + # via nbmake # via rich + # via sphinx + # via sphinx-prompt + # via sphinx-tabs +pyparsing==3.1.2 + # via matplotlib +pytest==8.1.1 + # via nbmake + # via pytask + # via pytest-cov + # via pytest-xdist + # via syrupy +pytest-cov==5.0.0 + # via pytask +pytest-xdist==3.5.0 + # via pytask +python-dateutil==2.9.0.post0 + # via jupyter-client + # via matplotlib +pyyaml==6.0.1 + # via myst-parser +pyzmq==25.1.2 + # via ipykernel + # via jupyter-client +referencing==0.34.0 + # via jsonschema + # via jsonschema-specifications +requests==2.31.0 + # via apeye + # via cachecontrol + # via pytask + # via sphinx rich==13.7.1 # via pytask +rpds-py==0.18.0 + # via jsonschema + # via referencing +ruamel-yaml==0.18.6 + # via sphinx-toolbox +ruamel-yaml-clib==0.2.8 + # via ruamel-yaml +six==1.16.0 + # via asttokens + # via bleach + # via html5lib + # via python-dateutil +snowballstemmer==2.2.0 + # via sphinx +soupsieve==2.5 + # via beautifulsoup4 +sphinx==7.2.6 + # via autodocsumm + # via furo + # via myst-parser + # via nbsphinx + # via pytask + # via sphinx-autodoc-typehints + # via sphinx-basic-ng + # via sphinx-click + # via sphinx-copybutton + # via sphinx-design + # via sphinx-prompt + # via sphinx-tabs + # via sphinx-toolbox + # via sphinxext-opengraph +sphinx-autodoc-typehints==2.0.1 + # via sphinx-toolbox +sphinx-basic-ng==1.0.0b2 + # via furo +sphinx-click==5.1.0 + # via pytask +sphinx-copybutton==0.5.2 + # via pytask +sphinx-design==0.5.0 + # via pytask +sphinx-jinja2-compat==0.2.0.post1 + # via sphinx-toolbox +sphinx-prompt==1.8.0 + # via sphinx-toolbox +sphinx-tabs==3.4.5 + # via sphinx-toolbox +sphinx-toolbox==3.5.0 + # via pytask +sphinxcontrib-applehelp==1.0.8 + # via sphinx +sphinxcontrib-devhelp==1.0.6 + # via sphinx +sphinxcontrib-htmlhelp==2.0.5 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.7 + # via sphinx +sphinxcontrib-serializinghtml==1.1.10 + # via sphinx +sphinxext-opengraph==0.9.1 + # via pytask sqlalchemy==2.0.29 # via pytask +stack-data==0.6.3 + # via ipython +syrupy==4.6.1 + # via pytask +tabulate==0.9.0 + # via sphinx-toolbox +tinycss2==1.2.1 + # via nbconvert +tornado==6.4 + # via ipykernel + # via jupyter-client +traitlets==5.14.2 + # via comm + # via ipykernel + # via ipython + # via jupyter-client + # via jupyter-core + # via matplotlib-inline + # via nbclient + # via nbconvert + # via nbformat + # via nbsphinx typing-extensions==4.11.0 + # via domdf-python-tools # via optree + # via sphinx-toolbox # via sqlalchemy universal-pathlib==0.2.2 # via pytask +urllib3==2.2.1 + # via requests +wcwidth==0.2.13 + # via prompt-toolkit +webencodings==0.5.1 + # via bleach + # via html5lib + # via tinycss2 +yarl==1.9.4 + # via aiohttp From da52fcd5f2ba2508571203a118f7f855c0896fc2 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 10:25:46 +0200 Subject: [PATCH 04/11] Include only necessary files. --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 47e9d56b8..3ec2bcafc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -97,6 +97,10 @@ version-file = "src/_pytask/_version.py" [tool.hatch.version] source = "vcs" +[tool.hatch.build.targets.sdist] +exclude = ["tests"] +only-packages = true + [tool.ruff] target-version = "py38" fix = true From 31f0aba7ed91f2c6aa1f05ea1ca005faeb943d83 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 10:41:55 +0200 Subject: [PATCH 05/11] FIx. --- pyproject.toml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3ec2bcafc..87dc3175e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,13 +94,17 @@ dev-dependencies = [] [tool.hatch.build.hooks.vcs] version-file = "src/_pytask/_version.py" -[tool.hatch.version] -source = "vcs" - [tool.hatch.build.targets.sdist] exclude = ["tests"] only-packages = true +[tool.hatch.build.targets.wheel] +exclude = ["tests"] +only-packages = true + +[tool.hatch.version] +source = "vcs" + [tool.ruff] target-version = "py38" fix = true @@ -123,7 +127,6 @@ ignore = [ "SLF001", # access private members. ] - [tool.ruff.lint.per-file-ignores] "src/_pytask/_hashlib.py" = ["ALL"] "src/_pytask/capture.py" = ["PGH003"] @@ -171,7 +174,6 @@ no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true - [[tool.mypy.overrides]] module = "tests.*" disallow_untyped_defs = false From e3c7db99d55ac64f8e76bae38bc6c86e747545f3 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 10:51:45 +0200 Subject: [PATCH 06/11] Fix. --- .readthedocs.yaml | 2 +- environment.yml | 53 ----------------------------------------------- pyproject.toml | 3 +++ 3 files changed, 4 insertions(+), 54 deletions(-) delete mode 100644 environment.yml diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 1478786a6..e9f6b797f 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -3,7 +3,7 @@ version: 2 build: os: ubuntu-22.04 tools: - python: "3.10" + python: "3.12" sphinx: configuration: docs/source/conf.py diff --git a/environment.yml b/environment.yml deleted file mode 100644 index 5a74fc50a..000000000 --- a/environment.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: pytask - -channels: - - conda-forge - - nodefaults - -dependencies: - - python >=3.8 - - pip - - setuptools_scm - - toml - - # Package dependencies - - attrs >=21.3.0 - - click - - click-default-group - - networkx >=2.4 - - pluggy >=1.3.0 - - optree >=0.9 - - rich - - sqlalchemy >=2 - - tomli >=1.0.0 - - typing_extensions - - universal_pathlib >=0.2.2 - - # Misc - - deepdiff - - ipywidgets - - jupyterlab - - matplotlib - - nbmake - - pygraphviz - - pytest - - pytest-cov - - pytest-xdist - - ruff - - syrupy - - tabulate - - tox-uv - - # Documentation - - furo - - myst-parser - - nbsphinx - - sphinx - - sphinx-click - - sphinx-copybutton - - sphinx-design >=0.3.0 - - sphinx-toolbox - - sphinxext-opengraph - - - pip: - - -e . diff --git a/pyproject.toml b/pyproject.toml index 87dc3175e..63df45c05 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -105,6 +105,9 @@ only-packages = true [tool.hatch.version] source = "vcs" +[tool.hatch.metadata] +allow-direct-references = true + [tool.ruff] target-version = "py38" fix = true From 31969860a03ea883e0eaf4ec8e1887f0d1b04082 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 11:01:36 +0200 Subject: [PATCH 07/11] Add hatch. --- .readthedocs.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index e9f6b797f..17ef0865b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -11,6 +11,8 @@ sphinx: python: install: + - method: pip + path: hatchling hatch-vcs - method: pip path: . extra_requirements: From a56592d7311f5347372427ba3b7ae893a9acf02f Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 11:05:55 +0200 Subject: [PATCH 08/11] FIx. --- .readthedocs.yaml | 3 +-- docs/requirements.txt | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 docs/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 17ef0865b..c8f30854b 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -11,8 +11,7 @@ sphinx: python: install: - - method: pip - path: hatchling hatch-vcs + - requirements: docs/requirements.txt - method: pip path: . extra_requirements: diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 000000000..daa9da3f4 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,2 @@ +hatchling +hatch-vcs From 9080a687f4a7a75b5638aebead9bbbc79114e303 Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 11:11:24 +0200 Subject: [PATCH 09/11] Revert. --- .readthedocs.yaml | 1 - docs/requirements.txt | 2 -- 2 files changed, 3 deletions(-) delete mode 100644 docs/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml index c8f30854b..e9f6b797f 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -11,7 +11,6 @@ sphinx: python: install: - - requirements: docs/requirements.txt - method: pip path: . extra_requirements: diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index daa9da3f4..000000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -hatchling -hatch-vcs From 54cc16a076f123030bd25008c1a9908c758a04ec Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 11:13:19 +0200 Subject: [PATCH 10/11] Check package. --- .github/workflows/main.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index eb01c5806..ac33357b2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,6 +15,21 @@ on: jobs: + build-package: + name: Build & verify package + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: hynek/build-and-inspect-python-package@v2 + id: baipp + + outputs: + python-versions: ${{ steps.baipp.outputs.supported_python_classifiers_json_array }} + run-tests: name: Run tests for ${{ matrix.os }} on ${{ matrix.python-version }} From 784c946bbbca5b0eb23f9c48c9e8c61142ad5d2f Mon Sep 17 00:00:00 2001 From: Tobias Raabe Date: Sat, 13 Apr 2024 11:26:20 +0200 Subject: [PATCH 11/11] fix. --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 63df45c05..5fcd58d4b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -99,8 +99,8 @@ exclude = ["tests"] only-packages = true [tool.hatch.build.targets.wheel] -exclude = ["tests"] -only-packages = true +only-include = ["src"] +sources = ["src"] [tool.hatch.version] source = "vcs"