Getting Started

This guide will walk you through setting up the telemetry-anomdet package for development and use.

Installation

It is highly recommended to use a Python virtual environment to manage project dependencies. This ensures that the packages you install for this project do not interfere with other projects on your system.

1. Clone the repository and navigate to the project directory:

git clone https://github.com/JulioAnzaldo/telemetry-anomdet.git
cd telemetry-anomdet

2. Create and activate a virtual environment:

# On macOS or Linux
python3 -m venv venv
source venv/bin/activate

# On Windows
py -m venv venv
venv\Scripts\activate

Your command line prompt should now show (venv) to indicate the virtual environment is active.

3. Install the package locally in editable mode:

The package can be installed with different sets of dependencies. The core library supports CSV files by default. For CCSDS support, install the optional ccsds dependency.

# Install the core library with CSV support
pip install -e .

# Install with optional CCSDS support (recommended for full functionality)
pip install -e .[ccsds]

Running Tests

To verify that the package and its dependencies are installed correctly, you can run the test suite. This requires the dev dependencies to be installed, which include pytest.

# First, install development dependencies (if not already done)
pip install -e .[dev]

# Run the tests
pytest -v

Basic Usage

You can now import and use the library. For example, to check the installed version:

import telemetry_anomdet
print(telemetry_anomdet.__version__)

Contributing

The telemetry-anomdet project uses a feature-branch workflow. All new work should be done on a dedicated branch created from the main development branch.

1. Switch to the development branch: Ensure your local repository is up-to-date with the remote dev branch.

git switch dev
git pull origin dev

2. Create a new feature branch: Create a new branch for your specific feature or bug fix. This keeps your changes isolated.

git switch -c feature/my-new-feature

3. Install the package locally in editable mode:

The package can be installed with different sets of dependencies. The core library supports CSV files by default. Optional dependencies are available for development, documentation, and CCSDS support.

# Install the core library with CSV support
pip install -e .

# Install with optional CCSDS support
pip install -e .[ccsds]

# Install development dependencies (tests, formatting, linting)
pip install -e .[dev]

# Install documentation dependencies (Sphinx, themes, etc.)
pip install -e .[docs]

# Install everything (recommended for contributors)
pip install -e .[dev-all]

4. Push your branch and open a pull request: Push your branch to the remote repository and open a pull request against the dev branch.

git push -u origin feature/my-new-feature

This ensures your code is reviewed and tested before being merged into the main development branch.