Metadata-Version: 2.1
Name: biocommons.example
Version: 0.0.2
Summary: Example Package
Author-email: Bob the Builder <bob@nowhere.com>
Project-URL: Homepage, https://github.com/biocommons/example
Project-URL: Bug Tracker, https://github.com/biocommons/exmaple/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: coloredlogs (~=15.0)
Requires-Dist: pyyaml (~=6.0)
Provides-Extra: dev
Requires-Dist: bandit (~=1.7) ; extra == 'dev'
Requires-Dist: black (~=22.3) ; extra == 'dev'
Requires-Dist: build (~=0.8) ; extra == 'dev'
Requires-Dist: flake8 (~=4.0) ; extra == 'dev'
Requires-Dist: ipython (~=8.4) ; extra == 'dev'
Requires-Dist: isort (~=5.10) ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: pylint (~=2.14) ; extra == 'dev'
Requires-Dist: pytest (~=7.1) ; extra == 'dev'
Requires-Dist: pytest-cov (~=4.0) ; extra == 'dev'
Requires-Dist: tox (~=3.25) ; extra == 'dev'

# biocommons.example Test Package

This repo provides a template for biocommons Python packages.  Here's how to use it:

1. Click the [Use this template](https://github.com/biocommons/example/generate) button.
1. Clone your repo locally.
1. In the repo, type `make rename`. The new name will be chosen based on the repo name.
1. Remove this header.
1. Commit and push.

## Code Quality Status

| Workflow | Description             | Status                                                                       |
|----------|-------------------------|------------------------------------------------------------------------------|
| Pylint   | static code analysis    | ![Pylint](https://github.com/biocommons/example/actions/workflows/pylint.yaml/badge.svg) |
| Flake8   | style guide enforcement | ![Flake8](https://github.com/biocommons/example/actions/workflows/flake8.yaml/badge.svg) |
| Bandit   | security checks         | ![Bandit](https://github.com/biocommons/example/actions/workflows/bandit.yaml/badge.svg) |
| Pytest   | unit testing            | ![Tests](https://github.com/biocommons/example/actions/workflows/pytest.yaml/badge.svg)  |

## Installation

To install from pypi: ```pip install biocommons.example```

## Developer Setup

Setup like this:

    make devready
    source venv/bin/activate

Code reformatting:

    make reformat

Test:

    make test   # for current environment
    make tox    # for Python 3.9 and Python 3.10

Build:

    git tag 0.0.0
    make build

Try it:

    $ python3 -m biocommons.example
    Marvin says:
    There's only one life-form as intelligent as me within thirty parsecs...
           
    $ marvin-quote 
    Marvin says:
    You think you've got problems? What are you supposed to do if you...
    
    $ ipython
    >>> from biocommons.example import __version__, get_quote_from_marvin
    >>> __version__
    '0.1.dev8+gd5519a8.d20211123'
    >>> get_quote()
    "The first ten million years were the worst, ...


# Features

## Code structure and features

* Modern pyproject.toml with setuptools
* Versioning based on git tag (only)
* Easy development setup
* Support for namespaces
* Testing with coverage using pytest; tests may be in `tests/`, embedded in the package, and in doc strings
* Examples for logging and package data
* Command-line with argument parsing with argparse

## DevOps

* Quality tools: Code reformatting with black and isort
* GitHub Actions for testing and packaging

# To Do

* Docs (mkdocs w/mkdocstrings or sphinx)
* Dockerfile
* test only certain tags
* fixture example
