添加 pre-commit 配置和工作流,集成代码格式化和静态检查工具
Some checks failed
Docker Image Build / build (push) Failing after 29s
Deploy VitePress site to Pages / build (push) Failing after 53s
Pre-commit checks / pre-commit (3.10) (push) Failing after 2m17s
Pre-commit checks / pre-commit (3.11) (push) Failing after 2m1s
Pre-commit checks / pre-commit (3.13) (push) Failing after 2m18s
Pre-commit checks / pre-commit (3.12) (push) Failing after 2m57s

This commit is contained in:
远野千束(神羽) 2024-12-13 19:35:07 +08:00
parent 93c17b6026
commit cc1bb8e5e4
5 changed files with 147 additions and 33 deletions

30
.github/workflows/pre-commit.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Pre-commit checks
on: [push, pull_request]
jobs:
pre-commit:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13'] # 添加你想要测试的 Python 版本
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }} # 使用矩阵中的 Python 版本
- name: Install dependencies
run: |
python -m pip install pdm
python -m pip install pre-commit
pdm config python.use_venv false
pdm install --no-lock
pre-commit install
- name: Run pre-commit
run: pre-commit run --all-files

26
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,26 @@
fail_fast: true
repos:
- repo: https://github.com/psf/black
rev: 24.4.2
hooks:
- id: black
args: [--config=./pyproject.toml]
- repo: https://github.com/timothycrosley/isort
rev: 5.13.2
hooks:
- id: isort
args: ["--profile", "black"]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.13.0
hooks:
- id: mypy
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files

2
__pypackages__/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*
!.gitignore

116
pdm.lock generated
View File

@ -3,9 +3,9 @@
[metadata] [metadata]
groups = ["default", "dev"] groups = ["default", "dev"]
strategy = ["inherit_metadata"] strategy = []
lock_version = "4.5.0" lock_version = "4.5.0"
content_hash = "sha256:4ccaad15580313d375bbd9032a7e564dd2304d2140cb93756d1ca40aaf5838d6" content_hash = "sha256:c2496287cba8ee92bfb5f083d3cb6626913067f00e1bc2f2adbaa07dac68ef2d"
[[metadata.targets]] [[metadata.targets]]
requires_python = ">=3.10" requires_python = ">=3.10"
@ -15,7 +15,6 @@ name = "annotated-types"
version = "0.7.0" 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"]
dependencies = [ dependencies = [
"typing-extensions>=4.0.0; python_version < \"3.9\"", "typing-extensions>=4.0.0; python_version < \"3.9\"",
] ]
@ -29,7 +28,6 @@ name = "black"
version = "24.10.0" version = "24.10.0"
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "The uncompromising code formatter." summary = "The uncompromising code formatter."
groups = ["dev"]
dependencies = [ dependencies = [
"click>=8.0.0", "click>=8.0.0",
"mypy-extensions>=0.4.3", "mypy-extensions>=0.4.3",
@ -60,12 +58,21 @@ 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."
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 = ["dev"]
dependencies = [ dependencies = [
"colorama; platform_system == \"Windows\"", "colorama; platform_system == \"Windows\"",
"importlib-metadata; python_version < \"3.8\"", "importlib-metadata; python_version < \"3.8\"",
@ -80,8 +87,6 @@ name = "colorama"
version = "0.4.6" 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", "dev"]
marker = "sys_platform == \"win32\" or platform_system == \"Windows\""
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"},
@ -92,7 +97,6 @@ name = "croterline"
version = "1.0.10" version = "1.0.10"
requires_python = ">=3.10" requires_python = ">=3.10"
summary = "Default template for PDM package" summary = "Default template for PDM package"
groups = ["default"]
dependencies = [ dependencies = [
"magicoca>=1.0.6", "magicoca>=1.0.6",
] ]
@ -101,24 +105,50 @@ files = [
{file = "croterline-1.0.10.tar.gz", hash = "sha256:d55eb981a12c894cbd37004725c52b29eb323551d3a045d2eb9b5328422a145a"}, {file = "croterline-1.0.10.tar.gz", hash = "sha256:d55eb981a12c894cbd37004725c52b29eb323551d3a045d2eb9b5328422a145a"},
] ]
[[package]]
name = "distlib"
version = "0.3.9"
summary = "Distribution utilities"
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 = ["dev"]
marker = "python_version < \"3.11\""
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."
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.3"
requires_python = ">=3.9"
summary = "File identification library for Python"
files = [
{file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"},
{file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"},
]
[[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 = ["dev"]
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"},
@ -129,7 +159,6 @@ name = "loguru"
version = "0.7.2" 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"]
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\"",
@ -145,7 +174,6 @@ name = "magicoca"
version = "1.0.7" version = "1.0.7"
requires_python = ">=3.10" requires_python = ">=3.10"
summary = "A communication library for Python" summary = "A communication library for Python"
groups = ["default"]
files = [ files = [
{file = "magicoca-1.0.7-py3-none-any.whl", hash = "sha256:1a39966fd7038f3c8751b060b4098409798fe1c5a30497c83c7d8ea641dba91a"}, {file = "magicoca-1.0.7-py3-none-any.whl", hash = "sha256:1a39966fd7038f3c8751b060b4098409798fe1c5a30497c83c7d8ea641dba91a"},
{file = "magicoca-1.0.7.tar.gz", hash = "sha256:89f2be0f9c92db2cdd50e0095c3edd0482ce082717e88adc02054a0d67a9820e"}, {file = "magicoca-1.0.7.tar.gz", hash = "sha256:89f2be0f9c92db2cdd50e0095c3edd0482ce082717e88adc02054a0d67a9820e"},
@ -156,7 +184,6 @@ name = "mypy"
version = "1.12.1" version = "1.12.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Optional static typing for Python" summary = "Optional static typing for Python"
groups = ["dev"]
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\"",
@ -192,18 +219,26 @@ name = "mypy-extensions"
version = "1.0.0" 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 = ["dev"]
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 = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*"
summary = "Node.js virtual environment builder"
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 = ["dev"]
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"},
@ -214,7 +249,6 @@ name = "pathspec"
version = "0.12.1" 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 = ["dev"]
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"},
@ -225,7 +259,6 @@ name = "pdm-backend"
version = "2.4.2" version = "2.4.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "The build backend used by PDM that supports latest packaging standards" summary = "The build backend used by PDM that supports latest packaging standards"
groups = ["default"]
dependencies = [ dependencies = [
"importlib-metadata>=3.6; python_version < \"3.10\"", "importlib-metadata>=3.6; python_version < \"3.10\"",
] ]
@ -239,7 +272,6 @@ 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 = ["dev"]
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"},
@ -250,18 +282,33 @@ name = "pluggy"
version = "1.5.0" 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 = ["dev"]
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."
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"]
dependencies = [ dependencies = [
"annotated-types>=0.6.0", "annotated-types>=0.6.0",
"pydantic-core==2.23.4", "pydantic-core==2.23.4",
@ -278,7 +325,6 @@ name = "pydantic-core"
version = "2.23.4" 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"]
dependencies = [ dependencies = [
"typing-extensions!=4.7.0,>=4.6.0", "typing-extensions!=4.7.0,>=4.6.0",
] ]
@ -347,7 +393,6 @@ name = "pytest"
version = "8.3.3" 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 = ["dev"]
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\"",
@ -366,7 +411,6 @@ 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"]
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"},
@ -412,7 +456,6 @@ name = "toml"
version = "0.10.2" version = "0.10.2"
requires_python = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" requires_python = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
summary = "Python Library for Tom's Obvious, Minimal Language" summary = "Python Library for Tom's Obvious, Minimal Language"
groups = ["default"]
files = [ files = [
{file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
{file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
@ -423,8 +466,6 @@ name = "tomli"
version = "2.0.2" version = "2.0.2"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A lil' TOML parser" summary = "A lil' TOML parser"
groups = ["dev"]
marker = "python_version < \"3.11\""
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"},
@ -435,7 +476,6 @@ name = "typing-extensions"
version = "4.12.2" 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", "dev"]
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"},
@ -446,7 +486,6 @@ name = "uv"
version = "0.4.25" version = "0.4.25"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "An extremely fast Python package and project manager, written in Rust." summary = "An extremely fast Python package and project manager, written in Rust."
groups = ["dev"]
files = [ files = [
{file = "uv-0.4.25-py3-none-linux_armv6l.whl", hash = "sha256:94fb2b454afa6bdfeeea4b4581c878944ca9cf3a13712e6762f245f5fbaaf952"}, {file = "uv-0.4.25-py3-none-linux_armv6l.whl", hash = "sha256:94fb2b454afa6bdfeeea4b4581c878944ca9cf3a13712e6762f245f5fbaaf952"},
{file = "uv-0.4.25-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a7c3a18c20ddb527d296d1222bddf42b78031c50b5b4609d426569b5fb61f5b0"}, {file = "uv-0.4.25-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a7c3a18c20ddb527d296d1222bddf42b78031c50b5b4609d426569b5fb61f5b0"},
@ -468,12 +507,27 @@ files = [
{file = "uv-0.4.25.tar.gz", hash = "sha256:d39077cdfe3246885fcdf32e7066ae731a166101d063629f9cea08738f79e6a3"}, {file = "uv-0.4.25.tar.gz", hash = "sha256:d39077cdfe3246885fcdf32e7066ae731a166101d063629f9cea08738f79e6a3"},
] ]
[[package]]
name = "virtualenv"
version = "20.28.0"
requires_python = ">=3.8"
summary = "Virtual Python Environment builder"
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.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"},
{file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"},
]
[[package]] [[package]]
name = "watchdog" name = "watchdog"
version = "5.0.3" version = "5.0.3"
requires_python = ">=3.9" requires_python = ">=3.9"
summary = "Filesystem events monitoring" summary = "Filesystem events monitoring"
groups = ["default"]
files = [ files = [
{file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:85527b882f3facda0579bce9d743ff7f10c3e1e0db0a0d0e28170a7d0e5ce2ea"}, {file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:85527b882f3facda0579bce9d743ff7f10c3e1e0db0a0d0e28170a7d0e5ce2ea"},
{file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:53adf73dcdc0ef04f7735066b4a57a4cd3e49ef135daae41d77395f0b5b692cb"}, {file = "watchdog-5.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:53adf73dcdc0ef04f7735066b4a57a4cd3e49ef135daae41d77395f0b5b692cb"},
@ -507,8 +561,6 @@ 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"]
marker = "sys_platform == \"win32\""
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

@ -37,16 +37,20 @@ build-backend = "pdm.backend"
[tool.pdm.build] [tool.pdm.build]
includes = ["liteyuki/", "LICENSE", "README.md"] includes = ["liteyuki/", "LICENSE", "README.md"]
excludes = ["tests/", "docs/", "src/"] excludes = ["tests/", "docs/", "src/"]
fallback_version = "0.1.0"
[tool.pdm.version] [tool.pdm.version]
source = "scm" source = "scm"
tag_filter = "v*" tag_filter = "v*"
tag_regex = '^v(?:\D*)?(?P<version>([1-9][0-9]*!)?(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))*((a|b|c|rc)(0|[1-9][0-9]*))?(\.post(0|[1-9][0-9]*))?(\.dev(0|[1-9][0-9]*))?$)$' tag_regex = '^v(?:\D*)?(?P<version>([1-9][0-9]*!)?(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))*((a|b|c|rc)(0|[1-9][0-9]*))?(\.post(0|[1-9][0-9]*))?(\.dev(0|[1-9][0-9]*))?$)$'
fallback_version = "0.1.0"
[tool.pdm.dev-dependencies]
[dependency-groups]
dev = [ dev = [
"pytest>=8.3.3", "pytest>=8.3.3",
"black>=24.10.0", "black>=24.10.0",
"uv>=0.4.20", "uv>=0.4.20",
"mypy>=1.11.2", "mypy>=1.11.2",
"pre-commit>=4.0.1",
] ]