# extract-sales

ECS task to extract sales data from StatementDB to S3

## Requirements

- Python 3.12
- Docker

## Installation

Create a `.env` file based on the `.env.shadow` and fill in the values: `cp .env.shadow .env`

Create a virtual env and install the requirements: `make dev_env`

## Running the task

Run the task locally: `make dev`

Run the task in a Docker container: `make docker_dev`

## Running the tests

Run the linter and the unit tests locally: `make test`

Run the linter and the unit tests in a Docker container: `make docker_test`

## Adding new packages

- For dev packages, add them normally to `requirements-dev.txt`
- For regular packages, add the new top level package name
  and optionally version constraints to `requirements-to-freeze.txt`
- Run `make pip_lock_versions`

## Upgrading packages

Regularly running `make pip_lock_versions` will update and freeze all non-dev dependencies in `requirements.txt`
