Utilize your personal data like Google!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
André Jaenisch 4d784369e2
Catch errors when reading mails. Fixes #36 (#37)
2 years ago
.github/workflows Apply black (#29) 3 years ago
docs updated documentation 3 years ago
nostalgia Catch errors when reading mails. Fixes #36 (#37) 2 years ago
.gitignore Mail source (#35) 2 years ago
.pre-commit-config.yaml Apply black (#29) 3 years ago
Dockerfile docker support (#16) 3 years ago
README.md Fix typo in README update 2 years ago
core-contributing.md Add a guide for core contributors (#23) 3 years ago
deploy.py deploy preparation 3 years ago
docker-compose.yml Clean up import and import all (#20) 3 years ago
pyproject.toml Apply black (#29) 3 years ago
serve_docs.py thumbnailing, docs, datetime improvement 3 years ago
setup.cfg initial commit 3 years ago
setup.py Mail source (#35) 2 years ago
upload_docs.py updated docs 3 years ago

README.md

nostalgia

PyPI PyPI

Ecosystem for combining personal data

Nostalgia will help with gathering data from a variety of sources and enable you to combine them easily.

It's much like Home Assistant, providing a platform, but then for connecting data instead of IoT devices.

Afterwards, it will help you filter and visualize the data.

The architecture is as follows. You're looking at the core which contains the code for ingesting sources, installing the backend system and allows you to write scripts using Nostalgia Query Language.

If you want to add your own data that is not supported, please for now contact us directly in either discord or slack and we'll help you get started. You can also look at the open issues to see suggestions for new sources.

Available Data Bindings

Full list of current sources.

Getting started

  1. If you're a user: pip install nostalgia or... pip install -e . if you might want to develop on Nostalgia

  2. Follow the instructions for a source of interest to ensure it is loaded

  3. Use the data in an interactive session (run Python) OR run the timeline

  4. To upgrade Nostalgia, as user run pip install -U nostalgia or as developer run git pull.

Nostalgia Query Language - extending pandas

Given that you have payments, heartrate and google places set up, you could start Python and run:

In [15]: from nostalgia.sources.ing_banking.mijn_ing import Payments

payments = Payments.load()

payments.by_card\
        .last_year\
        .in_office_days\
        .during_hours(7, 12)\
        .by_me()\
        .heartrate_above(100)\
        .when_at("amsterdam")\
        .sum()

Out[15]: 7.65 # in euros

This will give the total expenses by card in the last week, but only on work days, at night, when my heart rate is above 80 and I'm in Amsterdam. It combined the generic class functionality, together with data from:

  • A Payments provider
  • A Location provider
  • A Heartrate provider

Contributing

Please contribute the data sources that others could use as well!