Python Package for Data structure and algorithms implementation with its proper explanation
Project description
pyPantry: Your One-Stop Solution for DSA, Design Patterns and etc. in Python
pyPantry
is a comprehensive Python library offering robust implementations of numerous data structures and algorithms. It serves as a reliable tool for educators, students, developers, and anyone keen on mastering or utilizing these foundational computer science concepts.
📋 Table of Contents
🌟 Features
Data Structures
-
Graph: Traverse complex networks.
PyGraph.py
PyLinkedGraph.py
-
Heap: Efficient data management.
PyMaxHeap.py
PyMinHeap.py
-
LinkedList: Flexible data storage.
PyCircularLinkedList.py
PyDoublyCircularLinkedList.py
PyDoublyLinkedList.py
PyHeaderLinkedList.py
PyLinkedList.py
PySkipLinkedList.py
-
Queue: FIFO data handling.
PyCircularQueue.py
PyDeque.py
PyPriorityQueue.py
PyQueue.py
-
Stack: LIFO data access.
PyStack.py
pyLinkedStack.py
-
Tree: Hierarchical data modeling.
PyAVLTree.py
PyBTree.py
PyBinarySearchTree.py
PyBinaryTree.py
PyGenericTree.py
-
Trie: Rapid text retrieval.
PyTrie.py
Algorithms
Searching
- Binary Search:
PyBinarySearch.py
- Jump Search:
PyJumpSearch.py
- Linear Search:
PyLinearSearch.py
- Fibonacci Search:
PyFibonacciSearch.py
- Exponential Search:
PyExponentialSearch.py
- Ternary Search:
PyTernarySearch.py
- Meta Binary Search:
PyMetaBinarySearch.py
- Sentinel Linear Search:
PySentinelLinearSearch.py
- Interpolation Search:
PyInterpolationSearch.py
Sorting
- BogoSort:
PyBogoSort.py
- Odd-Even Sort:
PyOddEvenSort.py
- Sleep Sort:
PySleepSort.py
- Cocktail Sort:
PyCocktailSort.py
- Radix Sort:
PyRadixSort.py
- Bubble Sort:
PyBubbleSort.py
- Selection Sort:
PySelectionSort.py
- Bingo Sort:
PyBingoSort.py
- QuickSort:
PyQuickSort.py
- Counting Sort:
PyCountingSort.py
- Bucket Sort:
PyBucketSort.py
- Gnome Sort:
PyGnomeSort.py
- HeapSort:
PyHeapSort.py
- Bitonic Sort:
PyBitonicSort.py
- Strand Sort:
PyStrandSort.py
- Shell Sort:
PyShellSort.py
- TimSort:
PyTimSort.py
- Pancake Sort:
PyPancakeSort.py
Design Patterns
Architectural Patterns
- Event-Driven Architecture:
PyEventDrivenArchitecturePattern.py
- Microservices:
PyMicroservicesPattern.py
- Model-View-Controller (MVC):
PyModelViewControllerPattern.py
- Model-View-ViewModel (MVVM):
PyModelViewViewModelPattern.py
- Service-Oriented Architecture (SOA):
PyServiceOrientedArchitecturePattern.py
Behavioral Patterns
- Chain of Responsibility:
PyChainOfResponsibilityPattern.py
- Command:
PyCommandPattern.py
- Interpreter:
PyInterpreterPattern.py
- Iterator:
PyIteratorPattern.py
- Mediator:
PyMediatorPattern.py
- Memento:
PyMementoPattern.py
- Null Object:
PyNullObjectPattern.py
- Observer:
PyObserverPattern.py
- Specification:
PySpecificationPattern.py
- State:
PyStatePattern.py
- Strategy:
PyStrategyPattern.py
- Template:
PyTemplatePattern.py
- Visitor:
PyVisitorPattern.py
Concurrency Patterns
- Active Object:
PyActiveObjectPattern.py
- Half-Sync/Half-Async:
PyHalfSyncOrHalfAsyncPattern.py
- Leader-Follower:
PyLeaderOrFollowerPattern.py
- Reactor:
PyReactorPattern.py
- Thread Pool:
PyThreadPoolPattern.py
Creational Patterns
- Abstract Factory:
PyAbstractFactoryPattern.py
- Builder:
PyBuilderPattern.py
- Factory Method:
PyFactoryPattern.py
- Object Pool:
PyObjectPoolPattern.py
- Prototype:
PyPrototypePattern.py
- Singleton:
PySingletonPattern.py
Structural Patterns
- Adapter:
PyAdapterPattern.py
- Bridge:
PyBridgePattern.py
- Composite:
PyCompositePattern.py
- Decorator:
PyDecoratorPattern.py
- Facade:
PyFacadePattern.py
- Flyweight:
PyFlyweightPattern.py
- Private Class Data:
PyPrivateClassDataPattern.py
- Proxy:
PyProxyPattern.py
🔧 Installation
pip install python-Pantry
🚀 Usage
Data Structures
from pyPantry.DS.Stack.PyStack import PyStack
# Create a new stack
stack = PyStack()
# Push elements onto the stack
stack.push(1)
stack.push(2)
stack.push(3)
# Pop an element from the stack
print(stack.pop()) # Output: 3
Algorithms
from pyPantry.Algo.Sorting.PyBubbleSort import PyBubbleSort
# Sample list to be sorted
sample_list = [64, 34, 25, 12, 22, 11, 90]
# Apply bubble sort
sorted_list = PyBubbleSort(arr=sample_list).sort()
print(sorted_list) # Output: [11, 12, 22, 25, 34, 64, 90]
Design Patterns
Strategy Pattern
from pyPantry.DesignPatterns.Behavioral.Strategy.PyStrategyPattern import PyStrategyPattern
class CreditCardPayment(PyStrategyPattern.PaymentStrategy):
def pay(self, amount):
return f"Paid {amount} using Credit Card"
payment_method = CreditCardPayment()
print(payment_method.pay(100)) # Output: Paid 100 using Credit Card
🧪 Testing
All implementations come with corresponding test files located in the tests
directory, ensuring reliability and correctness.
To run tests, use:
python -m unittest discover tests
🤝 Contributing
We welcome and value contributions from the open-source community. Your input, whether it's a bug fix, feature addition, or documentation improvement, helps enhance pyPantry
.
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
👏 Credits
Crafted with ❤️ by Sattyam Jain.
📜 License
Licensed under the MIT License.
📞 Contact
For feedback or queries, contact us. We're always eager to connect!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for python_Pantry-3.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d45b4e522fa7b4965dbb992b45a5dad5159dfd3151a85b440139b8d6c0bc8dba |
|
MD5 | 1d70ba984a57d35b8582b4794c03aaf2 |
|
BLAKE2b-256 | d5c23cc1443e175359e7e045ceff44db07ab13bcfa1d8f227f13a0c61fb7582d |