{ "info": { "author": "David Seddon", "author_email": "david@seddonym.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 7 - Inactive", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "============\nLayer Linter\n============\n\n\n.. image:: https://img.shields.io/pypi/v/layer_linter.svg\n :target: https://pypi.python.org/pypi/layer_linter\n\n.. image:: https://img.shields.io/pypi/pyversions/layer-linter.svg\n :alt: Python versions\n :target: http://pypi.python.org/pypi/layer-linter/\n\n.. image:: https://api.travis-ci.org/seddonym/layer_linter.svg?branch=master\n :target: https://travis-ci.org/seddonym/layer_linter\n\n.. image:: https://codecov.io/gh/seddonym/layer_linter/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/seddonym/layer_linter\n\n.. image:: https://readthedocs.org/projects/layer-linter/badge/?version=latest\n :target: https://layer-linter.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\n**Layer Linter has been deprecated in favour of Import Linter.**\n\n`Import Linter`_ does everything Layer Linter does, but with more features and a slightly different API.\nIf you're already using Layer Linter, migrating to Import Linter is simple: there is a guide here_.\n\nOutline\n-------\n\nLayer Linter checks that your project follows a custom-defined layered architecture, based on\nits internal dependencies (i.e. the imports between its modules).\n\n* Free software: BSD license\n* Documentation: https://layer-linter.readthedocs.io.\n\n.. _Import Linter: https://github.com/seddonym/import-linter\n.. _here: https://layer-linter.readthedocs.io/en/latest/migrating-to-import-linter.html\n\nOverview\n--------\n\nLayer Linter is a command line tool to check that you are following a self-imposed\narchitecture within your Python project. It does this by analysing the internal\nimports between all the modules in your code base, and compares this\nagainst a set of simple rules that you provide in a ``layers.yml`` file.\n\nFor example, you can use it to check that no modules inside ``myproject.foo``\nimport from any modules inside ``myproject.bar``, even indirectly.\n\nThis is particularly useful if you are working on a complex codebase within a team,\nwhen you want to enforce a particular architectural style. In this case you can add\nLayer Linter to your deployment pipeline, so that any code that does not follow\nthe architecture will fail tests.\n\nQuick start\n-----------\n\nInstall Layer Linter::\n\n pip install layer-linter\n\nDecide on the dependency flows you wish to check. In this example, we have\norganised our project into three subpackages, ``myproject.high``, ``myproject.medium``\nand ``myproject.low``. These subpackages are known as *layers*. Note: layers must\nhave the same parent package (i.e. all be in the same directory). This parent is known as a *container*.\n\nCreate a ``layers.yml`` in the root of your project. For example::\n\n My Layers Contract:\n containers:\n - myproject\n layers:\n - high\n - medium\n - low\n\n(This contract tells Layer Linter that the order of the layers runs from ``low`` at the bottom\nto ``high`` at the top. Layers higher up can import ones lower down, but not the other way around.)\n\nNote that the container is an absolute name of a Python package, while the layers are relative to the container.\n\nNow, from your project root, run::\n\n layer-lint myproject\n\nIf your code violates the contract, you will see an error message something like this::\n\n ============\n Layer Linter\n ============\n\n ---------\n Contracts\n ---------\n\n Analyzed 23 files, 44 dependencies.\n -----------------------------------\n\n My layer contract BROKEN\n\n Contracts: 0 kept, 1 broken.\n\n ----------------\n Broken contracts\n ----------------\n\n\n My layer contract\n -----------------\n\n\n 1. myproject.low.x imports myproject.high.y:\n\n myproject.low.x <-\n myproject.utils <-\n myproject.high.y\n\nFor more details, see `Usage`_.\n\n.. _Usage: https://layer-linter.readthedocs.io/en/latest/usage.html\n\n\n=======\nHistory\n=======\n\n0.1.0 (2018-06-20)\n------------------\n\n* First release on PyPI.\n\n0.2.0 (2018-06-23)\n------------------\n\n* Look for ``layers.yml`` in current working directory.\n\n0.3.0 (2018-06-24)\n------------------\n\n* Renamed command to ``layer-lint``.\n* Changed order of layers in ``layers.yml`` to be listed high level to low level.\n\n0.4.0 (2018-07-22)\n------------------\n\n* Made dependency analysis more efficient and robust.\n* Improved report formatting.\n* Removed illegal dependencies that were implied by other, more succinct illegal dependencies.\n* Added ``--debug`` command line argument.\n\n0.5.0 (2018-08-01)\n------------------\n\n* Added count of analysed files and dependencies to report.\n* Fixed issues from running command in a different directory to the package.\n* Increased speed of analysis.\n* Changed ``--config_directory`` command line argument to ``--config-directory``.\n\n0.6.0 (2018-08-07)\n------------------\n\n* Added ability to whitelist paths.\n\n0.6.1 (2018-08-07)\n------------------\n\n* Added current working directory to path.\n\n0.6.2 (2018-08-17)\n------------------\n\n* Don't analyse children of directories that aren't Python packages.\n* Prevented installing incompatible version of Pydeps (1.6).\n\n0.7.0 (2018-09-04)\n------------------\n\n* Completed rewrite of static analysis used to build dependency graph.\n* Added quiet and verbose reporting.\n* Added type annotation and mypy.\n* Built earlier versions of Python using pybackwards.\n* Corrected docs to refer to ``layers.yml`` instead of ``layers.yaml``.\n\n0.7.1 (2018-09-04)\n------------------\n\n* Fixed packaging bug with 0.7.0.\n\n0.7.2 (2018-09-05)\n------------------\n\n* Fixed bug with not checking all submodules of layer.\n\n0.7.3 (2018-09-07)\n------------------\n\n* Dropped support for Python 3.4 and 3.5 and adjust packaging.\n\n0.7.4 (2018-09-20)\n------------------\n\n* Tweaked command line error handling.\n* Improved README and `Core Concepts` documentation.\n\n0.8.0 (2018-09-29)\n------------------\n\n* Replace ``--config-directory`` parameter with ``--config`` parameter, which takes a file name instead.\n\n0.9.0 (2018-10-13)\n------------------\n\n* Moved to beta version.\n* Improved documentation.\n* Better handling of invalid package names passed to command line.\n\n0.10.0 (2018-10-14)\n-------------------\n\n* Renamed 'packages' to 'containers' in contracts.\n\n0.10.1 (2018-10-14)\n-------------------\n\n* Improved handling of invalid containers.\n\n0.10.2 (2018-10-17)\n-------------------\n\n* Error if a layer is missing.\n\n0.10.3 (2018-11-2)\n------------------\n\n* Fixed RST rendering on PyPI.\n\n0.11.0 (2018-11-5)\n------------------\n\n* Support defining optional layers.\n\n0.11.1 (2019-1-16)\n------------------\n\n* Updated dependencies, especially switching to a version of PyYAML to\n address https://nvd.nist.gov/vuln/detail/CVE-2017-18342.\n\n0.12.0 (2019-1-16)\n------------------\n\n* Fix parsing of relative imports within __init__.py files.\n\n0.12.1 (2019-2-2)\n-----------------\n\n* Add support for Click 7.x.\n\n0.12.2 (2019-3-20)\n------------------\n\n* Fix bug with Windows file paths.\n\n\n0.12.3 (2019-6-8)\n-----------------\n\n* Deprecate Layer Linter in favour of Import Linter.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/seddonym/layer_linter", "keywords": "layer-linter layer-lint", "license": "BSD license", "maintainer": "", "maintainer_email": "", "name": "layer-linter", "package_url": "https://pypi.org/project/layer-linter/", "platform": "", "project_url": "https://pypi.org/project/layer-linter/", "project_urls": { "Homepage": "https://github.com/seddonym/layer_linter" }, "release_url": "https://pypi.org/project/layer-linter/0.12.3/", "requires_dist": [ "networkx (~=2.2)", "PyYAML (~=4.2b1)", "click (<8,>=6.7)" ], "requires_python": "", "summary": "Layer Linter checks that your project follows a custom-defined layered architecture.", "version": "0.12.3" }, "last_serial": 5375592, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "3f5690908c9c150d6b50e8875ec076b3", "sha256": "4812e32d5c2567f592cc0899507b162f69edb204a9652f9dab9fa3d98b230029" }, "downloads": -1, "filename": "layer_linter-0.1.0-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "3f5690908c9c150d6b50e8875ec076b3", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 6173, "upload_time": "2018-06-20T15:10:59", "url": "https://files.pythonhosted.org/packages/dc/dd/747a76bac53d18b0e03c98d8468aa6655e4fdaf0d0c0b895341385e58d21/layer_linter-0.1.0-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4689b2fee4d57908838dbc4a57bf2992", "sha256": "b245be1b4cdfcb05c5ab70cf4f3501975ccdd0e0f49c519642d218db34879ed5" }, "downloads": -1, "filename": "layer_linter-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4689b2fee4d57908838dbc4a57bf2992", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14691, "upload_time": "2018-06-20T15:11:00", "url": "https://files.pythonhosted.org/packages/90/82/06d0dbf68e049f801059c33b7378deb3184a85c0a31d5efb37fd5342f991/layer_linter-0.1.0.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "d799f7c22a780872ffc556551edfda63", "sha256": "a473997bc9507292472d2d922e52aeba4284a73593d810f0316e8119d7a474a6" }, "downloads": -1, "filename": "layer_linter-0.10.0-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "d799f7c22a780872ffc556551edfda63", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 18718, "upload_time": "2018-10-15T12:24:02", "url": "https://files.pythonhosted.org/packages/97/97/b0b3d1222a2aaaae807586d223c3de28ec9f7a6a599726828afa636850a8/layer_linter-0.10.0-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d6bacdffa6a96f0b9d3ae5e1b1617601", "sha256": "5e4de9509dccd44bb394b27b3b22d720adb401003ed291c4908182e54662b863" }, "downloads": -1, "filename": "layer-linter-0.10.0.tar.gz", "has_sig": false, "md5_digest": "d6bacdffa6a96f0b9d3ae5e1b1617601", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 118082, "upload_time": "2018-10-15T12:24:04", "url": "https://files.pythonhosted.org/packages/b0/81/511250a921089b12df6e2c67ad192edd3282f512aad891046b65eeaa22e7/layer-linter-0.10.0.tar.gz" } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "a90c15e3ed74c4276c0dabb634afee4e", "sha256": "7d7dcc54de4d9352d2bce2f363e8033cba282923d49d33b3b66c725b329c5f64" }, "downloads": -1, "filename": "layer_linter-0.10.1-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "a90c15e3ed74c4276c0dabb634afee4e", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 18944, "upload_time": "2018-10-15T21:09:32", "url": "https://files.pythonhosted.org/packages/46/6f/f2d23185d27e8e748a84fb0d87298bf42f54ced629ad556dbe1884b023fb/layer_linter-0.10.1-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "032451e2f4d6679551827aa4e7c2bcba", "sha256": "b3629ed1a522ce2b9daac1deb4640fd828ad5147f2419851a43291eecfd3ba8d" }, "downloads": -1, "filename": "layer-linter-0.10.1.tar.gz", "has_sig": false, "md5_digest": "032451e2f4d6679551827aa4e7c2bcba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119085, "upload_time": "2018-10-15T21:09:34", "url": "https://files.pythonhosted.org/packages/31/0c/13bfee9f9047aee37914532ff19d62d34dff38fe21b74efa0b4fb10d0143/layer-linter-0.10.1.tar.gz" } ], "0.10.2": [ { "comment_text": "", "digests": { "md5": "7deaf88850df1049a1a020045d219069", "sha256": "af13b29ad0155e7c09181067e87f1dcc7dc9e10ebd74098c085489dae3e3bbe5" }, "downloads": -1, "filename": "layer_linter-0.10.2-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "7deaf88850df1049a1a020045d219069", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19256, "upload_time": "2018-10-17T11:44:51", "url": "https://files.pythonhosted.org/packages/1b/ba/c66ce150cccd9ae5cf35c5118c37a22ad8c475035987d446fc6dbb32b26a/layer_linter-0.10.2-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a2d2c7a0b7097d530fb25b2aa859d2e2", "sha256": "573436771dbd8905dcd54c4cbc4d628e24eccafcc8089609e58809db876168c9" }, "downloads": -1, "filename": "layer-linter-0.10.2.tar.gz", "has_sig": false, "md5_digest": "a2d2c7a0b7097d530fb25b2aa859d2e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119712, "upload_time": "2018-10-17T11:44:52", "url": "https://files.pythonhosted.org/packages/bf/cd/90c0791d534ff3f50a9a59ad04c2ca161897f9431ef40fe802161d7c1153/layer-linter-0.10.2.tar.gz" } ], "0.10.3": [ { "comment_text": "", "digests": { "md5": "47db273d51348b9bb805a0cb3517184d", "sha256": "d16199c329c6a0f365e03ca438da1d24ad16957838be28e5b84d5efc05a97d58" }, "downloads": -1, "filename": "layer_linter-0.10.3-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "47db273d51348b9bb805a0cb3517184d", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19275, "upload_time": "2018-11-02T08:08:36", "url": "https://files.pythonhosted.org/packages/35/50/8592a4dbe2e02dc571addcafaf40b13e4798c109cc3569df57afddda366a/layer_linter-0.10.3-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9942db57fcc5c485937868b402812fd7", "sha256": "9394af28c9e1b2c0eee06f1b09de8bebd06cdbaa381404b1f17f3f6a1a93004f" }, "downloads": -1, "filename": "layer-linter-0.10.3.tar.gz", "has_sig": false, "md5_digest": "9942db57fcc5c485937868b402812fd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119765, "upload_time": "2018-11-02T08:08:37", "url": "https://files.pythonhosted.org/packages/12/81/cce537a1723778ba1f2ad9666aa1220d4cb8eb0147b437b853b4b6e31b29/layer-linter-0.10.3.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "7373d3cba8cc4358dc40d5dcac1013d7", "sha256": "45fd89323f9d62418b00f5eab5a11626598a6881f199f72be28213ee7ea5ca47" }, "downloads": -1, "filename": "layer_linter-0.11.0-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "7373d3cba8cc4358dc40d5dcac1013d7", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19579, "upload_time": "2018-11-05T16:55:43", "url": "https://files.pythonhosted.org/packages/a8/eb/5066f70c524b330a1d21db24b113e276861f903689b6baae83a13cfb22f4/layer_linter-0.11.0-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "690901f5c84ab512668d9588761cfaea", "sha256": "51820d408f75ba29f34c5bcfe08af2a6b27b0aa80744872db8ab8d3747c2b04a" }, "downloads": -1, "filename": "layer-linter-0.11.0.tar.gz", "has_sig": false, "md5_digest": "690901f5c84ab512668d9588761cfaea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120480, "upload_time": "2018-11-05T16:55:44", "url": "https://files.pythonhosted.org/packages/56/5f/9ca56541ecf9a3fbee14ccf7a263b93275ce37a3e6181b2ee4dc0f41c552/layer-linter-0.11.0.tar.gz" } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "f7ada8741e333ee3ccaa147a54f9d182", "sha256": "e1716fd6149b71235b6a674a08409facdaf29bee2c07d7da9de78019ed8fa3b4" }, "downloads": -1, "filename": "layer_linter-0.11.1-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "f7ada8741e333ee3ccaa147a54f9d182", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19655, "upload_time": "2019-01-16T12:00:57", "url": "https://files.pythonhosted.org/packages/c7/ff/649c8c7de9715a3754b3d6a2ef6ae2ec417f4f0f5fe6d0876941403205d9/layer_linter-0.11.1-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8214cb2f6ff2d66bf846523dff95ef47", "sha256": "b257083a2adc2fd91c02b8397a15a88f7d1c950626c1e5cadcb6d93819c05a01" }, "downloads": -1, "filename": "layer-linter-0.11.1.tar.gz", "has_sig": false, "md5_digest": "8214cb2f6ff2d66bf846523dff95ef47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120634, "upload_time": "2019-01-16T12:00:59", "url": "https://files.pythonhosted.org/packages/29/8f/ea716b86b47dc8cb104187b5d87056cbc56f2cc52f86a438edac150e6fa1/layer-linter-0.11.1.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "07076a6f5d64b929edd515874a2c2be5", "sha256": "133ab3b6e2333ccb2f10063b945ec827ae1f6396177522c53fe8d9f05b577cda" }, "downloads": -1, "filename": "layer_linter-0.12.0-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "07076a6f5d64b929edd515874a2c2be5", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19775, "upload_time": "2019-01-16T12:32:29", "url": "https://files.pythonhosted.org/packages/53/2c/d345003b6d5343575dc1a6a004f108de5d320553034a3cdd2c075f540973/layer_linter-0.12.0-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2235bcb0d4bd8fda7895c8aaae874fa6", "sha256": "56dba58da3047d98fb8a1fbdb6eb6dab9e90a72cee171849214efa5ccd5ea136" }, "downloads": -1, "filename": "layer-linter-0.12.0.tar.gz", "has_sig": false, "md5_digest": "2235bcb0d4bd8fda7895c8aaae874fa6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121111, "upload_time": "2019-01-16T12:32:30", "url": "https://files.pythonhosted.org/packages/3d/4b/f383feeb4d282c2dcf7ce73569277cd633cbbd69fd920479cca913fecaee/layer-linter-0.12.0.tar.gz" } ], "0.12.1": [ { "comment_text": "", "digests": { "md5": "9ea872fa2c3f4db0a1b6872491b33460", "sha256": "8d04646eeca04c21a4c7888a0036e9c8555096e60ed083f04daf42898b97bf7c" }, "downloads": -1, "filename": "layer_linter-0.12.1-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "9ea872fa2c3f4db0a1b6872491b33460", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19829, "upload_time": "2019-02-02T10:27:57", "url": "https://files.pythonhosted.org/packages/47/46/d69d80e433368229959ba574899d5aae2d1ec7745d0f0d90e02aadb36e63/layer_linter-0.12.1-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0be379d2a69a4b95ac144dd84544d0ac", "sha256": "dbf6d69a51eece885e4f4aead333b1ffed57a9a154369e7ff48d9ffe979cd83f" }, "downloads": -1, "filename": "layer-linter-0.12.1.tar.gz", "has_sig": false, "md5_digest": "0be379d2a69a4b95ac144dd84544d0ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121195, "upload_time": "2019-02-02T10:27:59", "url": "https://files.pythonhosted.org/packages/c6/3e/90b6be69483b60daec89695b7cfb0d6188a16be9704dcb3f7b40333835e8/layer-linter-0.12.1.tar.gz" } ], "0.12.2": [ { "comment_text": "", "digests": { "md5": "ab15d7634b1c2617075b8b772a0e7b3c", "sha256": "390dccc0f84fa53a95e7fe7a3d35956b48acd6c712b829bf06b68ff087c01b47" }, "downloads": -1, "filename": "layer_linter-0.12.2-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "ab15d7634b1c2617075b8b772a0e7b3c", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19859, "upload_time": "2019-03-20T11:26:00", "url": "https://files.pythonhosted.org/packages/36/e4/5b68ed7200d7ee499a9ba8d3c79d67fb6344e47c795e9db08c6e4bcd5b94/layer_linter-0.12.2-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc85557c4c3c98ba717f444ddaae7f66", "sha256": "8f373b87522dff354a319eba5974e8de46d9e2e7f11a0249932dfae9623688ee" }, "downloads": -1, "filename": "layer-linter-0.12.2.tar.gz", "has_sig": false, "md5_digest": "cc85557c4c3c98ba717f444ddaae7f66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121292, "upload_time": "2019-03-20T11:26:01", "url": "https://files.pythonhosted.org/packages/8f/7c/04169ffb1437e86e74fa4898400ad0313c857cc4bfdca60943caa310ccb8/layer-linter-0.12.2.tar.gz" } ], "0.12.3": [ { "comment_text": "", "digests": { "md5": "a616aff214cd9b42f0871f4729540953", "sha256": "1c937c0e3ee694b3abd701d7ee3e64d9c8ce5b442661bb1c119c9ba13908ec54" }, "downloads": -1, "filename": "layer_linter-0.12.3-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "a616aff214cd9b42f0871f4729540953", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19845, "upload_time": "2019-06-08T15:18:36", "url": "https://files.pythonhosted.org/packages/20/df/9420573f0545daf6a1522ab329ceaab95a8bfe15e7270da8737ab0508fc7/layer_linter-0.12.3-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c44cb813fe68dbf93c0e7f27ee8bdebd", "sha256": "c53d796270636c8363bd782e01f9852463c7d18574670a7586acee1e3ce55fe0" }, "downloads": -1, "filename": "layer-linter-0.12.3.tar.gz", "has_sig": false, "md5_digest": "c44cb813fe68dbf93c0e7f27ee8bdebd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121111, "upload_time": "2019-06-08T15:18:38", "url": "https://files.pythonhosted.org/packages/8f/b6/f74c11f9eeac8e762078129ebc2b0b2420aedbb259930ffa94f75356ddf6/layer-linter-0.12.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1528897829a7812b9c9600c2a0f343e1", "sha256": "3d707646935b5efe5d1b6259aedbca6ff5985a26c824e964f2be8de4ab4bd337" }, "downloads": -1, "filename": "layer_linter-0.2.0-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "1528897829a7812b9c9600c2a0f343e1", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 7293, "upload_time": "2018-06-22T15:42:50", "url": "https://files.pythonhosted.org/packages/29/ed/9160e04090fbfd55f2d9c39f29f2381454e2b01e822f6b892147aad97930/layer_linter-0.2.0-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3297d4d1a9bf5cb34f58ae87049dc06", "sha256": "b1071c45af0a6dac2564911cd1d00805dd973f7624c17dac1fac61e481bd51b3" }, "downloads": -1, "filename": "layer_linter-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f3297d4d1a9bf5cb34f58ae87049dc06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23692, "upload_time": "2018-06-22T15:42:52", "url": "https://files.pythonhosted.org/packages/20/ea/cfe3dc28a029e3223bcecbed8fbe09a4314d05ec27326ed57a57942164a4/layer_linter-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "892de6db1aa062e8aca76bca6ca80aa1", "sha256": "3f4bf6e83e4609f471997a252f39b75cbdd7afe690ab53635c7cd1e82d2843b1" }, "downloads": -1, "filename": "layer_linter-0.3.0-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "892de6db1aa062e8aca76bca6ca80aa1", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 7298, "upload_time": "2018-06-24T10:00:05", "url": "https://files.pythonhosted.org/packages/84/6f/711aa6d5d5ddcb2fd5cefe6baaf72beea39923a4769ac0e3c019b13ec2fe/layer_linter-0.3.0-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3bc0868deb5c08c265446117e4140ada", "sha256": "a54317b493867e78e2778416f1bea5e0c3b69f5ad3645a16f3ecaebdf7dc5639" }, "downloads": -1, "filename": "layer-linter-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3bc0868deb5c08c265446117e4140ada", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19092, "upload_time": "2018-06-24T10:00:05", "url": "https://files.pythonhosted.org/packages/f5/84/da011dda85ebc7408ec70527796140e694c841f08ca873dcd8e6626cdded/layer-linter-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1e0ab57cb7c06cde6c06884e3dbee816", "sha256": "79d5be15af5aab6ffda0f3cd881b3e77970f75106a0e7a48ec7b9e458aff62af" }, "downloads": -1, "filename": "layer_linter-0.4.0-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "1e0ab57cb7c06cde6c06884e3dbee816", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 8693, "upload_time": "2018-07-22T10:15:57", "url": "https://files.pythonhosted.org/packages/5f/9a/63d3ab6410138f146990c6e2c1b40a57e0624428da06cc28df91453c9b8f/layer_linter-0.4.0-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7135cabbbf77140da0cacf09d3fec535", "sha256": "4e63d652d72a63692d812d6f46cb67f6d93735b02fef1fe4c8fdc96a1cf20f7d" }, "downloads": -1, "filename": "layer-linter-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7135cabbbf77140da0cacf09d3fec535", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21773, "upload_time": "2018-07-22T10:15:59", "url": "https://files.pythonhosted.org/packages/4b/76/b80c80e5f32c4efbe91203af9ae7a9836122777d098acd65159b34cf3285/layer-linter-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "48fc10109ce627a8ec10b81c5debdf2e", "sha256": "1324d80609b98b42725954ac914b9deee2990fd641ca7b91621e1532a310a91a" }, "downloads": -1, "filename": "layer_linter-0.5.0-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "48fc10109ce627a8ec10b81c5debdf2e", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 10538, "upload_time": "2018-08-01T10:19:32", "url": "https://files.pythonhosted.org/packages/18/1b/9207e1936239b85f4de4cba38972adad2f52868e2e078d7d8acd6150d0c6/layer_linter-0.5.0-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d21fa095fe724ae37ba56359f27d230d", "sha256": "b49b1744c25d76d3ce73ca27705f90e5a6beea4284f451f8a0487f9dbee7dae2" }, "downloads": -1, "filename": "layer-linter-0.5.0.tar.gz", "has_sig": false, "md5_digest": "d21fa095fe724ae37ba56359f27d230d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24351, "upload_time": "2018-08-01T10:19:33", "url": "https://files.pythonhosted.org/packages/8d/c6/f1792b62ed5ab900fe7ac95bf24c36df6f53a106a732b6bccdddb3a8aecf/layer-linter-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "07caae42604d20433c7b5717ee375573", "sha256": "a03d0fd89ee94ef614ccdf51b48e56a45a3e3f0ea313da0ddbbcce07a7c1a208" }, "downloads": -1, "filename": "layer_linter-0.6.0-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "07caae42604d20433c7b5717ee375573", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 11239, "upload_time": "2018-08-07T08:36:48", "url": "https://files.pythonhosted.org/packages/ca/06/f8bdb28b5d707bae3d6c76d6305bcc8f67fd0944e47d6afee6c06b6aa311/layer_linter-0.6.0-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52dacb39fbd4be4b5967a66f2dbc28d6", "sha256": "b37bb6fe5314fcf73c57c3fc4b5f3a284ac6b1f2148729a73d737ef70266cd8a" }, "downloads": -1, "filename": "layer-linter-0.6.0.tar.gz", "has_sig": false, "md5_digest": "52dacb39fbd4be4b5967a66f2dbc28d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26310, "upload_time": "2018-08-07T08:36:49", "url": "https://files.pythonhosted.org/packages/10/86/53113f721a7a551ad0a8308073342c1b737588bccab16ef54a388844b46d/layer-linter-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "e1909c0cdfb612d20ff4fa035b042e97", "sha256": "292d0ea497422291a9fdb5a587d965fcde27a0cefb023324f26e351907755dc4" }, "downloads": -1, "filename": "layer_linter-0.6.1-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "e1909c0cdfb612d20ff4fa035b042e97", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 11341, "upload_time": "2018-08-07T19:17:29", "url": "https://files.pythonhosted.org/packages/83/08/eb03942a3545ba41ed8af504b8a9b362ed00006ea3b3cb1630c4bc2bbec0/layer_linter-0.6.1-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2569047dd1f53ecace3794b4f70a7221", "sha256": "73cd21072fb52a662b804b9c2ecaf79e4c44d13eed1e0f17d1e515643a00d8ab" }, "downloads": -1, "filename": "layer-linter-0.6.1.tar.gz", "has_sig": false, "md5_digest": "2569047dd1f53ecace3794b4f70a7221", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26363, "upload_time": "2018-08-07T19:17:31", "url": "https://files.pythonhosted.org/packages/92/c2/e31a1debcd8a3d240a106859885fe15ffc446f64d74c6267c853e88acced/layer-linter-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "931c3e060768a988458db06ba23dd34e", "sha256": "918175dc83ecfca3e6bf3bf9574569c286f4b464e9ec59af2e6fa67cf3612d55" }, "downloads": -1, "filename": "layer_linter-0.6.2-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "931c3e060768a988458db06ba23dd34e", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 11408, "upload_time": "2018-08-17T11:53:45", "url": "https://files.pythonhosted.org/packages/4c/c0/3c889f3c6c44cd80b11becf7d788e3cdcbbcf1054258c1309b3be7c32ebc/layer_linter-0.6.2-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14a11486b80f27c6de370a47d3a27ab9", "sha256": "fbad1dcd569cd1e92f66943bcf1cbf5840d37c5720af23f898158554c60dbf84" }, "downloads": -1, "filename": "layer-linter-0.6.2.tar.gz", "has_sig": false, "md5_digest": "14a11486b80f27c6de370a47d3a27ab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26494, "upload_time": "2018-08-17T11:53:46", "url": "https://files.pythonhosted.org/packages/4d/48/1d057c7ae76cc61c0197fc478ef52cb5b504bce0a50e32db057daebb10cf/layer-linter-0.6.2.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "a61038204e7a2e405cee26a8aba45c0e", "sha256": "6575b018b79c707b453ff218d44578600a99ffe1010be87c29facf2176af7b8c" }, "downloads": -1, "filename": "layer_linter-0.7.0-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "a61038204e7a2e405cee26a8aba45c0e", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 10164, "upload_time": "2018-09-04T07:39:30", "url": "https://files.pythonhosted.org/packages/51/d1/e02a544c719479e91d77b5f1d46a04c9c3e4fb9b882ec17a93799f08d129/layer_linter-0.7.0-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2d02e5f00a7fc8dc8fd8c6286f16639", "sha256": "cbc39104553741498b016b6490f04cbb4ff778e7434ad9c0d7592693eb3f2c97" }, "downloads": -1, "filename": "layer-linter-0.7.0.tar.gz", "has_sig": false, "md5_digest": "e2d02e5f00a7fc8dc8fd8c6286f16639", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30139, "upload_time": "2018-09-04T07:39:31", "url": "https://files.pythonhosted.org/packages/f3/ee/1711b5a496bf9032ade68535dce1b0fa28468d1c20654261fb041819b70e/layer-linter-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "abd64c14b043263edfc0022925f2dd07", "sha256": "f77b9c043b6f373527a0569699f4435449be6a56e77899cbecf61fec8c713390" }, "downloads": -1, "filename": "layer_linter-0.7.1-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "abd64c14b043263edfc0022925f2dd07", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 15692, "upload_time": "2018-09-04T08:54:03", "url": "https://files.pythonhosted.org/packages/1d/87/ebe475686b849c38bfc45db8fc73b5e09a7469a8756bb002dbad719b4ec2/layer_linter-0.7.1-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "780502c7d87860b1a927cb665b44bf50", "sha256": "b1237d0e68562d7f41af4a5f174b6afa3b169690d4c9f3ad9dc5d03197823535" }, "downloads": -1, "filename": "layer-linter-0.7.1.tar.gz", "has_sig": false, "md5_digest": "780502c7d87860b1a927cb665b44bf50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33684, "upload_time": "2018-09-04T08:54:04", "url": "https://files.pythonhosted.org/packages/f5/dc/17f18e423a7c0ac8983f842445e088209dcc874f8a214e21ac5baa61630d/layer-linter-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "e016a5de41f068f4c204028d4b56b371", "sha256": "e18bd0414299e2d901f11fa46737429c99e4922880c2f3ea9cfa23c995459f1c" }, "downloads": -1, "filename": "layer_linter-0.7.2-py34,py35,py36-none-any.whl", "has_sig": false, "md5_digest": "e016a5de41f068f4c204028d4b56b371", "packagetype": "bdist_wheel", "python_version": "py34,py35,py36", "requires_python": null, "size": 15731, "upload_time": "2018-09-05T11:19:54", "url": "https://files.pythonhosted.org/packages/56/89/812f6f7818095010668f5094b6251095591db0a47acc91a87b2f121e0e7f/layer_linter-0.7.2-py34,py35,py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ef02a92f3a053bc018c77c48f46b993", "sha256": "6d2df6a7061023d5ad55fd18960c503e86a794043f5160cdd93f521438605d5c" }, "downloads": -1, "filename": "layer-linter-0.7.2.tar.gz", "has_sig": false, "md5_digest": "9ef02a92f3a053bc018c77c48f46b993", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34165, "upload_time": "2018-09-05T11:19:55", "url": "https://files.pythonhosted.org/packages/b4/4a/16806e526f0d06e59ac805e0415bdb46b6441f4c5d6b29ae01d34cdeb691/layer-linter-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "c2eb615cd1bc0830ffe567bd8bffac58", "sha256": "78ca20a1aa2f6510af7dc18bb356a1f2986a47054c84cd2c8b126688f2f3e915" }, "downloads": -1, "filename": "layer_linter-0.7.3-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "c2eb615cd1bc0830ffe567bd8bffac58", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 15729, "upload_time": "2018-09-07T09:17:08", "url": "https://files.pythonhosted.org/packages/49/96/fb2457d391c72f7f2f663bb74c81a605037433a0b90c8bacf21aa26e285e/layer_linter-0.7.3-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd48ef16636f591f31c1287d90a4a077", "sha256": "d18c6133636da92a3df8f366829c4feb75815dea0cf978d3046fb66f5163bfef" }, "downloads": -1, "filename": "layer-linter-0.7.3.tar.gz", "has_sig": false, "md5_digest": "cd48ef16636f591f31c1287d90a4a077", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34128, "upload_time": "2018-09-07T09:17:09", "url": "https://files.pythonhosted.org/packages/ae/e1/037f987ee333e0f982552037a56cecdbc718dc10591b91a0767c79943deb/layer-linter-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "61d315df92495bf1da23ef54d54ed636", "sha256": "c17105a2e6d7ad0f9529fe5d1e13b960e181bac513180ed6d88fc3218fb905e9" }, "downloads": -1, "filename": "layer_linter-0.7.4-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "61d315df92495bf1da23ef54d54ed636", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 16260, "upload_time": "2018-09-20T08:45:37", "url": "https://files.pythonhosted.org/packages/7f/a8/289099c1776706e0921416d2f3cb41d7fc9c45ae3618816ad8a259759881/layer_linter-0.7.4-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46d3536e260bf95a8b25867306184b4e", "sha256": "38b294f84f3f6fce9ece47d632284df81d11eca527119b887d44ddfd44fea5c3" }, "downloads": -1, "filename": "layer-linter-0.7.4.tar.gz", "has_sig": false, "md5_digest": "46d3536e260bf95a8b25867306184b4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117177, "upload_time": "2018-09-20T08:45:39", "url": "https://files.pythonhosted.org/packages/78/0f/9b2b86b7fc2c30a701d309619b8b0e694832ce3e6e8691cd6abfef645cb4/layer-linter-0.7.4.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "ffc1304715ef9283a8976bf66ddffda1", "sha256": "ccacdd77519c61215e4b26928d356254da421e91c4dba7dcfd65a5b0e4e04f03" }, "downloads": -1, "filename": "layer_linter-0.8.0-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "ffc1304715ef9283a8976bf66ddffda1", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 16252, "upload_time": "2018-09-29T09:59:10", "url": "https://files.pythonhosted.org/packages/5e/7f/70832d6192d86b71ad8289cd23a9cb5c51f598dd922a3538043b05aec734/layer_linter-0.8.0-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0522e27895f282f05855757068240f12", "sha256": "addcbfb0de33134a672e3ea578e71829b6b4d5f53bad23cf0649d5603127b03b" }, "downloads": -1, "filename": "layer-linter-0.8.0.tar.gz", "has_sig": false, "md5_digest": "0522e27895f282f05855757068240f12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117240, "upload_time": "2018-09-29T09:59:11", "url": "https://files.pythonhosted.org/packages/8e/64/b8c69a955ede98dc280b4fe5d18ac81d0ea319370ae83e83713d8186ad7b/layer-linter-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "7e773988f5a7a1fb2e38eeffee5c7ff2", "sha256": "37ce2d277c79cb635d48453d94a2d61df2f60fbdc782b3608af5183f330a4640" }, "downloads": -1, "filename": "layer_linter-0.9.0-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "7e773988f5a7a1fb2e38eeffee5c7ff2", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 18527, "upload_time": "2018-10-13T16:26:35", "url": "https://files.pythonhosted.org/packages/05/9c/67f139092f4bf9bbd336c052e62cfd83f0f41a21ba5a3fb0ec57f6b5d679/layer_linter-0.9.0-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5152ff33dbdb265e42458d7bcdf26f23", "sha256": "c703a9a9035d110aea1d65a2ee2b0f56a64df3d2d563a4406527c2c5c7904ae2" }, "downloads": -1, "filename": "layer-linter-0.9.0.tar.gz", "has_sig": false, "md5_digest": "5152ff33dbdb265e42458d7bcdf26f23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 117668, "upload_time": "2018-10-13T16:26:36", "url": "https://files.pythonhosted.org/packages/2b/a7/67869a0ea7ee2534e0ec078f3adb34e7e462a6e597d616379981ec7e971b/layer-linter-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a616aff214cd9b42f0871f4729540953", "sha256": "1c937c0e3ee694b3abd701d7ee3e64d9c8ce5b442661bb1c119c9ba13908ec54" }, "downloads": -1, "filename": "layer_linter-0.12.3-py36,py37-none-any.whl", "has_sig": false, "md5_digest": "a616aff214cd9b42f0871f4729540953", "packagetype": "bdist_wheel", "python_version": "py36,py37", "requires_python": null, "size": 19845, "upload_time": "2019-06-08T15:18:36", "url": "https://files.pythonhosted.org/packages/20/df/9420573f0545daf6a1522ab329ceaab95a8bfe15e7270da8737ab0508fc7/layer_linter-0.12.3-py36,py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c44cb813fe68dbf93c0e7f27ee8bdebd", "sha256": "c53d796270636c8363bd782e01f9852463c7d18574670a7586acee1e3ce55fe0" }, "downloads": -1, "filename": "layer-linter-0.12.3.tar.gz", "has_sig": false, "md5_digest": "c44cb813fe68dbf93c0e7f27ee8bdebd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121111, "upload_time": "2019-06-08T15:18:38", "url": "https://files.pythonhosted.org/packages/8f/b6/f74c11f9eeac8e762078129ebc2b0b2420aedbb259930ffa94f75356ddf6/layer-linter-0.12.3.tar.gz" } ] }