Metadata-Version: 2.4
Name: ensembl-rest-client
Version: 0.2.0a0
Summary: Python access to the Ensembl REST API
Author-email: Chris Finan <c.finan@ucl.ac.uk>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://cfinan.gitlab.io/ensembl-rest-client
Project-URL: Repository, https://gitlab.com/cfinan/ensembl-rest-client
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: <3.14,>=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: pandas>=2
Requires-Dist: numpy>=1.25
Requires-Dist: requests
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-dependency; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: bump2version; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# Getting Started with enembl-rest-client
__version__: `0.2.0a0`

enembl-rest-client provides Pythonic access to the
[Ensembl REST API](https://rest.ensembl.org/). It implements most current
endpoints at `https://rest.ensembl.org` and was last refreshed against Ensembl
REST ~15.12–16.0.

**Python support:** 3.9–3.13 (`requires-python = ">=3.9,<3.14"`).

Note that not all endpoint methods have full live coverage. Offline unit tests
cover recent path and surface changes; additional pytest coverage is added as
methods are used.

### Breaking changes in 0.2.x

Hard removals and signature changes (no compatibility shims):

* Comparative genomics member/homology **by-id** methods require `species` as
  the first argument (path form used by Ensembl REST ≥15.8)
* **Removed:** eQTL wrappers (Ensembl REST 15.0) — use the
  [EMBL-EBI eQTL Catalogue](https://www.ebi.ac.uk/eqtl/) instead
* **Removed:** gene family methods (REST 15.3)
* **Removed:** regulation microarray / epigenome / regulatory-id wrappers
  (REST 15.9); binding-matrix remains

Full notes: [CHANGELOG.md](CHANGELOG.md).

Now there are other ensembl rest implementations. You may be better using these:

* https://pypi.org/project/pyEnsemblRest/
* https://pypi.org/project/ensembl-rest/

There is [online](https://cfinan.gitlab.io/ensembl-rest-client/index.html) documentation for ensembl-rest-client.

## Installation instructions
You can install using pip or conda.

### Installation using pip

```
pip install ensembl-rest-client
```

### Installation using conda
I maintain a conda package in my personal conda channel. To install this please run:

```
conda install -c cfin -c conda-forge ensembl-rest-client
```

## Basic usage
There are some examples in `./resources/examples` where `.` is the root of the cloned repository.

## Run tests

If you have cloned the repository, install an editable checkout first so tests
use this tree rather than an older wheel from site-packages:

```bash
pip install -e ".[dev]"
```

```bash
# Full suite (archive / lookup / overlap / xrefs hit live Ensembl REST;
# conftest pings rest.ensembl.org at session start)
pytest ./tests

# Offline-only suites (mock rest_query; no network required for these files)
pytest ./tests/test_comp_genomics.py \
       ./tests/test_client_surface.py \
       ./tests/test_regulation.py \
       ./tests/test_vep.py -q

# Optional live comparative-genomics probes (and other @pytest.mark.live tests)
ENSEMBL_LIVE=1 pytest ./tests -m live
```

- Marker: `live` — optional integration probes against Ensembl REST
- Gate: set `ENSEMBL_LIVE=1` or those tests are skipped
- Markers and `pythonpath` are registered in `tests/pytest.ini`

If any fail please contact us (see the contribution page for contact info).
