{ "info": { "author": "Micha\u0142 Kaczmarczyk", "author_email": "michal.s.kaczmarczyk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "## matiz\n\nPython's 3.7 dataclasses got maried with pyyaml.\n\n## Installation:\n```sh\npip install matiz\n```\n\n## Usage example:\n\n```py\nimport dataclasses\nimport matiz\nfrom matiz import fields\n\n@dataclasses.dataclass\nclass Some(matiz.ObsoleteAble):\n id: int = fields.Integer()\n mac: str = fields.MacAddress()\n ip: str = fields.IPv4()\n version: int = fields.Integer(default=411)\n\n```\nNow the `Some` object can be created as a pure python object (thanks to `dataclass`)\nit is equipped with `__init__`, `__repr__`, `__eq__` and some other methods. \n\n```py\n>>> obj = Some(123, 'aa:bb:cc:11:22:33', '192.168.11.6')\n>>> obj\nSome(id=123, mac='aa:bb:cc:11:22:33', ip='192.168.11.6', version=411)\n\n>>> print(obj)\n!iz/Some\nid: 123\nip: 192.168.11.6\nmac: aa:bb:cc:11:22:33\nversion: 411\n```\n\nIt's attributes are regular python attributes:\n```py\n>>> obj.id\n123\n\n>>> obj.mac\n'aa:bb:cc:11:22:33'\n\n>>> obj.ip\n'192.168.11.6'\n\n>>> obj.version = 0 # can be assigned\n>>> print(repr(obj))\nInts(id=123, mac='aa:bb:cc:11:22:33', ip='192.168.11.6', version=0)\n```\n\nIt can be also deserialized from yaml directly to the custom object:\n\n```py\n>>> yaml_string = \"\"\"\n!iz/Some\nid: 22001\nip: 12.13.14.15\nmac: aa:bb:cc:11:22:33\nversion: 0\n\"\"\"\n\n>>> import yaml\n>>> obj2 = yaml.load(yaml_string, Loader=yaml.Loader)\n>>> repr(obj2)\nSome(id=22001, mac='aa:bb:cc:11:22:33', ip='12.13.14.15', version=0)\n\n```\n\n*To be further documented...*\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.com/kamichal/yamliz", "keywords": "dataclasses,dataclass,yang,validation,yaml,raw,binary,encoding,decoding", "license": "", "maintainer": "", "maintainer_email": "", "name": "matiz", "package_url": "https://pypi.org/project/matiz/", "platform": "", "project_url": "https://pypi.org/project/matiz/", "project_urls": { "Homepage": "https://gitlab.com/kamichal/yamliz" }, "release_url": "https://pypi.org/project/matiz/0.1.4/", "requires_dist": [ "pyyaml (==5.*)" ], "requires_python": ">=3.7", "summary": "Serves modern approach to data structures definition - with a minimal boilerplate.", "version": "0.1.4" }, "last_serial": 5765120, "releases": { "0.1.4": [ { "comment_text": "", "digests": { "md5": "0f40b75a5ff7a1eb019cf5b0743ac3a5", "sha256": "774cb8023ecdd1474aff5e73d2c648312aa2fed6687c4173bff9ee9119d9fc8d" }, "downloads": -1, "filename": "matiz-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f40b75a5ff7a1eb019cf5b0743ac3a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 22996, "upload_time": "2019-08-31T19:25:37", "url": "https://files.pythonhosted.org/packages/d6/7c/6f979b2374d534591e7c76b7211b03850613c88f36662b64862873395983/matiz-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f804158b8820acb518f741f4addd8744", "sha256": "3d4a229673b8726ac6fd362906374a1e6ed7b01f62cb53225af4328de75443cc" }, "downloads": -1, "filename": "matiz-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f804158b8820acb518f741f4addd8744", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 10600, "upload_time": "2019-08-31T19:25:40", "url": "https://files.pythonhosted.org/packages/41/7c/ac7ae46edb394e3781b2a908831b8c9d9a04c70387fbbab1dc02083f9398/matiz-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f40b75a5ff7a1eb019cf5b0743ac3a5", "sha256": "774cb8023ecdd1474aff5e73d2c648312aa2fed6687c4173bff9ee9119d9fc8d" }, "downloads": -1, "filename": "matiz-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f40b75a5ff7a1eb019cf5b0743ac3a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 22996, "upload_time": "2019-08-31T19:25:37", "url": "https://files.pythonhosted.org/packages/d6/7c/6f979b2374d534591e7c76b7211b03850613c88f36662b64862873395983/matiz-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f804158b8820acb518f741f4addd8744", "sha256": "3d4a229673b8726ac6fd362906374a1e6ed7b01f62cb53225af4328de75443cc" }, "downloads": -1, "filename": "matiz-0.1.4.tar.gz", "has_sig": false, "md5_digest": "f804158b8820acb518f741f4addd8744", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 10600, "upload_time": "2019-08-31T19:25:40", "url": "https://files.pythonhosted.org/packages/41/7c/ac7ae46edb394e3781b2a908831b8c9d9a04c70387fbbab1dc02083f9398/matiz-0.1.4.tar.gz" } ] }