{ "info": { "author": "Pablo Cabezas", "author_email": "pabcabsal@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "Fistro\n======\n\n.. image:: https://img.shields.io/pypi/v/fistro.svg\n :target: https://pypi.org/project/fistro/\n\n.. image:: https://img.shields.io/pypi/pyversions/fistro.svg\n :target: https://pypi.org/project/fistro/\n\n.. image:: https://img.shields.io/circleci/project/github/kingoodie/fistro.svg\n :target: https://circleci.com/gh/kingoodie/fistro\n\n.. image:: https://codecov.io/gh/kingoodie/fistro/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/kingoodie/fistro\n\nA fixture generator based on type annotations.\n\nExamples\n--------\n\n>>> from dataclasses import dataclass\n>>> from datetime import datetime, date\n>>> from typing import List\n>>>\n>>> from fistro.fistro import generate\n>>>\n>>>\n>>> @dataclass\n>>> class Employee:\n>>> id: int\n>>> birthday: date\n>>> last_access: datetime\n>>> password: str\n>>> number_plates: List[int]\n>>> name: str = 'Carlos S\u00c3\u00a1nchez'\n>>>\n>>>\n>>> employee = generate(Employee)()\n>>> print(employee)\n\nIt will show something like this:\n\n>>> Employee(id=5809893100, birthday=datetime.date(559, 3, 6), last_access=datetime.datetime(1053, 8, 29, 19, 11, 14), password=\"iFZ>?)V0'\", number_plates=[85863115, 3528889142, 2818728907, 6043092538, 4985672707], name='Carlos S\u00c3\u00a1nchez')\n\nAnother useful functions are `generate_from_json` and `get_class_body_from_annotations`:\n\n>>> from json import loads\n>>>\n>>> from fistro.fistro import generate_from_json, get_class_body_from_annotations\n>>>\n>>> specific_str = \"\"\"{\n>>> \"_id\": \"5ae09b3947467b00111e7bf6\",\n>>> \"localExposure\": 0,\n>>> \"answer\": \"mitigate\",\n>>> \"idRisk\": \"5ae09b3947467b00111e7bf6\",\n>>> \"version\": 4,\n>>> \"country\": \"BR\",\n>>> \"company\": \"0185\",\n>>> \"currency\": \"BRL\",\n>>> \"zone\": \"DIRT8\",\n>>> \"internalRef\": \"RSP-BR-0185-DIRT8-105\",\n>>> \"creationDate\": \"2017-12-13T23:00:00.000Z\",\n>>> \"title\": \"Tribut\u00c3\u00a1rio: Contribui\u00c3\u00a7\u00c3\u00b5es Previdenci\u00c3\u00a1rias sobre Plano de Stock Options\",\n>>> \"riskCategory\": {\n>>> \"es\": \"22. Contingencias tributarias\",\n>>> \"en\": \"22. Tax contingencies\",\n>>> \"pt\": \"22. Conting\u00c3\u00aancias Fiscais\"\n>>> },\n>>> \"evaluationType\": \"quantitative\",\n>>> \"basicRef\": \"26376309-2cc2-4a0d-9c6a-373e0a7d9043\",\n>>> \"localQUANTITATIVENetCASHFLOW\": 0,\n>>> \"euroQUANTITATIVENetCASHFLOW\": 0,\n>>> \"localQUANTITATIVEGrossCASHFLOW\": 241000000,\n>>> \"euroQUANTITATIVEGrossCASHFLOW\": 57324742,\n>>> \"probability\": \"veryPossible\",\n>>> \"status\": \"open\",\n>>> \"commissionApproval\": false,\n>>> \"companyRegistry\": true,\n>>> \"companyCode\": \"0185\",\n>>> \"IDNotification\": \"0aa0370e-e6d6-405c-a619-a47da0602dee\",\n>>> \"localQUANTITATIVEGrossOIBDA\": 241000000,\n>>> \"localQUANTITATIVEGrossCAPEX\": 0,\n>>> \"localQUANTITATIVENetOIBDA\": 0,\n>>> \"localQUANTITATIVENetCAPEX\": 0,\n>>> \"euroQUANTITATIVEGrossOIBDA\": 57324742,\n>>> \"euroQUANTITATIVEGrossCAPEX\": 0,\n>>> \"euroQUANTITATIVENetOIBDA\": 0,\n>>> \"euroQUANTITATIVENetCAPEX\": 0,\n>>> \"hierarchy\": \"principal\",\n>>> \"hierarchySubsidiaries\": [],\n>>> \"owner\": \"Vasco Gruber\"\n>>> }\"\"\"\n>>>\n>>> specific_json = loads(specific_str)\n>>>\n>>> the_class = generate_from_json(specific_json)\n>>> print(get_class_body_from_annotations(the_class.__annotations__))\n\nIt will print:\n\n>>> _id: str\n>>> localExposure: int\n>>> answer: str\n>>> idRisk: str\n>>> version: int\n>>> country: str\n>>> company: str\n>>> currency: str\n>>> zone: str\n>>> internalRef: str\n>>> creationDate: str\n>>> title: str\n>>> riskCategory: typing.Dict[str, str]\n>>> evaluationType: str\n>>> basicRef: str\n>>> localQUANTITATIVENetCASHFLOW: int\n>>> euroQUANTITATIVENetCASHFLOW: int\n>>> localQUANTITATIVEGrossCASHFLOW: int\n>>> euroQUANTITATIVEGrossCASHFLOW: int\n>>> probability: str\n>>> status: str\n>>> commissionApproval: bool\n>>> companyRegistry: bool\n>>> companyCode: str\n>>> IDNotification: str\n>>> localQUANTITATIVEGrossOIBDA: int\n>>> localQUANTITATIVEGrossCAPEX: int\n>>> localQUANTITATIVENetOIBDA: int\n>>> localQUANTITATIVENetCAPEX: int\n>>> euroQUANTITATIVEGrossOIBDA: int\n>>> euroQUANTITATIVEGrossCAPEX: int\n>>> euroQUANTITATIVENetOIBDA: int\n>>> euroQUANTITATIVENetCAPEX: int\n>>> hierarchy: str\n>>> hierarchySubsidiaries: typing.List[typing.Any]\n>>> owner: str\n\nInstallation\n------------\n\n>>> pip install fistro\n\n\nCredits\n--------\nIn memoriam of `Chiquito de la Calzada `_.", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kingoodie/fistro", "keywords": "fixture,testing,tool,dataclasses,annotations", "license": "MIT", "maintainer": "Pablo Cabezas", "maintainer_email": "pabcabsal@gmail.com", "name": "fistro", "package_url": "https://pypi.org/project/fistro/", "platform": "", "project_url": "https://pypi.org/project/fistro/", "project_urls": { "Homepage": "https://github.com/kingoodie/fistro" }, "release_url": "https://pypi.org/project/fistro/0.2.1/", "requires_dist": null, "requires_python": ">=3.7.0,<3.8.0", "summary": "A fixture generator based on type annotations.", "version": "0.2.1" }, "last_serial": 4304719, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "05d2feddb2aebf671e73d0a25bdaf488", "sha256": "ef8ba06347681461a9ff0ed549556798f2a6017fcde032dfaa1928f5b4f0a2ed" }, "downloads": -1, "filename": "fistro-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "05d2feddb2aebf671e73d0a25bdaf488", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0,<3.8.0", "size": 7638, "upload_time": "2018-07-30T19:55:23", "url": "https://files.pythonhosted.org/packages/86/cf/598f2f518d4f80dc60b1ce0e986b664464f7290607318c21ca8289884002/fistro-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b95b8f8ec02d9de5d8bd2746873d650", "sha256": "be218c4a52d84495e6a9efafdd97927708f130cd1ef4b04a33f93066ea3ffd54" }, "downloads": -1, "filename": "fistro-0.1.0.tar.gz", "has_sig": false, "md5_digest": "8b95b8f8ec02d9de5d8bd2746873d650", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0,<3.8.0", "size": 2674, "upload_time": "2018-07-30T19:55:24", "url": "https://files.pythonhosted.org/packages/cf/61/059c86c9aba28c4508c003f89e7be9e363d5d189ccf80977d6d9815f22c7/fistro-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f84741cd50fe90ef3b123a99fe779d1b", "sha256": "743858c336fc49feffeaaa4f4699e3a837a12db68ff8174cf74c16fdb15256b8" }, "downloads": -1, "filename": "fistro-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f84741cd50fe90ef3b123a99fe779d1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0,<3.8.0", "size": 9616, "upload_time": "2018-08-01T06:57:17", "url": "https://files.pythonhosted.org/packages/89/5a/f724c18aa2899c91532ddc5a55bb484eb94b43639ecc0b987793e4e56920/fistro-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7637dd808e305d83317dfd2241b5ff85", "sha256": "9e64275c2f6c7d19c74be6579ce82fdcf6bba82623b227e7b827876d2258083a" }, "downloads": -1, "filename": "fistro-0.1.1.tar.gz", "has_sig": false, "md5_digest": "7637dd808e305d83317dfd2241b5ff85", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0,<3.8.0", "size": 4261, "upload_time": "2018-08-01T06:57:18", "url": "https://files.pythonhosted.org/packages/77/39/b60cdf738a2a63a211f575fe51300eeeba5805d017ea0a48847c2b7420c7/fistro-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "287de0a6b572a3e313d8598c523d4cd3", "sha256": "129b2aff0bafac5625bfd0b38faf930d67c0270ae46b2c9d0e33936234d17bcf" }, "downloads": -1, "filename": "fistro-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "287de0a6b572a3e313d8598c523d4cd3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0,<3.8.0", "size": 13848, "upload_time": "2018-08-03T09:10:41", "url": "https://files.pythonhosted.org/packages/4e/83/2fdd0051be3fe6902a7b8551389820fec2c975174ddaddd50ece403223e9/fistro-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1a8aecfb04ba846e177bbd275046c1a", "sha256": "95f459a09d9487f2594ac15eb9f90ebd9ce8693713e3ee77fdfb5d22200574f2" }, "downloads": -1, "filename": "fistro-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c1a8aecfb04ba846e177bbd275046c1a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0,<3.8.0", "size": 5234, "upload_time": "2018-08-03T09:10:42", "url": "https://files.pythonhosted.org/packages/c1/20/3d89a453f0f1e3e5d992fc519feefcbd83396c2570d933bb5064a6413dc2/fistro-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1603c4c20d31c0b60a557093c37ef5fb", "sha256": "c1ed50855cbb749463e1374f1c497eb907fa98a978c4338781705a650429238f" }, "downloads": -1, "filename": "fistro-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1603c4c20d31c0b60a557093c37ef5fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0,<3.8.0", "size": 15394, "upload_time": "2018-09-24T13:31:33", "url": "https://files.pythonhosted.org/packages/bf/69/9cc4486aee45ae844372688e6eeb626a131dbde11a5ba7bffb54372031d1/fistro-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d5c1b7fd419719801370bf142c873b4", "sha256": "b882afce73b899d36e5143700b0171b4b78ba5ab7fbfd5e8ea44dfe1f2c14f50" }, "downloads": -1, "filename": "fistro-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4d5c1b7fd419719801370bf142c873b4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0,<3.8.0", "size": 6862, "upload_time": "2018-09-24T13:31:35", "url": "https://files.pythonhosted.org/packages/78/36/711b674859ab917a42721be63d36bb5183ef277dcfd08fa7b28fb7090351/fistro-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1603c4c20d31c0b60a557093c37ef5fb", "sha256": "c1ed50855cbb749463e1374f1c497eb907fa98a978c4338781705a650429238f" }, "downloads": -1, "filename": "fistro-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1603c4c20d31c0b60a557093c37ef5fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7.0,<3.8.0", "size": 15394, "upload_time": "2018-09-24T13:31:33", "url": "https://files.pythonhosted.org/packages/bf/69/9cc4486aee45ae844372688e6eeb626a131dbde11a5ba7bffb54372031d1/fistro-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4d5c1b7fd419719801370bf142c873b4", "sha256": "b882afce73b899d36e5143700b0171b4b78ba5ab7fbfd5e8ea44dfe1f2c14f50" }, "downloads": -1, "filename": "fistro-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4d5c1b7fd419719801370bf142c873b4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7.0,<3.8.0", "size": 6862, "upload_time": "2018-09-24T13:31:35", "url": "https://files.pythonhosted.org/packages/78/36/711b674859ab917a42721be63d36bb5183ef277dcfd08fa7b28fb7090351/fistro-0.2.1.tar.gz" } ] }