Metadata-Version: 2.4
Name: aind-s3-cache
Version: 0.1.0
Summary: Small library providing a transparent local cache for S3 objects.
Author: Allen Institute for Neural Dynamics
Author-email: Galen Lynch <galen@galenlynch.com>
License-Expression: MIT
Project-URL: Repository, https://github.com/AllenNeuralDynamics/aind-s3-cache/
Project-URL: Issues, https://github.com/AllenNeuralDynamics/aind-s3-cache/issues
Project-URL: Changelog, https://github.com/AllenNeuralDynamics/aind-s3-cache/blob/main/CHANGELOG.md
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: boto3<2,>=1
Requires-Dist: requests<3,>=2
Requires-Dist: typing-extensions>=4.7; python_version < "3.11"
Dynamic: license-file

# AIND S3 Cache

![CI](https://github.com/AllenNeuralDynamics/aind-s3-cache/actions/workflows/ci-call.yml/badge.svg)
[![PyPI - Version](https://img.shields.io/pypi/v/aind-s3-cache)](https://pypi.org/project/aind-s3-cache/)
[![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
[![License](https://img.shields.io/badge/license-MIT-brightgreen)](LICENSE)
[![ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
[![Copier](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/copier-org/copier/master/img/badge/badge-grayscale-inverted-border.json)](https://github.com/copier-org/copier)
Small library providing a transparent local cache for S3 objects.

## Key Features

- **S3 Integration**: Built-in support for AWS S3 with caching and anonymous access
- **Multi-source JSON Reading**: Unified JSON loading from local files, HTTP URLs, and S3 URIs

## Installation

If you choose to clone the repository, you can install the package by running the following command from the root directory of the repository:

```bash
pip install .
```

Otherwise, you can use pip:

```bash
pip install aind-s3-cache
```



To develop the code, run:
```bash
uv sync
```

## Development

Please test your changes using the full linting and testing suite:

```bash
./scripts/run_linters_and_checks.sh -c
```

Or run individual commands:
```bash
uv run --frozen ruff format          # Code formatting
uv run --frozen ruff check           # Linting

uv run --frozen mypy                 # Type checking

uv run --frozen interrogate -v       # Documentation coverage
uv run --frozen codespell --check-filenames  # Spell checking
uv run --frozen pytest --cov  # Tests with coverage
```


### Documentation
```bash
sphinx-build -b html docs/source/ docs/build/html
```


## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
