Metadata-Version: 2.1
Name: countdoom
Version: 0.2.0
Summary: Fetch the current Doomsday Clock from TheBulletin.org
Home-page: https://github.com/renemarc/countdoom
Author: René-Marc Simard
Author-email: renemarc@gmail.com
License: MIT license
Project-URL: Documentation, https://countdoom.readthedocs.io/
Project-URL: Changelog, https://countdoom.readthedocs.io/en/latest/changelog.html
Project-URL: Issue Tracker, https://github.com/renemarc/countdoom/issues
Keywords: Doomsday,Clock
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.5
Description-Content-Type: text/x-rst
Requires-Dist: aiohttp (<4.0)
Requires-Dist: beautifulsoup4
Provides-Extra: dev
Requires-Dist: aioresponses ; extra == 'dev'
Requires-Dist: argh ; extra == 'dev'
Requires-Dist: bandit ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: bump2version ; extra == 'dev'
Requires-Dist: check-manifest ; extra == 'dev'
Requires-Dist: codecov ; extra == 'dev'
Requires-Dist: coverage ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: flake8-isort ; extra == 'dev'
Requires-Dist: git-pylint-commit-hook ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: m2r ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: pre-commit ; extra == 'dev'
Requires-Dist: pylint ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-asyncio ; extra == 'dev'
Requires-Dist: pytest-httpserver ; extra == 'dev'
Requires-Dist: pytoml ; extra == 'dev'
Requires-Dist: requests ; extra == 'dev'
Requires-Dist: setuptools ; extra == 'dev'
Requires-Dist: Sphinx ; extra == 'dev'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
Requires-Dist: toml ; extra == 'dev'
Requires-Dist: tox (>=2.4) ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: watchdog ; extra == 'dev'
Requires-Dist: wheel ; extra == 'dev'
Provides-Extra: dist
Requires-Dist: bandit ; extra == 'dist'
Requires-Dist: bump2version ; extra == 'dist'
Requires-Dist: check-manifest ; extra == 'dist'
Requires-Dist: flake8 ; extra == 'dist'
Requires-Dist: flake8-isort ; extra == 'dist'
Requires-Dist: git-pylint-commit-hook ; extra == 'dist'
Requires-Dist: pre-commit ; extra == 'dist'
Requires-Dist: pylint ; extra == 'dist'
Requires-Dist: pytoml ; extra == 'dist'
Requires-Dist: setuptools ; extra == 'dist'
Requires-Dist: twine ; extra == 'dist'
Requires-Dist: wheel ; extra == 'dist'
Provides-Extra: docs
Requires-Dist: argh ; extra == 'docs'
Requires-Dist: m2r ; extra == 'docs'
Requires-Dist: Sphinx ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: watchdog ; extra == 'docs'
Provides-Extra: lint
Requires-Dist: flake8 ; extra == 'lint'
Requires-Dist: flake8-isort ; extra == 'lint'
Requires-Dist: isort ; extra == 'lint'
Requires-Dist: mypy ; extra == 'lint'
Requires-Dist: pylint ; extra == 'lint'
Requires-Dist: toml ; extra == 'lint'
Requires-Dist: black ; extra == 'lint'
Provides-Extra: test
Requires-Dist: aioresponses ; extra == 'test'
Requires-Dist: codecov ; extra == 'test'
Requires-Dist: coverage ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-asyncio ; extra == 'test'
Requires-Dist: pytest-httpserver ; extra == 'test'
Requires-Dist: requests ; extra == 'test'
Requires-Dist: tox (>=2.4) ; extra == 'test'

########################################
🤯 Countdoom: a Doomsday Clock client 🕚
########################################

|badge-release| |badge-price| |badge-pypi| |badge-python| |badge-travis| |badge-docs| |badge-codecov| |badge-codeclimate-maintain| |badge-codefactor| |badge-black| |badge-license| |badge-codetriage| |badge-contributors| |badge-contribute| |badge-twitter|

Python package to fetch and digest the current `Doomsday Clock`_ world threat
assessment from `TheBulletin.org <https://thebulletin.org/>`__.

.. figure:: https://github.com/renemarc/countdoom/blob/master/docs/screenshot.png?raw=true
        :align: center
        :alt: Command-line interface output
        :figclass: align-center

        *Countdoom: a Doomsday Clock client.*

* Free software: `MIT license <https://github.com/renemarc/countdoom/blob/master/LICENSE>`_
* Documentation: `Read the Docs <https://countdoom.readthedocs.io/>`_
* Source code: `GitHub <https://github.com/renemarc/countdoom/>`_
* Python package: `PyPI <https://pypi.org/project/countdoom/>`_


********
Features
********

* Fetches the current `Doomsday Clock`_ value from the
  `Bulletin of the Atomic Scientists`_.
* Converts the Doomsday Clock sentence into countdown seconds ``60``, countdown
  minutes ``1``, clock ``11:59``, and time ``23:59:00``.
* Offers a command-line interface.
* Uses async IO.
* Python 3.5+ compatible.
* Complete code coverage.


.. |badge-black| image:: https://img.shields.io/badge/code%20style-black-000000.svg?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xMiwyQTEwLDEwIDAgMCwxIDIyLDEyQTEwLDEwIDAgMCwxIDEyLDIyQTEwLDEwIDAgMCwxIDIsMTJBMTAsMTAgMCAwLDEgMTIsMk0xNSwxMC41VjlBMiwyIDAgMCwwIDEzLDdIOVYxN0gxM0EyLDIgMCAwLDAgMTUsMTVWMTMuNUMxNSwxMi43IDE0LjMsMTIgMTMuNSwxMkMxNC4zLDEyIDE1LDExLjMgMTUsMTAuNU0xMywxNUgxMVYxM0gxM1YxNU0xMywxMUgxMVY5SDEzVjExWiIgLz4KPC9zdmc+&cacheSeconds=86400
        :target: https://black.readthedocs.io/
        :alt: Code style: black

.. |badge-codeclimate-maintain| image:: https://img.shields.io/codeclimate/maintainability/renemarc/countdoom.svg?logo=code-climate&cacheSeconds=300
        :target: https://codeclimate.com/github/renemarc/countdoom
        :alt: Code Climate maintainability

.. |badge-codecov| image:: https://img.shields.io/codecov/c/github/renemarc/countdoom?logo=codecov&logoColor=white&cacheSeconds=300
        :target: https://codecov.io/gh/renemarc/countdoom
        :alt: CodeCov coverage

.. |badge-codefactor| image:: https://img.shields.io/codefactor/grade/github/renemarc/countdoom?logo=codefactor&logoColor=white&cacheSeconds=300
        :target: https://www.codefactor.io/repository/github/renemarc/countdoom
        :alt: CodeFactor rating

.. |badge-codetriage| image:: https://www.codetriage.com/renemarc/countdoom/badges/users.svg
        :target: https://www.codetriage.com/renemarc/countdoom
        :alt: CodeFactor rating

.. |badge-contribute| image:: https://img.shields.io/badge/pull_requests-welcome-brightgreen.svg?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTYsM0EzLDMgMCAwLDEgOSw2QzksNy4zMSA4LjE3LDguNDIgNyw4LjgzVjE1LjE3QzguMTcsMTUuNTggOSwxNi42OSA5LDE4QTMsMyAwIDAsMSA2LDIxQTMsMyAwIDAsMSAzLDE4QzMsMTYuNjkgMy44MywxNS41OCA1LDE1LjE3VjguODNDMy44Myw4LjQyIDMsNy4zMSAzLDZBMywzIDAgMCwxIDYsM002LDVBMSwxIDAgMCwwIDUsNkExLDEgMCAwLDAgNiw3QTEsMSAwIDAsMCA3LDZBMSwxIDAgMCwwIDYsNU02LDE3QTEsMSAwIDAsMCA1LDE4QTEsMSAwIDAsMCA2LDE5QTEsMSAwIDAsMCA3LDE4QTEsMSAwIDAsMCA2LDE3TTIxLDE4QTMsMyAwIDAsMSAxOCwyMUEzLDMgMCAwLDEgMTUsMThDMTUsMTYuNjkgMTUuODMsMTUuNTggMTcsMTUuMTdWN0gxNVYxMC4yNUwxMC43NSw2TDE1LDEuNzVWNUgxN0EyLDIgMCAwLDEgMTksN1YxNS4xN0MyMC4xNywxNS41OCAyMSwxNi42OSAyMSwxOE0xOCwxN0ExLDEgMCAwLDAgMTcsMThBMSwxIDAgMCwwIDE4LDE5QTEsMSAwIDAsMCAxOSwxOEExLDEgMCAwLDAgMTgsMTdaIiBmaWxsPSIjZmZmZmZmIiAvPjwvc3ZnPgo=&cacheSeconds=86400
        :target: https://countdoom.readthedocs.io/en/latest/contributing.html
        :alt: PRs welcome

.. |badge-contributors| image:: https://img.shields.io/badge/all_contributors-welcome-orange.svg?logo=github
        :target: https://countdoom.readthedocs.io/en/latest/authors.html
        :alt: All Contributors

.. |badge-docs| image:: https://img.shields.io/readthedocs/countdoom.svg?logo=read-the-docs&logoColor=White&cacheSeconds=21600
        :target: https://countdoom.readthedocs.io/en/latest/
        :alt: Documentation Status

.. |badge-license| image:: https://img.shields.io/github/license/renemarc/countdoom.svg?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE3LjgsMjBDMTcuNCwyMS4yIDE2LjMsMjIgMTUsMjJINUMzLjMsMjIgMiwyMC43IDIsMTlWMThINUwxNC4yLDE4QzE0LjYsMTkuMiAxNS43LDIwIDE3LDIwSDE3LjhNMTksMkMyMC43LDIgMjIsMy4zIDIyLDVWNkgyMFY1QzIwLDQuNCAxOS42LDQgMTksNEMxOC40LDQgMTgsNC40IDE4LDVWMThIMTdDMTYuNCwxOCAxNiwxNy42IDE2LDE3VjE2SDVWNUM1LDMuMyA2LjMsMiA4LDJIMTlNOCw2VjhIMTVWNkg4TTgsMTBWMTJIMTRWMTBIOFoiIGZpbGw9IiNmZmZmZmYiIC8+PC9zdmc+Cg==&cacheSeconds=86400
        :target: https://github.com/renemarc/countdoom/blob/master/LICENSE
        :alt: License

.. |badge-price| image:: https://img.shields.io/badge/FREE_as_in-SPEECH-success.svg?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xNS40MSwyMkMxNS4zNSwyMiAxNS4yOCwyMiAxNS4yMiwyMkMxNS4xLDIxLjk1IDE1LDIxLjg1IDE0Ljk2LDIxLjczTDEyLjc0LDE1LjkzQzEyLjY1LDE1LjY5IDEyLjc3LDE1LjQyIDEzLDE1LjMyQzEzLjcxLDE1LjA2IDE0LjI4LDE0LjUgMTQuNTgsMTMuODNDMTUuMjIsMTIuNCAxNC41OCwxMC43MyAxMy4xNSwxMC4wOUMxMS43Miw5LjQ1IDEwLjA1LDEwLjA5IDkuNDEsMTEuNUM5LjExLDEyLjIxIDkuMDksMTMgOS4zNiwxMy42OUM5LjY2LDE0LjQzIDEwLjI1LDE1IDExLDE1LjI4QzExLjI0LDE1LjM3IDExLjM3LDE1LjY0IDExLjI4LDE1Ljg5TDksMjEuNjlDOC45NiwyMS44MSA4Ljg3LDIxLjkxIDguNzUsMjEuOTZDOC42MywyMiA4LjUsMjIgOC4zOSwyMS45NkMzLjI0LDE5Ljk3IDAuNjcsMTQuMTggMi42Niw5LjAzQzQuNjUsMy44OCAxMC40NCwxLjMxIDE1LjU5LDMuM0MxOC4wNiw0LjI2IDIwLjA1LDYuMTUgMjEuMTMsOC41N0MyMi4yMiwxMSAyMi4yOSwxMy43NSAyMS4zMywxNi4yMkMyMC4zMiwxOC44OCAxOC4yMywyMSAxNS41OCwyMkMxNS41LDIyIDE1LjQ3LDIyIDE1LjQxLDIyTTEyLDMuNTlDNy4wMywzLjQ2IDIuOSw3LjM5IDIuNzcsMTIuMzZDMi42OCwxNi4wOCA0Ljg4LDE5LjQ3IDguMzIsMjAuOUwxMC4yMSwxNkM4LjM4LDE1IDcuNjksMTIuNzIgOC42OCwxMC44OUM5LjY3LDkuMDYgMTEuOTYsOC4zOCAxMy43OSw5LjM2QzE1LjYyLDEwLjM1IDE2LjMxLDEyLjY0IDE1LjMyLDE0LjQ3QzE0Ljk3LDE1LjEyIDE0LjQ0LDE1LjY1IDEzLjc5LDE2TDE1LjY4LDIwLjkzQzE3Ljg2LDE5Ljk1IDE5LjU3LDE4LjE2IDIwLjQ0LDE1LjkzQzIyLjI4LDExLjMxIDIwLjA0LDYuMDggMTUuNDIsNC4yM0MxNC4zMywzLjggMTMuMTcsMy41OCAxMiwzLjU5WiIgLz4KPC9zdmc+&cacheSeconds=86400
        :target: https://github.com/renemarc/countdoom/
        :alt: Price

.. |badge-pypi| image:: https://img.shields.io/pypi/v/countdoom.svg?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0yMSwxNi41QzIxLDE2Ljg4IDIwLjc5LDE3LjIxIDIwLjQ3LDE3LjM4TDEyLjU3LDIxLjgyQzEyLjQxLDIxLjk0IDEyLjIxLDIyIDEyLDIyQzExLjc5LDIyIDExLjU5LDIxLjk0IDExLjQzLDIxLjgyTDMuNTMsMTcuMzhDMy4yMSwxNy4yMSAzLDE2Ljg4IDMsMTYuNVY3LjVDMyw3LjEyIDMuMjEsNi43OSAzLjUzLDYuNjJMMTEuNDMsMi4xOEMxMS41OSwyLjA2IDExLjc5LDIgMTIsMkMxMi4yMSwyIDEyLjQxLDIuMDYgMTIuNTcsMi4xOEwyMC40Nyw2LjYyQzIwLjc5LDYuNzkgMjEsNy4xMiAyMSw3LjVWMTYuNU0xMiw0LjE1TDYuMDQsNy41TDEyLDEwLjg1TDE3Ljk2LDcuNUwxMiw0LjE1TTUsMTUuOTFMMTEsMTkuMjlWMTIuNThMNSw5LjIxVjE1LjkxTTE5LDE1LjkxVjkuMjFMMTMsMTIuNThWMTkuMjlMMTksMTUuOTFaIiAvPgo8L3N2Zz4=&cacheSeconds=86400
        :target: https://pypi.org/project/countdoom/
        :alt: Python Package Index

.. |badge-python| image:: https://img.shields.io/pypi/pyversions/countdoom.svg?logo=python&logoColor=White&cacheSeconds=21600
        :target: https://pypi.python.org/pypi/countdoom
        :alt: Python Versions

.. |badge-release| image:: https://img.shields.io/github/release/renemarc/countdoom/all.svg?logo=git&logoColor=white&cacheSeconds=21600
        :target: https://github.com/renemarc/countdoom/releases/latest
        :alt: Release

.. |badge-travis| image:: https://img.shields.io/travis/com/renemarc/countdoom.svg?logo=travis-ci&logoColor=White
        :target: https://travis-ci.com/renemarc/countdoom
        :alt: Travis CI

.. |badge-twitter| image:: https://img.shields.io/twitter/url/https/github.com/renemarc/countdoom.svg?style=social&cacheSeconds=86400
        :target: https://twitter.com/intent/tweet?text=Countdoom%3A%20a%20%23DoomsdayClock%20client%20package%20for%20%23Python%21&via=renemarc&hashtags=Doomsday,BulletinAtomic
        :alt: Twitter


.. _Bulletin of the Atomic Scientists: https://thebulletin.org/
.. _Doomsday Clock: https://thebulletin.org/doomsday-clock/


*********
Changelog
*********

All notable changes to **Countdoom** will be documented in this list.

The format is based on `Keep a Changelog`_, and this project adheres to
`Semantic Versioning`_.

.. _Keep a Changelog: https://keepachangelog.com/en/1.0.0/
.. _Semantic Versioning: https://semver.org/spec/v2.0.0.html


`Unreleased`_
=============


`v0.2.0`_ - 2020-03-03
======================

Added
-----

- ``minutes`` as an output format option and in returned data set.
- Repo-specific `Markdown README file`_.
- Documentation at `Read The Docs`_.
- Pull Request template.
- Support for `All Contributors`_ specifications and service app.
- Support for `Code Climate`_ code quality checker service.
- Support for `CodeCov`_ test coverage report analyzer service.
- Support for `DeepSource`_ code security checker service.
- Support for `Keep a Changelog`_ specifications.
- Support for `mypy`_ static type checker.
- Support for `Probot's Auto-Comment`_ response service app.
- Support for `Probot's helPR`_ issue labeler service app.
- Support for `Probot's No Response Info`_ issue closing service app.
- Support for `Probot's Request Info`_ issue validating service app.
- Support for `Probot's Stale Info`_ auto-closing service app.
- Support for `Probot's Welcome`_ greeting service app.

Changed
-------

- **BREAKING:** Return countdown in seconds instead of minutes.
- **BREAKING:** Rename project to **Countdoom**.
- Expand Tox test environments to include Python 3.5-3.8, Pypy3, formatter,
  and linters.
- Expand test coverage to cover seconds to midnight.
- Improve type hints.
- Expand contributing guidelines.
- Improve install documentation.
- Move Asyncio loop handling from package ``__main__.py`` to ``cli.py``.
- Simplify support tools configuration files.
- Regroup dependencies listing to ``setup.py``.
- Add descriptive file headers and modelines.
- Split `Issue template`_ into *Bug Report*, *Feature Request*, *Questions and
  Help*, and *Agile User Story*.

Fixed
-----

- Revise sentence extraction logic to include seconds to midnight.

Removed
-------

- Files ``requirements.txt`` and ``requirements_dev.txt`` (now in ``setup.py``).
- Support for `Pyup`_ dependency checker service.


.. _Markdown README file: https://github.com/renemarc/countdoom
.. _Read The Docs: https://countdoom.readthedocs.io/
.. _All Contributors: https://allcontributors.org/
.. _Code Climate: https://codeclimate.com/github/renemarc/countdoom
.. _CodeCov: https://codecov.io/gh/renemarc/countdoom
.. _DeepSource: https://deepsource.io/gh/renemarc/countdoom/
.. _mypy: http://mypy-lang.org
.. _Probot's Auto-Comment: https://probot.github.io/apps/auto-comment/
.. _Probot's helPR: https://probot.github.io/apps/helpr/
.. _Probot's No Response Info: https://probot.github.io/apps/no-response/
.. _Probot's Request Info: https://probot.github.io/apps/request-info/
.. _Probot's Stale Info: https://probot.github.io/apps/stale/
.. _Probot's Welcome: https://probot.github.io/apps/welcome/
.. _Issue template: https://github.com/renemarc/countdoom/issues/new/choose

`v0.1.0`_ - 2020-02-23
======================

Added
-----

- Extraction of minutes to midnight from `TheBulletin.org`_.
- Tests with `pytest`_.
- Command-line interface.
- Integration examples.
- Importable client module with `Asyncio`_ support.
- `Makefile`_ build assistant.
- Basic `Sphinx`_ documentation.
- `Badges`_ to README file.
- Support for `bandit`_ security issues checker.
- Support for `Black`_ code formatter.
- Support for `Coverage.py`_ unit tests measuring tool.
- Support for `EditorConfig`_ coding style config file.
- Support for `Flake8`_ coding style enforcer.
- Support for `isort`_ imports organizer.
- Support for `pip`_ dependencies manager.
- Support for `pre-commit`_ git hooks with linters, formatters, and validators.
- Support for `Pylint`_ code analyser.
- Support for `Pyup`_ dependency checker service.
- Support for `Tox`_ automation integration.
- Support for `Travis-CI`_ continuous integration service.


.. _TheBulletin.org: https://thebulletin.org
.. _pytest: https://docs.pytest.org/
.. _Asyncio: https://docs.python.org/3/library/asyncio.html
.. _Makefile: https://www.gnu.org/software/make/manual/make.html
.. _Sphinx: https://www.sphinx-doc.org/
.. _Badges: https://shields.io/
.. _bandit: https://bandit.readthedocs.io/
.. _Black: https://black.readthedocs.io/
.. _Coverage.py: https://coverage.readthedocs.io/
.. _EditorConfig: https://editorconfig.org/
.. _Flake8: https://flake8.pycqa.org/
.. _isort: https://github.com/timothycrosley/isort
.. _pip: https://pip.pypa.io/
.. _pre-commit: https://pre-commit.com/
.. _Pylint: https://www.pylint.org/
.. _Pyup: https://pyup.io/
.. _Tox: https://tox.readthedocs.io/
.. _Travis-CI: https://travis-ci.com/renemarc/countdoom


.. _Unreleased: https://github.com/renemarc/countdoom/compare/v0.2.0...HEAD
.. _v0.2.0: https://github.com/renemarc/countdoom/releases/tag/v0.2.0
.. _v0.1.0: https://github.com/renemarc/countdoom/releases/tag/v0.1.0


