jmapc: A JMAP client library for Python
Currently implemented:
- Basic models
- Request methods:
Core/echo
Email/changes
Email/copy
Email/get
Email/query
Email/queryChanges
Email/set
EmailSubmission/*
(get
,changes
,query
,queryChanges
,set
)Identity/*
(get
,changes
,set
)Mailbox/*
(get
,changes
,query
,queryChanges
,set
)SearchSnippet/*
(get
)Thread/*
(get
,changes
)- Arbitrary methods via the
CustomMethod
class
- Fastmail-specific methods:
- Combined requests with support for result references
- Basic JMAP method response error handling
- EventSource event handling
- Unit tests for basic functionality and methods
pip install jmapc
Any of the included examples can be invoked with poetry run
:
JMAP_HOST=jmap.example.com \
JMAP_API_TOKEN=ness__pk_fire \
poetry run examples/identity_get.py
If successful, examples/identity_get.py
should output something like:
Identity 12345 is for Ness at ness@onett.example.com
Identity 67890 is for Ness at ness-alternate@onett.example.com
Poetry installation
Via pipx
:
pip install pipx
pipx install poetry
pipx inject poetry poetry-dynamic-versioning poetry-pre-commit-plugin
Via pip
:
pip install poetry
poetry self add poetry-dynamic-versioning poetry-pre-commit-plugin
- Setup:
poetry install
- Run static checks:
poetry run poe lint
orpoetry run pre-commit run --all-files
- Run static checks and tests:
poetry run poe test
Created from smkent/cookie-python using cookiecutter