Metadata-Version: 2.4
Name: hero-sdk
Version: 0.15.0
Summary: Python client for HERO
Project-URL: Homepage, https://github.nrel.gov/Hero/hero
Project-URL: Documentation, https://github.nrel.gov/Hero/hero
Project-URL: Repository, https://github.nrel.gov/Hero/hero
Project-URL: Bug Tracker, https://github.nrel.gov/Hero/hero/issues
Author-email: Monte Lunacek <monte.lunacek@nrel.gov>, Nick Wunder <nick.wunder@nrel.gov>
Maintainer-email: Monte Lunacek <monte.lunacek@nrel.gov>, Nick Wunder <nick.wunder@nrel.gov>, Joseph Smith <joseph.smith@nrel.gov>
License: Proprietary
License-File: LICENSE
Keywords: data repo,hero,search,task engine
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Requires-Python: <=3.12,>=3.10
Requires-Dist: cryptography>=44.0.3
Requires-Dist: pyjwt>=2.8.0
Requires-Dist: requests>=2.32.3
Requires-Dist: tenacity>=8.3.0
Requires-Dist: tqdm>=4.66.4
Provides-Extra: dev
Requires-Dist: black>=24.8.0; extra == 'dev'
Requires-Dist: pre-commit>=3.8.0; extra == 'dev'
Requires-Dist: pytest>=8.3.5; extra == 'dev'
Description-Content-Type: text/markdown

# HERO Python SDK

This is the Python SDK for HERO.

## Installation

The HERO team recommends using [uv](https://docs.astral.sh/uv/) to install and manage project dependencies.

### Using uv

```
uv add hero-sdk
```

### Using pip

```
pip install hero-sdk
```

## Development Installation and Release

First, clone this repo locally. Then install dependencies and pre-commit hooks:

```
uv sync
uv run pre-commit install
```

To run the tests:

```
./run_test.sh
```

To link the local HERO codebase into a consuming project for feature development:

- Checkout the target branch in this repo
- In your consuming project, run `uv add --editable THE-PATH-TO-THE-NEWLY-CLONED-HERO-REPO`

### Releasing a New Version

Once development is complete on a given feature/bugfix/etc, pleaes do the following to tag a new release.
- Update the version in `pyproject.toml`.
- Update the version in the Installation section(s) in the `README.md` (this file).
- Add and commit the changes made in the above two steps.
- Perform a non fast-forward the working branch into main
    - `git checkout main`
    - `git merge --no-ff THE-BRANCH-NAME-YOU-ARE-MERGING`.
- Tag the main branch with the new version via `git tag THE-NEW-VERSION-NUMBER`
- Push with tags `git push && git push --tags`


## Usage

You need to have the following environment variables defined.

```
export HERO_ENV=["dev", "stage", "prod"]
export HERO_PROJECT="aeroportal-app"
export HERO_CLIENT_ID="*******************************"
export HERO_CLIENT_SECRET="*******************************"
```

### Examples

Please check out the [HERO examples](https://github.com/nrel-hero/hero-examples).

Additionally, the tests in the `test` directory of this repo may also prove useful for basic usage examples.

SWR 26-024
