{ "info": { "author": "LumApps", "author_email": "core-devs@lumapps.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.7" ], "description": "# dep-check\n\n[![image](https://img.shields.io/pypi/v/dep-check.svg)](https://pypi.python.org/pypi/dep-check) [![CircleCI](https://circleci.com/gh/lumapps/dep-check/tree/master.svg?style=svg)](https://circleci.com/gh/lumapps/dep-check/tree/master)\n\n**dep-check** is a Python dependency checker. It lets you write rules to define what each module can import, **dep-check** can then parse each source file in your project to verify everything is in order. You can also use it to draw a dependency graph for your project.\n\n![graph_example](https://raw.githubusercontent.com/lumapps/dep-check/master/doc/images/graph.svg?sanitize=true)\n\n**Free software:** MIT license\n\n## Supported languages\n\n* [Python](https://www.python.org/)\n* [Go](https://golang.org/)\n\nBy default, the tool assumes it's operating on a Python project.\n\n## Installation\n\nTo install **dep-check**, run this command:\n\n```sh\npip install dep-check\n```\n\nThis is the preferred method to install **dep-check**, as it always\ninstalls the most recent stable release.\n\nIf you don't have [pip](https://pip.pypa.io) installed, this [Python installation guide](http://docs.python-guide.org/en/latest/starting/installation/) can guide you through the process.\n\nYou can also see [other installation methods](https://github.com/lumapps/dep-check/blob/master/doc/installation.md).\n\n## Usage\n\n### Build your configuration file\n\n```sh\ndep_check build [-o config.yaml] [--lang LANG]\n```\n\nArgument | Description | Optional | Default\n-------- | ----------- | -------- | -------\nROOT_DIR | The project root directory, containing the source files | :x: | *N/A*\n-o / --output | The output file (yaml format) | :heavy_check_mark: | dependency_config.yaml\n--lang | The language the project is written in | :heavy_check_mark: | python\n\nThis command lists the imports of each module in a yaml file. Use this file as a starting point to write dependency rules on which module can import what, using wildcards.\n\nHere is an example of additional rules added to the initial yaml file:\n\n```yaml\n---\n\ndependency_rules:\n'*':\n - dep_check.models\n - dep_check.dependency_finder\n - dep_check.checker\n\ndep_check.infra.io:\n - dep_check.use_cases%\n - jinja2\n - yaml\n\ndep_check.infra.std_lib_filter:\n - dep_check.use_cases.interfaces\n\ndep_check.use_cases%:\n - dep_check.use_cases.app_configuration\n - dep_check.use_cases.interfaces\n\ndep_check.main:\n - '*'\n\nlang: python\nlocal_init: false\n```\n\n* Use `*` to include any string, even an empty one.\n* Use `%` after a module name (e.g. `my_module%`) to include this module along with its sub-modules.\n\nHere, for instance, the configuration file defines that `dep_check.infra.io` can import `dep_check.use_cases`, along with `dep_check.use_cases.build`, `dep_check.use_cases.check`, and so on.\n\n*To see all the supported wildcards, check the [User Manual](https://github.com/lumapps/dep-check/blob/master/doc/usage.md#write-your-own-configuration-file).*\n\n### Check your configuration\n\nOnce your config file is ready, run\n\n```sh\ndep_check check [-c config.yaml] [--lang LANG]\n```\n\nArgument | Description | Optional | Default\n-------- | ----------- | -------- | -------\nROOT_DIR | The project root directory, containing the source files | :x: | *N/A*\n-c / --config | The yaml file in which you wrote the dependency rules | :heavy_check_mark: | dependency_config.yaml\n--lang | The language the project is written in | :heavy_check_mark: | python\n\nThe command reads the configuration file, and parses each source file. It then verifies, for each file, that every `import` is authorized by the rules defined in the configuration file.\n\nWhen it's done, it writes a report on the console, listing import errors by module and unused rules:\n\n![report](doc/images/report.png)\n\n### Draw a dependency graph\n\n**You need to have graphviz installed to run this command**\n\n```sh\ndep_check graph [-o file.svg/dot] [-c config.yaml] [--lang LANG]\n```\n\nArgument | Description | Optional | Default\n-------- | ----------- | -------- | -------\nROOT_DIR | The project root directory, containing the source files | :x: | *N/A*\n-o / --output | The output file you want (svg or dot format) | :heavy_check_mark: | dependency_graph.svg\n-c / --config | The graph configuration file containing options (yaml format) | :heavy_check_mark:| None\n--lang | The language the project is written in | :heavy_check_mark: | python\n\n*Note : if you generate a svg file, a dot file is also created in `/tmp/graph.dot`*\n\nA lot of options are available to customize your graph (hide some modules, add layers etc.). Check the [User Manual](https://github.com/lumapps/dep-check/blob/master/doc/usage.md#add-options) for more information.\n\n## Contributing\n\nIf you want to make a contribution, be sure to follow the [Contribution guide](https://github.com/lumapps/dep-check/blob/master/doc/contributing.md).\n\n## Credits\n\nThis package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter) and the\n[audreyr/cookiecutter-pypackage](https://github.com/audreyr/cookiecutter-pypackage) project template\n\n## Authors & contributors\n\nCheck out all the [Authors and contributors](https://github.com/lumapps/dep-check/blob/master/doc/authors.md) of this project.\n\n# CHANGELOG\n\n## 1.0.3(2019-08-26)\n\n### BUGFIX\n\n- The tool now works correctly with Go.\n\n## 1.0.0 (2019-08-20)\n\n### Modified\n\n- The tool now writes a full report, displaying the number of errors, warnings and files.\n- The commands have been simplified, to avoid too long command lines\n\n### Added\n\n- The tool now supports Go language\n- Better documentation\n\n## 0.2.0 (2019-07-16)\n\n### Added\n\n- You can now add layers to your graph.\n- The tool now warns you if a rule in your configuration file is not used.\n\n## 0.1.0 (2019-07-09)\n\n- First release on PyPI.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/lumapps/dep-check/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lumapps/dep-check", "keywords": "python,Dependency,linter,architecture,quality,dep-check,dep_check", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "dep-check", "package_url": "https://pypi.org/project/dep-check/", "platform": "", "project_url": "https://pypi.org/project/dep-check/", "project_urls": { "Download": "https://github.com/lumapps/dep-check/tarball/master", "Homepage": "https://github.com/lumapps/dep-check" }, "release_url": "https://pypi.org/project/dep-check/1.0.3/", "requires_dist": [ "Click (>=6.0)", "PyYAML (<6)", "Jinja2" ], "requires_python": "", "summary": "Python Dependency Check Tool", "version": "1.0.3" }, "last_serial": 5729629, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "325cce00b31ed68423bddea4b8c7ba39", "sha256": "17221e03ab6f70c7c3c0d52108daa903f02afef3835378c9e2cd119253cf38e7" }, "downloads": -1, "filename": "dep_check-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "325cce00b31ed68423bddea4b8c7ba39", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15221, "upload_time": "2019-07-09T09:07:39", "url": "https://files.pythonhosted.org/packages/04/56/6e776a5b0d13717e327e36fe69cdc8422916f26db13b5dfd5d6a034078cc/dep_check-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cda36b98058cbf898cd73d1695fd86b4", "sha256": "230eec2551137bfd23e7b4ce5db799d0af47e10b10bacbc3754a2f5f372f2146" }, "downloads": -1, "filename": "dep_check-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cda36b98058cbf898cd73d1695fd86b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19214, "upload_time": "2019-07-09T09:07:42", "url": "https://files.pythonhosted.org/packages/d0/ec/743fad0b5fe0b1f339119e7bf80b9596cd0941514401ef9a1c67d72b325e/dep_check-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "6895536c2c1dd26bc54da15d5bf2a618", "sha256": "4a45437abfdde458c6f6ad2f943a4e6f478b183339fe237f865f421e266c44c9" }, "downloads": -1, "filename": "dep_check-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6895536c2c1dd26bc54da15d5bf2a618", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16464, "upload_time": "2019-07-16T11:39:27", "url": "https://files.pythonhosted.org/packages/3a/fc/4678b5297c6510578bb603878aff6226ba5354d8d11219b8c7ddf5a40201/dep_check-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf633a71c127116beff3034241370b4b", "sha256": "7007d92003dbd9bac098439f0099b676bfa088860c30343d3ffaf41abccbc774" }, "downloads": -1, "filename": "dep_check-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bf633a71c127116beff3034241370b4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21181, "upload_time": "2019-07-16T11:39:28", "url": "https://files.pythonhosted.org/packages/59/27/b1c91b22e0ba509395abfbce31bceb40314c9c4fd5f7566c13a922905fc9/dep_check-0.2.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "2f1a9d848059c0ebabb9ae22a0851185", "sha256": "c42756e9decf15e0d1fe09c3670ad6880072744f67359e8f4370ddcdbc9bafcc" }, "downloads": -1, "filename": "dep_check-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f1a9d848059c0ebabb9ae22a0851185", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20902, "upload_time": "2019-08-21T08:32:29", "url": "https://files.pythonhosted.org/packages/3b/99/f3727150d435419fdf3889e2c356c8e4e5dfe770a4df96a84d20c1cac09b/dep_check-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "919d11a2f89bfc0005d68c9fe8f8f192", "sha256": "16411f59d68e18c2098b8144dbfcfa9cc28255da2cae414579a77d966c33ff48" }, "downloads": -1, "filename": "dep_check-1.0.0.tar.gz", "has_sig": false, "md5_digest": "919d11a2f89bfc0005d68c9fe8f8f192", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100053, "upload_time": "2019-08-21T08:32:31", "url": "https://files.pythonhosted.org/packages/30/39/4b2ea075d94d730943330a16c1d45cfca02c2c5972567399d44f493de3ed/dep_check-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "7b18a8e64da23c3fc7bc174a7a6a398a", "sha256": "f3f4034fb63d5a3ff22703c286d69328f2a08bec05de9e266b7ecf7bd2a664f7" }, "downloads": -1, "filename": "dep_check-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b18a8e64da23c3fc7bc174a7a6a398a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20621, "upload_time": "2019-08-23T14:32:10", "url": "https://files.pythonhosted.org/packages/da/fa/834e4f8e42aba8df737ce16f3d7283c7f313467470e70c86fdf991766a18/dep_check-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2487b8ee76881473314fcfad0352fb45", "sha256": "83aefedd7065eb7367c109d0771e03ef7ae9d12b8e0bf3cdd8cd60c690ca328d" }, "downloads": -1, "filename": "dep_check-1.0.1.tar.gz", "has_sig": false, "md5_digest": "2487b8ee76881473314fcfad0352fb45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99929, "upload_time": "2019-08-23T14:32:12", "url": "https://files.pythonhosted.org/packages/3e/80/6d4efe4801d299ac2f2a7e0f986b77ac66892d07d834955ab7d0626c7f89/dep_check-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "e32409173f184695ccc021bb97e8dce7", "sha256": "6384b1400cbd1d84876b7df3d0121e3279462af131208b502bcc392af4820aa6" }, "downloads": -1, "filename": "dep_check-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e32409173f184695ccc021bb97e8dce7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21891, "upload_time": "2019-08-23T15:15:06", "url": "https://files.pythonhosted.org/packages/51/6b/218ed6509924887427a701ad016ce8a17caf366ca937b96ae4eb54b6615f/dep_check-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed074b2a722dd85091ca6c92ed28bc1b", "sha256": "c541f642f55bbf33a888205f5c740d2b46bdee112b56589ab76cf41c4e7d6a53" }, "downloads": -1, "filename": "dep_check-1.0.2.tar.gz", "has_sig": false, "md5_digest": "ed074b2a722dd85091ca6c92ed28bc1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100748, "upload_time": "2019-08-23T15:15:07", "url": "https://files.pythonhosted.org/packages/72/ee/b3181d6fa113e692a0ef9bac63e3f65af63be7bf9fe9909012cbf8df269e/dep_check-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "f8c224fdff7c093c1e162a02cdbff19b", "sha256": "5a7e517795e976db3fe9c82c97a2286ad6c97297686258c60281583dd66475b4" }, "downloads": -1, "filename": "dep_check-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8c224fdff7c093c1e162a02cdbff19b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21997, "upload_time": "2019-08-26T08:34:14", "url": "https://files.pythonhosted.org/packages/75/09/cde6896ac24d66b75d7fa7dcce63ad5cd00acb0b8ba0830a6d9ed87756eb/dep_check-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04695a07b03be556a4bd82542ec9d4bf", "sha256": "f8cd42cd5a4b972e4b7f6409f8bf3bf0a82e26264d1da2529140309650a105ff" }, "downloads": -1, "filename": "dep_check-1.0.3.tar.gz", "has_sig": false, "md5_digest": "04695a07b03be556a4bd82542ec9d4bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100798, "upload_time": "2019-08-26T08:34:15", "url": "https://files.pythonhosted.org/packages/af/d3/1d925fbb631ee03061885485f135ccc5d05afcb514b5b06e2b7bd9afc2cd/dep_check-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f8c224fdff7c093c1e162a02cdbff19b", "sha256": "5a7e517795e976db3fe9c82c97a2286ad6c97297686258c60281583dd66475b4" }, "downloads": -1, "filename": "dep_check-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8c224fdff7c093c1e162a02cdbff19b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21997, "upload_time": "2019-08-26T08:34:14", "url": "https://files.pythonhosted.org/packages/75/09/cde6896ac24d66b75d7fa7dcce63ad5cd00acb0b8ba0830a6d9ed87756eb/dep_check-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04695a07b03be556a4bd82542ec9d4bf", "sha256": "f8cd42cd5a4b972e4b7f6409f8bf3bf0a82e26264d1da2529140309650a105ff" }, "downloads": -1, "filename": "dep_check-1.0.3.tar.gz", "has_sig": false, "md5_digest": "04695a07b03be556a4bd82542ec9d4bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100798, "upload_time": "2019-08-26T08:34:15", "url": "https://files.pythonhosted.org/packages/af/d3/1d925fbb631ee03061885485f135ccc5d05afcb514b5b06e2b7bd9afc2cd/dep_check-1.0.3.tar.gz" } ] }