|PyPI| |Build Status| |codecov.io|

=========
XOInvader
=========

Attempt to create small but serious game using **python** and
**ncurses**.

Requirements
============

General
-------

* >= python-3.7
* >= eaf-0.2
* >= xo1-0.1
* >= toml-0.10
* ncurses >=5.9

Installation
============

From PyPI
---------

.. code-block:: console

   $ pip install --user xoinvader


Development
-----------

.. code-block:: console

   $ poetry install
   $ poetry run xoigame

Testing
-------

.. code-block:: console

   $ make test  # for all tests
   $ make view_cov  # run all tests and view coverage
   $ # pass additional arguments to pytest via PYTEST_ARGS env variable
   $ # you can pass args such way to test and view_cov make targets
   $ make test PYTEST_ARGS='-m "not slow"'  # don't run slow tests
   $ pytest --markers  # show all markers
   $ pytest xoinvader/path/to/test_file.py  # run separate file


Documentation
-------------

* Autogenerated from sources `here <http://xoinvader.mmap.me/>`__.
* Development `wiki <https://github.com/pkulev/xoinvader/wiki/>`_.
* Build documentation from sources:

  .. code-block:: console

     $ make docs
     $ make view_docs  # build and open in firefox


.. |PyPI| image:: https://badge.fury.io/py/xoinvader.svg
   :target: https://badge.fury.io/py/xoinvader
.. |Build Status| image:: https://travis-ci.org/pkulev/xoinvader.svg?branch=master
   :target: https://travis-ci.org/pkulev/xoinvader
.. |codecov.io| image:: http://codecov.io/github/pkulev/xoinvader/coverage.svg?branch=master
   :target: http://codecov.io/github/pkulev/xoinvader?branch=master
