Metadata-Version: 2.1
Name: gryaml
Version: 1.0.0
Summary: Represent Neo4j graph data as YAML.
Home-page: https://github.com/wcooley/python-gryaml
Author: Wil Cooley
Author-email: wcooley@nakedape.cc
License: MIT
Description: =============================
        gryaml
        =============================
        
        
        .. image:: https://img.shields.io/pypi/v/gryaml.svg
                :target: https://pypi.python.org/pypi/gryaml
        
        ..
            .. image:: https://travis-ci.org/wcooley/python-gryaml.png?branch=master
                :target: https://travis-ci.org/wcooley/python-gryaml
        
            .. image:: https://pypip.in/d/gryaml/badge.png
                :target: https://pypi.python.org/pypi/gryaml
        
        
        
        Represent Neo4j graph data as YAML.
        
        
        Features
        --------
        
        * Creates nodes and relationships in a Neo4j graph database from YAML using
          PyYAML-specific tags.
        * Operates at a whole-file level, as it uses custom YAML tags to deserialize
          the data to live objects.
        * Developed for loading data for integration testing.
        * Requires a running Neo4j instance and instantiates actual database entities,
          rather than just generating abstract/unbound ``py2neo.Node`` and
          ``py2neo.Relationship`` objects. This is due to ``py2neo`` version
          1.6 not supporting node labels with abstract nodes. This might be changed if
          we are able to migrate off of 1.6 in the near future.
        
        Versions
        --------
        
        Python
            Tested with both Python 2.7 and 3.6.
        Neo4j
            Should work with anything >= 2.0. Tested with 3.3.5. Running the
            tests requires 2.3 as it uses the ``DETACH DELETE`` feature to drop the
            database.
        ``py2neo``
            Currently supports 1.6 and 2.0.
        ``pyyaml``
            Tested with PyYAML v3.13.
        
        Testing
        -------
        
        Running the tests requires an installed, running Neo4j instance. Pass the URL
        through the environment variable ``NEO4J_URI``.
        
        Future
        ------
        
        * Make nodes just dicts with 'labels' and 'properties' keys? Maybe make rels
          dicts with 'head', 'tail', 'type' and 'properties' keys too?
        * Add a context manager to register with PyYAML, create graph database
          connection and then cleanup.
        * Support locating nodes with a Cypher query as part of creating a
          relationship.
        * Add ``gryaml-dump`` CLI tool to render database (or query result) as YAML.
        * Test/support ``ruamel.yaml``.
        * Add ability to update & display schema.
        * Later ``py2neo``.   Dependent mainly on supporting later versions in
          py2neo_compat_.
        * Documentation more complete & published to ReadTheDocs.
        
        .. _py2neo_compat: https://pypi.org/project/py2neo-compat/
        
        
        
        
        History
        -------
        
        1.0.0 (2018-08-02)
        ++++++++++++++++++
        
        * Require registration for YAML constructors & representers -- this no longer
          happens automatically as a side-effect of importing the ``gryaml`` package.
        * Add "simple" constructors & representers, to convert Nodes or Relationships
          to plain YAML structures or YAML structures tagged with '!gryaml.*' to
          plain Python structures.
        * Reorganized repo so package is in ``src/``.
        * Added more tests.
        * Use ``py2neo_compat`` as compatibility layer.
        
        0.4.0 (2017-08-30)
        ++++++++++++++++++
        
        * Enable using application-specific tags ``gryaml.node`` and ``gryaml.rel`` to
          construct instead of PyYAML's general-purpose ``!python/object/apply:``.
        
        0.3.1 (2016-10-28)
        ++++++++++++++++++
        
        * Fix assumption that a non-*None* instance of
          *GraphDatabaseService* in py2neo 1.6 would not be *False*.
        
        0.3.0 (2016-10-28)
        ++++++++++++++++++
        
        * Fix so that it should mostly work with py2neo 1.6 in addition to py2neo 2.0.
          py2neo 1.6 does not support abstract nodes without labels, so it must be used
          against a live database, whereas py2neo 2.0 does not. (py2neo v3 support is
          in progress.)
        
        0.2.0 (2016-07-05)
        ++++++++++++++++++
        
        * Initial implementation of working constructors with some basic testing.
        
        0.1.0 (2015-11-11)
        ++++++++++++++++++
        
        * First tagged release. No working code, just ideas of what the YAML might look
          like. Not released on PyPI.
        
Keywords: yaml py2neo neo4j gryaml
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: PyPy
Provides-Extra: test
