Skip to main content

A library for common timetracking functionality.

Project description

===============================
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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hamsterlib-0.0.2.tar.gz (59.4 kB view hashes)

Uploaded Source

Built Distribution

hamsterlib-0.0.2-py2.py3-none-any.whl (23.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page