{ "info": { "author": "Jan Dillenberger", "author_email": "jdillenberger@uni-koblenz.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# jMatch\n\njMatch is a *testsuite* for `JSON/YAML` files. It allows you to check these\nfiles against a specification based on defined patterns. This is useful if you\nneed to check lots of JSON files or if you want to check your JSON files in a\ncontinuous integration pipeline.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Support](#support)\n\n## Installation\n\n### Install via PIP\n\nMake sure, you have `python3` with `pip` installed. Use `pip` to install jMatch\nin your shell as follows:\n\n```sh\npip install jmatch\n```\n\n## Usage\n\nAs soon as jMatch is installed, it is used to check `JSON/YAML` documents\nagainst a predefined specification. jMatch uses `JSON/YAML` to define\nspecification options as a search pattern.\n\n### Example Specification Pattern\n\n**Example usecase:** Imagine, a bunch of JSON-formated config files, all of those\nconfig files should specify the same text-encoding (*UTF-8*) to make sure that\nall systems interoperate correctly.\n\n**Solution:** To implement a solution for the given usecase, another\nJSON-document needs to be specified, which contains at least the following data\nconcerning the given problem.\n\n - **type:** `info` or `error`\n - **message:** *A message to print if the pattern matches*\n - **pattern:** *An info or error case pattern that is searched in the document to check.*\n\n```javascript\n[{\n \"_type\": \"error\",\n \"_message\": \"The encoding should be UTF-8, but it is not.\",\n \"_pattern\": {\n \"encoding\": {\"_not\": \"UTF-8\"}\n }\n}]\n```\n\nWe want to mark the problem as critical, we use the error type. If used in a\nCI-pipeline, the type `error` forces the Pipeline to fail, if the pattern\nmatches. For the pattern we want to search for a encoding, with a value\ndifferent from *UTF-8*.\n\n### Check if the pattern exists in a JSON document\n\nIf we want to check a `configfile.json` file if it matches our\n`check-encoding-utf8.json`. We can perform the following operation, assuming\nthat both files are in our current working directory:\n\n```sh\njmatch --target configfile.json check-encoding-utf8.json\n```\n\nIf the configfile contains the pattern specified in `check-encoding-utf8.json`, the\n`_message` specified is displayed.\n\n#### Check for multiple patterns at once\n\njMatch allows to check many patterns at once, therefore all pattern files must\nbe provided when running jMatch.\n\n```sh\njmatch --target configfile.json pattern1.json pattern2.json [...]\n```\n\nTo provide multiple pattern files for jMatch, wildcard expressions can be used,\nto specify many pattern files easily:\n\n```sh\njmatch --target hello.json pattern*.json\n```\n\n#### Flags\n\nThere are many different flags which change jMatchs default behavior. You can\nuse the `--help` flag to show all available options.\n\n## Support\n\nPlease [open an issue](https://gitlab.rlp.net/jdillenberger/jmatch/issues/new) for support.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.rlp.net/jdillenberger/jmatch", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "jmatch", "package_url": "https://pypi.org/project/jmatch/", "platform": "", "project_url": "https://pypi.org/project/jmatch/", "project_urls": { "Bug Reports": "https://gitlab.rlp.net/jdillenberger/jmatch/issues/new", "Homepage": "https://gitlab.rlp.net/jdillenberger/jmatch", "Source": "https://gitlab.rlp.net/jdillenberger/jmatch" }, "release_url": "https://pypi.org/project/jmatch/0.4/", "requires_dist": [ "requests", "termcolor", "pyyaml" ], "requires_python": ">=3.*", "summary": "Simple test-suite for json/yaml files, optimized for CI pipelines.", "version": "0.4" }, "last_serial": 5765462, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "cf06576c92676e159ed89a465cc17d6d", "sha256": "2f83bbbc5b9ce736ae9c1ad833c9835a4eeffa8f0ef8ca771a5d650f324b7082" }, "downloads": -1, "filename": "jmatch-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cf06576c92676e159ed89a465cc17d6d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 3238, "upload_time": "2019-08-22T17:52:33", "url": "https://files.pythonhosted.org/packages/c1/93/69745f889eed32fab9443209c29a47a26af5eac7e24690ce2ab431ea4758/jmatch-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63721bec7cc9d28a13992eec33aa7adc", "sha256": "3c116c8e3317168ac05969a2ba6331de763b466bb3d87a63c657cf8cef16e922" }, "downloads": -1, "filename": "jmatch-0.1.1.tar.gz", "has_sig": false, "md5_digest": "63721bec7cc9d28a13992eec33aa7adc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 5238, "upload_time": "2019-08-22T17:52:34", "url": "https://files.pythonhosted.org/packages/cc/f9/55ef9973724dc5d5572b7198c96981d4737684b0f7139fe8615920240a65/jmatch-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "07e74b7f50a917eaa4836a664d9d29b5", "sha256": "91b8ada0b7184ab5d71bae0c11f63e6eb8d9b042927af39102d047f4f6ce794f" }, "downloads": -1, "filename": "jmatch-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "07e74b7f50a917eaa4836a664d9d29b5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 3175, "upload_time": "2019-08-23T16:38:08", "url": "https://files.pythonhosted.org/packages/90/12/4b0a41cb946d6efbd5011c87d1ead54429bb3497d9202add3a7decad5844/jmatch-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c5e973913d7e764300876d4c1b86607", "sha256": "31d1a4bc663ff1132d9db3500be68f28a9139e713393fac80eaca12de91a310a" }, "downloads": -1, "filename": "jmatch-0.1.2.tar.gz", "has_sig": false, "md5_digest": "3c5e973913d7e764300876d4c1b86607", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 5714, "upload_time": "2019-08-23T16:38:10", "url": "https://files.pythonhosted.org/packages/33/88/ffcf8d16412573d5fd80d903fc36b55d2d634e0d6aab43d81123cf1f32ff/jmatch-0.1.2.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "6bf96ef4c0c75b1619424987eb0e93eb", "sha256": "1046ae749503eee0cc912bfa5a97b7bf4e91d697f6efe4a147c9096b41d4432b" }, "downloads": -1, "filename": "jmatch-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6bf96ef4c0c75b1619424987eb0e93eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 3928, "upload_time": "2019-08-27T09:38:51", "url": "https://files.pythonhosted.org/packages/52/46/e84f8c379132a0d9226c9c9bbbac12f5f3e6805509d1384f2f7ac52af922/jmatch-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0487529d1767c63682e6dc69ba76b183", "sha256": "9034c5358931e730bd2b0010e28e0bbabfa578722f58b526f123fa2105ed534f" }, "downloads": -1, "filename": "jmatch-0.2.tar.gz", "has_sig": false, "md5_digest": "0487529d1767c63682e6dc69ba76b183", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 7382, "upload_time": "2019-08-27T09:38:52", "url": "https://files.pythonhosted.org/packages/e2/23/b2fe6776e6ed3e27b77f19f38959ac10c3c3f8c08cf9805b4fe0636a451d/jmatch-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "244fd6a2cf8a13b922bdea22baedd4ce", "sha256": "3bf2bc9ff4e883a37564f99efec87c81861d7d50073bc5f2e573a19d2685a431" }, "downloads": -1, "filename": "jmatch-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "244fd6a2cf8a13b922bdea22baedd4ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 4263, "upload_time": "2019-08-28T18:18:41", "url": "https://files.pythonhosted.org/packages/db/9d/45b56f79f274f84a0ade185a982c672512c1762ec1eadcf398db56995a5d/jmatch-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "611c18dd1728e8ee29745b6ea69209b2", "sha256": "07de1d6b245095f34ba98de012b99ac9a5201ee6e1ae7229283e513b56f36110" }, "downloads": -1, "filename": "jmatch-0.2.1.tar.gz", "has_sig": false, "md5_digest": "611c18dd1728e8ee29745b6ea69209b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 8311, "upload_time": "2019-08-28T18:18:42", "url": "https://files.pythonhosted.org/packages/8e/f5/d497fb2950d716ae6383fe4a1b3051b69fcea4227ad95ab7339cf8f12cf2/jmatch-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "2e905ca207313b53b0cf9c122b8674d6", "sha256": "df58a86cb5afda7708beaea45989f9c30b4ec701113979b77780b7047495d633" }, "downloads": -1, "filename": "jmatch-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "2e905ca207313b53b0cf9c122b8674d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 4695, "upload_time": "2019-08-29T15:11:10", "url": "https://files.pythonhosted.org/packages/4b/b8/9008a45eb1e96c6b36bf2fab4882833e7009d1978f8071dca3cec6fda318/jmatch-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c62cfffe1324bbd1308405d67de685a4", "sha256": "1f5858d76c1c3f91601244281b9bc5e2dfdf2311c4c941bfee40ba5f2deef69d" }, "downloads": -1, "filename": "jmatch-0.3.tar.gz", "has_sig": false, "md5_digest": "c62cfffe1324bbd1308405d67de685a4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 10123, "upload_time": "2019-08-29T15:11:12", "url": "https://files.pythonhosted.org/packages/73/08/4ecde5808fd048e933925265f4a85f06e1d2cbdd1a5fce13a51776fe61d3/jmatch-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5d80ad6777fff09bb8ffc31bd71cec78", "sha256": "e90ca637b27b74ea9e2b7ad6f85f534ea5fea4555ead3e7c3aa7db4e71623d26" }, "downloads": -1, "filename": "jmatch-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5d80ad6777fff09bb8ffc31bd71cec78", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 4726, "upload_time": "2019-08-30T15:00:18", "url": "https://files.pythonhosted.org/packages/0e/8d/88230fac4d1961d2900ce8f3dc332a2a0d10113053fef7c9f265d821362a/jmatch-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f163f213f4b06783a566927273855e34", "sha256": "e503de1e176c40bebdbf7c42b32358529c4e842d2c6df9b6845a8f352cd95ddc" }, "downloads": -1, "filename": "jmatch-0.3.1.tar.gz", "has_sig": false, "md5_digest": "f163f213f4b06783a566927273855e34", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 10368, "upload_time": "2019-08-30T15:00:20", "url": "https://files.pythonhosted.org/packages/fa/da/8b61315c66b311115b16cea3debb7d128f2c1edbb04cb19aa65feef69226/jmatch-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "0f5ef0f3561427b6bd8ef99427c4b78f", "sha256": "a24ea0dbdbd9bce1d426e088e962a6d1d857226e7d74975f18b54ddbbe5f0f30" }, "downloads": -1, "filename": "jmatch-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0f5ef0f3561427b6bd8ef99427c4b78f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 4912, "upload_time": "2019-08-31T22:35:35", "url": "https://files.pythonhosted.org/packages/b9/41/ca657fb02cb1b5e01a415b7833cc3ad9f8ecfe88c683a897372755f6985f/jmatch-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be9682a275055e7d7eab9a63082ca954", "sha256": "042cda5fafbbd8633d4d9d6a6f41dfa8e776d62c065b3d6d212e9f3140263f8a" }, "downloads": -1, "filename": "jmatch-0.4.tar.gz", "has_sig": false, "md5_digest": "be9682a275055e7d7eab9a63082ca954", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 11412, "upload_time": "2019-08-31T22:35:36", "url": "https://files.pythonhosted.org/packages/71/d9/d6147c3d5435dad472fe2dfb554178a557f7d6f5fd8d8b8d0075398f9d2c/jmatch-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f5ef0f3561427b6bd8ef99427c4b78f", "sha256": "a24ea0dbdbd9bce1d426e088e962a6d1d857226e7d74975f18b54ddbbe5f0f30" }, "downloads": -1, "filename": "jmatch-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "0f5ef0f3561427b6bd8ef99427c4b78f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.*", "size": 4912, "upload_time": "2019-08-31T22:35:35", "url": "https://files.pythonhosted.org/packages/b9/41/ca657fb02cb1b5e01a415b7833cc3ad9f8ecfe88c683a897372755f6985f/jmatch-0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be9682a275055e7d7eab9a63082ca954", "sha256": "042cda5fafbbd8633d4d9d6a6f41dfa8e776d62c065b3d6d212e9f3140263f8a" }, "downloads": -1, "filename": "jmatch-0.4.tar.gz", "has_sig": false, "md5_digest": "be9682a275055e7d7eab9a63082ca954", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.*", "size": 11412, "upload_time": "2019-08-31T22:35:36", "url": "https://files.pythonhosted.org/packages/71/d9/d6147c3d5435dad472fe2dfb554178a557f7d6f5fd8d8b8d0075398f9d2c/jmatch-0.4.tar.gz" } ] }