Skip to content

feat: Add threading, heapq, traceback bindings and extend builtins/queue - #219

Merged
dbrattli merged 1 commit into
mainfrom
feat/add-threading-heapq-traceback-bindings
Mar 8, 2026
Merged

feat: Add threading, heapq, traceback bindings and extend builtins/queue#219
dbrattli merged 1 commit into
mainfrom
feat/add-threading-heapq-traceback-bindings

Conversation

@dbrattli

@dbrattli dbrattli commented Mar 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • New modules: Threading, Heapq, Traceback — typed bindings for Python's threading, heapq, and traceback standard library modules
  • Extended Builtins: Added getattr, setattr, hasattr, isinstance, type to IExports interface with convenience wrapper functions
  • Extended Queue: Added get_nowait() to Queue and SimpleQueue, plus Empty and Full exception types

This allows downstream projects (e.g. Factor) to use these bindings directly instead of creating their own FFI wrappers.

Test plan

  • All 262 tests pass (just test-python)
  • New tests for all added modules: TestThreading, TestHeapq, TestQueue, TestTraceback, TestBuiltinsAttr

🤖 Generated with Claude Code

Add new stdlib bindings so downstream projects don't need to create
their own FFI wrappers for common Python modules.

New modules:
- Threading: Thread, Lock, RLock, Event classes + module functions
- Heapq: heap operations (heappush, heappop, heapify, nlargest, etc.)
- Traceback: print_exc, format_exc, print_stack, format_stack

Extended existing modules:
- Builtins: getattr, setattr, hasattr, isinstance, type
- Queue: get_nowait(), Empty and Full exceptions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dbrattli dbrattli changed the title Add threading, heapq, traceback bindings and extend builtins/queue Mar 8, 2026
@dbrattli
dbrattli merged commit 8223cc8 into main Mar 8, 2026
2 of 3 checks passed
@dbrattli
dbrattli deleted the feat/add-threading-heapq-traceback-bindings branch March 8, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant