Installation
============
*oups* can be installed from source using poetry or pip. The library requires Python 3.10 or higher.
.. note::
*oups* is currently not published to PyPI, so installation must be done from the source repository.
Using Poetry (Recommended)
---------------------------
For development or if you prefer poetry:
.. code-block:: bash
# Install poetry if you don't have it
curl -sSL https://install.python-poetry.org | python3 -
# Clone and install oups
git clone https://github.com/yohplala/oups
cd oups
poetry install
# Run tests
poetry run pytest
Using Pip (Development Install)
-------------------------------
For development with editable install:
.. code-block:: bash
git clone https://github.com/yohplala/oups
cd oups
pip install -e .
# Run tests
pytest
Dependencies
------------
*oups* automatically installs these required dependencies:
* `pandas `_ (>=2.2.3) - Data manipulation
* `numpy `_ (>=2.0) - Numerical computations
* `fastparquet `_ (>=2023.10.1) - Parquet file handling
* `numba `_ (>=0.61.2) - JIT compilation for performance
* `sortedcontainers `_ (>=2.4.0) - Efficient data structures
* `flufl-lock `_ (>=8.2.0) - File locking
* `joblib `_ (>=1.3.2) - Parallel processing
* `cloudpickle `_ (>=3.1.1) - Serialization
* `arro3-core `_ (>=0.4.6) - Arrow data processing
* `arro3-io `_ (>=0.4.6) - Arrow I/O operations
Verification
------------
To verify your installation:
.. code-block:: python
import oups
print(oups.__version__)
# Basic functionality test
from oups.store import toplevel
@toplevel
class TestIndex:
name: str
version: int
# Test creating and using the index
test_idx = TestIndex("example", 1)
print(f"Index string representation: {test_idx}")
print("Installation successful!")