Skip to main content

nostalgia enables to self-track and gain insights into your life

Project description

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.

  • Heartrate (Fitbit, Samsung Watch)
  • Sleep (Fitbit, Samsung Watch, SleepCycle)
  • Places (Google Timeline)
  • Bank Payments (ING)
  • Pictures (Google)
  • Emails (Gmail)
  • App Usage (Google/Android)
  • Chat Conversations (WhatsApp, Facebook Messenger)
  • Music listening (Google)
  • Music identification (Shazam)
  • Posts (Reddit, Facebook)
  • File Visits (Emacs)
  • Annotated Screenshots (Tesseract)
  • Web (Nostalgia Chrome Plugin)
    • Products
    • Events
    • Videos
    • Google Search
    • People
  • Indoor Positioning (whereami)
  • Public Transport (MijnOV)

Getting started

  1. pip install 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

Nostalgia Query Language - extending pandas

Given that you have payments 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.at_night(7, 12).by_me().heartrate_above(100).when_at("amsterdam").sum().round(2)
Out[15]: 7.65


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

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!

Download files

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

Source Distribution

nostalgia-0.1.27.tar.gz (283.7 kB view details)

Uploaded Source

Built Distribution

nostalgia-0.1.27-py2.py3-none-any.whl (60.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file nostalgia-0.1.27.tar.gz.

File metadata

  • Download URL: nostalgia-0.1.27.tar.gz
  • Upload date:
  • Size: 283.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0a0

File hashes

Hashes for nostalgia-0.1.27.tar.gz
Algorithm Hash digest
SHA256 841c7202f4eacfae0d7bd018fe2ed6ede91ef002dab176bcf9296fdd148cf02b
MD5 4c5037d2fc1ddf1ac0f044e7a5233d77
BLAKE2b-256 ebc3f3e0420415ed1da7398defb6d416673728385973eba68488988d49ea3de0

See more details on using hashes here.

File details

Details for the file nostalgia-0.1.27-py2.py3-none-any.whl.

File metadata

  • Download URL: nostalgia-0.1.27-py2.py3-none-any.whl
  • Upload date:
  • Size: 60.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0a0

File hashes

Hashes for nostalgia-0.1.27-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a7c67e2993d2f1b6bf4e128dcad3846290ecd2f9b00fc9859437ead90ae7d48a
MD5 065ef19aa03034a2ef5bb3d6314e2505
BLAKE2b-256 f91f605b8f6ad30a9b0900ea997d69818bb09243329523dedf0f18c4879f605d

See more details on using hashes here.

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