{ "info": { "author": "Fridolin Pokorny", "author_email": "fridolin.pokorny@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database", "Topic :: Utilities" ], "description": "Goblinoid\n---------\n\nConvert `Goblin `_ OGM to JanusGraph schema.\n\nThis tool provides an automated way to keep your graph database schema in sync with `Goblin `_ OGM (Object Graph Mapper). Once you define your schema using Goblin's Vertex and Edge classes you can simply pass sources to Goblinoid that will automatically create a groovy script you can run to create your graph database schema.\n\nInstallation\n============\n\nYou can simply install Goblinoid from `PyPI `_:\n\n.. code-block:: console\n\n $ pip3 install goblinoid\n\n\nOnce your Goblinoid is installed you can access its CLI using:\n\n.. code-block:: console\n\n $ goblinoid --help\n\n\nUsage - Schema creation\n=======================\n\nGoblinoid allows you to automatically create schema based on models defined in your source code. To automatically generate schema definition, you need to point Goblinoid to the correct module of your application that holds all defined models for your application:\n\n\n.. code-block:: console\n\n $ goblinoid-cli --module-import 'myapp.graph.models' --models-iterable 'ALL_MODELS' --schema-file schema.groovy\n\n\n.. tip::\n\n By using one iterable (e.g. tuple), you can directly reuse this iterable for the `Goblin's register `_ method to keep your models always in sync in your application:\n\n .. code-block:: python\n\n app = await Goblin.open(\n loop,\n hosts=['localhost'],\n port=port,\n ))\n app.register(*tuple(ALL_MODELS))\n\n\nIt's important to state that your package/module is importable for the CLI (you might want to adjust ``PYTHONPATH`` to accomplish that in some cases). Goblinoid automatically creates a Groovy script that you can run to create schema.\n\nIt is **recommended** to also provide the ``--schema-vertex-identifier`` option. In that case Goblinoid automatically creates a vertex with label ``goblinoid_schema_meta`` that holds provided ``identifier`` and ``datetime`` when the schema creation was performed. This allows you to keep graph metadata for later debugging or ensuring your services that communicate with the graph instance use required schema version.\n\nBy default, Goblinoid disables JanusGraph's schema maker. It is **recommended** having the schema maker disabled so all vertexes and edges that are added to the graph database respect the provided schema and there are not created additional schema entries. You can avoid this behaviour by specifying the ``--keep-schema-maker`` flag. See the `official documentation `_ for more info.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fridex/goblinoid", "keywords": "graph graph-database graph-db janusgraph tinkerpop gremlin gremlin-server", "license": "GPLv3", "maintainer": "Fridolin Pokorny", "maintainer_email": "fridolin.pokorny@gmail.com", "name": "goblinoid", "package_url": "https://pypi.org/project/goblinoid/", "platform": "", "project_url": "https://pypi.org/project/goblinoid/", "project_urls": { "Homepage": "https://github.com/fridex/goblinoid" }, "release_url": "https://pypi.org/project/goblinoid/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "Create a graph database schema and indexes from source code automatically", "version": "0.1.0" }, "last_serial": 4819795, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "6091a05cbd05c531e1b703e4c58acd43", "sha256": "a164c7b835582de0b4c847ee381f20f2d19326ddbb9f673eb2f81ffd6c9555aa" }, "downloads": -1, "filename": "goblinoid-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6091a05cbd05c531e1b703e4c58acd43", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5810, "upload_time": "2018-04-06T13:54:20", "url": "https://files.pythonhosted.org/packages/7f/02/106a984d95b581be559d3de485be7ccc37957376d5a17cd53069b068435a/goblinoid-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ede381fdf0a016f758fe7a758819f93b", "sha256": "4c64c3a70665170425cb507da31afbee08d57e2166311e0066ae55fa53e20f61" }, "downloads": -1, "filename": "goblinoid-0.0.0.tar.gz", "has_sig": false, "md5_digest": "ede381fdf0a016f758fe7a758819f93b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4767, "upload_time": "2018-04-06T13:54:21", "url": "https://files.pythonhosted.org/packages/48/fd/13db938f96eccd3fd17b8fe490194d3f7c689ee785a411abb863f2535ff2/goblinoid-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "2eead170898fa46b1720d58888fc203f", "sha256": "cba63d00a9b9f10d3044b8520b5d5ea7ed080d485989265d904b70b3c099edcd" }, "downloads": -1, "filename": "goblinoid-0.0.1.tar.gz", "has_sig": false, "md5_digest": "2eead170898fa46b1720d58888fc203f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6692, "upload_time": "2019-02-14T10:56:09", "url": "https://files.pythonhosted.org/packages/f0/7b/d38648cae100747efc2b57653ddc168b9becfc035b5c38c84c0b14856b25/goblinoid-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "f810176dd81dd0a906eaf1a489151e8d", "sha256": "089f617206252a51c28287d92eb30549a13b2d41f34511dcc450a0414531ba3d" }, "downloads": -1, "filename": "goblinoid-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f810176dd81dd0a906eaf1a489151e8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6782, "upload_time": "2019-02-14T10:57:49", "url": "https://files.pythonhosted.org/packages/86/03/238626336c383569372b85f68b035fb62b4812c8775f2d0c1d87995029f0/goblinoid-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f810176dd81dd0a906eaf1a489151e8d", "sha256": "089f617206252a51c28287d92eb30549a13b2d41f34511dcc450a0414531ba3d" }, "downloads": -1, "filename": "goblinoid-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f810176dd81dd0a906eaf1a489151e8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6782, "upload_time": "2019-02-14T10:57:49", "url": "https://files.pythonhosted.org/packages/86/03/238626336c383569372b85f68b035fb62b4812c8775f2d0c1d87995029f0/goblinoid-0.1.0.tar.gz" } ] }