diff --git a/README.md b/README.md index a31357ae..7440e3cc 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,7 @@ The `--deps` option tells FawltyDeps where to look for your project's declared dependencies. A number of file formats are supported: - `*requirements*.txt` and `*requirements*.in` -- `pyproject.toml` (following PEP 621 or Poetry conventions) +- `pyproject.toml` (following PEP 621, Poetry, or Pixi conventions) - `setup.py` (only limited support for simple files with a single `setup()` call and no computation involved for setting the `install_requires` and `extras_require` arguments) diff --git a/fawltydeps/extract_declared_dependencies.py b/fawltydeps/extract_declared_dependencies.py index 57034657..a6b8f795 100644 --- a/fawltydeps/extract_declared_dependencies.py +++ b/fawltydeps/extract_declared_dependencies.py @@ -248,7 +248,18 @@ def parse_extra(contents: TomlData, src: Location) -> NamedLocations: def parse_pixi_pyproject_dependencies( pixi_config: TomlData, source: Location ) -> Iterator[DeclaredDependency]: - """Extract dependencies from `tool.pixi` fields in a pyproject.toml.""" + """Extract dependencies from `tool.pixi` fields in a pyproject.toml. + + - [tool.pixi.dependencies] contains mandatory Conda deps + - [tool.pixi.feature..dependencies] contains optional Conda deps + - [tool.pixi.pypi-dependencies] contains mandatory PyPI deps + + NOTE: We do not currently differentiate between Conda dependencies and PyPI + dependencies, meaning that we assume that a Conda dependency named FOO will + map one-to-one to a Python package names FOO. This is certainly not true for + Conda dependencies that are not Python packages, and it probably isn't even + true for all Conda dependencies that do indeed include Python packages. + """ def parse_main(contents: TomlData, src: Location) -> NamedLocations: return ( diff --git a/fawltydeps/main.py b/fawltydeps/main.py index 1b428099..4f4a99a1 100644 --- a/fawltydeps/main.py +++ b/fawltydeps/main.py @@ -4,10 +4,10 @@ notebooks (*.ipynb). Supports finding dependency declarations in *requirements*.txt (and .in) files, -pyproject.toml (following PEP 621 or Poetry conventions), setup.cfg, as well as -limited support for setup.py files with a single, simple setup() call and -minimal computation involved in setting the install_requires and extras_require -arguments. +pyproject.toml (following PEP 621, Poetry, or Pixi conventions), setup.cfg, as +well as limited support for setup.py files with a single, simple setup() call +and minimal computation involved in setting the install_requires and +extras_require arguments. """ from __future__ import annotations