Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

enabling format-assertion via adding vocabulary to a new meta-schema (dialect?)

Aperta
#1,355 7 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python
Ambito
tooling

Direzione di ricerca

Inizia riproducendo il caso di schema CSAF collegato nell’issue, incluso Resource(contents=schema, specification=jsonschema.DRAFT202012) e Draft202012Validator.FORMAT_CHECKER. Leggi il meta_json_schema.json di riferimento e la discussione relativa a pull request 962; il lavoro è completato quando l’API pubblica supportata e il comportamento previsto dell’asserzione sul formato per un dialetto personalizzato sono chiaramente definiti o documentati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

What is the supported way to check a JSON file via a (local) schema that wants to enforce the format assertions?
It is already supported?

My example is what https://github.com/oasis-tcs/csaf/pull/962 is trying to do.

https://github.com/oasis-tcs/csaf/blob/78f4b61ba2ba05d375a452ef7938abde16949457/csaf_2.1/json_schema/csaf_json_schema.json#L2

sets a custom dialect:

  "$schema": "https://docs.oasis-open.org/csaf/csaf/v2.1/meta_json_schema.json",

which locally is
https://github.com/oasis-tcs/csaf/blob/78f4b61ba2ba05d375a452ef7938abde16949457/csaf_2.1/json_schema/meta_json_schema.json
and just aims for adding the necessary vocabulary to treat formats as assertion.

However as can be seen in https://github.com/oasis-tcs/csaf/pull/962#issuecomment-2841656817 and above, that is needs to explicitly set jsonschema.DRAFT202012 to just add the

resource = Resource(contents=schema, specification=jsonschema.DRAFT202012)

I haven't found a public API way to give the new dialect to the referencing.jsonschema._SPECIFICATIONS. (As we do not change the referencing behaviour, it may or not may be okay to use specification=jsonschema.DRAFT202012., it just feels not right as the meta schema is available.

The other concern is that adding the vocabularies does not seem to change assertion checking in the implementation, only adding format_checker=Draft202012Validator.FORMAT_CHECKER decides this. According to my (limited) understanding adding the vocabulary of format-assertion should enable the checks by default. Okay - Draft202012Validator is for the Draft 2020-12 where formation assertion is off by default, but can be enabled.

If it already works, then an example of how to create a new meta schema (dialect) that has format-assertion enable like it should be done in accordance with Draft 2020-12 would be very helpful.

Lingua principale
Python
Stelle
5k
Fork
694
Merge medio
1g 15h
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di python-jsonschema/jsonschema

Tutte le issue di python-jsonschema/jsonschema

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.