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)
| File | Size | Uploaded | |
|---|---|---|---|
| tddoc-0.3.0.tar.gz | 236.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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