Metadata-Version: 2.4
Name: pass-plus-sort
Version: 0.1.0
Summary: PASS+: A Pattern-Aware Stratified Sorting algorithm for accelerated sorting of numerical data.
Author-email: Your Name <you@example.com>
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: numba

Explanation of Files and Folders:

pass_plus_package/ (Root Directory): The main project folder.

`pass_plus_sort/` (Package Directory): This is the actual Python package. The original name `pass` is a reserved keyword in Python and cannot be used for an importable package.

`__init__.py`: This file is crucial. It tells Python that the `pass_plus_sort` directory should be treated as a package. It can also be used to define what gets imported when someone does `from pass_plus_sort import *`. For example, you might put `from .core import PASSPlusSort` here.

core.py: Your main PASSPlusSort class and the high-level orchestration of the algorithm.

modules.py: All the individual phases and their classes (StatProfiler, ReservoirSampler, PatternDetector, AdaptiveBucketizer, LocalizedSortingStrategy, ParallelSorter, RollingWindowFixer).

specialized_sorts.py: Contains BitBucketSorter and FormulaSorts classes.

utils.py: All your general helper functions and traditional sorting algorithms (quick_sort, merge_sort, heap_sort, radix_sort, tim_sort).

__main__.py (Optional): If you want to make your package executable directly (e.g., python -m pass_plus_sort), put the run_comprehensive_test_pass_plus() call or a command-line interface logic here.

tests/: Contains all your unit tests. Using a testing framework like pytest is highly recommended.

benchmark/: Separates your benchmarking code from the core algorithm, but allows it to import the core.

setup.py: The most important file for package distribution. It describes your project and how to install it using setuptools.

README.md: A markdown file explaining what your project is, how to install it, how to use it, and its features.

LICENSE: Specifies the licensing terms for your code.

pass_plus_package/
├── pass_plus_sort/
│   ├── __init__.py
│   ├── core.py             # Contains PASSPlusSort class and main algorithm logic
│   ├── modules.py          # Contains StatProfiler, ReservoirSampler, PatternDetector, etc.
│   ├── specialized_sorts.py # Contains BitBucketSorter, FormulaSorts
│   ├── utils.py            # Contains helper functions like quick_sort, merge_sort, etc.
│   └── __main__.py         # Optional: for running the package directly
├── tests/
│   ├── test_pass_plus.py   # Unit tests for your algorithms
├── benchmark/
│   ├── __init__.py
│   └── run_benchmark.py    # Contains the SortingBenchmark class and data generation
├── setup.py                # Installation script
├── README.md               # Project description
└── LICENSE                 # License file (e.g., MIT, Apache 2.0)

 Running Benchmarks/Tests:

Make sure pandas, matplotlib, seaborn are installed (e.g., pip install -e ".[benchmark]" to install optional benchmark dependencies).

From the pass_plus_package root, you can run your benchmark:

```bash
python benchmark/run_benchmark.py
```
Or, if you put the run_comprehensive_test_pass_plus() call in pass_plus_sort/__main__.py:

```bash
python -m pass_plus_sort
```
For tests, if using pytest:

```bash
pip install pytest
pytest tests/
```
5. Distribution (Optional, for PyPI)
If you want to share your package publicly on PyPI (the Python Package Index), you would typically:

Install build and twine:

Bash

pip install build twine
Build your package:

Bash

python -m build
This creates dist/ folder with .whl (wheel) and .tar.gz (source distribution) files.

Upload to TestPyPI (for testing):

Bash

twine upload --repository testpypi dist/*
Upload to PyPI (for public release):

Bash

twine upload dist/*
