Metadata-Version: 2.1
Name: water_column_sonar_processing
Version: 0.0.9
Summary: A processing tool for water column sonar data.
Author-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
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.15.2
Requires-Dist: boto3==1.35.36
Requires-Dist: botocore==1.35.36
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.21
Requires-Dist: moto[server]==5.0.21
Requires-Dist: numcodecs==0.13.1
Requires-Dist: numpy==1.26.4
Requires-Dist: pandas==2.2.3
Requires-Dist: pyarrow==18.1.0
Requires-Dist: python-dotenv==1.0.0
Requires-Dist: requests==2.32.3
Requires-Dist: s3fs==2023.12.1
Requires-Dist: scipy==1.14.1
Requires-Dist: setuptools==75.6.0
Requires-Dist: shapely==2.0.3
Requires-Dist: typing-extensions==4.10.0
Requires-Dist: xarray==2024.10.0
Requires-Dist: zarr==2.18.3

# Water Column Sonar Processing
Processing tool for converting L0 data to L1 and L2 as well as generating geospatial information

# Setting up the Python Environment
> Python 3.10.12

# MacOS Pyenv Installation Instructions
  1. Install pyenv (https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv)
     1. ```brew update```
     2. ```arch -arm64 brew install pyenv```
     3. In ~/.bashrc add
        1. ```export PYENV_ROOT="$HOME/.pyenv"```
        2. ```export PATH="$PYENV_ROOT/bin:$PATH"```
        3. ```eval "$(pyenv init -)"```
     4. ```arch -arm64 brew install openssl readline sqlite3 xz zlib tcl-tk```
  2. Install pyenv-virtualenv (https://github.com/pyenv/pyenv-virtualenv)
     1. ```arch -arm64 brew install pyenv-virtualenv```
     2. In ~/.bashrc add
         1. ```eval "$(pyenv virtualenv-init -)"```
  3. Open a new terminal
  4. Install Python version
     1. ```env CONFIGURE_OPTS='--enable-optimizations' arch -arm64 pyenv install 3.10.12```
  5. Create virtual env (to delete 'pyenv uninstall 3.10.12/water-column-sonar-processing')
     1. ```pyenv virtualenv 3.10.12 water-column-sonar-processing```
  6. Set local version of python (if not done already)
     1. change directory to root of project
     2. ```pyenv local 3.10.12 water-column-sonar-processing```
     3. ```pyenv activate water-column-sonar-processing```

# Setting up IntelliJ

  1. Install the IntelliJ Python plugin
  2. Set up pyenv
     1. File -> Project Structure or CMD + ;
     2. SDKs -> + -> Add Python SDK -> Virtual Environment
     3. Select Existing Environment
     4. Choose ~/.pyenv/versions/mocking_aws/bin/python
  3. Set up Python Facet (not sure if this is required)
     1. File -> Project Structure or CMD + ;
     2. Facets -> + -> Python 
     3. Set interpreter 

# Installing Dependencies

  1. Add dependencies with versions to requirements.txt
  2. ```pip install --upgrade pip && pip install -r requirements_dev.txt```


# Pytest
```commandline
pytest --disable-warnings
```
or
> pytest --cache-clear --cov=src tests/ --cov-report=xml

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

# To Publish To TEST
```commandline
python -m build
# python -m build --sdist
# python -m build --wheel
python -m twine upload --repository testpypi dist/*
pytho -m pip install --index-url https://test.pypi.org/simple/ hello-pypi-rudy-klucik
python
```
```
from water-column-sonar-processing import ZarrManager
example.add_one(2)
```

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

# Pre Commit Hook
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
