A collection of python classes and functions.
Download it from GitHub with a git clone https://github.com/sigabrtio/thesoup.git
Navigate to the root, and run all tests to ensure everything is working with nose2 tst/ --nocapture
Now install with sudo pip3 install .
This is available on PyPi as well. Do a sudo pip3 install thesoup to install.
NOTE: If you do not have nose tests, install it with sudo pip3 install nose
NOTE: This is python3 only
It has the following utility classes:
-
Graphs
- Abstract class for directed graph
DiGraph - Abstract class for directed mutable graph
MutableDiGraph - A mutable digraph implementation with adjacency list
AdjListGraph
- Abstract class for directed graph
-
Heap
- Min heap
Minheap - Max heap
MaxHeap
- Min heap
-
Binary trees
- BST
BinarySearchTree
- BST
-
Trie (ASCII only)
-
Sets
- A set that keeps track of the number of occurrences of repeated elements
CountSet - A disjoint sets utility. See the Wikipedia entry
DisjointSetsfor details on what it is
- A set that keeps track of the number of occurrences of repeated elements
-
Utilities
- A result class, similar to Rust's
Result.
- A result class, similar to Rust's
It has the following utility functions
-
Collection related
- Flatten a nested collection
flatten - Flatten a nested collection except the tuples
flatten_to_tuple - Find all subsequences of a list
subsequence - Foreach method that works on all collections
foreach - Group a collection into a map by some criteria
group_by
- Flatten a nested collection
-
Graph traversals
- Bread first search
bfs - Depth first search
dfs - Dijkstra
dijkstra - Specialized SP for DAGs
shortest_path_dag
- Bread first search
-
String related
- Test if 2 strings are anagrams
is_anagram
- Test if 2 strings are anagrams
-
Other
- K-way merge
merge
- K-way merge