Skip to content

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

Merged
dbrattli merged 1 commit intomainfrom
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 intomainfrom
feat/add-threading-heapq-traceback-bindings

Conversation

@dbrattli
Copy link
Collaborator

@dbrattli dbrattli commented Mar 8, 2026

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 feat: 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant