Skip to main content

Back end framework for journaling and time tracking applications (like `dob`!).

Project description

Build Status Coverage Status Documentation Status GitHub Release Status PyPI Release Status License Status

Some might call it timesheet software, or dismiss it as simply time tracking, but I call it extreme-journaling, a back end framework for thrill-seeking, time travelling interval junkies, a/k/a dobbers.

NOTE: You probably want to install the client application, dob! – Nark is a support library.

Install with pip:

pip3 install nark

For more options, read the installation guide.

Ethos

nark is inspired by Hamster, a beloved but aged time tracking application for GNOME.

nark is Hamster-compatible. Grab your existing Hamster database and start using nark today!

nark is a fork of the sensible but incomplete modern hamster-lib code rewrite. Now it’s done?

nark is plainly a database-agnostic Fact storage API. It does one thing, (hopefully) well!

As developers, our goal with nark is naturally to provide stable, reliable code. But we also want to provide easily hackable code. Code that is approachable to any Python developer with a few extra minutes and a sense of adventure. Code that is welcoming, so that a developer who wants to incorporate this tool into their daily workflow will not be afraid to bang on it when it breaks, or to patch a new limb on it when then see a place for improvement. Or to just trust that it works.

Features

  • Compatible with all current Python releases (3.5, 3.6, and 3.7).

  • Naturally Unicode compatible – spice up your notes!

  • Fully Timezone-aware – don’t lose time traveling!

  • Can migrate legacy Hamster databases (and fix integrity issues, too).

  • Excellent coverage (to give you comfort knowing your Facts are safe).

  • Decent documentation (though really you should learn by doing).

  • Comfortable code base (focus on the feature, not on the format).

  • Free and open source – hack away!

See how you can contribute to the project.

Example

Create a Fact instance from a Factoid string:

$ python3
>>> from nark.items import Fact
>>> factoid = '08:00 to 2019-02-16 10:00: act@cat: #tag1: Hello, nark!'
>>> fact, err = Fact.create_from_factoid(factoid, time_hint='verify_both')
>>> fact
# Fact(
#   pk=None,
#   deleted=False,
#   split_from=None,
#   _start='08:00',
#   _end=datetime.datetime(2019, 2, 16, 10, 0),
#   _description='Hello, nark!',
#   activity=Activity(
#     pk=None
#     deleted=False,
#     hidden=False,
#     _name='act',
#     category=Category(
#       pk=None,
#       deleted=False,
#       hidden=False,
#       _name='cat',
#     ),
#   ),
#   tags=[Tag(
#     pk=None,
#     deleted=False,
#     hidden=False,
#     _name='tag1',
#   )],
# )

"Information Cat"

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

nark-3.0.0a33.tar.gz (150.2 kB view hashes)

Uploaded Source

Built Distribution

nark-3.0.0a33-py2.py3-none-any.whl (173.0 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