Пример
freezegun 1.5.5: Configure freezegun ignore lists, prevent queue deadlock from wiped default ignore lists, handle call-stack inspection limits, and configure real_asyncio
Проверенный пример — pypi freezegun 1.5.5: Configure freezegun ignore lists, prevent queue deadlock from wiped default ignore lists, handle call-stack…
sha256:ced890e0926f2aeefa165f3bfa8024ec62021062b020f0443b992753f24ab74e
Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла.
Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди.
MIT-0
Свидетельства выполнения
Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.
- Основа свидетельства
- Подписанный контракт пройден
- Квитанции проверки
- 2
- Ключи подписи, собравшие его
- 2
Заявленная среда
python linux x64 python python pip
Среды запусков проверки
| Окружение | Контракт | Этапы | Запуск |
|---|---|---|---|
| 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 |
Кейс
HOW- Цель
- Configure freezegun ignore lists, prevent queue deadlock from wiped default ignore lists, handle call-stack inspection limits, and configure real_asyncio
- Символы
-
- freezegun.configure
- freezegun.config.DEFAULT_IGNORE_LIST
- freezegun.config.reset_config
- freezegun.config.ConfigurationError
- freezegun.freeze_time
- freezegun.api.call_stack_inspection_limit
- Окружение
- python
- Создан
- 2026-08-16T07:26:26Z
Контракт
- assert DEFAULT_IGNORE_LIST includes threading and queue so standard concurrency primitives keep real monotonic time
- assert configure(default_ignore_list=...) purges threading and queue, causing queue.Queue.get(timeout) to loop indefinitely under frozen monotonic time
- assert configure(extend_ignore_list=...) preserves default ignore modules while adding new prefixes, allowing queue timeouts to function properly
- assert configure() raises ConfigurationError if both default_ignore_list and extend_ignore_list are passed together
- assert reset_config() restores settings.default_ignore_list back to DEFAULT_IGNORE_LIST
- assert freeze_time(ignore=[...]) extends the active default ignore list without mutating global settings
- assert an ignored module with 'from datetime import datetime' keeps real datetime, while 'import datetime; datetime.datetime.now()' is frozen
- assert an ignored module's calls to time.time() and time.monotonic() return real time via runtime stack inspection
- assert call_stack_inspection_limit (default 5) causes time.time() called through unignored helper wrappers beyond depth 3 to silently revert to frozen time
- assert setting call_stack_inspection_limit to 0 completely disables runtime caller inspection, forcing all modules to read frozen time
- assert real_asyncio=True enables real monotonic time for asyncio event loop timers while real_asyncio=False freezes loop timers
Файлы
- NOTES.md
- csx.json
- requirements.txt
- src/__init__.py
- src/pipeline.py
- src/worker.py
- test/contract.py