RuslanKain/sorting-searching-recognized-gestures
0
1"""2╔══════════════════════════════════════════════════════════════════════════════╗3║ ║4║ 🎓 CISC 121 - OOP Sorting & Searching Visualizer ║5║ ║6║ Queen's University - Introduction to Computing Science I ║7║ ║8║ Package: oop_sorting_teaching ║9║ Purpose: Learn Object-Oriented Programming through visual algorithm demos ║10║ ║11╚══════════════════════════════════════════════════════════════════════════════╝12 13📚 CONCEPT: Python Packages14═══════════════════════════15 16A PACKAGE is a way to organize related Python code into a folder structure.17 18Think of it like a filing cabinet:19• The cabinet (package) holds related folders20• Each folder (subpackage) holds related files21• Each file (module) holds related code22 23WHY USE PACKAGES?24• Organization: Related code lives together25• Reusability: Import just what you need26• Maintainability: Smaller files are easier to understand27• Collaboration: Different people can work on different modules28 29PACKAGE STRUCTURE:30├── oop_sorting_teaching/ # Main package31│ ├── __init__.py # This file - makes it a package32│ ├── models/ # Data structures33│ │ ├── gesture.py # GestureRanking, GestureImage34│ │ ├── step.py # StepType, Step35│ │ └── image_list.py # ImageList36│ ├── algorithms/ # Sorting & searching37│ │ ├── sorting/ # Sorting algorithms38│ │ └── searching/ # Search algorithms39│ ├── visualization/ # Display logic40│ │ ├── renderers/ # HTML renderers41│ │ └── visualizer.py # Main visualizer42│ └── tests/ # Test functions43 44IMPORTING FROM THIS PACKAGE:45 # Import specific classes46 from oop_sorting_teaching.models import GestureImage, GestureRanking47 48 # Import algorithm49 from oop_sorting_teaching.algorithms.sorting import BubbleSort50 51 # Or use the convenient shortcuts below:52 from oop_sorting_teaching import GestureImage, BubbleSort53"""54 55# ==============================================================================56# CONVENIENT IMPORTS57# ==============================================================================58# These imports let users do:59# from oop_sorting_teaching import GestureImage60# instead of:61# from oop_sorting_teaching.models.gesture import GestureImage62# ==============================================================================63 64# Core models65from .models import (66 GestureRanking,67 GestureImage,68 StepType,69 Step,70 ImageList,71 GestureScorer,72)73 74# Sorting algorithms75from .algorithms import (76 SortingAlgorithm,77 SearchAlgorithm,78 BubbleSort,79 MergeSort,80 QuickSort,81 PivotStrategy,82 PartitionScheme,83 LinearSearch,84 BinarySearch,85)86 87# Visualization88from .visualization import (89 VisualizationState,90 VisualizationConfig,91 Visualizer,92 StepRenderer,93 RendererFactory,94)95 96# Define what gets exported with "from oop_sorting_teaching import *"97__all__ = [98 # Models99 "GestureRanking",100 "GestureImage", 101 "StepType",102 "Step",103 "ImageList",104 "GestureScorer",105 # Sorting106 "SortingAlgorithm",107 "BubbleSort",108 "MergeSort",109 "QuickSort",110 "PivotStrategy",111 "PartitionScheme",112 # Searching113 "SearchAlgorithm",114 "LinearSearch",115 "BinarySearch",116 # Visualization117 "VisualizationState",118 "VisualizationConfig",119 "Visualizer",120 "StepRenderer",121 "RendererFactory",122]123 124# Package version125__version__ = "1.0.0"126 