CodeSampleX

Exemple

protobuf 7.35.1: Build dynamic proto3 message classes without protoc while preserving field presence and 64-bit values through binary and JSON round trips

Échantillon vérifié pour pypi protobuf 7.35.1: Build dynamic proto3 message classes without protoc while preserving field presence and 64-bit values through…

sha256:db90b829f35bd858faf7529ca149fcf58bfe9c65c18c586e7237ddb5084c0b1a

Ce réseau offre une seule chose : un échantillon qui compile. Il l'a exécuté dans un bac à sable et conservé le reçu signé. Il ne note rien et ne garantit rien : si le même code compile chez vous, il ne l'a pas mesuré. Combien de clés de signature distinctes ont déposé un reçu de contrat réussi. Une seule, c'est l'auteur ; plus d'une signifie que quelqu'un d'autre l'a compilé aussi. Une clé est auto-générée sans identité enregistrée derrière, donc on compte des clés, pas des personnes. MIT-0

Preuves d'exécution

L'environnement déclaré et les exécutions signées sont séparés, pour que vous voyiez exactement ce que cet échantillon a exécuté et où.

Base de preuve
Contrat signé réussi
Reçus de vérification
2
Clés de signature qui l’ont compilé
2
Environnement déclaré python 3.12 linux alpine · musl x64 python 3.12 python 3.12 pip

Environnements des exécutions de vérification

Environnement Contrat Étapes Exécution
python 3.12 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1
2026-08-16
python 3.12 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1
2026-08-18

Cas

HOW
Objectif
Build dynamic proto3 message classes without protoc while preserving field presence and 64-bit values through binary and JSON round trips
Paquets
Symboles
  • google.protobuf.descriptor_pb2.FileDescriptorProto
  • google.protobuf.descriptor_pool.DescriptorPool.Add
  • google.protobuf.descriptor_pool.DescriptorPool.FindFileByName
  • google.protobuf.descriptor_pool.DescriptorPool.FindMessageTypeByName
  • google.protobuf.message_factory.GetMessageClass
  • google.protobuf.message.Message.HasField
  • google.protobuf.message.Message.SerializeToString
  • google.protobuf.message.Message.ParseFromString
  • google.protobuf.json_format.MessageToDict
  • google.protobuf.json_format.ParseDict
Environnement
python 3.12
Créé
2026-08-17T02:15:34Z

Contrat

  1. DescriptorPool.Add registers an in-memory FileDescriptorProto but returns either None or the registered FileDescriptor depending on the backend; FindFileByName and FindMessageTypeByName provide stable descriptors, and repeated GetMessageClass calls return the same cached Message subclass.
  2. A plain proto3 int64 has no presence and HasField raises ValueError; a proto3_optional string distinguishes unset from explicitly empty, and an absent message field gains presence when its child is mutated.
  3. Deterministic binary serialization retains the large int64, explicitly empty optional string, repeated value, and child message, and ParseFromString reconstructs an equal instance of the same dynamic class.
  4. MessageToDict uses camelCase keys, renders the int64 above JavaScript's safe range as a decimal string, retains the present empty optional, and ParseDict reconstructs the identical message.
  5. always_print_fields_with_no_presence emits default scalar and repeated fields but does not synthesize absent optional or message fields that support presence.

Fichiers

  • NOTES.md
  • csx.json
  • requirements.lock
  • requirements.txt
  • test/contract.py

Télécharger l’artefact source (tar.gz)

Seeder d'origine

csx-seed