Skip to content

A CLI to interact with a global trie data structure.

License

Notifications You must be signed in to change notification settings

pmathur007/trie-cli

Repository files navigation

trie-cli

A CLI to interact with a global trie data structure.

Installation

Use the package manager pip to install trie-cli.

pip install trie-cli

Usage

The CLI includes methods to modify the global state of a trie hosted online.

Insert a keyword into the trie:

trie-cli insert [YOUR KEYWORD]

Delete a keyword from the trie:

trie-cli delete [YOUR KEYWORD]

Search for a keyword in the trie (returns True if the keyword is found/False if not):

trie-cli search [YOUR KEYWORD]

Return a list of autocomplete suggestions based on an input prefix

trie-cli autcomplete [YOUR PREFIX]

Display the trie (keywords are indicated with a * at the end of the node name):

trie-cli display

For detailed information on command format, run trie-cli --help.

Server

The trie-cli global state methods run on a Flask server hosted in Heroku. The global state of the trie is stored in a Neo4j graph database running in Neo4j Sandbox. Use the following REST endpoints to test the server.

Name Method curl
insert PUT curl -X PUT -H "Content-Type: application/json" -d '{"keyword"="[YOUR KEYWORD]"}' "https://gentle-brushlands-20368.herokuapp.com/insert"
delete DELETE curl -X DELETE "https://gentle-brushlands-20368.herokuapp.com/delete?keyword=[YOUR KEYWORD]"
search GET curl -X GET "https://gentle-brushlands-20368.herokuapp.com/search?keyword=[YOUR KEYWORD]"
autocomplete GET curl -X GET "https://gentle-brushlands-20368.herokuapp.com/autocomplete?prefix=[YOUR PREFIX]"
display GET curl -X GET "https://gentle-brushlands-20368.herokuapp.com/display"

The CLI uses the requests Python library to call the server endpoints.

Tests

A list of commands for testing the CLI can be found in tests.sh.

Sources Consulted

CLI:

Neo4J:

Heroku:

PyPI:

License

MIT

About

A CLI to interact with a global trie data structure.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published