[build-system] requires = ["pdm-backend"] build-backend = "pdm.backend" [project] name = "JOJ3-config-generator" version = "0.1.0" dependencies = [ "pyyaml>=6.0.2", "typer>=0.12.5", "loguru>=0.7.2", "pydantic>=2.9.2", "inquirer>=3.4.0", "humanfriendly>=10.0", "tomlkit>=0.13.2", "tomli>=2.2.1", ] requires-python = ">=3.9" authors = [{ name = "JOJ3-dev", email = "joj3@focs.ji.sjtu.edu.cn" }] maintainers = [] description = "JOJ3 json configuration file generator" readme = "README.md" license = { text = "MIT" } [project.scripts] joj3-config-generator = "joj3_config_generator.main:app" [tool.bandit] exclude_dirs = ["tests"] skips = ["B101"] [tool.pdm] distribution = true [tool.pdm.dev-dependencies] lint = ["black>=24.10.0", "mypy>=1.12.0", "types-PyYAML>=6.0.12.20240917"] test = ["pytest>=8.3.3", "pytest-cov>=5.0.0"] dev = ["pre-commit>=4.0.1"] [tool.pdm.scripts] lint = "mypy joj3_config_generator tests" test = "pytest" coverage = "pytest --cov=joj3_config_generator --cov-report=xml --cov-report=html" all = { composite = ["lint", "test"] } app.call = "joj3_config_generator.main:app" [tool.pdm.build] includes = ["joj3_config_generator"] excludes = ["tests"] [tool.pytest.ini_options] testpaths = ["tests"] xfail_strict=true [tool.mypy] plugins = ["pydantic.mypy"] follow_imports = "silent" warn_redundant_casts = true warn_unused_ignores = true disallow_any_generics = true check_untyped_defs = true no_implicit_reexport = true disable_error_code = "import-untyped" disallow_untyped_defs = true [tool.pydantic-mypy] init_forbid_extra = true init_typed = true warn_required_dynamic_aliases = true warn_untyped_fields = true