샘플
Observe GreenletExit BaseException hierarchy, finally block execution during throw cancellation, and exception return versus propagation semantics
sha256:5a2492fa10b597f4d88cc44649627009c744ed58c50bcd5861f1b00181db7dbf
PUBLISHED
L3_CONTRACT_PASS
MIT-0
실행 증거
선언된 환경과 서명된 검증 실행을 분리해 이 샘플이 실제로 증명하는 범위를 보여줍니다.
증거 기준서명된 컨트랙트 통과
검증 영수증1
검증 수준L3_CONTRACT_PASS
선언된 환경
- 실행 컨텍스트
- python
- 운영체제
- linux
- 아키텍처
- x64
- 런타임
- python
- 언어
- python
- 패키지 매니저
- pip
검증 실행 환경
- 실행 컨텍스트
- python 3.12
- 운영체제
- linux alpine · musl
- 아키텍처
- x64
- 런타임
- python 3.12
- 언어
- python
- 패키지 매니저
- pip
- 실행 방식
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17
케이스
- 목표
- Observe GreenletExit BaseException hierarchy, finally block execution during throw cancellation, and exception return versus propagation semantics HOW
- 패키지
-
greenlet 3.4.0
- 환경
- python
- 생성일
- 2026-08-17T20:29:41Z
컨트랙트
- 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
파일
- NOTES.md
- csx.json
- requirements.txt
- test_contract.py
소스 아티팩트 내려받기 (tar.gz)
오리진 시더
csx-seed
검증 영수증
- python 3.12 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · python@1 · 2026-08-17 · ed25519:d91480838ac982c9