Plugin, library, and reports for reading Conservancy's books
Find a file
Brett Smith 701ccdc192 tests: Test where Transactions are real NamedTuples.
This makes methods like _replace available in real code, and caught the
bug where we can't use @functools.lru_cache with Transaction arguments,
because they're unhashable due to their mutable members.
2020-04-28 15:33:30 -04:00
conservancy_beancount tests: Test where Transactions are real NamedTuples. 2020-04-28 15:33:30 -04:00
tests tests: Test where Transactions are real NamedTuples. 2020-04-28 15:33:30 -04:00
.gitignore tox: Start configuration to test on Py3.6 and Py3.7. 2020-04-06 15:25:14 -04:00
LICENSE.txt Initial commit: license, setup.py, gitignore, skeleton structure. 2020-03-05 09:33:23 -05:00
pytest.ini tests: Ignore the DeprecationWarning from the socks module. 2020-03-24 09:16:38 -04:00
README.rst tox: Start configuration to test on Py3.6 and Py3.7. 2020-04-06 15:25:14 -04:00
setup.cfg setup: Don't disallow untyped calls. 2020-04-27 16:53:22 -04:00
setup.py setup: Add overlooked PyYAML dependency. 2020-04-06 14:32:41 -04:00
tox.ini tox: Start configuration to test on Py3.6 and Py3.7. 2020-04-06 15:25:14 -04:00

Beancount plugin and tools for Conservancy's books
==================================================

Installation
------------

``cd`` to this directory with your checkout and then run::

  python3 -m pip install --user --upgrade .

Of course, if you're familiar with Python development tools, you're welcome to install the module in a virtualenv, somewhere else, etc.

Running all tests
-----------------

The project comes with a Tox configuration that defines all the tests we expect to pass, across all the different environments we support. To run them all, run::

  tox

The next sections describe how to run them standalone in your own development environment, for faster iteration or simpler isolation of problems.

Running unit tests
------------------

Run::

  ./setup.py test

Type checking
-------------

Most of the code is typed, except for very dynamic loader methods. To run the type checker::

  ./setup.py typecheck

This is expected to pass just like the unit tests.

Legal
-----

Copyright © 2020  Brett Smith. Licensed under the `GNU Affero General Public License <https://www.gnu.org/licenses/agpl-3.0.html>`_, either version 3 of the License, or (at your option) any later version.