Metadata-Version: 2.0
Name: hamsterlib
Version: 0.0.2
Summary: A library for common timetracking functionality.
Home-page: https://github.com/elbenfreund/hamsterlib
Author: Eric Goller
Author-email: Elbenfreund@DenkenInEchtzeit.net
License: GPL3
Keywords: hamsterlib
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: future
Requires-Dist: sqlalchemy

===============================
hamsterlib
===============================

.. image:: https://img.shields.io/pypi/v/hamsterlib.svg
        :target: https://pypi.python.org/pypi/hamsterlib

.. image:: https://img.shields.io/codeship/30ec8f70-dbc9-0133-f7bf-561c728b2028/master.svg
        :target: https://codeship.org/elbenfreund/hamsterlib

.. image:: https://img.shields.io/codecov/c/github/elbenfreund/hamsterlib/master.svg
        :target: https://codecov.io/github/elbenfreund/hamsterlib

.. image:: https://badge.waffle.io/elbenfreund/hamsterlib.svg?label=ready&title=Ready
        :target: https://waffle.io/elbenfreund/hamsterlib
        :alt: 'Stories in Ready' 

.. image:: https://readthedocs.org/projects/hamsterlib/badge/?version=master
        :target: https://readthedocs.org/projects/hamsterlib/?badge=master
        :alt: Documentation Status

.. image:: https://requires.io/github/elbenfreund/hamsterlib/requirements.svg?branch=master
        :target: https://requires.io/github/elbenfreund/hamsterlib/requirements/?branch=master
        :alt: Requirements Status

(A badges refer to ``master``)

A library for common timetracking functionality.

``hamsterlib`` aims to be a replacement for ``projecthamster``  backend
library.  While we are not able to funcction as a  straight forward drop-in
replacement we try very hard to stay as compatible as possible. As a consequence
clients are able to switch to ``hamsterlib`` by merely changing some basic 
calls. Most of the semantics and return value will be as before.

This itself points to a mayor arcitectural shift in the way ``hamsterlib`` aproaches
timetracking. We are firm belivers in *do one thing, and do it good*. The tried and
tested unix toolbox principle. As such we focus on providing usefull backend
functionality and helper methods so clients (dbus interfaces, CLIs or graphical UIs)
can build uppon a solid consistent base and focus on their specific requirements.


Features
--------

* Full python >=2.7 and >=3.4 compability
* Full unicode support
* >= 95% test coverage
* Extensive documentation
* Focus on clean, maintainable code.
* Free software: GPL3
* All you need for production, test or dev environments comes out of the box
  with regular python tools.

.. _codeship: https://codeship.com

First Steps
-----------
* Build dev environment: ``make develop``
* Build the documentation localy: ``make docs``
* Run just the tests: ``make test``
* Run entire test suite including linters and coverage: ``make test-all``

Additional Resources
--------------------
* `Documentation by 'read the docs' <https://hamsterlib.readthedocs.org>`_
* `Project management with 'waffles' <https://waffle.io/elbenfreund/hamsterlib>`_
* `CI thanks to 'codeship' <https://codeship.com/elbenfreund/hamsterlib>`_
* `Coverage reports by 'codecov' <https://codecov.io/elbenfreund/hamsterlib>`_
* `Dependency monitoring by 'requires.io' <https://requires.io/github/elbenfreund/hamsterlib/requirements/?branch=master>`_

Todo
----

This early release is mainly meant as a rough proof of concept at this stage. It
showcases our API as well as our general design decissions.
As such there are a few functionalities/details of the original ``projecthamster``
backend that we wish to allow for, but are not provided so far.
These are:

* Tags (we accept them but they are not stored so far.)
* ical export
* autocomplete related methods
* trophies (The jury is still out on if and how we want to support those.)
* migrations from old databases.

Incompabilities
---------------
Despite our efforts to stay backwards compatible we did deliberatly break the way
Facts withour end dates are handled. We think allowing for them in any persistent
backend creates a data constistency nightmare and so far there seems no conceavable
use case for it let alone an obvious semantic.
What we do allow for is *one* ``ongoing fact``. That is a fact that has a start,
but no enddate. For detail, please refer to the documentation.

Credits
---------

Tools used in rendering this package:

*  Cookiecutter_
*  `cookiecutter-pypackage`_
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage




History
-------

0.0.1 (2016-04-03)
---------------------
* First release on github

0.0.2 (2016-04-07)
------------------
* First release on PyPi
* Improved documentation
* Support for *ongoing facts*.
* Updated requirements


