Metadata-Version: 2.1
Name: virtool-core
Version: 7.1.5
Summary: Core utilities for Virtool.
Home-page: https://github.com/virtool/virtool-core
License: MIT
Author: Ian Boyes
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: aiofiles (==0.7.0)
Requires-Dist: aioredis (>=1.3.0,<2.0.0)
Requires-Dist: arrow (>=1.2.2,<2.0.0)
Requires-Dist: coloredlogs (>=15.0.1,<16.0.0)
Requires-Dist: dictdiffer (==0.8.1)
Requires-Dist: email-validator (>=2.0.0.post2,<3.0.0)
Requires-Dist: enum-tools (>=0.9.0.post1,<0.10.0)
Requires-Dist: motor (>=3.1.2,<4.0.0)
Requires-Dist: motor-types (>=1.0.0b3,<2.0.0)
Requires-Dist: psutil (>=5.8.0,<6.0.0)
Requires-Dist: pydantic (>=1.8.2,<2.0.0)
Requires-Dist: structlog (>=23.1.0,<24.0.0)
Project-URL: Repository, https://github.com/virtool/virtool-core
Description-Content-Type: text/markdown

# virtool-core

Core utilities for Virtool and associated packages.

![Tests](https://github.com/virtool/virtool-core/workflows/ci/badge.svg?branch=main&event=push)
[![PyPI version](https://badge.fury.io/py/virtool-core.svg)](https://badge.fury.io/py/virtool-core)

## Contributing

### Commits

All commits must follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0) specification.

These standardized commit messages are used to automatically publish releases using [`semantic-release`](https://semantic-release.gitbook.io/semantic-release)
after commits are merged to `main` from successful PRs.

**Example**

```text
feat: add API support for assigning labels to existing samples
```

Descriptive bodies and footers are required where necessary to describe the impact of the commit. Use bullets where appropriate.

Additional Requirements
1. **Write in the imperative**. For example, _"fix bug"_, not _"fixed bug"_ or _"fixes bug"_.
2. **Don't refer to issues or code reviews**. For example, don't write something like this: _"make style changes requested in review"_.
Instead, _"update styles to improve accessibility"_.
3. **Commits are not your personal journal**. For example, don't write something like this: _"got server running again"_
or _"oops. fixed my code smell"_.

From Tim Pope: [A Note About Git Commit Messages](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)

### Tests

1. Install Tox

   `tox` is used to run the tests in a fresh virtual environment with all of the test dependencies. To install it use;

   ```shell script
   pip install tox tox-poetry
   ```

2. Run Tests

   ```shell script
   tox
   ```

Any arguments given to tox after a `--` token will be supplied to pytest:
```shell script
tox -- --log-cli-level=DEBUG
```

### Documentation

For docstrings, use the [**Sphinx** docstring format](https://sphinx-rtd-tutorial.readthedocs.io/en/latest/docstrings.html).

Build the documentation with:
```shell script
cd sphinx && make html
```

The rendered HTML files are found under `sphinx/build/html`



