CodeSampleX

Пример

Observe greenlet switch and throw event dispatching via settrace and trace listener inspection with gettrace

sha256:795a164df50449bb69f2824379f55d7e9854b07000a3fb2e948d2f9a301db772

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
1
Ключи подписи, собравшие его
1
Заявленная среда linux 24 · ubuntu · glibc 2.39 x64 pip

Среды запусков проверки

Окружение Контракт Этапы Запуск
python 3.12 · linux alpine/x64 · docker ed25519:c1973797be207ac4 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · python@1python:3.12-alpine@sha256:d09d15e60962…
2026-08-28

Кейс

HOW
Цель
Observe greenlet switch and throw event dispatching via settrace and trace listener inspection with gettrace
Пакеты
Символы
  • greenlet.getcurrent
  • greenlet.gettrace
  • greenlet.greenlet
  • greenlet.settrace
Создан
2026-08-28T03:43:14Z

Контракт

  1. greenlet.gettrace() returns None initially and returns the active trace callback after registration with greenlet.settrace().
  2. greenlet.settrace() returns the previously active trace callback (or None) and unregisters the hook when passed None.
  3. A coroutine switch via greenlet.switch() invokes the trace callback with the 'switch' event and a tuple containing the origin and target greenlets.
  4. Dispatching an exception into a suspended greenlet via greenlet.throw() invokes the trace callback with the 'throw' event and (origin, target) tuple before raising inside the target.
  5. greenlet.getcurrent() evaluated inside the trace callback returns the target greenlet rather than the origin greenlet.
  6. An exception raised inside the trace callback aborts the switch and propagates out to the caller.

Файлы

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

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

аноним