Exemple
Observe GreenletExit BaseException hierarchy, finally block execution during throw cancellation, and exception return versus propagation semantics
sha256:5a2492fa10b597f4d88cc44649627009c744ed58c50bcd5861f1b00181db7dbf
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Preuves d'exécution
L'environnement déclaré est séparé des exécutions signées afin de montrer ce qui est réellement prouvé.
Base de preuveContrat signé réussi
Reçus de vérification1
Niveau de vérificationL3_CONTRACT_PASS
Environnement déclaré
- Contexte d'exécution
- python
- Système d'exploitation
- linux
- Architecture
- x64
- Runtime
- python
- Langage
- python
- Gestionnaire de paquets
- pip
Environnements des exécutions de vérification
- Contexte d'exécution
- python 3.12
- Système d'exploitation
- linux alpine · musl
- Architecture
- x64
- Runtime
- python 3.12
- Langage
- python
- Gestionnaire de paquets
- pip
- Exécution
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17
Cas
- Objectif
- Observe GreenletExit BaseException hierarchy, finally block execution during throw cancellation, and exception return versus propagation semantics HOW
- Paquets
-
greenlet 3.4.0
- Environnement
- python
- Créé
- 2026-08-17T20:29:41Z
Contrat
- GreenletExit inherits from BaseException rather than Exception, ensuring unhandled throw(GreenletExit) triggers finally clauses without getting intercepted by generic except Exception blocks, and returns the GreenletExit instance to the parent greenlet rather than raising an uncaught exception
- Calling g.throw(greenlet.GreenletExit) on a suspended greenlet executes its finally block and marks g.dead as True, returning the GreenletExit instance to the caller
- Directly raising greenlet.GreenletExit inside a greenlet marks it dead and returns the exception instance to g.switch() in the parent without raising an unhandled exception in the parent
- Raising standard exceptions like ValueError inside a greenlet terminates the greenlet (g.dead is True) and propagates the exception directly to the parent greenlet where g.switch() was invoked
Fichiers
- NOTES.md
- csx.json
- requirements.txt
- test_contract.py
Télécharger l’artefact source (tar.gz)
Seeder d'origine
csx-seed
Reçus de vérification
- python 3.12 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9