Skip to main content

2D-Doc parser library

This is a 2D-DOC parser library. It is able to decode and pretty-print a 2D-Doc as defined by French ANTS, and is also able to verify signature.

Usage

Dumper

There is a built-in dumper tool that can be called through command line with:

$ python -m tddoc.dump --test-ca tests/spec_samples/3.1.3/15.2.2/17.txt
tests/spec_samples/3.1.3/15.2.2/17.txt:
Version: 3
Country: FR
CA: FR00
Cert: 0001
Emit date: 2179-06-06
Sign date: 2017-06-18
Emitter doc type: Carte T3P
User doc type: Justificatif d'activité
Identifiants de données relatives aux véhicules
  Numéro de la carte: 12345678901
  Date d’expiration initiale: 2019-11-30
Sign: a06b0fb1979c3a526d797a019c78f969a09d9973553d3e353d79a4a29041a4100792ccce10821f328046a36a024a2f47366c2df0cc627344d2070aa987c8e047
Signature OK

API

A basic parsing sessions boils down to:

>>> from tddoc.doc import TwoDDoc
>>> c = TwoDDoc.from_code(open('tests/spec_samples/3.1.3/15.2.2/17.txt', 'r').read().strip())
>>> c.header.doc_type().user_type
"Justificatif d'activité"
>>> c.header.doc_type().emitter_type
'Carte T3P'
>>> c.message.dataset
[<tddoc.message.FixedData object at 0x10ab320a0>, <tddoc.message.FixedData object at 0x10ab32310>]
>>> c.message.dataset[0].definition.name
'Numéro de la carte'
>>> c.message.dataset[0].value
'12345678901'
>>> from tddoc.keychain import internal
>>> chain = internal()
>>> c.header.ca_id
'FR00'
>>> c.header.cert_id
'0001'
>>> c.signature_is_valid(chain)
True

Certificate Chains

The library ships with bundled certificate chains from the French ANTS Trust Service List (TSL). These are loaded automatically by keychain.internal(). Test CA "FR00" is not loaded automatically unless explicitly asked for.

To download additional or updated chains, install the fetch extras and run:

$ pip install tddoc[fetch]
$ python -m tddoc.fetch_chains

This downloads chains to ~/.config/tddoc/chains/, which are automatically loaded after the bundled ones.

To update the bundled chains shipped with the package (for maintainers):

$ python -m tddoc.fetch_chains

TODO

  • Documentation
    • Full API documentation, better pydoc strings.
  • Support for "binary" V4 messages
    • And support for V4 ancillary data

Release files for tddoc 0.3.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 tddoc 0.3.0
File Size Uploaded
tddoc-0.3.0.tar.gz 236.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tddoc 0.3.0
File Interpreter ABI Platform
tddoc-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 593.9 kB

Release files / tddoc-0.3.0.tar.gz

Download URL tddoc-0.3.0.tar.gz
Size 236.5 kB
Tags Source
SHA-256 checksum
How to use checksums
678a405aa42abc8df09c972ea23c442c77e618ebd5e8de1964e432fff369fbf2
BLAKE2b-256 checksum
How to use checksums
1561134f3d4a6b5650b2428155274f7f215897b770e9c7a3bcaeda5646a580a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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 Jul 24, 2026.

Transparency log

Release files / tddoc-0.3.0-py3-none-any.whl

Download URL tddoc-0.3.0-py3-none-any.whl
Size 357.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4f94c1a2efcbef5994bb31b51333bd8926a852ba0714dedcaa42cf480c5b1a0a
BLAKE2b-256 checksum
How to use checksums
01f95a74a0d7d0a13a13910fb732314cb78008fae14d91f067e0f4332deadc59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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 Jul 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.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