Metadata-Version: 2.0
Name: jgrepl
Version: 0.1.2
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


