{ "info": { "author": "Jonas Plum", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "
Check kaitai .ksy files for errors and style flaws.
\n\n\n\n## Installation\n\n``` bash\npip install ksylint\n```\n\n## Usage\n``` bash\nksylint hello_world.ksy\n```\n\n### Missing style guide tests (TODO)\n1. General formatting\n - Use block YAML style in most general cases, unless explicitly specified/allowed otherwise.\n - Formatting of maps-inside-sequences MUST have - delimiter and first map element on the same first line.\n3. Meta section (meta)\n - xref \u2014 keys inside MUST be in alphabetic order\n - license \u2014 MUST be a valid SPDX license expression\n - ks-version \u2014 SHOULD list lowest possible KS compiler version that is able to compile this file.\n - \tKS syntax allows usage of some top-level elements deep inside the hierarchy \u2014 this can be useful during development, for example, for purpose of grafting one .ksy file into another quickly. However, in production-quality .ksy files, one MUST NOT use keys like title, imports or ks-version (i.e. everything except explicitly listed in a list above) on intermediate levels.\n - The following keys are reserved for internal use (i.e. debugging and test running) and MUST NOT be used in general-purpose .ksy files: ks-debug, ks-opaque-types\n4. Documentation\n - Single-line documentation strings SHOULD BE formatted using raw unquoted string literals.\n - Multi-line SHOULD BE formatted using YAML literal style scalar, i.e. using : | syntax.\n - Lines should be wrapped to be 80 columns long. If it doesn\u2019t fit into single line after wrapping, then it\u2019s a multi-line docstring, so use proper multi-line syntax.\n - There is no formal conversion of docstrings into language-specific docstrings now in KS, but generally we SHOULD keep it close to CommonMark formatting, i.e.:\n - paragraphs separated by an empty line\n - bullet lists created by an asterisk * and a space at the beginning of the line\n - use backticks ` to wrap identifiers and small pieces of code\n5. Sequence attributes\n - Attribute identifiers\n - Trailing padding\n\n### Not checked\n- All identifiers, docstrings, comments and generally all human-readable text SHOULD be kept in English, unless there\u2019s a very good reason not to do so.\n- application \u2014 SHOULD name a particular application, if there\u2019s any; if there are too many to list (for example, network packet formats or executables are used virtually everywhere), then one SHOULD omit this field.\n- file-extension \u2014 if there\u2019s only one extension, MUST be a string; if there are several, MUST be an sequence in block form and SHOULD order extensions from most popular extension to least popular.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/cugu/ksylint", "keywords": "", "license": "GPL-3.0-or-later", "maintainer": "", "maintainer_email": "", "name": "ksylint", "package_url": "https://pypi.org/project/ksylint/", "platform": "", "project_url": "https://pypi.org/project/ksylint/", "project_urls": { "Homepage": "http://github.com/cugu/ksylint" }, "release_url": "https://pypi.org/project/ksylint/0.3.1/", "requires_dist": [ "yamllint (==1.17.0)", "jsonschema (==3.0.2)", "PyYAML (==5.1.2)" ], "requires_python": ">=3.6", "summary": "A linter for ksy files.", "version": "0.3.1" }, "last_serial": 5909482, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "672d2307b496a1ccd5730c01a77548c0", "sha256": "205e3d121a80415ae3f29a717ffe98b8f68ebb0b7b33a00aca903ddfa89a6e6b" }, "downloads": -1, "filename": "ksylint-0.2.0-py3.7.egg", "has_sig": false, "md5_digest": "672d2307b496a1ccd5730c01a77548c0", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">=3.6", "size": 10753, "upload_time": "2019-09-29T08:02:10", "url": "https://files.pythonhosted.org/packages/df/aa/ab900aeff6ce9615b51459c754e7a340237f899e80248add2838497cddaa/ksylint-0.2.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "90c93ff29aedaa5384aa2bc9791364e0", "sha256": "3c33f08e1cd6ce04ec573e6b0df16aa12ea46054470cbaa540d89347335a0693" }, "downloads": -1, "filename": "ksylint-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "90c93ff29aedaa5384aa2bc9791364e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 19448, "upload_time": "2019-09-29T08:02:07", "url": "https://files.pythonhosted.org/packages/0b/6d/ed62dedb342eba6fa1e6c6c71d8106ae0e1e922f3cd316a13cfd37314bf8/ksylint-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ea30e858f8e1c9c6283f276ea8953db", "sha256": "7a3b88bcc483cc0cb6ce115708e1febb040fcebc31e788372445c49ffc4928de" }, "downloads": -1, "filename": "ksylint-0.2.0.tar.gz", "has_sig": false, "md5_digest": "0ea30e858f8e1c9c6283f276ea8953db", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7147, "upload_time": "2019-09-29T08:02:11", "url": "https://files.pythonhosted.org/packages/25/03/f532de045497c561398600cc82b2764ff9aedf7f0e427c78dabc2ce4f18e/ksylint-0.2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "632e12aaee5637a8993c89ebed001515", "sha256": "0fac6bcd7237dee54e9a7b5d9aef7de34827bef306a4bf755163bded45da37d7" }, "downloads": -1, "filename": "ksylint-0.2-py3.7.egg", "has_sig": false, "md5_digest": "632e12aaee5637a8993c89ebed001515", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": ">=3.6", "size": 10751, "upload_time": "2019-09-29T08:02:09", "url": "https://files.pythonhosted.org/packages/4c/fc/2d4bd6620df437162a2a67393f9b539c6bccd63d7418399a1bb67e1e29a5/ksylint-0.2-py3.7.egg" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "760efdcdfcaef4127d1a5e25c6859c1b", "sha256": "a544dc603888acfb619682482d941d06723a91c2c29d88755ceaf387d889b7df" }, "downloads": -1, "filename": "ksylint-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "760efdcdfcaef4127d1a5e25c6859c1b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=3.6", "size": 20880, "upload_time": "2019-09-29T08:49:47", "url": "https://files.pythonhosted.org/packages/3e/9a/61e920792616456b1402061d0319ac60e48866fdf9929e9017e30f55f080/ksylint-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f75c279bfbf95e973b464b84eee7aeb", "sha256": "8c9f7217aabf0007559a48f4d222448e94b5e71bf27c60f3217ff2e960414617" }, "downloads": -1, "filename": "ksylint-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7f75c279bfbf95e973b464b84eee7aeb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8822, "upload_time": "2019-09-29T08:49:49", "url": "https://files.pythonhosted.org/packages/b1/5d/784a73448da252cdadec5511c5ed60614ad1bccdf5c875765097e4513126/ksylint-0.2.1.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9e8844d3b519057c30886a0139e3090c", "sha256": "d0b8cff164921540372cfb917920f8e4b9abf966a1e47b0a4997907aaaf675eb" }, "downloads": -1, "filename": "ksylint-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e8844d3b519057c30886a0139e3090c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 20552, "upload_time": "2019-09-30T23:03:36", "url": "https://files.pythonhosted.org/packages/9d/7b/010bc69de4aa7ea91b43aec203000d784e483651234dceeea82061982132/ksylint-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a793ce1ea0be76bc9bb2a031ba99aa9d", "sha256": "a7bfecca71899d81ad1ccd36b01ec54fcbed5dcb3f6b429782c27b14f75dd6fb" }, "downloads": -1, "filename": "ksylint-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a793ce1ea0be76bc9bb2a031ba99aa9d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8608, "upload_time": "2019-09-30T23:03:38", "url": "https://files.pythonhosted.org/packages/f4/9f/5a23c75c0663c61dd66d96350fe9daac7038fa03499ba2ee2c4e4ceac4e4/ksylint-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9e8844d3b519057c30886a0139e3090c", "sha256": "d0b8cff164921540372cfb917920f8e4b9abf966a1e47b0a4997907aaaf675eb" }, "downloads": -1, "filename": "ksylint-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9e8844d3b519057c30886a0139e3090c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 20552, "upload_time": "2019-09-30T23:03:36", "url": "https://files.pythonhosted.org/packages/9d/7b/010bc69de4aa7ea91b43aec203000d784e483651234dceeea82061982132/ksylint-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a793ce1ea0be76bc9bb2a031ba99aa9d", "sha256": "a7bfecca71899d81ad1ccd36b01ec54fcbed5dcb3f6b429782c27b14f75dd6fb" }, "downloads": -1, "filename": "ksylint-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a793ce1ea0be76bc9bb2a031ba99aa9d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8608, "upload_time": "2019-09-30T23:03:38", "url": "https://files.pythonhosted.org/packages/f4/9f/5a23c75c0663c61dd66d96350fe9daac7038fa03499ba2ee2c4e4ceac4e4/ksylint-0.3.1.tar.gz" } ] }