Package: pptoml
pptomlLibrary and CLI tool for parsing, validating, modifying, and updatingpyproject.tomlfiles.Table of ContentsInstallationUsageRoadmapLicenseInstallationas a module<virtual environment shenanigans>pip install pptomlas a cli apppipx install pptomlUsageas a modulefrompathlibimportPathfrompptoml.inoutimportload_configfrompptoml.fetchimportfetch_infoconfig=load_config(Path('path/to/pyproject.toml'))info=fetch_info(config)as a cli app$pptoml--helpUsage: pptoml [OPTIONS] COMMAND [ARGS]...cli for pptoml╭─ Options ───────────────────────────────────────────╮│ --install-completion          Install completion    ││                               for the current       ││                               shell.                ││ --show-completion             Show completion for   ││                               the current shell, to ││                               copy it or customize  ││                               the installation.     ││ --help                        Show this message and ││                               exit.                 │╰─────────────────────────────────────────────────────╯╭─ Commands ──────────────────────────────────────────╮│ dump      print pyproject config in specified       ││           format                                    ││ get       print the value of the specified field    ││ info      fetch generally useful info about the     ││           project from the pyproject config         ││ new       generate a pyproject.toml file            ││ validate  validate pyproject against PEP            ││           specifications                            │╰─────────────────────────────────────────────────────╯example info fetch$pptomlinfoname                          pptomldescription                   Library and CLI tool for parsing, validating, modifying, and updating `pyproject.toml` files.authors                       Patrick Armengolpython_version                >=3.7dependencies                  typer, tomli, validate-pyproject, questionarylicense                       Apache-2.0 OR MITmulti_licensed                Truescripts                       pptomldocs_url                      https://github.com/patrickarmengol/pptoml#readmeissues_url                    https://github.com/patrickarmengol/pptoml/issuessource_url                    https://github.com/patrickarmengol/pptomlbuild_backend                 hatchlingtype_checking                 pyrightformatting                    autopep8linting                       rufftesting                       coverageother_tools                   hatchexample new pyproject.toml generation$pptomlnew? backend:  hatchling? project name:  asdf? project description:  does something i think? licenses:  [MIT]? author name:  Pat Cat? author email:  pat@cat.cat? github username (for urls):  patthecat? tools:  done (3 selections)? max line length (for tools):  120[build-system]requires=["hatchling"]build-backend="hatchling.build"[project]name="asdf"version="0.0.1"description='does something i think'readme="README.md"requires-python=">=3.7"license="MIT"license-files={globs=["LICENSE*"]}keywords=[]authors=[{name="Pat Cat",email="pat@cat.cat"},]classifiers=["Development Status :: 4 - Beta","Programming Language :: Python","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy",]dependencies=[][project.scripts][project.urls]Documentation="https://github.com/patthecat/asdf#readme"Issues="https://github.com/patthecat/asdf/issues"Source="https://github.com/patthecat/asdf"[tool.pyright]include=["src/pptoml","tests"]exclude=["**/__pycache__",]typeCheckingMode="strict"[tool.ruff]target-version="py37"line-length=120select=["A","B","C","E","F","FBT","I","N","Q","RUF","S","T","UP","W","YTT"]ignore=[# Allow non-abstract empty methods in abstract base classes"B027",# Ignore McCabe complexity"C901",# Allow boolean positional values in function calls, like `dict.get(... True)`"FBT003",# Ignore checks for possible passwords"S105","S106","S107",]unfixable=[# Don't touch unused imports"F401",][tool.ruff.isort]known-first-party=["pptoml"][tool.ruff.flake8-tidy-imports]ban-relative-imports="all"[tool.ruff.per-file-ignores]# Tests can use relative imports and assertions"tests/**/*"=["I252","S101"][tool.autopep8]max_line_length=120Roadmap0.1.0fetch general info for the projectdump config in various formats0.2.0using existing validate-pyproject library to validatepostponed support for PEP 639, tracked inhttps://github.com/abravalheri/validate-pyproject/issues/70validate with schema0.3.0generate new pyproject.toml with prompts0.4.0the following depend on tomlkit, which is a bit broken for type hinting atmupdate versionadd, remove dependencies0.5.0check for dep updatesLicensepptomlis distributed under the terms of any of the following licenses:Apache-2.0MIT