-
Brandon Rodriguez authoreda8dcac40
Python - Custom Graph Library
Description
A custom implementation of a graph data structure. Setup as a library for other projects to import.
For information on importing the library as a "git submodule", see documents/git_submodules.md
.
Python Environment
This project is tested using Python3.7. Written using PyCharm. Tested with Pycharm 2017.2.3 and 2019.2 versions.
Creating a New Env
Most installations of Python3 will allow you to simply run python3.7 -m venv ./.venv
to create a new Python3.7
environment called ".venv" at the current directory folder.
Once created, load this environment with source .venv/bin/activate
on Linux or . .venv/Scripts/activate
on Windows.
Third Party Libraries
- If any additional libraries have been used, then they will be found in
requrements.txt
at the project root. - To install, load your local Python Environment and run
pip install -r requirements.txt
when at the project root.
Running the Program
Run the program via python ./main.py
while at the project root.
Expected Output
Since this is a library, running main only gives example uses.
Running main will give 3 options:
-
Run a few graph functions and print graph output to console.
-
Dynamically generate a few graphs and use the "plotly" library to visually map them.
(Note that this will open up browser tabs, as that seems to be how plotly renders visuals. As far as I can tell, I don't have control over this.) -
Run through every single graph function in every single custom class within this library.
This option is admittedly a little bit hard to follow/read. But I'm not sure how else I was supposed to meet the below requirement:"Also, you will demonstrate your code. Write a script that builds a graph using your Graph library and demonstrate the use of your methods that implement the functions listed above."
Running Tests
To run all unittests for this project, open a terminal and run the run_unit_tests.sh
bash script.
For more information about testing, see the documents/testing.md
file.
References
See the documents/references.md
file.