{"id":19665563,"url":"https://github.com/fatiando/dependente","last_synced_at":"2025-07-23T16:11:36.518Z","repository":{"id":45079214,"uuid":"442445763","full_name":"fatiando/dependente","owner":"fatiando","description":"Inspect Python package dependencies","archived":false,"fork":false,"pushed_at":"2025-01-27T10:36:00.000Z","size":97,"stargazers_count":7,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T11:34:12.190Z","etag":null,"topics":["devops","fatiando-a-terra","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fatiando.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-28T11:44:03.000Z","updated_at":"2025-02-01T18:58:35.000Z","dependencies_parsed_at":"2024-02-20T14:49:08.420Z","dependency_job_id":"88c1fb78-4879-4409-9b3d-df36d6af650a","html_url":"https://github.com/fatiando/dependente","commit_stats":{"total_commits":20,"total_committers":1,"mean_commits":20.0,"dds":0.0,"last_synced_commit":"6682aa9b97812405b821124c817a1400dcce7ffe"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatiando%2Fdependente","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatiando%2Fdependente/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatiando%2Fdependente/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatiando%2Fdependente/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fatiando","download_url":"https://codeload.github.com/fatiando/dependente/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251284304,"owners_count":21564611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devops","fatiando-a-terra","python"],"created_at":"2024-11-11T16:23:26.410Z","updated_at":"2025-04-28T22:31:13.737Z","avatar_url":"https://github.com/fatiando.png","language":"Python","readme":"# Dependente: Inspect Python package dependencies\n\nPart of the [Fatiando a Terra][fatiando] project\n\n[![Latest release on PyPI](https://img.shields.io/pypi/v/dependente.svg?style=flat-square)][pypi]\n[![Latest release on conda-forge](https://img.shields.io/conda/vn/conda-forge/dependente.svg?style=flat-square)][conda-forge]\n[![Test coverage report](https://img.shields.io/codecov/c/github/fatiando/dependente/main?style=flat-square)][coverage]\n[![Compatible Python versions](https://img.shields.io/pypi/pyversions/dependente.svg?style=flat-square)][pypi]\n\n## About\n\n*Dependente* is a small command-line program for extracting\ndependencies from Python project files (`pyproject.toml` and `setup.cfg`)\nand converting them into `requirements.txt`-type files for use with\n`pip` and `conda`.\n\nThe main reason to do so is to control and customize the testing\nenvironment on continuous integration (CI) while avoiding repeating\nthe list of dependencies in multiple places.\n\n\u003e This project was inspired by some of the GitHub Actions configuration of the\n\u003e [MetPy](https://github.com/Unidata/MetPy) project.\n\n## Installing\n\n*Dependente* is available from PyPI:\n\n```\npython -m pip install dependente\n```\n\nand conda-forge:\n\n```\nconda install dependente -c conda-forge\n```\n\n## Using\n\n\u003e In these examples, we'll parse the dependencies from\n\u003e [Pooch](https://github.com/fatiando/pooch).\n\nParse the install (run-time) dependencies from `setup.cfg`:\n\n```\n$ dependente \u003e requirements.txt\nExtracting dependencies: install\nParsing setup.cfg\n  - 3 dependencies found\nPrinting 3 dependencies to standard output\nDone!\n\n$ cat requirements.txt\n# Install (run-time) dependencies from setup.cfg\nappdirs\u003e=1.3.0\npackaging\u003e=20.0\nrequests\u003e=2.19.0\n```\n\nAlso read the build dependencies from `pyproject.toml` and extra dependencies\nfrom `setup.cfg`:\n\n```\n$ dependente --source install,build,extras \u003e requirements-all.txt\nExtracting dependencies: install,build,extras\nParsing setup.cfg\n  - 6 dependencies found\nParsing pyproject.toml\n  - 3 dependencies found\nPrinting 9 dependencies to standard output\nDone!\n\n$ cat requirements-all.txt\n# Extra (optional) dependencies from setup.cfg\n#   extra: progress\ntqdm\u003e=4.41.0,\u003c5.0.0\n#   extra: sftp\nparamiko\u003e=2.7.0\n#   extra: xxhash\nxxhash\u003e=1.4.3\n# Install (run-time) dependencies from setup.cfg\nappdirs\u003e=1.3.0\npackaging\u003e=20.0\nrequests\u003e=2.19.0\n# Build dependencies from pyproject.toml\nsetuptools\u003e=45\nwheel\nsetuptools_scm[toml]\u003e=6.2\n```\n\nPin the dependencies to their oldest supported version (useful for testing\nin CI):\n\n```\n$ dependente --source install,extras --oldest \u003e requirements-oldest.txt\nExtracting dependencies: install,extras\nParsing setup.cfg\n  - 6 dependencies found\nPinning dependencies to their oldest versions\nPrinting 6 dependencies to standard output\nDone!\n\n$ cat requirements-oldest.txt\n# Extra (optional) dependencies from setup.cfg\n#   extra: progress\ntqdm==4.41.0\n#   extra: sftp\nparamiko==2.7.0\n#   extra: xxhash\nxxhash==1.4.3\n# Install (run-time) dependencies from setup.cfg\nappdirs==1.3.0\npackaging==20.0\nrequests==2.19.0\n```\n\nSee a full list of options:\n\n```\n$ dependente --help\nUsage: dependente [OPTIONS]\n\n  Dependente: Inspect Python package dependencies\n\n  Reads from the configuration files in the current directory and outputs to\n  stdout a list of dependencies into a format accepted by pip.\n\n  Supported formats:\n\n  * pyproject.toml (only build-system \u003e requires)\n\n  * setup.cfg (install_requires and options.extras_require)\n\nOptions:\n  -s, --source TEXT            Which sources of dependency information to\n                               extract. Can be any combination of\n                               'install,extras,build'.  [default: install]\n  -o, --oldest                 If enabled, will pin dependencies to the oldest\n                               accepted version.  [default: False]\n  -v, --verbose / -q, --quiet  Print information during execution / Don't\n                               print  [default: verbose]\n  --version                    Show the version and exit.\n  -h, --help                   Show this message and exit.\n```\n\n### Limitations\n\nThe current implementation is a proof-of-concept and has some limitations:\n\n* Input files must be in the current working directory.\n* Reads all extra dependencies simultaneously (can't separate between different\n  `option.extras_requires` fields).\n* Only supports reading from `setup.cfg` and `pyproject.toml`.\n\nOf course, all of these could be addressed if there is enough interest.\nIssues and PRs are welcome!\n\n## Dependencies\n\nWe use the following dependencies (see `setup.cfg` for specific version\nconstraints):\n\n* [click](https://click.palletsprojects.com) for building the command-line\n  interface.\n* [tomli](https://github.com/hukkin/tomli) to parse the TOML configuration\n  files.\n\n## Contacting Us\n\nFind out more about how to reach us at\n[fatiando.org/contact][contact]\n\n## Contributing\n\n### Code of conduct\n\nPlease note that this project is released with a [Code of Conduct][coc].\nBy participating in this project you agree to abide by its terms.\n\n### Contributing Guidelines\n\nPlease read our\n[Contributing Guide][contrib]\nto see how you can help and give feedback.\n\n## License\n\nDependente is free and open-source software distributed under the\n[MIT License][license].\n\n[pypi]: https://pypi.org/project/dependente/\n[conda-forge]: https://github.com/conda-forge/dependente-feedstock\n[coverage]: https://app.codecov.io/gh/fatiando/dependente\n[license]: https://github.com/fatiando/dependente/blob/main/LICENSE.txt\n[contrib]: https://github.com/fatiando/dependente/blob/main/CONTRIBUTING.md\n[coc]: https://github.com/fatiando/community/blob/main/CODE_OF_CONDUCT.md\n[fatiando]: https://www.fatiando.org\n[contact]: https://www.fatiando.org/contact\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatiando%2Fdependente","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffatiando%2Fdependente","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatiando%2Fdependente/lists"}