Metadata-Version: 2.1
Name: pds-data-upload-manager
Version: 1.0.0
Summary: Planetary Data Service Data Delivery Manager
Home-page: https://github.com/NASA-PDS/data-upload-manager
Download-URL: https://github.com/NASA-PDS/data-upload-manager/releases/
Author: PDS
Author-email: pds_operator@jpl.nasa.gov
License: apache-2.0
Keywords: pds,planetary data,aws,s3,ingress,data upload
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
License-File: NOTICE.txt
Requires-Dist: boto3 ~=1.25
Requires-Dist: boto3-stubs[apigateway,cognito,essential] ~=1.25
Requires-Dist: joblib ~=1.3.1
Requires-Dist: requests >=2.23
Requires-Dist: types-requests >=2.23
Requires-Dist: PyYAML ~=6.0
Requires-Dist: types-PyYAML ~=6.0
Provides-Extra: dev
Requires-Dist: black ~=23.7.0 ; extra == 'dev'
Requires-Dist: flake8 ~=6.1.0 ; extra == 'dev'
Requires-Dist: flake8-bugbear ~=23.7.10 ; extra == 'dev'
Requires-Dist: flake8-docstrings ~=1.7.0 ; extra == 'dev'
Requires-Dist: pep8-naming ~=0.13.3 ; extra == 'dev'
Requires-Dist: mypy ~=1.5.1 ; extra == 'dev'
Requires-Dist: pydocstyle ~=6.3.0 ; extra == 'dev'
Requires-Dist: coverage ~=7.3.0 ; extra == 'dev'
Requires-Dist: pytest ~=7.4.0 ; extra == 'dev'
Requires-Dist: pytest-cov ~=4.1.0 ; extra == 'dev'
Requires-Dist: pytest-watch ~=4.2.0 ; extra == 'dev'
Requires-Dist: pytest-xdist ~=3.3.1 ; extra == 'dev'
Requires-Dist: pre-commit ~=3.3.3 ; extra == 'dev'
Requires-Dist: sphinx ~=7.2.6 ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ~=2.0.0 ; extra == 'dev'
Requires-Dist: tox ~=4.11.0 ; extra == 'dev'
Requires-Dist: types-setuptools ~=68.1.0.0 ; extra == 'dev'
Requires-Dist: Jinja2 <3.1 ; extra == 'dev'

# PDS Data Upload Manager

The PDS Data Upload Manager provides the client application and server interface for managing data deliveries and retrievals from the Data Providers to and from the Planetary Data Cloud.

## Prerequisites

The PDS Data Delivery Manager has the following prerequisties:

- `python3` for running the client application and unit tests
- `awscli` (optional) for deploying the service components to AWS (TBD)

## User Quickstart

Install with:

    pip install pds-data-upload-manager

To deploy the service components to an AWS environment:

    TBD

To execute the client, run:

    pds-ingress-client.py <ingress path> [<ingress_path> ...]

## Code of Conduct

All users and developers of the NASA-PDS software are expected to abide by our [Code of Conduct](https://github.com/NASA-PDS/.github/blob/main/CODE_OF_CONDUCT.md). Please read this to ensure you understand the expectations of our community.

## Development

To develop this project, use your favorite text editor, or an integrated development environment with Python support, such as [PyCharm](https://www.jetbrains.com/pycharm/).

### Contributing

For information on how to contribute to NASA-PDS codebases please take a look at our [Contributing guidelines](https://github.com/NASA-PDS/.github/blob/main/CONTRIBUTING.md).

### Installation

Install in editable mode and with extra developer dependencies into your virtual environment of choice:

    pip install --editable '.[dev]'

Configure the `pre-commit` hooks:

    pre-commit install && pre-commit install -t pre-push

### Packaging

To isolate and be able to re-produce the environment for this package, you should use a [Python Virtual Environment](https://docs.python.org/3/tutorial/venv.html). To do so, run:

    python -m venv venv

Then exclusively use `venv/bin/python`, `venv/bin/pip`, etc. (It is no longer recommended to use `venv/bin/activate`.)

If you have `tox` installed and would like it to create your environment and install dependencies for you run:

    tox --devenv <name you'd like for env> -e dev

Dependencies for development are specified as the `dev` `extras_require` in `setup.cfg`; they are installed into the virtual environment as follows:

    pip install --editable '.[dev]'

### Tooling

The `dev` `extras_require` included in this repo installs `black`, `flake8` (plus some plugins), and `mypy` along with default configuration for all of them. You can run all of these (and more!) with:

    tox -e lint

### Tests

A complete "build" including test execution, linting (`mypy`, `black`, `flake8`, etc.), and documentation build is executed via:

    tox

#### Unit tests

Our unit tests are launched with command:

    pytest

### Documentation

You can build this projects' docs with:

    sphinx-build docs/source docs/build

You can access the build files in the following directory relative to the project root:

    build/sphinx/html/
