Metadata-Version: 2.4
Name: ensembl-utils
Version: 0.9.0
Summary: Ensembl Python general-purpose utils
Author-email: Ensembl <dev@ensembl.org>
License-Expression: Apache-2.0
Project-URL: Homepage, https://www.ensembl.org
Project-URL: Documentation, https://ensembl.github.io/ensembl-utils/
Project-URL: Repository, https://github.com/Ensembl/ensembl-utils.git
Project-URL: Issues, https://github.com/Ensembl/ensembl-utils/issues
Keywords: ensembl,python,utils
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Framework :: Pytest
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: pytest>=8.2.0
Requires-Dist: python-dotenv>=0.19.2
Requires-Dist: pyyaml~=6.0
Requires-Dist: requests>=2.22.0
Requires-Dist: sqlalchemy>=1.4.45
Requires-Dist: sqlalchemy_utils>=0.41.2
Provides-Extra: build
Requires-Dist: build; extra == "build"
Requires-Dist: setuptools; extra == "build"
Requires-Dist: setuptools-scm; extra == "build"
Requires-Dist: wheel; extra == "build"
Provides-Extra: cicd
Requires-Dist: black; extra == "cicd"
Requires-Dist: coverage; extra == "cicd"
Requires-Dist: genbadge[coverage]; extra == "cicd"
Requires-Dist: mypy; extra == "cicd"
Requires-Dist: pylint; extra == "cicd"
Requires-Dist: pytest-dependency; extra == "cicd"
Requires-Dist: types-pyyaml; extra == "cicd"
Requires-Dist: types-requests; extra == "cicd"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.5.3; extra == "docs"
Requires-Dist: mkdocs-autorefs; extra == "docs"
Requires-Dist: mkdocs-coverage; extra == "docs"
Requires-Dist: mkdocs-gen-files; extra == "docs"
Requires-Dist: mkdocs-literate-nav; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: mkdocs-material-extensions; extra == "docs"
Requires-Dist: mkdocs-section-index; extra == "docs"
Requires-Dist: mkdocstrings; extra == "docs"
Requires-Dist: mkdocstrings-python; extra == "docs"
Provides-Extra: mysql
Requires-Dist: mysqlclient; extra == "mysql"
Dynamic: license-file

# Ensembl Python general-purpose utils

[![License](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](https://github.com/Ensembl/ensembl-utils/blob/main/LICENSE)
[![Coverage](https://ensembl.github.io/ensembl-utils/coverage/coverage-badge.svg)](https://ensembl.github.io/ensembl-utils/coverage)
[![CI](https://github.com/Ensembl/ensembl-utils/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Ensembl/ensembl-utils/actions/workflows/ci.yml)
[![Release](https://img.shields.io/pypi/v/ensembl-utils)](https://pypi.org/project/ensembl-utils)

Centralise generic Python utils used by other projects within Ensembl design to facilitate frequent tasks such as input file path checks, archive files IO manipulation or logging setup, among others.

For more information, please consult this repository's [GitHub pages](https://ensembl.github.io/ensembl-utils/).

## Getting Started

### Basic installation

This library is publicly available in [PyPI](https://pypi.org/project/ensembl-utils/) so it can be easily installed with your favourite Python dependency and packaging management tool, e.g.
```bash
pip install ensembl-utils
```

### Quick usage

Besides the standard `import ensembl.utils`, this library also provides some useful command line scripts:
- `extract_file` - to easily extract archive files in different formats

Furthermore, `ensembl-utils` also has a [`pytest`](https://docs.pytest.org/) plugin with some useful functionalities to ease your unit testing. You can enable it by adding it explicitly when running pytest:
```bash
pytest -p ensembl.utils.plugin ...
```

Or adding the following line to your `conftest.py`:
```python
pytest_plugins = ("ensembl.utils.plugin",)
```

## Dependencies

This repository has been developed to support [SQLAlchemy](https://www.sqlalchemy.org) version 1.4 (1.4.45 or later, to ensure "future-compatibility") as well as version 2.0+.
