# Index 503

<p align="center">
  <a href="https://github.com/bdraco/index-503/actions/workflows/ci.yml?query=branch%3Amain">
    <img src="https://img.shields.io/github/actions/workflow/status/bdraco/index-503/ci.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >
  </a>
  <a href="https://index-503.readthedocs.io">
    <img src="https://img.shields.io/readthedocs/index-503.svg?logo=read-the-docs&logoColor=fff&style=flat-square" alt="Documentation Status">
  </a>
  <a href="https://codecov.io/gh/bdraco/index-503">
    <img src="https://img.shields.io/codecov/c/github/bdraco/index-503.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">
  </a>
</p>
<p align="center">
  <a href="https://python-poetry.org/">
    <img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64, " alt="Poetry">
  </a>
  <a href="https://github.com/ambv/black">
    <img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">
  </a>
  <a href="https://github.com/pre-commit/pre-commit">
    <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
  </a>
</p>
<p align="center">
  <a href="https://pypi.org/project/index-503/">
    <img src="https://img.shields.io/pypi/v/index-503.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">
  </a>
  <img src="https://img.shields.io/pypi/pyversions/index-503.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">
  <img src="https://img.shields.io/pypi/l/index-503.svg?style=flat-square" alt="License">
</p>

PEP 503 index builder

## Usage

If you have a directory full of wheels like `musllinux`:

`index-503 musllinux`

This will produce a `musllinux-index` directory with a PEP 503 index symlinked to the original directory without disturbing the original directory.

Running this again will replace the original index and delete the old index in an atomic manner.

The caller is responsible for ensuring that there are no simultaneous executions.

## Installation

Install this via pip (or your favourite package manager):

`pip install index-503`

## Credits

This package was created with
[Copier](https://copier.readthedocs.io/) and the
[browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template)
project template.

This project borrows heavily from Dominic Davis-Foster's simple503 https://github.com/repo-helper/simple503
