Metadata-Version: 2.4
Name: vectorstores
Version: 0.1.dev51
Summary: Project for uploading vector embeddings directly to weaviate.
Author-email: Bohdan Babii <bohdanbabii2000@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/BohdanBabii/vectorstores
Project-URL: Issues, https://github.com/BohdanBabii/vectorstores/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: importlib-metadata<9.0,>=6.5
Requires-Dist: jsonpatch<2.0.0,>=1.33.0
Requires-Dist: langsmith<1.0.0,>=0.3.45
Requires-Dist: numpy>=1.26.4; python_version < "3.13"
Requires-Dist: numpy>=2.1.0; python_version >= "3.13"
Requires-Dist: stubs~=1.0.0
Requires-Dist: packaging<26.0.0,>=23.2.0
Requires-Dist: pydantic<3.0.0,>=2.7.4
Requires-Dist: PyYAML<7.0.0,>=5.3.0
Requires-Dist: requests~=2.28
Requires-Dist: tqdm~=4.64
Requires-Dist: tenacity!=8.4.0,<10.0.0,>=8.1.0
Provides-Extra: tests
Requires-Dist: bandit[toml]~=1.7; extra == "tests"
Requires-Dist: mypy~=1.6; extra == "tests"
Requires-Dist: pytest<9.0,>=7.2; extra == "tests"
Requires-Dist: pytest-cov<8,>=4; extra == "tests"
Requires-Dist: ruff<0.15.0,>=0.2.1; extra == "tests"
Requires-Dist: types-requests~=2.31; extra == "tests"
Requires-Dist: types-tqdm~=4.66; extra == "tests"
Dynamic: license-file

[![PyPi](https://img.shields.io/pypi/v/web-archive-api?style=flat-square)](https://pypi.org/project/web-archive-api/)
[![CI](https://img.shields.io/github/actions/workflow/status/janheinrichmerker/web-archive-api/ci.yml?branch=main&style=flat-square)](https://github.com/janheinrichmerker/web-archive-api/actions/workflows/ci.yml)
[![Code coverage](https://img.shields.io/codecov/c/github/janheinrichmerker/web-archive-api?style=flat-square)](https://codecov.io/github/janheinrichmerker/web-archive-api/)
[![Python](https://img.shields.io/pypi/pyversions/web-archive-api?style=flat-square)](https://pypi.org/project/web-archive-api/)
[![Issues](https://img.shields.io/github/issues/janheinrichmerker/web-archive-api?style=flat-square)](https://github.com/janheinrichmerker/web-archive-api/issues)
[![Commit activity](https://img.shields.io/github/commit-activity/m/janheinrichmerker/web-archive-api?style=flat-square)](https://github.com/janheinrichmerker/web-archive-api/commits)
[![Downloads](https://img.shields.io/pypi/dm/web-archive-api?style=flat-square)](https://pypi.org/project/web-archive-api/)
[![License](https://img.shields.io/github/license/janheinrichmerker/web-archive-api?style=flat-square)](LICENSE)

# 🗃️ web-archive-api

Unified, type-safe access to web archive APIs.

## Installation

Install the package from PyPI:

```shell
pip install web-archive-api
```

## Usage

Web archives offer two main APIs: the [CDX API](#cdx-api) to list available captures and the [Memento API](#memento-api) to download individual captures.

### CDX API

TODO

#### CDX standardization

While not a formal standard, there are just three common implementations of the CDX API:
- from the [Wayback Machine](https://github.com/internetarchive/wayback/tree/master/wayback-cdx-server),
- from [pywb](https://pywb.readthedocs.io/en/latest/manual/cdxserver_api.html),
- and from [OpenWayback](https://github.com/iipc/openwayback/tree/master/wayback-cdx-server-webapp).
This package unifies access to all variants in a common, easy-to-use Python interface.

### Memento API

TODO

## Development

To build this package and contribute to its development you need to install the `build`, and `setuptools` and `wheel` packages:

```shell
pip install build setuptools wheel
```

(On most systems, these packages are already pre-installed.)

Then, install the package and test dependencies:

```shell
pip install -e .[tests]
```

You can now verify your changes against the test suite.

```shell
ruff check .                   # Code format and LINT
mypy .                         # Static typing
bandit -c pyproject.toml -r .  # Security
pytest .                       # Unit tests
```

Please also add tests for your newly developed code.

### Build wheels

Wheels for this package can be built with:

```shell
python -m build
```

## Support

If you hit any problems using this package, please file an [issue](https://github.com/janheinrichmerker/web-archive-api/issues/new).
We're happy to help!

## License

This repository is released under the [MIT license](LICENSE).
