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.
-
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
-
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
-
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
-
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
-
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
-
Active Object:
PyActiveObjectPattern.py
-
Half-Sync/Half-Async:
PyHalfSyncOrHalfAsyncPattern.py
-
Leader-Follower:
PyLeaderOrFollowerPattern.py
-
Reactor:
PyReactorPattern.py
-
Thread Pool:
PyThreadPoolPattern.py
-
Abstract Factory:
PyAbstractFactoryPattern.py
-
Builder:
PyBuilderPattern.py
-
Factory Method:
PyFactoryPattern.py
-
Object Pool:
PyObjectPoolPattern.py
-
Prototype:
PyPrototypePattern.py
-
Singleton:
PySingletonPattern.py
-
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
pip install python-Pantry
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
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]
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
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
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.
Crafted with โค๏ธ by Sattyam Jain.
Licensed under the MIT License.
For feedback or queries, contact us. We're always eager to connect!