Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Impetuous

https://img.shields.io/badge/TODOs-420-729fcf.svg https://img.shields.io/badge/downloads-743M%2Fday-brightgreen.svg https://img.shields.io/badge/coverage-no-lightgrey.svg https://img.shields.io/badge/build-disappointed-blue.svg https://img.shields.io/badge/node.js-webscale-orange.svg https://img.shields.io/badge/available%20on-itunes-9377db.svg https://img.shields.io/badge/uptime-since%20lunch-78bdf2.svg https://img.shields.io/badge/kony-2012-ff69b4.svg

This is some time/task tracking software. It can talk (barely) to/at JIRA and Freshdesk. 🐑

Requirements

python 3.6

Installation

Install from pypi with pip. Like sudo python3 -m pip install impetuous or python3 -m pip install –user impetuous or something.

Clone the source code and install with python3 -m pip install --user -e .[jira,freshdesk]. If you want. You don’t have to. I’m not the police.

CLI Usage

The data is stored in a sqlite3 database at ~/.local/share/impetuous/data.sqlite. This can be overridden by setting IM_DB. I think you can even set that to :memory: and it will work. It just probably won’t save your data to disk …

To start doing something, run im doing something. Once you’re not doing anything anymore, run it again but doing tell it what you’re doing; im doing. If you start doing something and you’re already doing a thing, it’ll try to stop the thing you’re doing before starting the new one. You can use -w to specify the date and/or time you’re starting the thing.

im show will list time entries. It uses --since and --until to filter on entries to show. By default, that range is today. Sometimes it’s nice to look at yesterday, so you can pass -y or --yesterday for that. You can provide -y multiple times to keep going back. These time range options should be given after im and before the action (such as doing or show).

--yesterday works by moving back the dates given for --since and --until. It also affects the default date for im doing if all you do is specfiy a time or something.

Many actions can do dry runs with --dry-run.

When all else fails, use im edit to open a YAML representation of your time entries in EDITOR.

im post will post your time entries to an external service you have configured. The responses are saved in the database, so impetuous will remember the result and won’t double-post if you run im post again.

Examples

Here’s a thing: TODO it’s out of date, go record a new one.

Usage Demo

It took me three hours to record that without typos … (im start therapy)

Encoding

You can use im encode to get impetuous to encode your passwords in the configuration file. Then it decodes them when it uses them. It supports a few different encodings. You can encode it multiple times. I don’t know why you want to use this. But it’s there now.

Configuration and JIRA and Freskdesk

Edit the configuration by running im config-edit, which just opens the configuration file in ~/.config/impetuous/config.ini in EDITOR. This is an example config.ini:

[jira]
api = jira
server = https://funkymonkey.atlassian.net
basic_auth = admin:hunter2
pattern = ((?:FOO-\d+)|(?:BAR-\d+))

[freshdesk]
api = freshdesk
server = https://funkymonkey.freshdesk.com
api_key = xxxxxxxxxxxxxxxxxxxx
pattern = freskdesk (\d+)
name = sheepdesk
abbr = 🐑

Each section defines an external service for logging time against. The api determines how we can talk to it. You can add multiple sections and call them whatever you want.

By default, the name and abbreviated name are taken from the section name, but you can set them as shown in the “freshdesk” section above.

Development

Versioning

This project does not follow semantic versioning yet as it doesn’t have anything considered to have a public API. The version numbers are entirely arbitrary and meaningless, just like everything else in life.

Tests

Oh man, I don’t know. Just run python3 -m pytest and hope for the best I suppose.

Internationalization / Localization

Maybe?

  1. python3 setup.py extract_messages

  2. python3 setup.py update_catalog -l fr

  3. Modify the translation file ending in .po … if you want

  4. python3 setup.py compile_catalog

  5. Run with LANGUAGE=fr

You actually only need to do step 4 and 5 to run the program with localization if you don’t want to make modifications.

Release files for impetuous 1.0.0rc0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for impetuous 1.0.0rc0
File Size Uploaded
impetuous-1.0.0rc0.tar.gz 33.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for impetuous 1.0.0rc0
File Interpreter ABI Platform
impetuous-1.0.0rc0-py3-none-any.whl Python 3 none any Details

Total release size: 77.1 kB

Release files / impetuous-1.0.0rc0.tar.gz

Download URL impetuous-1.0.0rc0.tar.gz
Size 33.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6d8c359e41001f60cc4a75de89f97f11277b98dff32ecfba28a27bece68c9f14
BLAKE2b-256 checksum
How to use checksums
31388248e0366b1c893b3c07f0e2641c93ab5e25c8d236849c377f2b4b483558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / impetuous-1.0.0rc0-py3-none-any.whl

Download URL impetuous-1.0.0rc0-py3-none-any.whl
Size 43.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd2fd7d1cda578cdeb9540647cefdb8019d95686fef60e8f08e40d271a77d94b
BLAKE2b-256 checksum
How to use checksums
f47130da892744d64fbdc80f272df5e85ffd31f02e1772e001d9354d88efea28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page