Metadata-Version: 2.4
Name: homeotopy
Version: 0.6.1
Summary: A library for computing homeomorphisms between some common standard topologies
Project-URL: homepage, https://github.com/hafaio/homeotopy
Project-URL: documentation, https://hafaio.github.io/homeotopy
Project-URL: repository, https://github.com/hafaio/homeotopy
License-Expression: MIT
License-File: LICENSE
Keywords: cube,homeomorphism,hypercube,hypersphere,simplex,sphere
Requires-Python: >=3.12
Requires-Dist: numba>=0.61.0
Requires-Dist: numpy>=2.0
Description-Content-Type: text/markdown

# Homotopy

[![build](https://github.com/hafaio/homeotopy/actions/workflows/build.yml/badge.svg)](https://github.com/hafaio/homeotopy/actions/workflows/build.yml)
[![pypi](https://img.shields.io/pypi/v/homeotopy)](https://pypi.org/project/homeotopy/)
[![docs](https://img.shields.io/badge/api-docs-blue)](https://hafaio.github.io/homeotopy)

A python library for computing homeomorphisms between some common continuous
spaces.

## Installation

```sh
pip install homeotopy
```

## Usage

```py
import homeotopy

points = ...
# create a mapping from the simplex to the surface of the sphere
mapping = homeotopy.homeomorphism(homeotopy.simplex(), homeotopy.sphere())
sphere_points = mapping(points)

rev_mapping = ~mapping
duplicate_points = rev_mapping(sphere_points)
```

## Development

### Checks

```sh
uv run ruff format --check
uv run ruff check
uv run pyright
uv run pytest
```

### Publishing

Releases are cut manually: run the [`release` workflow](https://github.com/hafaio/homeotopy/actions/workflows/release.yml)
from the Actions tab and pick a version bump (patch/minor/major). It runs the checks,
bumps the version, builds and publishes to PyPI via
[trusted publishing](https://docs.pypi.org/trusted-publishers/) (no API token), tags the
release, and deploys the docs.
