Metadata-Version: 2.4
Name: mokelumne-providers-ldc
Version: 1.0.6
Author: Anna Wilcox, maría a. matienzo, Jason Raitz, Daniel Schmidt, Yuchai Zhou
License-Expression: MIT
Project-URL: Repository, https://github.com/BerkeleyLibrary/mokelumne-providers-ldc
Project-URL: Issues, https://github.com/BerkeleyLibrary/mokelumne-providers-ldc/issues
Requires-Python: <3.15,>=3.13
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: apache-airflow-task-sdk==1.2.2
Requires-Dist: beautifulsoup4
Requires-Dist: requests
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: lint
Requires-Dist: mypy~=1.17.1; extra == "lint"
Requires-Dist: pydoclint~=0.6.10; extra == "lint"
Requires-Dist: pylint~=3.3; extra == "lint"
Requires-Dist: types-PyYAML; extra == "lint"
Dynamic: license-file

# mokelumne-providers-ldc

Airflow provider for LDC connections.

A component of Mokelumne, UC Berkeley Library's Airflow installation, libraries, and Dags.

## Dependencies

Dependencies are declared in `pyproject.toml` and pinned in `requirements.txt` with hashes for supply-chain security.

When adding or changing dependencies, regenerate the pins with [uv](https://docs.astral.sh/uv/):

```sh
uv pip compile pyproject.toml --extra test -c constraints.txt \
  --generate-hashes -o requirements.txt
```

`constraints.txt` contains upper bounds derived from the base Airflow Docker image to prevent version conflicts with pre-installed packages. Regenerate it when bumping `AIRFLOW_VERSION`:

```sh
docker run --rm --entrypoint python apache/airflow:<version> -m pip freeze
```
