Installation ============ Requirements ------------ * Python 3.11+ * Access to a SLURM-based computing cluster (for execution) Basic Installation ------------------ Install SO Campaign Manager using uv: .. code-block:: bash uv add so_campaign_manager Or with pip: .. code-block:: bash pip install so_campaign_manager Development Installation ------------------------ For development or to get the latest features, install from source: .. code-block:: bash git clone https://github.com/simonsobs/so_campaign_manager.git cd so_campaign_manager uv sync Development Dependencies ------------------------ To install development dependencies for testing and documentation: .. code-block:: bash uv sync --group dev This installs additional packages needed for: * Code formatting and linting (ruff, darker, flake8) * Testing (pytest, hypothesis) * Coverage reporting (pytest-cov, coveralls) Verification ------------ Verify your installation by running: .. code-block:: bash socm --help You should see the help message for the SO Campaign Manager command-line interface. Dependencies ------------ Core dependencies include: * **pydantic** (≥2.0) - Data validation and settings management * **numpy** - Numerical computing * **radical.pilot** - Workflow execution engine * **networkx** - Graph algorithms for workflow dependencies * **toml** - Configuration file parsing * **click** - Command-line interface * **sotodlib** - SO-specific data handling * **slurmise** - SLURM job management These dependencies are automatically installed with the package.