openbadgeslib 3.4.0__tar.gz → 3.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/Changelog.txt +8 -0
- {openbadgeslib-3.4.0/openbadgeslib.egg-info → openbadgeslib-3.4.1}/PKG-INFO +6 -5
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/README.md +4 -4
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/util.py +1 -1
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1/openbadgeslib.egg-info}/PKG-INFO +6 -5
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/pyproject.toml +1 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/LICENSE.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/MANIFEST.in +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/docs/README.md +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/__init__.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/_jws/__init__.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/_jws/exceptions.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/_jws/utils.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/badge.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/baking.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/config.ini.example +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/confparser.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/errors.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/keys.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/logs.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/mail.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob1/__init__.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob1/badge.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob1/signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob1/verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob2/__init__.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob2/models.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob2/signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob2/verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/__init__.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/__init__.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/credentials-v2.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/ob-v3p0-context-3.0.1.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/ob-v3p0-context-3.0.2.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/ob-v3p0-context-3.0.3.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/security-data-integrity-v2.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/security-multikey-v1.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/credential.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/did.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/eudi.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/ldp.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/status.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/status_list.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/status_registry.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/openbadges_init.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/openbadges_keygenerator.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/openbadges_publish.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/openbadges_signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/openbadges_verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/py.typed +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib.egg-info/SOURCES.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib.egg-info/dependency_links.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib.egg-info/entry_points.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib.egg-info/requires.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib.egg-info/top_level.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/setup.cfg +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/config1.ini +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/conformance/Dockerfile.ob3 +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/conformance/README.md +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/conformance/conftest.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/conformance/docker-compose.yml +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/conformance/test_official_validators.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/conftest.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/ob_schemas/README.md +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/ob_schemas/ob_v3p0_achievementcredential_schema.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/ob_schemas/ob_v3p0_profile_schema.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/ob_schemas/refresh.sh +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/README.md +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/credentials-examples-v2.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/doc-hash.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/key-pair.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/proof-config-hash.txt +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/signed-credential.json +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/images/sample1.png +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/images/sample1.svg +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/images/userimage01.svg +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/ldp_helpers.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/logo Python Espan/314/203a.svg" +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/logo Python Espa/303/261a.svg" +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/runtests.sh +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_cli_json.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_cli_smoke.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_confparser.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_docs.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_eddsa.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_jws.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_key_operation.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob1_badge_io.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob1_signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob1_verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob2_cli.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob2_models.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob2_signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob2_verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_conformance_schema.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_contexts.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_credential.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_did.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_did_doc.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_eudi_sd_jwt.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_ldp.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_ldp_cli.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_ldp_sign.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_publish_cli.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_signer.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_signer_cli_ldp.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_status.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_status_list.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_status_registry.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_ob3_verifier.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_sign_ecc.pem +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_sign_rsa.pem +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_util.py +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_verify_ecc.pem +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/test_verify_rsa.pem +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/withoutxmlheader.svg +0 -0
- {openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/withxmlheader.svg +0 -0
|
@@ -4,6 +4,14 @@ OpenBadgesLib - Changelog
|
|
|
4
4
|
Newest first. Dates are ISO 8601 (YYYY-MM-DD).
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
* v3.4.1 - 2026-07-06
|
|
8
|
+
|
|
9
|
+
- build: advertise Python 3.14 support — add it to the CI test matrix (lint
|
|
10
|
+
+ mypy + the full suite now run on 3.10–3.14) and the trove classifier, so
|
|
11
|
+
3.14 shows as supported on PyPI. No code change; the suite already runs
|
|
12
|
+
clean on CPython 3.14.
|
|
13
|
+
|
|
14
|
+
|
|
7
15
|
* v3.4.0 - 2026-07-06
|
|
8
16
|
|
|
9
17
|
- feat(ob3): issue and verify Open Badges 3.0 as EUDI **SD-JWT VC** (the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openbadgeslib
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.1
|
|
4
4
|
Summary: Production-ready Python library & CLI for Open Badges 3.0 (W3C Verifiable Credentials): issue, verify, and revoke JWT-VC credentials with Bitstring Status Lists and did:web — plus strict OB 2.0 and legacy OB 1.0.
|
|
5
5
|
Author-email: Luis González Fernández <luisgf@luisgf.es>, Jesús Cea Avión <jcea@jcea.es>
|
|
6
6
|
License: LGPLv3
|
|
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
26
|
Classifier: Natural Language :: English
|
|
26
27
|
Classifier: Natural Language :: Spanish
|
|
@@ -52,7 +53,7 @@ Dynamic: license-file
|
|
|
52
53
|
|
|
53
54
|
[](https://github.com/luisgf/openbadgeslib/actions/workflows/ci.yml)
|
|
54
55
|
[](https://pypi.org/project/openbadgeslib/)
|
|
55
|
-
[](https://github.com/luisgf/openbadgeslib/actions/workflows/ci.yml)
|
|
56
57
|
[](#license)
|
|
57
58
|
|
|
58
59
|
**A production-ready Python library & CLI for the full Open Badges 3.0 issuer
|
|
@@ -89,7 +90,7 @@ legacy format, selected with `-V {1,2,3}` (default `3`).
|
|
|
89
90
|
(EdDSA) — *plus* native **W3C Data Integrity / LDP** signing
|
|
90
91
|
(`eddsa-rdfc-2022`, Ed25519, optional `[ldp]` extra). Both proof formats
|
|
91
92
|
issue *and* verify offline, no external service.
|
|
92
|
-
- **Lean and typed** — `mypy --strict`, CI on Python 3.10–3.
|
|
93
|
+
- **Lean and typed** — `mypy --strict`, CI on Python 3.10–3.14, a small
|
|
93
94
|
dependency set, dataclasses + explicit validation (no Pydantic).
|
|
94
95
|
- **Dual-licensed** LGPLv3 (library) / BSD-2-Clause (CLI tools).
|
|
95
96
|
|
|
@@ -113,7 +114,7 @@ versions and both OB 3.0 proof formats.
|
|
|
113
114
|
| `did:web` (generate + resolve) | ✅ | — | — | — | resolve only |
|
|
114
115
|
| Image baking (SVG + PNG) | ✅ | unbake only | ✅ | — | — |
|
|
115
116
|
| Form factor | library + 5 CLI tools | library + CLI | Django server | library | binding |
|
|
116
|
-
| Typing / CI | `mypy --strict`, CI 3.10–3.
|
|
117
|
+
| Typing / CI | `mypy --strict`, CI 3.10–3.14 | — | — | Pydantic | — |
|
|
117
118
|
| License | LGPLv3 / BSD-2 | Apache-2.0 | AGPL-3.0 | MIT/LGPL | Apache-2.0 |
|
|
118
119
|
|
|
119
120
|
(a) The actively-maintained community fork (open-educational-badges): it
|
|
@@ -132,7 +133,7 @@ all three OB versions.
|
|
|
132
133
|
|
|
133
134
|
## Requirements
|
|
134
135
|
|
|
135
|
-
- Python >= 3.10 (tested on 3.10–3.
|
|
136
|
+
- Python >= 3.10 (tested on 3.10–3.14)
|
|
136
137
|
- [pycryptodome](https://pypi.org/project/pycryptodome/) >= 3.20
|
|
137
138
|
- [ecdsa](https://pypi.org/project/ecdsa/) >= 0.19
|
|
138
139
|
- [pypng](https://pypi.org/project/pypng/) >= 0.20220715.0
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/luisgf/openbadgeslib/actions/workflows/ci.yml)
|
|
4
4
|
[](https://pypi.org/project/openbadgeslib/)
|
|
5
|
-
[](https://github.com/luisgf/openbadgeslib/actions/workflows/ci.yml)
|
|
6
6
|
[](#license)
|
|
7
7
|
|
|
8
8
|
**A production-ready Python library & CLI for the full Open Badges 3.0 issuer
|
|
@@ -39,7 +39,7 @@ legacy format, selected with `-V {1,2,3}` (default `3`).
|
|
|
39
39
|
(EdDSA) — *plus* native **W3C Data Integrity / LDP** signing
|
|
40
40
|
(`eddsa-rdfc-2022`, Ed25519, optional `[ldp]` extra). Both proof formats
|
|
41
41
|
issue *and* verify offline, no external service.
|
|
42
|
-
- **Lean and typed** — `mypy --strict`, CI on Python 3.10–3.
|
|
42
|
+
- **Lean and typed** — `mypy --strict`, CI on Python 3.10–3.14, a small
|
|
43
43
|
dependency set, dataclasses + explicit validation (no Pydantic).
|
|
44
44
|
- **Dual-licensed** LGPLv3 (library) / BSD-2-Clause (CLI tools).
|
|
45
45
|
|
|
@@ -63,7 +63,7 @@ versions and both OB 3.0 proof formats.
|
|
|
63
63
|
| `did:web` (generate + resolve) | ✅ | — | — | — | resolve only |
|
|
64
64
|
| Image baking (SVG + PNG) | ✅ | unbake only | ✅ | — | — |
|
|
65
65
|
| Form factor | library + 5 CLI tools | library + CLI | Django server | library | binding |
|
|
66
|
-
| Typing / CI | `mypy --strict`, CI 3.10–3.
|
|
66
|
+
| Typing / CI | `mypy --strict`, CI 3.10–3.14 | — | — | Pydantic | — |
|
|
67
67
|
| License | LGPLv3 / BSD-2 | Apache-2.0 | AGPL-3.0 | MIT/LGPL | Apache-2.0 |
|
|
68
68
|
|
|
69
69
|
(a) The actively-maintained community fork (open-educational-badges): it
|
|
@@ -82,7 +82,7 @@ all three OB versions.
|
|
|
82
82
|
|
|
83
83
|
## Requirements
|
|
84
84
|
|
|
85
|
-
- Python >= 3.10 (tested on 3.10–3.
|
|
85
|
+
- Python >= 3.10 (tested on 3.10–3.14)
|
|
86
86
|
- [pycryptodome](https://pypi.org/project/pycryptodome/) >= 3.20
|
|
87
87
|
- [ecdsa](https://pypi.org/project/ecdsa/) >= 0.19
|
|
88
88
|
- [pypng](https://pypi.org/project/pypng/) >= 0.20220715.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openbadgeslib
|
|
3
|
-
Version: 3.4.
|
|
3
|
+
Version: 3.4.1
|
|
4
4
|
Summary: Production-ready Python library & CLI for Open Badges 3.0 (W3C Verifiable Credentials): issue, verify, and revoke JWT-VC credentials with Bitstring Status Lists and did:web — plus strict OB 2.0 and legacy OB 1.0.
|
|
5
5
|
Author-email: Luis González Fernández <luisgf@luisgf.es>, Jesús Cea Avión <jcea@jcea.es>
|
|
6
6
|
License: LGPLv3
|
|
@@ -21,6 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
26
|
Classifier: Natural Language :: English
|
|
26
27
|
Classifier: Natural Language :: Spanish
|
|
@@ -52,7 +53,7 @@ Dynamic: license-file
|
|
|
52
53
|
|
|
53
54
|
[](https://github.com/luisgf/openbadgeslib/actions/workflows/ci.yml)
|
|
54
55
|
[](https://pypi.org/project/openbadgeslib/)
|
|
55
|
-
[](https://github.com/luisgf/openbadgeslib/actions/workflows/ci.yml)
|
|
56
57
|
[](#license)
|
|
57
58
|
|
|
58
59
|
**A production-ready Python library & CLI for the full Open Badges 3.0 issuer
|
|
@@ -89,7 +90,7 @@ legacy format, selected with `-V {1,2,3}` (default `3`).
|
|
|
89
90
|
(EdDSA) — *plus* native **W3C Data Integrity / LDP** signing
|
|
90
91
|
(`eddsa-rdfc-2022`, Ed25519, optional `[ldp]` extra). Both proof formats
|
|
91
92
|
issue *and* verify offline, no external service.
|
|
92
|
-
- **Lean and typed** — `mypy --strict`, CI on Python 3.10–3.
|
|
93
|
+
- **Lean and typed** — `mypy --strict`, CI on Python 3.10–3.14, a small
|
|
93
94
|
dependency set, dataclasses + explicit validation (no Pydantic).
|
|
94
95
|
- **Dual-licensed** LGPLv3 (library) / BSD-2-Clause (CLI tools).
|
|
95
96
|
|
|
@@ -113,7 +114,7 @@ versions and both OB 3.0 proof formats.
|
|
|
113
114
|
| `did:web` (generate + resolve) | ✅ | — | — | — | resolve only |
|
|
114
115
|
| Image baking (SVG + PNG) | ✅ | unbake only | ✅ | — | — |
|
|
115
116
|
| Form factor | library + 5 CLI tools | library + CLI | Django server | library | binding |
|
|
116
|
-
| Typing / CI | `mypy --strict`, CI 3.10–3.
|
|
117
|
+
| Typing / CI | `mypy --strict`, CI 3.10–3.14 | — | — | Pydantic | — |
|
|
117
118
|
| License | LGPLv3 / BSD-2 | Apache-2.0 | AGPL-3.0 | MIT/LGPL | Apache-2.0 |
|
|
118
119
|
|
|
119
120
|
(a) The actively-maintained community fork (open-educational-badges): it
|
|
@@ -132,7 +133,7 @@ all three OB versions.
|
|
|
132
133
|
|
|
133
134
|
## Requirements
|
|
134
135
|
|
|
135
|
-
- Python >= 3.10 (tested on 3.10–3.
|
|
136
|
+
- Python >= 3.10 (tested on 3.10–3.14)
|
|
136
137
|
- [pycryptodome](https://pypi.org/project/pycryptodome/) >= 3.20
|
|
137
138
|
- [ecdsa](https://pypi.org/project/ecdsa/) >= 0.19
|
|
138
139
|
- [pypng](https://pypi.org/project/pypng/) >= 0.20220715.0
|
|
@@ -30,6 +30,7 @@ classifiers = [
|
|
|
30
30
|
"Programming Language :: Python :: 3.11",
|
|
31
31
|
"Programming Language :: Python :: 3.12",
|
|
32
32
|
"Programming Language :: Python :: 3.13",
|
|
33
|
+
"Programming Language :: Python :: 3.14",
|
|
33
34
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
34
35
|
"Natural Language :: English",
|
|
35
36
|
"Natural Language :: Spanish",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/ob-v3p0-context-3.0.1.json
RENAMED
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/ob-v3p0-context-3.0.2.json
RENAMED
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/ob-v3p0-context-3.0.3.json
RENAMED
|
File without changes
|
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/openbadgeslib/ob3/contexts/security-multikey-v1.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/ob_schemas/ob_v3p0_profile_schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/credentials-examples-v2.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/proof-config-hash.txt
RENAMED
|
File without changes
|
{openbadgeslib-3.4.0 → openbadgeslib-3.4.1}/tests/fixtures/vc_di_eddsa/signed-credential.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|