{ "info": { "author": "Wil Cooley", "author_email": "wcooley@nakedape.cc", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "=============================\ngryaml\n=============================\n\n\n.. image:: https://img.shields.io/pypi/v/gryaml.svg\n :target: https://pypi.python.org/pypi/gryaml\n\n..\n .. image:: https://travis-ci.org/wcooley/python-gryaml.png?branch=master\n :target: https://travis-ci.org/wcooley/python-gryaml\n\n .. image:: https://pypip.in/d/gryaml/badge.png\n :target: https://pypi.python.org/pypi/gryaml\n\n\n\nRepresent Neo4j graph data as YAML.\n\n\nFeatures\n--------\n\n* Creates nodes and relationships in a Neo4j graph database from YAML using\n PyYAML-specific tags.\n* Operates at a whole-file level, as it uses custom YAML tags to deserialize\n the data to live objects.\n* Developed for loading data for integration testing.\n* Requires a running Neo4j instance and instantiates actual database entities,\n rather than just generating abstract/unbound ``py2neo.Node`` and\n ``py2neo.Relationship`` objects. This is due to ``py2neo`` version\n 1.6 not supporting node labels with abstract nodes. This might be changed if\n we are able to migrate off of 1.6 in the near future.\n\nVersions\n--------\n\nPython\n Tested with both Python 2.7 and 3.6.\nNeo4j\n Should work with anything >= 2.0. Tested with 3.3.5. Running the\n tests requires 2.3 as it uses the ``DETACH DELETE`` feature to drop the\n database.\n``py2neo``\n Currently supports 1.6 and 2.0.\n``pyyaml``\n Tested with PyYAML v3.13.\n\nTesting\n-------\n\nRunning the tests requires an installed, running Neo4j instance. Pass the URL\nthrough the environment variable ``NEO4J_URI``.\n\nFuture\n------\n\n* Make nodes just dicts with 'labels' and 'properties' keys? Maybe make rels\n dicts with 'head', 'tail', 'type' and 'properties' keys too?\n* Add a context manager to register with PyYAML, create graph database\n connection and then cleanup.\n* Support locating nodes with a Cypher query as part of creating a\n relationship.\n* Add ``gryaml-dump`` CLI tool to render database (or query result) as YAML.\n* Test/support ``ruamel.yaml``.\n* Add ability to update & display schema.\n* Later ``py2neo``. Dependent mainly on supporting later versions in\n py2neo_compat_.\n* Documentation more complete & published to ReadTheDocs.\n\n.. _py2neo_compat: https://pypi.org/project/py2neo-compat/\n\n\n\n\nHistory\n-------\n\n1.0.0 (2018-08-02)\n++++++++++++++++++\n\n* Require registration for YAML constructors & representers -- this no longer\n happens automatically as a side-effect of importing the ``gryaml`` package.\n* Add \"simple\" constructors & representers, to convert Nodes or Relationships\n to plain YAML structures or YAML structures tagged with '!gryaml.*' to\n plain Python structures.\n* Reorganized repo so package is in ``src/``.\n* Added more tests.\n* Use ``py2neo_compat`` as compatibility layer.\n\n0.4.0 (2017-08-30)\n++++++++++++++++++\n\n* Enable using application-specific tags ``gryaml.node`` and ``gryaml.rel`` to\n construct instead of PyYAML's general-purpose ``!python/object/apply:``.\n\n0.3.1 (2016-10-28)\n++++++++++++++++++\n\n* Fix assumption that a non-*None* instance of\n *GraphDatabaseService* in py2neo 1.6 would not be *False*.\n\n0.3.0 (2016-10-28)\n++++++++++++++++++\n\n* Fix so that it should mostly work with py2neo 1.6 in addition to py2neo 2.0.\n py2neo 1.6 does not support abstract nodes without labels, so it must be used\n against a live database, whereas py2neo 2.0 does not. (py2neo v3 support is\n in progress.)\n\n0.2.0 (2016-07-05)\n++++++++++++++++++\n\n* Initial implementation of working constructors with some basic testing.\n\n0.1.0 (2015-11-11)\n++++++++++++++++++\n\n* First tagged release. No working code, just ideas of what the YAML might look\n like. Not released on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wcooley/python-gryaml", "keywords": "yaml py2neo neo4j gryaml", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gryaml", "package_url": "https://pypi.org/project/gryaml/", "platform": "", "project_url": "https://pypi.org/project/gryaml/", "project_urls": { "Homepage": "https://github.com/wcooley/python-gryaml" }, "release_url": "https://pypi.org/project/gryaml/1.0.0/", "requires_dist": [ "boltons", "py2neo (<=2.999,>=1.6)", "py2neo-compat (~=1.0.0pre0)", "pyyaml", "pytest; extra == 'test'", "pytest-cov; extra == 'test'", "pytest-forked; extra == 'test'", "pathlib2; (python_version < \"3\") and extra == 'test'" ], "requires_python": "", "summary": "Represent Neo4j graph data as YAML.", "version": "1.0.0" }, "last_serial": 4129863, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "da1122c5a96a6c27101d532a58a2a59f", "sha256": "70d931d3de1eab3d2cf23fc4c3fafabf3e7e03d049de8f7c8692a01df754367e" }, "downloads": -1, "filename": "gryaml-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "da1122c5a96a6c27101d532a58a2a59f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8560, "upload_time": "2018-08-02T18:52:37", "url": "https://files.pythonhosted.org/packages/90/33/97f632360531af4d4e76b394c9d28ca80405b0fa7a1e824e7d28b1d225e5/gryaml-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d942de43338990185e786760e8385756", "sha256": "d5fe8a63b96d0075e094fbfa572c51482316b88e0097e44519851d23d8640776" }, "downloads": -1, "filename": "gryaml-1.0.0.tar.gz", "has_sig": true, "md5_digest": "d942de43338990185e786760e8385756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27128, "upload_time": "2018-08-02T18:52:38", "url": "https://files.pythonhosted.org/packages/56/db/667a015561f5e92d92899a13ead1515d2c96b37ff9fdeed4b9a769f0bf6f/gryaml-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "da1122c5a96a6c27101d532a58a2a59f", "sha256": "70d931d3de1eab3d2cf23fc4c3fafabf3e7e03d049de8f7c8692a01df754367e" }, "downloads": -1, "filename": "gryaml-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "da1122c5a96a6c27101d532a58a2a59f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8560, "upload_time": "2018-08-02T18:52:37", "url": "https://files.pythonhosted.org/packages/90/33/97f632360531af4d4e76b394c9d28ca80405b0fa7a1e824e7d28b1d225e5/gryaml-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d942de43338990185e786760e8385756", "sha256": "d5fe8a63b96d0075e094fbfa572c51482316b88e0097e44519851d23d8640776" }, "downloads": -1, "filename": "gryaml-1.0.0.tar.gz", "has_sig": true, "md5_digest": "d942de43338990185e786760e8385756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27128, "upload_time": "2018-08-02T18:52:38", "url": "https://files.pythonhosted.org/packages/56/db/667a015561f5e92d92899a13ead1515d2c96b37ff9fdeed4b9a769f0bf6f/gryaml-1.0.0.tar.gz" } ] }