ensembl-py


Nameensembl-py JSON
Version 2.1.3 PyPI version JSON
download
home_pageNone
SummaryEnsembl Python Base Library
upload_time2024-09-17 13:10:14
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseApache License 2.0
keywords ensembl bioinformatics python setup
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Ensembl Python Base Library

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

Centralise generic Python code use across all other project within Ensembl, more particularly database access layers and ORMs, reusable eHive components, etc.

## Getting Started

### Installing the development environment with `venv`

```
python -m venv <VIRTUAL_ENVIRONMENT_NAME>
source <VIRTUAL_ENVIRONMENT_NAME>/bin/activate
git clone https://github.com/Ensembl/ensembl-py.git
cd ensembl-py
pip install -e .[cicd,dev,docs]
```

### Testing with `pytest`

Run test suite from the root of the repository is as simple as to run:
```
pytest
```

To run tests, calculate and display testing coverage stats:
```
coverage run -m pytest
coverage report -m
```

### Generate documentation via `mkdocs`
```
mkdocs build
```
Open automatically generated documentation page at `site/index.html`.

### Automatic formatting (PEP8 compliance)
```
black --check .
```
Use `--diff` to print a diff of what Black would change, without actually changing the files.

To actually reformat all files in the repository:
```
black .
```

### Linting and type checking
```
pylint src/python/ensembl
pylint --recursive=y src/python/tests
mypy src/python/ensembl
mypy src/python/tests
```
`pylint` will check the code for syntax, name errors and formatting style. `mypy` will use type hints to statically type check the code.

It should be relatively easy (and definitely useful) to integrate both `pylint` and `mypy` in your IDE/Text editor.

## Useful resources

### Python Documentation
- [Official Python Docs](https://docs.python.org/3/)

### Python virtual environments management
- [Python venv](https://docs.python.org/3/library/venv.html)

### Auto-generating documentation
- [mkdocs](https://www.mkdocs.org)

### Linting, type checking and formatting
- [Pylint](https://www.pylint.org/)
- [Mypy](https://mypy.readthedocs.io/en/stable/)
- [Black](https://black.readthedocs.io/en/stable/)
- [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings)

### Testing
- [pytest](https://docs.pytest.org/en/6.2.x/)
- [Coverage](https://coverage.readthedocs.io/)

### CI/CD
- [GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/)

### Development tools
- [IPython](https://ipython.org/)

### Distributing
- [Packaging Python](https://packaging.python.org/tutorials/packaging-projects/)
- [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0#apply)
- [Semantic Versioning](https://semver.org/)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ensembl-py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "ensembl, bioinformatics, python, setup",
    "author": null,
    "author_email": "Ensembl <dev@ensembl.org>",
    "download_url": "https://files.pythonhosted.org/packages/db/8c/f7b2177bba7cbb3ab6904a175b7e694b343197cdf8e9f3db8839a72c6bc2/ensembl_py-2.1.3.tar.gz",
    "platform": null,
    "description": "# Ensembl Python Base Library\n\n[![License](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](https://github.com/Ensembl/ensembl-py/blob/main/LICENSE)\n[![Coverage](https://ensembl.github.io/ensembl-py/coverage/coverage-badge.svg)](https://ensembl.github.io/ensembl-py/coverage)\n[![CI](https://github.com/Ensembl/ensembl-py/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Ensembl/ensembl-py/actions/workflows/ci.yml)\n[![Release](https://img.shields.io/pypi/v/ensembl-py)](https://pypi.org/project/ensembl-py)\n\nCentralise generic Python code use across all other project within Ensembl, more particularly database access layers and ORMs, reusable eHive components, etc.\n\n## Getting Started\n\n### Installing the development environment with `venv`\n\n```\npython -m venv <VIRTUAL_ENVIRONMENT_NAME>\nsource <VIRTUAL_ENVIRONMENT_NAME>/bin/activate\ngit clone https://github.com/Ensembl/ensembl-py.git\ncd ensembl-py\npip install -e .[cicd,dev,docs]\n```\n\n### Testing with `pytest`\n\nRun test suite from the root of the repository is as simple as to run:\n```\npytest\n```\n\nTo run tests, calculate and display testing coverage stats:\n```\ncoverage run -m pytest\ncoverage report -m\n```\n\n### Generate documentation via `mkdocs`\n```\nmkdocs build\n```\nOpen automatically generated documentation page at `site/index.html`.\n\n### Automatic formatting (PEP8 compliance)\n```\nblack --check .\n```\nUse `--diff` to print a diff of what Black would change, without actually changing the files.\n\nTo actually reformat all files in the repository:\n```\nblack .\n```\n\n### Linting and type checking\n```\npylint src/python/ensembl\npylint --recursive=y src/python/tests\nmypy src/python/ensembl\nmypy src/python/tests\n```\n`pylint` will check the code for syntax, name errors and formatting style. `mypy` will use type hints to statically type check the code.\n\nIt should be relatively easy (and definitely useful) to integrate both `pylint` and `mypy` in your IDE/Text editor.\n\n## Useful resources\n\n### Python Documentation\n- [Official Python Docs](https://docs.python.org/3/)\n\n### Python virtual environments management\n- [Python venv](https://docs.python.org/3/library/venv.html)\n\n### Auto-generating documentation\n- [mkdocs](https://www.mkdocs.org)\n\n### Linting, type checking and formatting\n- [Pylint](https://www.pylint.org/)\n- [Mypy](https://mypy.readthedocs.io/en/stable/)\n- [Black](https://black.readthedocs.io/en/stable/)\n- [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings)\n\n### Testing\n- [pytest](https://docs.pytest.org/en/6.2.x/)\n- [Coverage](https://coverage.readthedocs.io/)\n\n### CI/CD\n- [GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/)\n\n### Development tools\n- [IPython](https://ipython.org/)\n\n### Distributing\n- [Packaging Python](https://packaging.python.org/tutorials/packaging-projects/)\n- [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0#apply)\n- [Semantic Versioning](https://semver.org/)\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "Ensembl Python Base Library",
    "version": "2.1.3",
    "project_urls": {
        "Documentation": "https://ensembl.github.io/ensembl-py/",
        "Homepage": "https://www.ensembl.org",
        "Issues": "https://github.com/Ensembl/ensembl-py/issues",
        "Repository": "https://github.com/Ensembl/ensembl-py.git"
    },
    "split_keywords": [
        "ensembl",
        " bioinformatics",
        " python",
        " setup"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3f6191b9be1afd65c219331b18dba1f342c00700bdd51f9236eb05b326748c90",
                "md5": "49061be49ea9a6ee48f34cae6e0a4b99",
                "sha256": "9a939ca23c566815f0c6336c1c66143d110d814cc2d439d874aaf4bfeda26c94"
            },
            "downloads": -1,
            "filename": "ensembl_py-2.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "49061be49ea9a6ee48f34cae6e0a4b99",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 26080,
            "upload_time": "2024-09-17T13:10:13",
            "upload_time_iso_8601": "2024-09-17T13:10:13.497384Z",
            "url": "https://files.pythonhosted.org/packages/3f/61/91b9be1afd65c219331b18dba1f342c00700bdd51f9236eb05b326748c90/ensembl_py-2.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "db8cf7b2177bba7cbb3ab6904a175b7e694b343197cdf8e9f3db8839a72c6bc2",
                "md5": "2d6a9d700cae6ff99120ae06ef5572bf",
                "sha256": "cbf6a9279fc3888acc53cd7ee70727da07265d79386e1bce9b0a40e36cba12ad"
            },
            "downloads": -1,
            "filename": "ensembl_py-2.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "2d6a9d700cae6ff99120ae06ef5572bf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 184836,
            "upload_time": "2024-09-17T13:10:14",
            "upload_time_iso_8601": "2024-09-17T13:10:14.761132Z",
            "url": "https://files.pythonhosted.org/packages/db/8c/f7b2177bba7cbb3ab6904a175b7e694b343197cdf8e9f3db8839a72c6bc2/ensembl_py-2.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-17 13:10:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Ensembl",
    "github_project": "ensembl-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ensembl-py"
}
        
Elapsed time: 4.95199s