Skip to main content

tap-kaloricketabulky

A Singer tap (Meltano SDK) for extracting a user's own data from kaloricketabulky.cz. Built on the kaloricketabulky-sdk.

The site has no official public API. This tap uses the same unofficial endpoints the web app uses. Use it for your own data only, be a respectful guest: keep request_delay_seconds at 0.5 s or higher and don't hammer the site. If you get value from kaloricketabulky.cz, consider supporting them with a subscription.

Requirements

  • Python >= 3.12
  • uv

Configuration

Settings can be supplied via a config.json file or as environment variables prefixed TAP_KALORICKETABULKY_ (the standard Meltano/Singer SDK convention).

Setting Required Type Default Description
email yes string (secret) — Login e-mail address
password yes string (secret) — Login password
start_date yes date-time — Earliest day to extract (ISO 8601, e.g. 2025-01-01T00:00:00Z)
end_date no date-time today Latest day to extract
lookback_days no integer 3 Days before the bookmark to re-pull on each run
request_delay_seconds no float 0.5 Seconds to wait between API requests
base_url no string https://www.kaloricketabulky.cz Override the API base URL
user_agent no string SDK default Override the User-Agent request header

Streams

Per-day — INCREMENTAL (replication key: date)

Stream SDK method
diary get_diary
diary_summary get_diary_summary
statistics_summary get_statistics_summary
streak get_streak

Snapshots — FULL_TABLE

Stream Metric
snapshot_energy energy
snapshot_nutrients nutrients
snapshot_drink drink
snapshot_weight weight
snapshot_optional user-defined custom metrics

Records are emitted faithfully and with nested structure matching the SDK models. To flatten nested fields into columns, enable the SDK's built-in flattener via flattening_enabled: true and flattening_max_depth: <n> in your config.

Incremental and lookback behaviour

Per-day streams resume from Singer state. On each run, the tap re-pulls the last lookback_days days before the stored bookmark so that late diary entries (people often log calories a day or two after the fact) are captured without a full backfill.

Snapshot streams are FULL_TABLE: each run pulls the complete [start_date, today] series in a single request per metric, so late edits to past days are always reflected. Dedup downstream by measurement day if needed.

Lowering start_date after the first run requires resetting Singer state to backfill the newly included range (standard Singer behaviour).

Usage

CLI

uv run tap-kaloricketabulky --about --format=json
uv run tap-kaloricketabulky --config config.json --discover > catalog.json
uv run tap-kaloricketabulky --config config.json --catalog catalog.json

Meltano

plugins:
  extractors:
  - name: tap-kaloricketabulky
    namespace: tap_kaloricketabulky
    pip_url: git+https://github.com/tomasvotava/tap-kaloricketabulky.git
    capabilities:
    - state
    - catalog
    - discover
    - about
    - stream-maps
    settings:
    - name: email
      kind: string
      sensitive: true
      label: Email
    - name: password
      kind: string
      sensitive: true
      label: Password
    - name: start_date
      kind: date_iso8601
      label: Start Date
    settings_group_validation:
    - [email, password, start_date]
    config:
      start_date: "2025-01-01T00:00:00Z"
      request_delay_seconds: 0.5

Development

uv sync                                    # create the environment from the lockfile
uv run ruff format --check .               # check formatting
uv run ruff check .                        # lint
uv run mypy tap_kaloricketabulky tests     # strict type-check
uv run pytest                              # run tests with coverage
uv run python scripts/gen_schemas.py       # regenerate schemas from SDK models

Never hand-edit the JSON files under tap_kaloricketabulky/schemas/; they are generated from the SDK's Pydantic models. A drift test (tests/test_schemas.py) fails the suite if the committed schemas fall out of sync with the models.

Releases

Versioning and the changelog are driven by Commitizen. Do not edit CHANGELOG.md by hand:

uv run cz bump

License

MIT

Metadata

Release files for tap-kaloricketabulky 0.1.0

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

Source distribution (sdist)

Source distribution for tap-kaloricketabulky 0.1.0
File Size Uploaded
tap_kaloricketabulky-0.1.0.tar.gz 108.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tap-kaloricketabulky 0.1.0
File Interpreter ABI Platform
tap_kaloricketabulky-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 123.5 kB

Release files / tap_kaloricketabulky-0.1.0.tar.gz

Download URL tap_kaloricketabulky-0.1.0.tar.gz
Size 108.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b20a98cfd0ccf7b960b4ba5af3d73ff721610a95474088f0ed66532f750b5c0b
BLAKE2b-256 checksum
How to use checksums
7ce129db3aab20f1d385763e84838305fdb22df411c44884479a22205e897d1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 5, 2026.

Transparency log

Release files / tap_kaloricketabulky-0.1.0-py3-none-any.whl

Download URL tap_kaloricketabulky-0.1.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
674dee64341c433e84c9acb065bbf93657070f605eb52bf645e79dc050e53911
BLAKE2b-256 checksum
How to use checksums
6319752731cfe7c224e33f92cd385827f555d248a314a153fce2fa5a7f0baa5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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