Metadata-Version: 2.4
Name: water_column_sonar_processing
Version: 25.4.1
Summary: Processing tool for water column sonar data.
Author-email: Rudy Klucik <rudy.klucik@noaa.gov>
Maintainer-email: Rudy Klucik <rudy.klucik@noaa.gov>
Project-URL: Homepage, https://github.com/CI-CMG/water-column-sonar-processing
Project-URL: Issues, https://github.com/CI-CMG/water-column-sonar-processing/issues
Keywords: ocean,sonar,water column
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiobotocore==2.19.0
Requires-Dist: boto3==1.36.3
Requires-Dist: botocore==1.36.3
Requires-Dist: botocore==1.36.3
Requires-Dist: echopype==0.9.0
Requires-Dist: fiona==1.10.1
Requires-Dist: geopandas==1.0.1
Requires-Dist: mock==5.1.0
Requires-Dist: moto[all]==5.0.27
Requires-Dist: moto[server]==5.0.27
Requires-Dist: networkx==3.4.2
Requires-Dist: numcodecs==0.13.1
Requires-Dist: numpy==1.26.4
Requires-Dist: pandas==2.2.3
Requires-Dist: pooch==1.8.2
Requires-Dist: pyarrow==18.1.0
Requires-Dist: pykalman==0.10.1
Requires-Dist: python-dotenv==1.0.1
Requires-Dist: requests==2.32.3
Requires-Dist: s3fs==2024.2.0
Requires-Dist: scipy==1.14.1
Requires-Dist: setuptools
Requires-Dist: shapely==2.0.3
Requires-Dist: typing-extensions==4.10.0
Requires-Dist: xarray==2024.10.0
Requires-Dist: xbatcher==0.4.0
Requires-Dist: zarr==2.18.3
Provides-Extra: dev
Requires-Dist: bandit[toml]==1.8.0; extra == "dev"
Requires-Dist: bandit; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: flake8==7.1.1; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: matplotlib==3.10.1; extra == "dev"
Requires-Dist: pooch==1.8.2; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pyinstaller; extra == "dev"
Requires-Dist: pytest~=8.3.4; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: tqdm; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# Water Column Sonar Processing
Processing tool for converting Level_0 water column sonar data to Level_1 and Level_2 derived data sets as well as generating geospatial information.

![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/CI-CMG/water-column-sonar-processing/test_action.yaml)
![PyPI - Implementation](https://img.shields.io/pypi/v/water-column-sonar-processing) ![GitHub License](https://img.shields.io/github/license/CI-CMG/water-column-sonar-processing) ![PyPI - Downloads](https://img.shields.io/pypi/dd/water-column-sonar-processing) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/CI-CMG/water-column-sonar-processing) ![GitHub repo size](https://img.shields.io/github/repo-size/CI-CMG/water-column-sonar-processing)

# Setting up the Python Environment
> Python 3.10.12

# Installing Dependencies
```
uv pip install --upgrade pip
uv pip install -r pyproject.toml --all-extras
```


# Pytest
```
uv run pytest tests
```
or
> pytest --cache-clear --cov=src tests/ --cov-report=xml

# Instructions
Following this tutorial:
https://packaging.python.org/en/latest/tutorials/packaging-projects/

# Pre Commit Hook
see here for installation: https://pre-commit.com/
https://dev.to/rafaelherik/using-trufflehog-and-pre-commit-hook-to-prevent-secret-exposure-edo
```
pre-commit install --allow-missing-config
```

# Linting
Ruff
https://plugins.jetbrains.com/plugin/20574-ruff

# Colab Test
https://colab.research.google.com/drive/1KiLMueXiz9WVB9o4RuzYeGjNZ6PsZU7a#scrollTo=AayVyvpBdfIZ

# Test Coverage
20241124
8 failed, 32 passed, 3 skipped, 1 warning in 6.92s
20241125
5 failed, 35 passed, 3 skipped, 1 warning in 9.71s
3 failed, 38 passed, 3 skipped, 1 warning in 7.24s

# Tag a Release
Step 1 --> increment the semantic version in the zarr_manager.py "metadata" & the "pyproject.toml"
```commandline
git tag -a v25.4.0 -m "Releasing v25.4.0"
git push origin --tags
```

# To Publish To PROD
```commandline
uv build --no-sources
#python -m twine upload --repository pypi dist/*
uv publish
```

# TODO:
add https://pypi.org/project/setuptools-scm/
for extracting the version

# Security scanning
> bandit -r water_column_sonar_processing/

# Data Debugging
Experimental Plotting in Xarray (hvPlot):
https://colab.research.google.com/drive/18vrI9LAip4xRGEX6EvnuVFp35RAiVYwU#scrollTo=q9_j9p2yXsLV

HB0707 Cruise zoomable:
https://hb0707.s3.us-east-1.amazonaws.com/index.html


# UV
uv lock --check
uv sync --extra dev
uv run pytest tests
