{ "info": { "author": "okay", "author_email": "okay.zed+pltpy@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "## plait.py\n\nplait.py is a program for generating fake data from composable yaml templates.\n\nThe idea behind plait.py is that it should be easy to model fake data that\nhas an interesting shape. Currently, many fake data generators model their data as a\ncollection of\n[IID](https://en.wikipedia.org/wiki/Independent_and_identically_distributed_random_variables)\nvariables; with plait.py we can stitch together those variables into a more\ncoherent model.\n\nsome example uses for plait.py are:\n\n* generating mock application data in test environments\n* validating the usefulness of statistical techniques\n* creating synthetic datasets for performance tuning databases\n\n### features\n\n* declarative syntax\n* use basic [faker.rb](https://github.com/stympy/faker) fields with #{} interpolators\n* sample and join data from CSV files\n* lambda expressions, switch and mixture fields\n* nested and composable templates\n* static variables and hidden fields\n\n### an example template\n\n # a person generator\n define:\n min_age: 10\n minor_age: 13\n working_age: 18\n\n fields:\n age:\n random: gauss(25, 5)\n # minimum age is $min_age\n finalize: max($min_age, value)\n\n gender:\n mixture:\n - value: M\n - value: F\n\n name: \"#{name.name}\"\n job:\n value: \"#{job.title}\"\n onlyif: this.age > $working_age\n\n address:\n template: address/usa.yaml\n phone: # add a phone if the person is older than the minor age\n template: device/phone.yaml\n onlyif: this.age > ${minor_age}\n\n # we model our height as a gaussian that varies based on\n # age and gender\n height:\n lambda: this._base_height * this._age_factor\n _base_height:\n switch:\n - onlyif: this.gender == \"F\"\n random: gauss(60, 5)\n - onlyif: this.gender == \"M\"\n random: gauss(70, 5)\n\n _age_factor:\n switch:\n - onlyif: this.age < 15\n lambda: 1 - (20 - (this.age + 5)) / 20\n - default:\n value: 1\n\n\n\n### how its different\n\nsome specific examples of what plait.py can do:\n\n* generate proportional populations using census data and CSVs\n* create realistic zipcodes by state, city or region (also using CSVs)\n* create a taxi trip dataset with a cost model based on geodistance\n* add seasonal patterns (daily, weekly, etc) to data\n\n## usage\n\n### installation\n\n # install with python\n pip install plaitpy\n\n # or with pypy\n pypy-pip install plaitpy\n\n### cloning the repo for development\n\n git clone https://github.com/plaitpy/plaitpy\n\n # get the fakerb repo\n git submodule init\n git submodule update\n\n### generating records from command line\n\nspecify a template as a yaml file, then generate records from that yaml file.\n\n # a simple example (if cloning plait.py repo)\n python main.py templates/timestamp/uniform.yaml\n\n # if plait.py is installed via pip\n plait.py templates/timestamp/uniform.yaml\n\n### generating records from API\n\n import plaitpy\n t = plaitpy.Template(\"templates/timestamp/uniform.yaml\")\n print t.gen_record()\n print t.gen_records(10)\n\n### looking up faker fields\n\nplait.py also simplifies looking up faker fields:\n\n # list faker namespaces\n plait.py --list\n # lookup faker namespaces\n plait.py --lookup name\n\n # lookup faker keys\n # (-ll is short for --lookup)\n plait.py --ll name.suffix\n\n## documentation\n\n### yaml file commands\n\n* see docs/FORMAT.md\n\n### datasets\n\n* see docs/EXAMPLES.md\n* also see templates/ dir\n\n### troubleshooting\n\n* see docs/TROUBLESHOOTING.md\n\n\n### Dependent Markov Processes\n\nTo simulate data that comes from many markov processes (a markov ecosystem),\nsee the [plaitpy-ipc](https://github.com/plaitpy/plaitpy-ipc) repository.\n\n### future direction\n\nIf you have ideas on features to add, open an issue - Feedback is appreciated!\n\n### License\n\n[MIT](https://github.com/plaitpy/plaitpy/blob/master/LICENSE.txt)", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/plaitpy/plaitpy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "plaitpy", "package_url": "https://pypi.org/project/plaitpy/", "platform": "", "project_url": "https://pypi.org/project/plaitpy/", "project_urls": { "Homepage": "http://github.com/plaitpy/plaitpy" }, "release_url": "https://pypi.org/project/plaitpy/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "a fake data generator", "version": "0.1.1" }, "last_serial": 3522580, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "729d16fce42ba91b8adc52b40ac4a1da", "sha256": "4174e7dfdde268d60fcfc56e4e5d34e5f32c28d74524942cb75078b7e4e6f658" }, "downloads": -1, "filename": "plaitpy-0.0.10.tar.gz", "has_sig": false, "md5_digest": "729d16fce42ba91b8adc52b40ac4a1da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1501597, "upload_time": "2018-01-07T20:51:40", "url": "https://files.pythonhosted.org/packages/6f/36/4a0aee56486e244af3c5e86c200747f38f99a1bfb86c7b1cced0b64a6966/plaitpy-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "64d11a3874947eb62dfc1cfcc2818958", "sha256": "3a329f0085c61835316d5bc4aa8c402ecbf692a3910144c9caeb2e87781262d8" }, "downloads": -1, "filename": "plaitpy-0.0.11.tar.gz", "has_sig": false, "md5_digest": "64d11a3874947eb62dfc1cfcc2818958", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1502357, "upload_time": "2018-01-09T20:01:02", "url": "https://files.pythonhosted.org/packages/f4/a1/a1fa680177fcb41c5a9289bb90b90fd82ff440f8f7531e8ef49c9d387523/plaitpy-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "aece1e8566f3b68dd7025622d18c5225", "sha256": "6c5a58d6324f419dfa59c2e0cdaed75aaf6d4627f71a83da50ad7118092b97f1" }, "downloads": -1, "filename": "plaitpy-0.0.12.tar.gz", "has_sig": false, "md5_digest": "aece1e8566f3b68dd7025622d18c5225", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1502312, "upload_time": "2018-01-10T20:48:39", "url": "https://files.pythonhosted.org/packages/21/39/7609456a1db0c90bf3f2cf7f622169e60f0c52ee3e54138be2636d1e828c/plaitpy-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "80ac7ae11afbf05fbd86417ad1d85d5a", "sha256": "8e0f8f59795a02f7b2c3fa01559f63f40dad6c64a39712464a50730cfe1765b6" }, "downloads": -1, "filename": "plaitpy-0.0.13.tar.gz", "has_sig": false, "md5_digest": "80ac7ae11afbf05fbd86417ad1d85d5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1502668, "upload_time": "2018-01-12T03:23:53", "url": "https://files.pythonhosted.org/packages/5d/45/e1774aa120e82c99f126806f2b1e282e35b2a2542e64c94b95fe6792d651/plaitpy-0.0.13.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "f1a5f4e0d1927a9a5d9a2726a82fa5a9", "sha256": "fdb77659de76c860bd3da65f2a69ce81433cabe71dbb77168cb00bc2ec5d5f8c" }, "downloads": -1, "filename": "plaitpy-0.0.3.tar.gz", "has_sig": false, "md5_digest": "f1a5f4e0d1927a9a5d9a2726a82fa5a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1498004, "upload_time": "2018-01-05T17:57:06", "url": "https://files.pythonhosted.org/packages/18/3a/1a49119669137f16884ec34a34101d5b618a26d0f0ccb59da478ae58681f/plaitpy-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "c50830146254912b6bb334d0303ecd06", "sha256": "66ae3937f89686a65b6e8abdb4dbb89808d25c00663e153f18d89ac14a9e099f" }, "downloads": -1, "filename": "plaitpy-0.0.4.tar.gz", "has_sig": false, "md5_digest": "c50830146254912b6bb334d0303ecd06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1498646, "upload_time": "2018-01-05T19:20:22", "url": "https://files.pythonhosted.org/packages/bb/ce/3ecb3b1ae04558b50d1fbff112fa1e8fc609d28ae39de1056f9e27ac6066/plaitpy-0.0.4.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "05c859ddf892d8e5034e38d814046dc6", "sha256": "1df447ef203cfd1bb3d248c990ece2d1a8880bfda5f28adec03365b86a981ecb" }, "downloads": -1, "filename": "plaitpy-0.0.6.tar.gz", "has_sig": false, "md5_digest": "05c859ddf892d8e5034e38d814046dc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1500129, "upload_time": "2018-01-06T00:49:26", "url": "https://files.pythonhosted.org/packages/0c/84/4df0e5621b33f205fa4073cc310543ea4dd23b23eb919fdbd9ad553e791a/plaitpy-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "5741004fb04f7a2965b489b8702477a5", "sha256": "93b9cefc760880017cbcc192b0128a545e0eb09fc9cb4b89970b50d97a7972d3" }, "downloads": -1, "filename": "plaitpy-0.0.7.tar.gz", "has_sig": false, "md5_digest": "5741004fb04f7a2965b489b8702477a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1500136, "upload_time": "2018-01-06T04:43:06", "url": "https://files.pythonhosted.org/packages/7e/48/305c46656daeed9329e5e4b2f8182b949c2c67de814a8fcc5a238795ec12/plaitpy-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "022bf3e9390ef19eed365f8f3979590a", "sha256": "f194c0b9f2d29e5c254724e0ad00867744e9836439543e2c8f74de012c3088c6" }, "downloads": -1, "filename": "plaitpy-0.0.8.tar.gz", "has_sig": false, "md5_digest": "022bf3e9390ef19eed365f8f3979590a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1501084, "upload_time": "2018-01-06T14:40:24", "url": "https://files.pythonhosted.org/packages/d5/2c/a1c656328427d8dea20e7e34585fc7cb201cb775d98cbc3fb5730d93b299/plaitpy-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "828d1c203919bd7818b901e41e504d87", "sha256": "d23ac5e19ac2a81809c85d7671a2c2cf83d4d2530e5dd14101d3fd510da6835a" }, "downloads": -1, "filename": "plaitpy-0.0.9.tar.gz", "has_sig": false, "md5_digest": "828d1c203919bd7818b901e41e504d87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1511204, "upload_time": "2018-01-07T18:25:48", "url": "https://files.pythonhosted.org/packages/75/7e/bb7555f240c23beb829ac596931d188119eef0781586242ebcd19e1534c5/plaitpy-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c94593dc9bf028c89e4b6344e1490f19", "sha256": "55f8dc1fb6991a6a95a7e920e1e79f5a41a3bf0d1da50ded3532579e9b98d2bb" }, "downloads": -1, "filename": "plaitpy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c94593dc9bf028c89e4b6344e1490f19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1504396, "upload_time": "2018-01-25T16:38:42", "url": "https://files.pythonhosted.org/packages/ef/e3/5e4b58a7a3497807953e63b9109b9ccf19675ad0e323ebff39da44679c36/plaitpy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1b6c11b1edd3416c5b685fc753cc58e7", "sha256": "68e441dbf7d77242a50916b964d4eaaf57eae82d42c3abee429f6936b421302a" }, "downloads": -1, "filename": "plaitpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1b6c11b1edd3416c5b685fc753cc58e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1504407, "upload_time": "2018-01-26T03:50:01", "url": "https://files.pythonhosted.org/packages/1a/75/ce9f39ebc18faad4da424ba5140668b15682a6115c7f4d75ef34b2fa361c/plaitpy-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1b6c11b1edd3416c5b685fc753cc58e7", "sha256": "68e441dbf7d77242a50916b964d4eaaf57eae82d42c3abee429f6936b421302a" }, "downloads": -1, "filename": "plaitpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1b6c11b1edd3416c5b685fc753cc58e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1504407, "upload_time": "2018-01-26T03:50:01", "url": "https://files.pythonhosted.org/packages/1a/75/ce9f39ebc18faad4da424ba5140668b15682a6115c7f4d75ef34b2fa361c/plaitpy-0.1.1.tar.gz" } ] }