Metadata-Version: 2.1
Name: echofish-aws-create-empty-zarr-store-lambda
Version: 1.0.0.dev20230807164113
Home-page: https://github.com/ci-cmg/echofish-aws-create-empty-zarr-store-lambda
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas ==1.5.3
Requires-Dist: numpy ==1.23.4
Requires-Dist: zarr ==2.14.2
Requires-Dist: xarray ==2022.3.0
Requires-Dist: boto3 ==1.26.76
Requires-Dist: botocore ==1.29.76

# echofish-aws-create-empty-zarr-store-lambda

## Setting up the Python Environment

# MacOS
  1. Install pyenv (https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv)
     1. ```brew update```
     2. ```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. ```brew install openssl readline sqlite3 xz zlib tcl-tk```
  2. Install pyenv-virtualenv (https://github.com/pyenv/pyenv-virtualenv)
     1. ```brew install pyenv-virtualenv```
     2. In ~/.bashrc add
         1. ```eval "$(pyenv virtualenv-init -)"```
  3. Open a new terminal
  4. Install Python version
     1. ```env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.16```
     2. Optional: set global version of Python ```env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv global 3.9.16```
  5. Create virtual env
     1. ```pyenv virtualenv 3.9.16 echofish-aws-create-empty-zarr-store-lambda```
  6. Set local version of python (if not done already)
     1. change directory to root of project
     2. ```pyenv local echofish-aws-create-empty-zarr-store-lambda```

# Other OS
  1. Get a Mac
  2. See Above MacOS

## 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/echofish-aws-create-empty-zarr-store-lambda/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```

## Maven
This project can use Apache Maven to easily build this project.  However, this is not required, but recommended.
Maven can be easily installed by downloading it from the Maven site or using sdkman.

## Build with Maven
After setting up your pyenv run:
```mvn clean install```

## DOTENV
export AWS_DEFAULT_PROFILE=echofish

## Functional Testing
To run a functional test, developer will need to save the associated environment variables in .env for the lambda to
use. The ACCESS_KEY and SECRET_ACCESS_KEY can be generated in IAM, users, rudy-dev, security credentials,
access keys, create access key. Copy other values as needed from deployed CloudFormation Template.
```shell
export OUTPUT_BUCKET=rudy-dev-echofish-118234403147-echofish-dev-output
export TABLE_NAME=rudy-dev-echofish-EchoFish-File-Info
export OUTPUT_BUCKET_ACCESS_KEY="XXX"
export OUTPUT_BUCKET_SECRET_ACCESS_KEY="YYY"
export TOPIC_ARN="arn:aws:sns:us-west-2:118234403147:rudy-dev-echofish-processing-finished"
```
