# Py3DepHell
This project presents tools to work with dependencies and provides of python3 projects.
## py3req
This module detects dependencies of python3 packages. It has verbose **--help** option, but here is simple example how to use it:
## py3prov
This module generate provides for python3 packages. As for **py3req** its **--help** is verbose enough
## How to
Imagine you have simple project like this one:
```
src/
├── pkg1
│ ├── mod1.py
│ └── subpkg
│ └── mod3.py
└── tests
└── test1.py
```
Now you want to detect its dependencies:
```
% python3 -m py3dephell.py3req --pip_format src
unittest
re
re
```
Feel free to make it more verbose:
```
% python3 -m py3dephell.py3req --pip_format --verbose src
py3prov: detected potential module:src
/tmp/.private/kotopesutility/src/tests/test1.py:unittest
/tmp/.private/kotopesutility/src/pkg1/mod1.py:requests os
/tmp/.private/kotopesutility/src/pkg1/subpkg/mod3.py:re
```
As you can see, there are some modules from standard library, so let py3req to learn it:
```
% python3 -m py3dephell.py3req --pip_format --add_prov_path /usr/lib64/python3.11 src
requests
```
That's it! But what if we want to detect its provides, to understand which dependencies it could satisfy? Let's use py3prov!
```
% python3 -m py3dephell.py3prov src
test1
tests.test1
src.tests.test1
mod1
pkg1.mod1
src.pkg1.mod1
mod3
subpkg.mod3
pkg1.subpkg.mod3
src.pkg1.subpkg.mod3
```
Yeah, let's enhance the verbosity level!
```
% python3 -m py3dephell.py3prov --verbose src/pkg1 src/tests
src/tests:['test1', 'tests.test1', 'src.tests.test1']
src/pkg1:['mod1', 'pkg1.mod1', 'src.pkg1.mod1', 'mod3', 'subpkg.mod3', 'pkg1.subpkg.mod3', 'src.pkg1.subpkg.mod3']
```
Raw data
{
"_id": null,
"home_page": "",
"name": "py3dephell",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "",
"keywords": "dependencies,provides,requirements,dependency hell",
"author": "",
"author_email": "Daniel Zagaynov <kotopesutility@altlinux.org>",
"download_url": "https://files.pythonhosted.org/packages/c2/3e/fc6ac7fdee844d22197eff67aaa59aad20848d4d6b5b26323da10edc2bf6/py3dephell-0.2.1.tar.gz",
"platform": null,
"description": "# Py3DepHell\nThis project presents tools to work with dependencies and provides of python3 projects.\n\n## py3req\nThis module detects dependencies of python3 packages. It has verbose **--help** option, but here is simple example how to use it:\n\n## py3prov\nThis module generate provides for python3 packages. As for **py3req** its **--help** is verbose enough\n\n## How to\nImagine you have simple project like this one:\n```\nsrc/\n\u251c\u2500\u2500 pkg1\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 mod1.py\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 subpkg\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 mod3.py\n\u2514\u2500\u2500 tests\n \u2514\u2500\u2500 test1.py\n```\n\nNow you want to detect its dependencies:\n```\n% python3 -m py3dephell.py3req --pip_format src\nunittest\nre\nre\n```\nFeel free to make it more verbose:\n```\n% python3 -m py3dephell.py3req --pip_format --verbose src\npy3prov: detected potential module:src\n/tmp/.private/kotopesutility/src/tests/test1.py:unittest\n/tmp/.private/kotopesutility/src/pkg1/mod1.py:requests os\n/tmp/.private/kotopesutility/src/pkg1/subpkg/mod3.py:re\n```\nAs you can see, there are some modules from standard library, so let py3req to learn it:\n```\n% python3 -m py3dephell.py3req --pip_format --add_prov_path /usr/lib64/python3.11 src\nrequests\n```\nThat's it! But what if we want to detect its provides, to understand which dependencies it could satisfy? Let's use py3prov!\n```\n% python3 -m py3dephell.py3prov src\ntest1\ntests.test1\nsrc.tests.test1\nmod1\npkg1.mod1\nsrc.pkg1.mod1\nmod3\nsubpkg.mod3\npkg1.subpkg.mod3\nsrc.pkg1.subpkg.mod3\n```\nYeah, let's enhance the verbosity level!\n```\n% python3 -m py3dephell.py3prov --verbose src/pkg1 src/tests\nsrc/tests:['test1', 'tests.test1', 'src.tests.test1']\nsrc/pkg1:['mod1', 'pkg1.mod1', 'src.pkg1.mod1', 'mod3', 'subpkg.mod3', 'pkg1.subpkg.mod3', 'src.pkg1.subpkg.mod3']\n```\n",
"bugtrack_url": null,
"license": "GPLv2",
"summary": "Helps to control project dependencies and provides",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://git.altlinux.org/people/kotopesutility/packages/py3dephell.git"
},
"split_keywords": [
"dependencies",
"provides",
"requirements",
"dependency hell"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "96d576a92daa0eb95a69ef95cc8b5d83eae2b5b0966539ee85737499f34c8154",
"md5": "e0b5b5dfe5f466f9f2138627f14bee64",
"sha256": "94e0e42201ca4cbc87d08d6e62846136443f419362f74930ca3ef2de28ba10a4"
},
"downloads": -1,
"filename": "py3dephell-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e0b5b5dfe5f466f9f2138627f14bee64",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 17820,
"upload_time": "2024-02-25T20:12:09",
"upload_time_iso_8601": "2024-02-25T20:12:09.576359Z",
"url": "https://files.pythonhosted.org/packages/96/d5/76a92daa0eb95a69ef95cc8b5d83eae2b5b0966539ee85737499f34c8154/py3dephell-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c23efc6ac7fdee844d22197eff67aaa59aad20848d4d6b5b26323da10edc2bf6",
"md5": "dfcb933558be29d50c4d505fa846b865",
"sha256": "be77f839d217f9e32172b763ae576e81fb53e7d7732dba62a740945b3f98e6c6"
},
"downloads": -1,
"filename": "py3dephell-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "dfcb933558be29d50c4d505fa846b865",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 20527,
"upload_time": "2024-02-25T20:12:12",
"upload_time_iso_8601": "2024-02-25T20:12:12.564033Z",
"url": "https://files.pythonhosted.org/packages/c2/3e/fc6ac7fdee844d22197eff67aaa59aad20848d4d6b5b26323da10edc2bf6/py3dephell-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-25 20:12:12",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "py3dephell"
}