{ "info": { "author": "Brian Cappello", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# Py YAML Fixtures\n\nA (*work-in-progress*) library for loading database fixtures written in [Jinja2](http://jinja.pocoo.org/)-templated YAML files. It comes with support for [faker](http://faker.readthedocs.io/en/master/) and relationships between fixture objects. Currently it works with the following packages:\n\n- Django 2+\n- Flask SQLAlchemy\n- Flask Unchained\n- Standalone SQLAlchemy\n\nRequires **Python 3.5+**\n\n## Useful Links\n\n* [Fork it on GitHub](https://github.com/briancappello/py-yaml-fixtures)\n* [Documentation](https://py-yaml-fixtures.readthedocs.io/en/latest/)\n* [PyPI](https://pypi.org/project/Py-YAML-Fixtures/)\n\n```bash\npip install py-yaml-fixtures\n```\n\n## Table of Contents\n\n* [Fixture File Syntax](https://github.com/briancappello/py-yaml-fixtures#fixture-file-syntax)\n * [Relationships](https://github.com/briancappello/py-yaml-fixtures#relationships)\n* [Faker and Jinja Templating](https://github.com/briancappello/py-yaml-fixtures#faker-and-jinja-templating)\n* [Installation](https://github.com/briancappello/py-yaml-fixtures#installation)\n * [Configuration](https://github.com/briancappello/py-yaml-fixtures#configuration)\n * [With Django](https://github.com/briancappello/py-yaml-fixtures#with-django)\n * [With Flask and Flask-SQLAlchemy](https://github.com/briancappello/py-yaml-fixtures#with-flask-and-flask-sqlalchemy)\n * [With Flask Unchained](https://github.com/briancappello/py-yaml-fixtures#with-flask-unchained)\n * [With Standalone SQLAlchemy](https://github.com/briancappello/py-yaml-fixtures#with-standalone-sqlalchemy)\n* [Contributing](https://github.com/briancappello/py-yaml-fixtures#contributing)\n * [Adding support for other ORMs](https://github.com/briancappello/py-yaml-fixtures#adding-support-for-other-orms)\n* [License](https://github.com/briancappello/py-yaml-fixtures#license)\n\n## Fixture File Syntax\n\nFirst, let's define some example models to work with:\n\n```python\nclass Parent(BaseModel):\n __tablename__ = 'parent'\n\n id = sa.Column(sa.Integer, primary_key=True)\n name = sa.Column(sa.String)\n children = relationship('Child', back_populates='parent')\n\nclass Child(BaseModel):\n __tablename__ = 'child'\n\n id = sa.Column(sa.Integer, primary_key=True)\n name = sa.Column(sa.String)\n parent_id = sa.Column(sa.Integer, sa.ForeignKey('parent.id'))\n parent = relationship('Parent', back_populates='children')\n```\n\nTo populate these models with fixtures data, you can either create a single `fixtures.yaml` file in your fixtures directory where the top-level keys are the model class names:\n\n```yaml\n# db/fixtures/fixtures.yaml\n\nChild:\n alice:\n name: Alice\n\n bob:\n name: Bob\n\n grace:\n name: Grace\n\n judy:\n name: Judy\n\nParent:\n parent1:\n name: Parent 1\n children: ['Child(alice)', 'Child(bob)']\n\n parent2:\n name: Parent 2\n children:\n - 'Child(grace)'\n - 'Child(judy)'\n```\n\nOr you can create YAML files named after each model's class name (`Parent` and `Child` in our case). For example:\n\n```yaml\n# db/fixtures/Child.yaml\n\nalice:\n name: Alice\n\nbob:\n name: Bob\n\ngrace:\n name: Grace\n\njudy:\n name: Judy\n```\n\n```yaml\n# db/fixtures/Parent.yaml\n\nparent1:\n name: Parent 1\n children: ['Child(alice)', 'Child(bob)']\n\nparent2:\n name: Parent 2\n children:\n - 'Child(grace)'\n - 'Child(judy)'\n```\n\n### Relationships\n\nThe top-level YAML keys (`alice`, `bob`, `grace`, `judy`, `parent1`, `parent2`) are unique ids used to reference objects in relationships. They must be unique across *all* model fixtures.\n\nTo reference them, we use an *identifier string*. An identifier string consists of two parts: the class name, and one or more ids. For singular relationships the notation is `'ModelClassName(id)'`. For the many-side of relationships, the notation is the same, just combined with YAML's list syntax:\n\n```yaml\n# db/fixtures/Parent.yaml\n\nparent1:\n name: Parent 1\n children: ['Child(alice)', 'Child(bob)']\n\nparent2:\n name: Parent 2\n children:\n - 'Child(grace)'\n - 'Child(judy)'\n\n# or in short-hand notation\nparent3:\n name: Parent 3\n children: ['Child(alice, bob)']\n\n# technically, as long as there are at least 2 ids in the identifier string,\n# then even the YAML list syntax is optional, and you can write stuff like this:\nparent4:\n name: Parent 4\n children: Child(alice, bob)\n\n# or spanning multiple lines:\nparent5:\n name: Parent 5\n children: >\n Child(\n grace,\n judy,\n )\n```\n\n## Faker and Jinja Templating\n\nAll of the YAML fixtures files are rendered by Jinja before getting loaded. This means you have full access to the Jinja environment, and can use things like `faker`, `range` and `random`:\n\n```jinja2\n# db/fixtures/Child.yaml\n\n{% for i in range(0, 20) %}\nchild{{ i }}:\n name: {{ faker.name() }}\n{% endfor %}\n```\n\n```jinja2\n# db/fixtures/Parent.yaml\n\n{% for i in range(0, 10) %}\nparent{{ i }}:\n name: {{ faker.name() }}\n children: {{ random_models('Child', 0, range(0, 4)|random) }}\n{% endfor %}\n```\n\nThere are also two included Jinja helper functions:\n\n* `random_model(model_name: str)`\n - For example, to get one random `Child` model: `{{ random_model('Child') }}`\n* `random_models(model_name: str, min_count: int = 0, max_count: int = 3)`\n - For example, to get a list of 0 to 3 `Child` models: `{{ random_models('Child') }}`\n - For example, to get a list of 1 to 4 `Child` models: `{{ random_models('Child', 1, 4) }}`\n\n## Installation\n\n```bash\n# to use with django\npip install py-yaml-fixtures[django]\n\n# to use with flask-sqlalchemy\npip install py-yaml-fixtures[flask-sqlalchemy]\n\n# to use with flask-unchained\npip install py-yaml-fixtures[flask-unchained]\n\n# to use with standalone sqlalchemy\npip install py-yaml-fixtures[sqlalchemy]\n```\n\n### Configuration\n\n* [With Django](https://github.com/briancappello/py-yaml-fixtures#with-django)\n* [With Flask and Flask-SQLAlchemy](https://github.com/briancappello/py-yaml-fixtures#with-flask-and-flask-sqlalchemy)\n* [With Flask Unchained](https://github.com/briancappello/py-yaml-fixtures#with-flask-unchained)\n* [With Standalone SQLAlchemy](https://github.com/briancappello/py-yaml-fixtures#with-standalone-sqlalchemy)\n\n#### With Django\n\nAdd `py_yaml_fixtures` to your `settings.INSTALLED_APPS`.\n\nThe `py_yaml_fixtures` app adds one command: `manage.py import_fixtures`. It looks for fixture files in every app configured in your `settings.INSTALLED_APPS` that has a `fixtures` folder. For example:\n\n```bash\n# example folder structure:\n\n# app\nproject-root/app/fixtures/\nproject-root/app/fixtures/ModelOne.yaml\n\n# blog\nproject-root/blog/fixtures/\nproject-root/blog/fixtures/ModelTwo.yaml\n\n# auth\nproject-root/auth/fixtures/\nproject-root/auth/fixtures/ModelThree.yaml\nproject-root/auth/fixtures/ModelFour.yaml\n```\n\n```python\n# project-root/app/settings.py\n\nINSTALLED_APPS = [\n # ...\n 'py_yaml_fixtures',\n\n 'auth',\n 'blog',\n 'app',\n]\n```\n\nTo load the model fixtures into the database, you would run:\n\n```bash\ncd your-django-project-root\n\n# to load fixtures from all apps\n./manage.py import_fixtures\n\n# or to load fixtures from specific apps\n./manage.py import_fixtures app blog\n```\n\n#### With Flask and Flask-SQLAlchemy\n\nThis is the minimal setup required to make a Flask cli command available to import fixtures, by default, `flask import-fixtures`:\n\n```python\nfrom flask import Flask\nfrom flask_sqlalchemy import SQLAlchemy\nfrom py_yaml_fixtures.flask import PyYAMLFixtures\n\napp = Flask(__name__)\ndb = SQLAlchemy(app)\n\n# optional configuration settings (these are all the defaults):\napp.config['FLASK_MODELS_MODULE'] = 'app.models' # where all of your model classes are imported\napp.config['PY_YAML_FIXTURES_DIR'] = 'db/fixtures' # where your fixtures file(s) live\napp.config['PY_YAML_FIXTURES_COMMAND_NAME'] = 'import-fixtures' # the name of the CLI command\n\nfixtures = PyYAMLFixtures(app) # instantiate the PyYAMLFixtures Flask Extension\n```\n\nAfter creating fixture files in the configured `PY_YAML_FIXTURES_DIR`, you would then be able to run `flask import-fixtures` to load the fixtures into the database.\n\n#### With Flask Unchained\n\nAdd `py_yaml_fixtures` to your `unchained_config.BUNDLES`.\n\nThe PyYAMLFixtures bundle adds one command to Flask Unchained: `flask db import-fixtures`. It looks for fixture files in each bundle's `fixtures` folder (if it exists). For example:\n\n```bash\n# example folder structure:\n\n# app\nproject-root/app/fixtures/\nproject-root/app/fixtures/ModelOne.yaml\n\n# blog_bundle\nproject-root/bundles/blog/fixtures/\nproject-root/bundles/blog/fixtures/Post.yaml\n\n# security_bundle\nproject-root/bundles/security/fixtures/\nproject-root/bundles/security/fixtures/User.yaml\nproject-root/bundles/security/fixtures/Role.yaml\n```\n\n```python\n# project-root/unchained_config.py\n\nBUNDLES = [\n # ...\n 'flask_unchained.bundles.sqlalchemy',\n 'py_yaml_fixtures',\n\n 'bundles.blog',\n 'bundles.security',\n 'app',\n]\n```\n\nTo load the model fixtures into the database, you would run:\n\n```bash\ncd your-flask-unchained-project-root\n\n# to load fixtures from all bundles\nflask db import-fixtures\n\n# or to load fixtures from specific bundles\nflask db import-fixtures app security_bundle\n```\n\n#### With Standalone SQLAlchemy\n\n```python\nimport sqlalchemy as sa\n\nfrom py_yaml_fixtures import FixturesLoader\nfrom py_yaml_fixtures.factories.sqlalchemy import SQLAlchemyModelFactory\nfrom sqlalchemy import create_engine\nfrom sqlalchemy.ext.declarative import declarative_base\nfrom sqlalchemy.orm import relationship, sessionmaker\n\nPY_YAML_FIXTURES_DIR = 'db/fixtures'\n\nBaseModel = declarative_base()\n\nclass Parent(BaseModel):\n __tablename__ = 'parent'\n\n id = sa.Column(sa.Integer, primary_key=True)\n name = sa.Column(sa.String)\n children = relationship('Child', back_populates='parent')\n\nclass Child(BaseModel):\n __tablename__ = 'child'\n\n id = sa.Column(sa.Integer, primary_key=True)\n name = sa.Column(sa.String)\n parent_id = sa.Column(sa.Integer, sa.ForeignKey('parent.id'))\n parent = relationship('Parent', back_populates='children')\n\n# first we need a list of our model classes to provide to the factory\nmodel_classes = [Parent, Child]\n\n# and we need a session connected to the database, also for the factory\nengine = create_engine('sqlite:///:memory:')\nSession = sessionmaker()\nSession.configure(bind=engine)\nsession = Session()\n\n# then we create the factory, and pass it to the fixtures loader\nfactory = SQLAlchemyModelFactory(session, model_classes)\nloader = FixturesLoader(factory, fixture_dirs=[PY_YAML_FIXTURES_DIR])\n\n# to create all the fixtures in the database, we have to call loader.create_all()\nif __name__ == '__main__':\n # create the tables in the database\n BaseModel.metadata.create_all(bind=engine)\n\n # and use the loader to import the fixtures data into the database\n loader.create_all(lambda identifier, model, created: print(\n '{action} {identifier}: {model}'.format(\n action='Creating' if created else 'Updating',\n identifier=identifier.key,\n model=repr(model)\n )))\n```\n\n## Contributing\n\nContributions are welcome!\n\n* Please file bug reports as GitHub issues.\n* Or even better, open a pull request with the fix!\n\n### Adding support for other ORMs\n\nYou must implement a concrete factory by extending `py_yaml_fixtures.FactoryInterface`. There are three abstract methods that must be implemented: `create_or_update`, `get_relationships`, and `maybe_convert_values` (see the [DjangoModelFactory](https://github.com/briancappello/py-yaml-fixtures/blob/master/py_yaml_fixtures/factories/django.py) and [SQLAlchemyModelFactory](https://github.com/briancappello/py-yaml-fixtures/blob/master/py_yaml_fixtures/factories/sqlalchemy.py) implementations as examples).\n\n## License\n\nMIT\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://github.com/briancappello/py-yaml-fixtures", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Py-YAML-Fixtures", "package_url": "https://pypi.org/project/Py-YAML-Fixtures/", "platform": "", "project_url": "https://pypi.org/project/Py-YAML-Fixtures/", "project_urls": { "Homepage": "https://github.com/briancappello/py-yaml-fixtures" }, "release_url": "https://pypi.org/project/Py-YAML-Fixtures/0.5.0/", "requires_dist": [ "faker (>=1.0.7)", "jinja2 (>=2.10.1)", "networkx (>=2.3)", "python-dateutil (>=2.8.0)", "PyYAML (>=5.1)", "django (>=2.1) ; extra == 'dev'", "flask (>=1.0) ; extra == 'dev'", "pytest ; extra == 'dev'", "sqlalchemy (>=1.0) ; extra == 'dev'", "django (>=2.0) ; extra == 'django'", "django (>=2.1) ; extra == 'docs'", "flask (>=1.0) ; extra == 'docs'", "m2r ; extra == 'docs'", "sphinx ; extra == 'docs'", "sphinx-autobuild ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'", "sqlalchemy (>=1.0) ; extra == 'docs'", "click (>=6.7) ; extra == 'flask-sqlalchemy'", "flask (>=1.0) ; extra == 'flask-sqlalchemy'", "flask-sqlalchemy (>=2.2) ; extra == 'flask-sqlalchemy'", "flask-migrate (>=2.2.1) ; extra == 'flask-unchained'", "flask-unchained (>=0.7.9) ; extra == 'flask-unchained'", "flask-sqlalchemy-unchained (>=0.7.3) ; extra == 'flask-unchained'", "sqlalchemy-unchained (>=0.7.6) ; extra == 'flask-unchained'", "sqlalchemy (>=1.0) ; extra == 'sqlalchemy'" ], "requires_python": ">=3.5", "summary": "Load Django and SQLAlchemy database fixtures from Jinja-templated YAML files", "version": "0.5.0" }, "last_serial": 5844269, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c8cf3f9e75b87b2e1ec61e92dab1f858", "sha256": "b953d199aec82dae1cd2824dbdc29d5c68d1e30e038b3150a4f0953d48898c52" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c8cf3f9e75b87b2e1ec61e92dab1f858", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9197, "upload_time": "2018-04-06T20:10:49", "url": "https://files.pythonhosted.org/packages/ae/aa/1fa4fa9be7a201c4c6f72d87c1e90ab0a2eeb18750ac0185c5c68d0e5d4e/Py_YAML_Fixtures-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bab53db26a4bdca37ba48e5875a6be2a", "sha256": "7d6e7b8351a0ec8b853a63dc1358c55039e85382fcedfdd58757aa623af9d3f6" }, "downloads": -1, "filename": "Py YAML Fixtures-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bab53db26a4bdca37ba48e5875a6be2a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6980, "upload_time": "2018-04-06T20:10:50", "url": "https://files.pythonhosted.org/packages/c1/48/96e782a3f243964605ed1d9ddb3629dd886675dab861192dd04be5477f86/Py%20YAML%20Fixtures-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0253e1e6b409889fe256a8740d23591f", "sha256": "c247faf5f2c306f5c06345493bf710a6dfa51025fdf3ed92478717331050494c" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0253e1e6b409889fe256a8740d23591f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11978, "upload_time": "2018-04-06T20:27:21", "url": "https://files.pythonhosted.org/packages/20/c4/b725ad585b8177f001bc26a1e53789b81de5f994f43ea2e85c49916cb0d3/Py_YAML_Fixtures-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "94631c5c3a305fbcf5273980e3237c9f", "sha256": "0ac055d8a463ea7f6753595cb7aed48c0dd84340854faf6e2ec946fcd15212fe" }, "downloads": -1, "filename": "Py YAML Fixtures-0.1.1.tar.gz", "has_sig": false, "md5_digest": "94631c5c3a305fbcf5273980e3237c9f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 10288, "upload_time": "2018-04-06T20:27:23", "url": "https://files.pythonhosted.org/packages/99/bb/aebe4b4a6d74d32350731e4126ffd28ae34936af9313a244060c9d1119fa/Py%20YAML%20Fixtures-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c33214e9b47ec7fcd7b3b3fbe04887d4", "sha256": "5f07fa23023c125d69e39c5e05c10d79c1659abc3a16c5bfb177cf07778264c6" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c33214e9b47ec7fcd7b3b3fbe04887d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11962, "upload_time": "2018-07-31T15:53:43", "url": "https://files.pythonhosted.org/packages/76/86/936b98e91f12bdc93b23bd301baf0a87ce79e85fb37ecc3199dc563704e2/Py_YAML_Fixtures-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b6c1739e9556eac5bf4b28567499a24", "sha256": "b6c0a53e50de0e67662d451fdd9a4729e54aadcca65bb4311941ef7aaaca9ca7" }, "downloads": -1, "filename": "Py YAML Fixtures-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9b6c1739e9556eac5bf4b28567499a24", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 10332, "upload_time": "2018-07-31T15:53:44", "url": "https://files.pythonhosted.org/packages/3f/e3/7a353a3df71874a81057bdcdc9393bf8b55682ed7572ac7a08f29c4edca5/Py%20YAML%20Fixtures-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "27c8c33b9d8f5d76106ee1e2730ba1a9", "sha256": "d1b52e84e2944545dcaaad4bbf1f565da2821d21fbb1c3c563ab19f6575e4979" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "27c8c33b9d8f5d76106ee1e2730ba1a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 14635, "upload_time": "2018-08-14T23:47:08", "url": "https://files.pythonhosted.org/packages/b2/ce/4960cea1d149abe445c28a0f26dfe3f86cd42a70c10493b68e6605b09769/Py_YAML_Fixtures-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d288d5767d00a4889c425c455ed45a16", "sha256": "5c9a44cadbd12e83029fd0713a8b3144962c9b056ab7782bde56710d8e5a0eff" }, "downloads": -1, "filename": "Py YAML Fixtures-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d288d5767d00a4889c425c455ed45a16", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13002, "upload_time": "2018-08-14T23:47:10", "url": "https://files.pythonhosted.org/packages/09/1e/4f403b09e9bd9621d8bc9f3c0e41319a5ae4aae3908c7db23786c587a04d/Py%20YAML%20Fixtures-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9151045efba392847379da3967792b1e", "sha256": "3345bd5e5978f58ddb07da0d91781d617e26d19e7cea205d6cc6cd4e67bb362a" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9151045efba392847379da3967792b1e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 11329, "upload_time": "2018-09-26T23:40:51", "url": "https://files.pythonhosted.org/packages/8e/f6/64dcf176d07ada1aa230bce4e18764860e231f046790400126e5251467b5/Py_YAML_Fixtures-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "31699f332b8ae635ee57fa111322137e", "sha256": "85a5efd843fef6177e00033dd3ee39d64a60b980ad2cb7360ed178be6249ab70" }, "downloads": -1, "filename": "Py YAML Fixtures-0.2.0.tar.gz", "has_sig": false, "md5_digest": "31699f332b8ae635ee57fa111322137e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 10881, "upload_time": "2018-09-26T23:40:53", "url": "https://files.pythonhosted.org/packages/9e/a4/29941f5716a56d3602d55b310ae376c2b887162d032a1a4f6ad08add76c5/Py%20YAML%20Fixtures-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "53055a5fd9ec1044ce1ce50817604baa", "sha256": "b2d7bf2785f87118cc6385c7c5592bc909e25a4d986fe1a860c58d6ede9ef42b" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "53055a5fd9ec1044ce1ce50817604baa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 12410, "upload_time": "2018-12-08T06:32:13", "url": "https://files.pythonhosted.org/packages/e3/79/6f4c72b6a9fc9522e1a0a6c2b8db4f488747f586f1255ca6175648711640/Py_YAML_Fixtures-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8884ff23237be2714cbff2b5e61a8414", "sha256": "56958c496488f1f7ce2fdb0454591c5170829682e0f6f2dfb27170f3fe960f7b" }, "downloads": -1, "filename": "Py YAML Fixtures-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8884ff23237be2714cbff2b5e61a8414", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11811, "upload_time": "2018-12-08T06:32:15", "url": "https://files.pythonhosted.org/packages/bc/27/c713e50783d3822bca50cb46b6cc6026075dd7006fbd220431efad1dc3ca/Py%20YAML%20Fixtures-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "987a8a33fd2d41e37540e44c6ecba7a7", "sha256": "319cfb0de8d118cbcd9dc358802d0ec05f3d94432f0f6d0a7e43d956263c8496" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "987a8a33fd2d41e37540e44c6ecba7a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 12419, "upload_time": "2018-12-08T06:56:43", "url": "https://files.pythonhosted.org/packages/e9/a3/f6febe22e5b283ee38d60715e2b86447f1884651b2e07d35c13660bb416b/Py_YAML_Fixtures-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1dca18f3800e2ebeeb00b0a095a1af5b", "sha256": "b1f449dd59929c452ccf68e5f796cd7576a2aa6f224ec26fe2111b1b19f96c8a" }, "downloads": -1, "filename": "Py YAML Fixtures-0.3.1.tar.gz", "has_sig": false, "md5_digest": "1dca18f3800e2ebeeb00b0a095a1af5b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11856, "upload_time": "2018-12-08T06:56:45", "url": "https://files.pythonhosted.org/packages/ca/a8/6a8cc6f9c69d596dc0d9bb26f143c299f648887c0495b849f9694f4548a5/Py%20YAML%20Fixtures-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "adb21a00fe79dde62933fbd54eac8926", "sha256": "0ab52b72d788cc386e4dd8219af317ebb008deb035b826639c71ee398b50cfe0" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "adb21a00fe79dde62933fbd54eac8926", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 12496, "upload_time": "2018-12-08T07:49:17", "url": "https://files.pythonhosted.org/packages/5a/51/5479b80bc9c5debbc8e7540987132b928ef21cb7d122aa3e21e1cf3d2b05/Py_YAML_Fixtures-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0d56a089d60fce71f7fd274cd25a813", "sha256": "e8a59776082c2a630f2781b5d709a15d28083b646e4d1aed398ebf22aab7f27d" }, "downloads": -1, "filename": "Py YAML Fixtures-0.3.2.tar.gz", "has_sig": false, "md5_digest": "d0d56a089d60fce71f7fd274cd25a813", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11946, "upload_time": "2018-12-08T07:49:19", "url": "https://files.pythonhosted.org/packages/9f/a7/864c2316664631373f2c641a63f3799e95a6ba1556dec01ca58a6ac5a56b/Py%20YAML%20Fixtures-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d7bc72058e13858097d1be143328941a", "sha256": "2856cb07e008442a192b2e5c00f6b057ce01fb13d9dcbdbfa9528eec71939a95" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d7bc72058e13858097d1be143328941a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19617, "upload_time": "2018-12-09T02:36:18", "url": "https://files.pythonhosted.org/packages/05/1b/3ba10f43d8a058a7d286c355f092f3f3d05455e7225decf9153e7d5c8f3a/Py_YAML_Fixtures-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a93f1b37f94b6cec3a7343005a86b4ee", "sha256": "e3cc2d8b14543ecf57e20e296e58082cecdf3986b2071d44a86b7da227f18301" }, "downloads": -1, "filename": "Py YAML Fixtures-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a93f1b37f94b6cec3a7343005a86b4ee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19094, "upload_time": "2018-12-09T02:36:19", "url": "https://files.pythonhosted.org/packages/a1/1f/7121c643623192f9b8aaeee6d4e1186de15f570bbc8392b41b69a22e2c51/Py%20YAML%20Fixtures-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "45780dfd31f7e8e2a12d76acf8189b5a", "sha256": "7bcf9b97bded47c36542a922e499fb0f8e34cf43747adecf7d1f8ec2fbde6c65" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "45780dfd31f7e8e2a12d76acf8189b5a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19746, "upload_time": "2019-02-25T18:44:36", "url": "https://files.pythonhosted.org/packages/6b/5a/07eefb093c32604fd6a6f67cdc2bc2f14e75caf8cba44ad2f9d99ce4cda9/Py_YAML_Fixtures-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "211d544ae4d4c952c07b5ffac7b39e74", "sha256": "31089c3e2a013e708f83ed162ed71ece0f167d4d33aefd3b3afd235dda56536e" }, "downloads": -1, "filename": "Py-YAML-Fixtures-0.4.1.tar.gz", "has_sig": false, "md5_digest": "211d544ae4d4c952c07b5ffac7b39e74", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19256, "upload_time": "2019-02-25T18:44:38", "url": "https://files.pythonhosted.org/packages/9a/95/ab1015402bb2da9cdc6efa13f8942333867929d8af007762c4c7b9485996/Py-YAML-Fixtures-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "5098ab146e474cb1278f052998ab5e93", "sha256": "f54d74ea9895daa584d6e2463280ba8500e77b2be2a72313b0ecea5e0c667007" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5098ab146e474cb1278f052998ab5e93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 20396, "upload_time": "2019-09-17T22:01:29", "url": "https://files.pythonhosted.org/packages/17/99/3399bd10bd06cf9984a7737e725db8947e41f1f0646768c4556c37593e71/Py_YAML_Fixtures-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b7bd71f5417f00a7cd8b436af4dd729", "sha256": "04b25656c3fa609b16b1671de67124fd6fb5b560388c7254994d4066c1d1b67c" }, "downloads": -1, "filename": "Py-YAML-Fixtures-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6b7bd71f5417f00a7cd8b436af4dd729", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16847, "upload_time": "2019-09-17T22:01:32", "url": "https://files.pythonhosted.org/packages/15/e5/0eac2b7d41b4c18c0929a61c4b9422129bb040458de1a8f7123dfb3f7092/Py-YAML-Fixtures-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5098ab146e474cb1278f052998ab5e93", "sha256": "f54d74ea9895daa584d6e2463280ba8500e77b2be2a72313b0ecea5e0c667007" }, "downloads": -1, "filename": "Py_YAML_Fixtures-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5098ab146e474cb1278f052998ab5e93", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 20396, "upload_time": "2019-09-17T22:01:29", "url": "https://files.pythonhosted.org/packages/17/99/3399bd10bd06cf9984a7737e725db8947e41f1f0646768c4556c37593e71/Py_YAML_Fixtures-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b7bd71f5417f00a7cd8b436af4dd729", "sha256": "04b25656c3fa609b16b1671de67124fd6fb5b560388c7254994d4066c1d1b67c" }, "downloads": -1, "filename": "Py-YAML-Fixtures-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6b7bd71f5417f00a7cd8b436af4dd729", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16847, "upload_time": "2019-09-17T22:01:32", "url": "https://files.pythonhosted.org/packages/15/e5/0eac2b7d41b4c18c0929a61c4b9422129bb040458de1a8f7123dfb3f7092/Py-YAML-Fixtures-0.5.0.tar.gz" } ] }