Metadata-Version: 2.4
Name: jots
Version: 0.1.0
Summary: Jot Syntax 1.0 RC1 parser — pure Python (https://jotsyntax.org)
Project-URL: Homepage, https://jotsyntax.org
Project-URL: Repository, https://gitlab.com/jot-syntax/jots-py
Project-URL: Issues, https://gitlab.com/jot-syntax/jots-py/-/issues
Project-URL: Changelog, https://gitlab.com/jot-syntax/jots-py/-/blob/master/CHANGELOG.md
Project-URL: Specification, https://gitlab.com/jot-syntax/spec
Author-email: Bojan Durickovic <dev@deyanovich.org>
License: MIT OR Apache-2.0
License-File: LICENSE-APACHE
License-File: LICENSE-MIT
Keywords: jot,jots,markdown,metadata,parser,syntax
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup
Requires-Python: >=3.10
Requires-Dist: regex>=2024.11.6
Provides-Extra: test
Requires-Dist: pytest>=8; extra == 'test'
Description-Content-Type: text/markdown

# jots-py

Pure-Python parser for [Jot Syntax](https://jotsyntax.org).

The normative specification lives at [jotsyntax.org](https://jotsyntax.org).
This package is a from-scratch Python implementation of the spec —
no Rust, no FFI, no compiled extension. For a faster parser backed
by the Rust implementation
([`jots-rs`](https://gitlab.com/jot-syntax/jots-rs)), see the sibling
PyO3 bindings ([`jots-rs-py`](https://gitlab.com/jot-syntax/jots-rs-py));
both expose the same `jots.parse()` API.

## Install

```sh
pip install jots
```

## Usage

```python
import jots

result = jots.parse("..meeting ::work::q2 ??buy milk")
# {
#   "tags": ["meeting"],
#   "categories": ["work::q2"],
#   "todos": [{"importance": 0, "action": "buy", "description": "milk", ...}],
#   "diagnostics": [],
#   ...
# }
```

Optional config flags (see SPEC §2.2) are passed via the `config`
keyword:

```python
jots.parse(text, config={"parse_hashtags_as_tags": True, "emit_loc": False})
```

## Status

Tracks Jot Syntax 1.0 RC1 (2026-03-18). Current scope is the **parser**
only (Part II of the spec); the processor (Part III) will live in a
future `jotr-py` repo.

Conformance is verified against the shared vector suite in
[`jots-tests`](https://gitlab.com/jot-syntax/jots-tests) — the same
suite used by [`jots-rs`](https://gitlab.com/jot-syntax/jots-rs) and
[`jots-rs-py`](https://gitlab.com/jot-syntax/jots-rs-py).
