# **The soup**
A collection of python classes and functions.
## Getting it
#### Github
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 .`
#### PyPi
This is available on [PyPi](https://pypi.org/project/thesoup/) 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
## Components
### Classes
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`
- Heap
- Min heap `Minheap`
- Max heap `MaxHeap`
- Binary trees
- BST `BinarySearchTree`
- 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](https://en.wikipedia.org/wiki/Disjoint-set_data_structure) `DisjointSets` for details on what it is
- Utilities
- A result class, similar to Rust's `Result`.
## Functions
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`
- Graph traversals
- Bread first search `bfs`
- Depth first search `dfs`
- Dijkstra `dijkstra`
- Specialized SP for DAGs `shortest_path_dag`
- String related
- Test if 2 strings are anagrams `is_anagram`
- Other
- K-way merge `merge`
Raw data
{
"_id": null,
"home_page": "https://github.com/amartya00/thesoup",
"name": "thesoup",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Amartya Datta Gupta",
"author_email": "amartya00@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/07/a5/8fdee415eaee19783ab969611fdc23b630d7f59a5f08d4210c1d2c2518cc/thesoup-1.1.tar.gz",
"platform": null,
"description": "# **The soup**\nA collection of python classes and functions.\n\n## Getting it\n#### Github\nDownload it from GitHub with a `git clone https://github.com/sigabrtio/thesoup.git`\nNavigate to the root, and run all tests to ensure everything is working with `nose2 tst/ --nocapture`\n\nNow install with `sudo pip3 install .`\n\n#### PyPi\nThis is available on [PyPi](https://pypi.org/project/thesoup/) as well. Do a `sudo pip3 install thesoup` to install.\n\n**NOTE**: If you do not have nose tests, install it with `sudo pip3 install nose`\n\n**NOTE**: This is python3 only\n\n## Components\n### Classes\nIt has the following utility classes:\n - Graphs\n - Abstract class for directed graph `DiGraph`\n - Abstract class for directed mutable graph `MutableDiGraph`\n - A mutable digraph implementation with adjacency list `AdjListGraph`\n \n - Heap\n - Min heap `Minheap`\n - Max heap `MaxHeap`\n \n - Binary trees\n - BST `BinarySearchTree`\n \n - Trie (ASCII only)\n\n - Sets\n - A set that keeps track of the number of occurrences of repeated elements `CountSet` \n - A disjoint sets utility. See the [Wikipedia entry](https://en.wikipedia.org/wiki/Disjoint-set_data_structure) `DisjointSets` for details on what it is\n \n - Utilities\n - A result class, similar to Rust's `Result`.\n\n## Functions\nIt has the following utility functions\n - Collection related\n - Flatten a nested collection `flatten`\n - Flatten a nested collection except the tuples `flatten_to_tuple`\n - Find all subsequences of a list `subsequence`\n - Foreach method that works on all collections `foreach`\n - Group a collection into a map by some criteria `group_by`\n \n - Graph traversals\n - Bread first search `bfs`\n - Depth first search `dfs`\n - Dijkstra `dijkstra`\n - Specialized SP for DAGs `shortest_path_dag`\n \n - String related\n - Test if 2 strings are anagrams `is_anagram` \n \n - Other\n - K-way merge `merge`\n \n \n\n",
"bugtrack_url": null,
"license": "GPLv2",
"summary": "A soup of random python utils",
"version": "1.1",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "07a58fdee415eaee19783ab969611fdc23b630d7f59a5f08d4210c1d2c2518cc",
"md5": "95e0f571a1ee42633a7f3462fa09d2b3",
"sha256": "df35d5d67c23b8d03440ce281c3984089a702a827d1181c9d714536a8f31bd6b"
},
"downloads": -1,
"filename": "thesoup-1.1.tar.gz",
"has_sig": false,
"md5_digest": "95e0f571a1ee42633a7f3462fa09d2b3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21235,
"upload_time": "2023-03-15T21:38:44",
"upload_time_iso_8601": "2023-03-15T21:38:44.104791Z",
"url": "https://files.pythonhosted.org/packages/07/a5/8fdee415eaee19783ab969611fdc23b630d7f59a5f08d4210c1d2c2518cc/thesoup-1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-03-15 21:38:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "amartya00",
"github_project": "thesoup",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "thesoup"
}