Skip to main content

cuj · Python bindings

cujn. Clever Use of Jots — is a plain-text PKM engine: one-line captures, inline Jot Syntax annotations (tags, hierarchical categories, labeled references, todos with due dates), a content-addressed fact store underneath, and importers for Evernote (.enex) and Obsidian vaults. Your notes stay plain text; the engine makes them answer questions.

This package binds cuj into Python. The first release exposes the vault's query surface — the library twin of the cuj q command, running Quarb over the vault in-process:

import cuj

# The open todo list, due dates as data.
cuj.q("//*<todo && open> | rec(::description, ::due)")
# [{'description': 'buy primus spares', 'due': None},
#  {'description': 'renew NZ transit visas',
#   'due': datetime.datetime(2026, 6, 15, ...)}, ...]

# Who cites note 3 - and who contradicts it.
cuj.q("/default/3<-cites::summary")
cuj.q("/default/3<-contradicts::summary")

# Notes sharing a tag with note 14 but not linked to it.
cuj.q("/default/14 . <-tagged->tagged"
      "[::::id != (1)::::id][!--*[::::id = (1)::::id]]::summary")

Node results return as cuj's own display strings (--default--12, ///wiki/note.md, ..tag); value results as typed Python values — int, float, tz-aware datetime, timedelta, dicts for records, quantities as their written face ("204.808 kB").

Keyword arguments mirror the CLI's flags:

cuj.q(expr,
      config="~/vaults/field/config.toml",  # else CUJ_CONFIG / ~/.cuj
      profile="all",                        # widen across profiles
      at="~8",                              # a historical state
      now="2026-07-31T12:00:00Z")           # pin now() - reproducible

Errors raise ValueError with cuj's or the engine's message.

The vault itself is made with the cuj CLI (cargo install cuj) — capture, import, label, promote; reading is the engine's job, actions are the tool's. The data model and protocol are documented from cuj.net; the query language in the Quarb spec.

License: MIT OR Apache-2.0.

Download files

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

Source Distribution

cuj-0.3.0.tar.gz (158.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cuj-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

cuj-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

cuj-0.3.0-cp38-abi3-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

cuj-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file cuj-0.3.0.tar.gz.

File metadata

  • Download URL: cuj-0.3.0.tar.gz
  • Upload date:
  • Size: 158.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cuj-0.3.0.tar.gz
Algorithm Hash digest
SHA256 bd169def96d968d59f80c2edaac8053e10ee0fcd9eeba459704d6ef2122f6016
MD5 b59e5bd206832a42771c5b910af39554
BLAKE2b-256 b71523b0adabba924faa95011a2277a2c4a49868b34919ca30a1015abc8c460b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuj-0.3.0.tar.gz:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cuj-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cuj-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 024ccfc8c161517d65ae9ab89641e45cc861ec9b5c9818540fc24c69e1f0d601
MD5 255a6119b26886470cfaa717c9e122d6
BLAKE2b-256 5e2aad26c7a9be393686d7213138e843de781e092ca53d7f4bea13e9dd11d672

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuj-0.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cuj-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cuj-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 14a5c55f136a2e4d290ddfef72c6df11ef2b467d04c4df9ff5f9f24a9ca29d28
MD5 9e08018366afb1bef232a7ce015eb204
BLAKE2b-256 5e8829e48aea5737210edbb84059220f49ed565a4df47ece51f8fa42398ef85e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuj-0.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cuj-0.3.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: cuj-0.3.0-cp38-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.8+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cuj-0.3.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65cf099b9e420c607f5d244b7677c193fdf1e4f758401de2edef22ec6a98a35b
MD5 6b8735e77a7c00a62bf528961c5d000d
BLAKE2b-256 37843fe953f482caa9799755dc8c6aca1e3035627f95818426a6b70f16ad716a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuj-0.3.0-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cuj-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: cuj-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.8+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cuj-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d495a5c454cba9714a8c8deee147f9b35524ec75120ef55356447e726f23f86c
MD5 0748461879f1f554d96e3b93fa0f462d
BLAKE2b-256 41e6dc19f3b3ea63bcfb3ce8f0246ac8ca112e67286ad36768ca958d5a97bec1

See more details on using hashes here.

Provenance

The following attestation bundles were made for cuj-0.3.0-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on deyanovich/cuj-rs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.2

5 files

This release

0.3.0 This release

5 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