fix: use flat layout

This commit is contained in:
张泊明518370910136 2024-10-17 22:05:52 -04:00
parent 0ef6cd186f
commit 65a5bf4141
GPG Key ID: D47306D7062CDA9D
8 changed files with 143 additions and 23 deletions

View File

@ -2,13 +2,14 @@
## Getting Started ## Getting Started
1. Install [Python>=3.10](https://www.python.org/) and [PDM](https://pdm-project.org/). ### For users
2. Install deps by `pdm install --prod`.
3. Run it by `pdm run joj3-config-generator --help` 1. Install [Python>=3.6](https://www.python.org/) and [pip](https://pip.pypa.io/).
2. Install the project by `pip install .`
3. Run it by `joj3-config-generator --help`
### For developers ### For developers
```bash 1. Install [Python>=3.6](https://www.python.org/) and [PDM](https://pdm-project.org/).
pdm install --dev 2. Install deps by `pdm install && pdm run pre-commit install`.
pdm run pre-commit install 3. Run the cli app by `pdm run app --help`
```

138
pdm.lock
View File

@ -2,10 +2,10 @@
# It is not intended for manual editing. # It is not intended for manual editing.
[metadata] [metadata]
groups = ["default", "lint", "test"] groups = ["default", "dev", "lint", "test"]
strategy = ["inherit_metadata"] strategy = ["inherit_metadata"]
lock_version = "4.5.0" lock_version = "4.5.0"
content_hash = "sha256:e228d5912900f76aca04615f3f8bf44c5194823e8fcf42d5be983b7b71f8e775" content_hash = "sha256:0abdfb3aee2af3f426cf278d46d31a85433577081a2e77308639f57a5491805d"
[[metadata.targets]] [[metadata.targets]]
requires_python = ">=3.10" requires_python = ">=3.10"
@ -16,6 +16,7 @@ version = "0.7.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Reusable constraint types to use with typing.Annotated" summary = "Reusable constraint types to use with typing.Annotated"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"typing-extensions>=4.0.0; python_version < \"3.9\"", "typing-extensions>=4.0.0; python_version < \"3.9\"",
] ]
@ -30,6 +31,7 @@ version = "24.10.0"
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "The uncompromising code formatter." summary = "The uncompromising code formatter."
groups = ["lint"] groups = ["lint"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"click>=8.0.0", "click>=8.0.0",
"mypy-extensions>=0.4.3", "mypy-extensions>=0.4.3",
@ -60,12 +62,25 @@ files = [
{file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"}, {file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"},
] ]
[[package]]
name = "cfgv"
version = "3.4.0"
requires_python = ">=3.8"
summary = "Validate configuration and produce human readable error messages."
groups = ["dev"]
marker = "python_version >= \"3.10\""
files = [
{file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"},
{file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"},
]
[[package]] [[package]]
name = "click" name = "click"
version = "8.1.7" version = "8.1.7"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Composable command line interface toolkit" summary = "Composable command line interface toolkit"
groups = ["default", "lint"] groups = ["default", "lint"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"colorama; platform_system == \"Windows\"", "colorama; platform_system == \"Windows\"",
"importlib-metadata; python_version < \"3.8\"", "importlib-metadata; python_version < \"3.8\"",
@ -81,7 +96,7 @@ version = "0.4.6"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
summary = "Cross-platform colored terminal text." summary = "Cross-platform colored terminal text."
groups = ["default", "lint", "test"] groups = ["default", "lint", "test"]
marker = "sys_platform == \"win32\" or platform_system == \"Windows\"" marker = "sys_platform == \"win32\" and python_version >= \"3.10\" or platform_system == \"Windows\" and python_version >= \"3.10\""
files = [ files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@ -93,6 +108,7 @@ version = "7.6.3"
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "Code coverage measurement for Python" summary = "Code coverage measurement for Python"
groups = ["test"] groups = ["test"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "coverage-7.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6da42bbcec130b188169107ecb6ee7bd7b4c849d24c9370a0c884cf728d8e976"}, {file = "coverage-7.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6da42bbcec130b188169107ecb6ee7bd7b4c849d24c9370a0c884cf728d8e976"},
{file = "coverage-7.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c222958f59b0ae091f4535851cbb24eb57fc0baea07ba675af718fb5302dddb2"}, {file = "coverage-7.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c222958f59b0ae091f4535851cbb24eb57fc0baea07ba675af718fb5302dddb2"},
@ -155,6 +171,7 @@ extras = ["toml"]
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "Code coverage measurement for Python" summary = "Code coverage measurement for Python"
groups = ["test"] groups = ["test"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"coverage==7.6.3", "coverage==7.6.3",
"tomli; python_full_version <= \"3.11.0a6\"", "tomli; python_full_version <= \"3.11.0a6\"",
@ -214,24 +231,60 @@ files = [
{file = "coverage-7.6.3.tar.gz", hash = "sha256:bb7d5fe92bd0dc235f63ebe9f8c6e0884f7360f88f3411bfed1350c872ef2054"}, {file = "coverage-7.6.3.tar.gz", hash = "sha256:bb7d5fe92bd0dc235f63ebe9f8c6e0884f7360f88f3411bfed1350c872ef2054"},
] ]
[[package]]
name = "distlib"
version = "0.3.9"
summary = "Distribution utilities"
groups = ["dev"]
marker = "python_version >= \"3.10\""
files = [
{file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"},
{file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"},
]
[[package]] [[package]]
name = "exceptiongroup" name = "exceptiongroup"
version = "1.2.2" version = "1.2.2"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Backport of PEP 654 (exception groups)" summary = "Backport of PEP 654 (exception groups)"
groups = ["test"] groups = ["test"]
marker = "python_version < \"3.11\"" marker = "python_version < \"3.11\" and python_version >= \"3.10\""
files = [ files = [
{file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
{file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
] ]
[[package]]
name = "filelock"
version = "3.16.1"
requires_python = ">=3.8"
summary = "A platform independent file lock."
groups = ["dev"]
marker = "python_version >= \"3.10\""
files = [
{file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"},
{file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"},
]
[[package]]
name = "identify"
version = "2.6.1"
requires_python = ">=3.8"
summary = "File identification library for Python"
groups = ["dev"]
marker = "python_version >= \"3.10\""
files = [
{file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"},
{file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"},
]
[[package]] [[package]]
name = "iniconfig" name = "iniconfig"
version = "2.0.0" version = "2.0.0"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "brain-dead simple config-ini parsing" summary = "brain-dead simple config-ini parsing"
groups = ["test"] groups = ["test"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
@ -243,6 +296,7 @@ version = "0.7.2"
requires_python = ">=3.5" requires_python = ">=3.5"
summary = "Python logging made (stupidly) simple" summary = "Python logging made (stupidly) simple"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"aiocontextvars>=0.2.0; python_version < \"3.7\"", "aiocontextvars>=0.2.0; python_version < \"3.7\"",
"colorama>=0.3.4; sys_platform == \"win32\"", "colorama>=0.3.4; sys_platform == \"win32\"",
@ -259,6 +313,7 @@ version = "3.0.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Python port of markdown-it. Markdown parsing, done right!" summary = "Python port of markdown-it. Markdown parsing, done right!"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"mdurl~=0.1", "mdurl~=0.1",
] ]
@ -273,6 +328,7 @@ version = "0.1.2"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Markdown URL utilities" summary = "Markdown URL utilities"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"},
{file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
@ -284,6 +340,7 @@ version = "1.12.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Optional static typing for Python" summary = "Optional static typing for Python"
groups = ["lint"] groups = ["lint"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"mypy-extensions>=1.0.0", "mypy-extensions>=1.0.0",
"tomli>=1.1.0; python_version < \"3.11\"", "tomli>=1.1.0; python_version < \"3.11\"",
@ -320,17 +377,31 @@ version = "1.0.0"
requires_python = ">=3.5" requires_python = ">=3.5"
summary = "Type system extensions for programs checked with the mypy type checker." summary = "Type system extensions for programs checked with the mypy type checker."
groups = ["lint"] groups = ["lint"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
] ]
[[package]]
name = "nodeenv"
version = "1.9.1"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
summary = "Node.js virtual environment builder"
groups = ["dev"]
marker = "python_version >= \"3.10\""
files = [
{file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"},
{file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"},
]
[[package]] [[package]]
name = "packaging" name = "packaging"
version = "24.1" version = "24.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Core utilities for Python packages" summary = "Core utilities for Python packages"
groups = ["lint", "test"] groups = ["lint", "test"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"},
{file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"},
@ -342,6 +413,7 @@ version = "0.12.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Utility library for gitignore style pattern matching of file paths." summary = "Utility library for gitignore style pattern matching of file paths."
groups = ["lint"] groups = ["lint"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
{file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
@ -352,7 +424,8 @@ name = "platformdirs"
version = "4.3.6" version = "4.3.6"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
groups = ["lint"] groups = ["dev", "lint"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
{file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
@ -364,17 +437,38 @@ version = "1.5.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "plugin and hook calling mechanisms for python" summary = "plugin and hook calling mechanisms for python"
groups = ["test"] groups = ["test"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
{file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
] ]
[[package]]
name = "pre-commit"
version = "4.0.1"
requires_python = ">=3.9"
summary = "A framework for managing and maintaining multi-language pre-commit hooks."
groups = ["dev"]
marker = "python_version >= \"3.10\""
dependencies = [
"cfgv>=2.0.0",
"identify>=1.0.0",
"nodeenv>=0.11.1",
"pyyaml>=5.1",
"virtualenv>=20.10.0",
]
files = [
{file = "pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878"},
{file = "pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2"},
]
[[package]] [[package]]
name = "pydantic" name = "pydantic"
version = "2.9.2" version = "2.9.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Data validation using Python type hints" summary = "Data validation using Python type hints"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"annotated-types>=0.6.0", "annotated-types>=0.6.0",
"pydantic-core==2.23.4", "pydantic-core==2.23.4",
@ -392,6 +486,7 @@ version = "2.23.4"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Core functionality for Pydantic validation and serialization" summary = "Core functionality for Pydantic validation and serialization"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"typing-extensions!=4.7.0,>=4.6.0", "typing-extensions!=4.7.0,>=4.6.0",
] ]
@ -461,6 +556,7 @@ version = "2.18.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Pygments is a syntax highlighting package written in Python." summary = "Pygments is a syntax highlighting package written in Python."
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"},
{file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"},
@ -472,6 +568,7 @@ version = "8.3.3"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "pytest: simple powerful testing with Python" summary = "pytest: simple powerful testing with Python"
groups = ["test"] groups = ["test"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"colorama; sys_platform == \"win32\"", "colorama; sys_platform == \"win32\"",
"exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"",
@ -491,6 +588,7 @@ version = "5.0.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Pytest plugin for measuring coverage." summary = "Pytest plugin for measuring coverage."
groups = ["test"] groups = ["test"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"coverage[toml]>=5.2.1", "coverage[toml]>=5.2.1",
"pytest>=4.6", "pytest>=4.6",
@ -505,7 +603,8 @@ name = "pyyaml"
version = "6.0.2" version = "6.0.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "YAML parser and emitter for Python" summary = "YAML parser and emitter for Python"
groups = ["default"] groups = ["default", "dev"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
@ -552,6 +651,7 @@ version = "13.9.2"
requires_python = ">=3.8.0" requires_python = ">=3.8.0"
summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"markdown-it-py>=2.2.0", "markdown-it-py>=2.2.0",
"pygments<3.0.0,>=2.13.0", "pygments<3.0.0,>=2.13.0",
@ -568,6 +668,7 @@ version = "1.5.4"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Tool to Detect Surrounding Shell" summary = "Tool to Detect Surrounding Shell"
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"},
{file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"},
@ -579,7 +680,7 @@ version = "2.0.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A lil' TOML parser" summary = "A lil' TOML parser"
groups = ["lint", "test"] groups = ["lint", "test"]
marker = "python_version < \"3.11\"" marker = "python_version < \"3.11\" and python_version >= \"3.10\""
files = [ files = [
{file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"},
{file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"},
@ -591,6 +692,7 @@ version = "0.12.5"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Typer, build great CLIs. Easy to code. Based on Python type hints." summary = "Typer, build great CLIs. Easy to code. Based on Python type hints."
groups = ["default"] groups = ["default"]
marker = "python_version >= \"3.10\""
dependencies = [ dependencies = [
"click>=8.0.0", "click>=8.0.0",
"rich>=10.11.0", "rich>=10.11.0",
@ -608,6 +710,7 @@ version = "6.0.12.20240917"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Typing stubs for PyYAML" summary = "Typing stubs for PyYAML"
groups = ["lint"] groups = ["lint"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "types-PyYAML-6.0.12.20240917.tar.gz", hash = "sha256:d1405a86f9576682234ef83bcb4e6fff7c9305c8b1fbad5e0bcd4f7dbdc9c587"}, {file = "types-PyYAML-6.0.12.20240917.tar.gz", hash = "sha256:d1405a86f9576682234ef83bcb4e6fff7c9305c8b1fbad5e0bcd4f7dbdc9c587"},
{file = "types_PyYAML-6.0.12.20240917-py3-none-any.whl", hash = "sha256:392b267f1c0fe6022952462bf5d6523f31e37f6cea49b14cee7ad634b6301570"}, {file = "types_PyYAML-6.0.12.20240917-py3-none-any.whl", hash = "sha256:392b267f1c0fe6022952462bf5d6523f31e37f6cea49b14cee7ad634b6301570"},
@ -619,18 +722,37 @@ version = "4.12.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Backported and Experimental Type Hints for Python 3.8+" summary = "Backported and Experimental Type Hints for Python 3.8+"
groups = ["default", "lint"] groups = ["default", "lint"]
marker = "python_version >= \"3.10\""
files = [ files = [
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
] ]
[[package]]
name = "virtualenv"
version = "20.27.0"
requires_python = ">=3.8"
summary = "Virtual Python Environment builder"
groups = ["dev"]
marker = "python_version >= \"3.10\""
dependencies = [
"distlib<1,>=0.3.7",
"filelock<4,>=3.12.2",
"importlib-metadata>=6.6; python_version < \"3.8\"",
"platformdirs<5,>=3.9.1",
]
files = [
{file = "virtualenv-20.27.0-py3-none-any.whl", hash = "sha256:44a72c29cceb0ee08f300b314848c86e57bf8d1f13107a5e671fb9274138d655"},
{file = "virtualenv-20.27.0.tar.gz", hash = "sha256:2ca56a68ed615b8fe4326d11a0dca5dfbe8fd68510fb6c6349163bed3c15f2b2"},
]
[[package]] [[package]]
name = "win32-setctime" name = "win32-setctime"
version = "1.1.0" version = "1.1.0"
requires_python = ">=3.5" requires_python = ">=3.5"
summary = "A small Python utility to set file creation time on Windows" summary = "A small Python utility to set file creation time on Windows"
groups = ["default"] groups = ["default"]
marker = "sys_platform == \"win32\"" marker = "sys_platform == \"win32\" and python_version >= \"3.10\""
files = [ files = [
{file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"},
{file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"},

View File

@ -7,7 +7,7 @@ dependencies = [
"loguru>=0.7.2", "loguru>=0.7.2",
"pydantic>=2.9.2", "pydantic>=2.9.2",
] ]
requires-python = ">=3.10" requires-python = ">=3.6"
authors = [{ name = "JOJ3-dev", email = "joj3@focs.ji.sjtu.edu.cn" }] authors = [{ name = "JOJ3-dev", email = "joj3@focs.ji.sjtu.edu.cn" }]
maintainers = [] maintainers = []
description = "JOJ3 json configuration file generator" description = "JOJ3 json configuration file generator"
@ -25,18 +25,15 @@ skips = ["B101"]
distribution = false distribution = false
[tool.pdm.dev-dependencies] [tool.pdm.dev-dependencies]
lint = [ lint = ["black>=24.10.0", "mypy>=1.12.0", "types-PyYAML>=6.0.12.20240917"]
"black>=24.10.0",
"mypy>=1.12.0",
"types-PyYAML>=6.0.12.20240917",
]
test = ["pytest>=8.3.3", "pytest-cov>=5.0.0"] test = ["pytest>=8.3.3", "pytest-cov>=5.0.0"]
dev = ["pre-commit>=4.0.1"]
[tool.pdm.scripts] [tool.pdm.scripts]
lint = "mypy src" lint = "mypy joj3_config_generator"
test = "pytest" test = "pytest"
all = { composite = ["lint", "test"] } all = { composite = ["lint", "test"] }
joj3-config-generator = { call = "joj3_config_generator.main:app", env = { "PYTHONPATH" = "src" } } app.call = "joj3_config_generator.main:app"
[tool.pytest.ini_options] [tool.pytest.ini_options]
testpaths = ["tests"] testpaths = ["tests"]