{ "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": "## yamliz\n\nPython's 3.7 dataclasses got maried with pyyaml.\n\n## Installation:\n```sh\npip install yamliz\n```\n\n## Usage example:\n\n```py\nimport dataclasses\nimport yamliz\nfrom yamliz import fields\n\n@dataclasses.dataclass\nclass Some(yamliz.Able):\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": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "yamliz", "package_url": "https://pypi.org/project/yamliz/", "platform": "", "project_url": "https://pypi.org/project/yamliz/", "project_urls": { "Homepage": "https://gitlab.com/kamichal/yamliz" }, "release_url": "https://pypi.org/project/yamliz/0.1.2/", "requires_dist": [ "pyyaml (==5.*)" ], "requires_python": ">=3.7", "summary": "Dataclasses married with yaml.", "version": "0.1.2" }, "last_serial": 5706339, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "499d5043a02ed7516057d3eab9ada26b", "sha256": "b46a904bce40c058f01a3802dc538b6a4536a0ec03a293947906c8fd0a4142fb" }, "downloads": -1, "filename": "yamliz-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "499d5043a02ed7516057d3eab9ada26b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 13247, "upload_time": "2019-08-21T00:09:07", "url": "https://files.pythonhosted.org/packages/92/f8/9ea780d407553017a1120e07dfbb7237e9edd0877b7a78f1afc817b1d34a/yamliz-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bacd5276ce0b38917e5307ae87b74f20", "sha256": "f191d409c9d7aa8bf141c5179d7b1c2bdff3c98b75befdb73dda6c10b133b8e3" }, "downloads": -1, "filename": "yamliz-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bacd5276ce0b38917e5307ae87b74f20", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 5745, "upload_time": "2019-08-21T00:25:11", "url": "https://files.pythonhosted.org/packages/2d/40/28a6c9d8b622b644a9fccf321a50008f99017e831d8a171d66ec9946e978/yamliz-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "499d5043a02ed7516057d3eab9ada26b", "sha256": "b46a904bce40c058f01a3802dc538b6a4536a0ec03a293947906c8fd0a4142fb" }, "downloads": -1, "filename": "yamliz-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "499d5043a02ed7516057d3eab9ada26b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 13247, "upload_time": "2019-08-21T00:09:07", "url": "https://files.pythonhosted.org/packages/92/f8/9ea780d407553017a1120e07dfbb7237e9edd0877b7a78f1afc817b1d34a/yamliz-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bacd5276ce0b38917e5307ae87b74f20", "sha256": "f191d409c9d7aa8bf141c5179d7b1c2bdff3c98b75befdb73dda6c10b133b8e3" }, "downloads": -1, "filename": "yamliz-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bacd5276ce0b38917e5307ae87b74f20", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 5745, "upload_time": "2019-08-21T00:25:11", "url": "https://files.pythonhosted.org/packages/2d/40/28a6c9d8b622b644a9fccf321a50008f99017e831d8a171d66ec9946e978/yamliz-0.1.2.tar.gz" } ] }