Metadata-Version: 2.0
Name: jgrepl
Version: 0.1.4
Summary: Extensible command-line REPL for interacting with JSON-graphs containing business objects
Home-page: https://github.com/a115/json-graph-repl
Author: Jordan Dimov
Author-email: jdimov@mlke.net
License: MIT
Keywords: json graph repl cmd2 business
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Other/Nonlisted Topic
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Requires-Python: >=3
Requires-Dist: Cmd2 (>=0.7.5)

json-graph-repl
===============

Extensible command-line REPL for interacting with JSON graphs containing
business objects.

The JSON format is based on the ``json-graph`` specification at:
https://github.com/jsongraph/json-graph-specification

Several additional assumptions are made:

-  We assume that the graph contains no cycles
-  We treat node IDs as case-insensitive
-  There are certain ``metadata`` fields that some aspects of the tool
   depend on (but none of these are mandatory)

Sample graphs are provided in the ``tests`` directory.

To use from the command line, just point the ``jgrepl`` tool to your
JSON graph:

::

    $ ./jgrepl/jgrepl.py tests/food-graph.json 

Once in the REPL, type ``help`` for the list of available commands. Use
``ctrl-d`` to exit.

Here is a sample session using the "food" graph:

::

    *** Loading graph from 'tests/food-graph.json'...
    JSON Graph REPL v.0.1.2
    /> info         // The `info` command displays information about the current node or graph
    CURRENT GRAPH: Sample Food Graph ('tests/food-graph.json')
    GRAPH TYPE: food graph
    NODES: 14
    EDGES: 11
    {                     // All metadata is shown here:
        "version": "1.0"  
    }

    /> ls -l
    CAT1 category Vegetables
    CAT2 category Fruits
    CAT3 category Sweets

    /> cd CAT3          // Change to a new path. Note the prompt changes to reflect your location. 
    /CAT3> info
    NODE ID: cat3
    NODE TYPE: category
    NODE LABEL: Sweets
    {
        "available_from": "2017-07-18",
        "available_to": "2017-11-18"
    }

    /CAT3> find food8  // Print all paths to this node ID
    /CAT3/CAT32/FOOD8

    /CAT3> cd $    // Switch to the last shown path
    /CAT3/CAT32/FOOD8> 


