This document lists Python features NOT currently supported by Tsuchinoko transpiler.
del statement (deleting variables or elements)match statement (Python 3.10+ pattern matching)type statement (Python 3.12+ type alias syntax)global statement (declaring global variables)nonlocal statement (nested function variable binding):= assignment expression)async def (coroutine definitions)await expressionsasync for (asynchronous iteration)async with (asynchronous context managers)yield statement (generator functions)yield from (generator delegation)(x for x in items))[!NOTE] List comprehensions, dict comprehensions, and set comprehensions are supported.
__enter__ / __exit__ protocol)[!NOTE] Basic
with open(...) as f:and similar patterns are supported (V1.6.0).
[!NOTE]
*args(positional var-args) and**kwargs(keyword var-args) are supported (V1.6.0).
abc module)@staticmethod, @dataclass, @property)@classmethod)[!NOTE] Single inheritance,
super(), and@propertyare supported (V1.6.0).
__repr__, __str__ (string representation)__call__ (callable objects)__slots__ (memory optimization)__getitem__, __setitem__, __delitem__ (container protocol)__iter__, __next__ (iterator protocol)__len__, __contains__ (container protocol)__hash__, __eq__ (hashing and equality)__add__, __sub__, __mul__, etc.)complex, j suffix)b"...", bytearray)frozenset())decimal.Decimal)fractions.Fraction)memoryview)slice())...)range objects used outside for loops)getattr(), setattr(), hasattr(), delattr()issubclass(), type() (isinstance is partially supported)dir(), vars(), locals(), globals()id(), hash()iter(), next()exec(), eval(), compile()format(), repr()[!NOTE]
isinstance()andsuper()are supported (V1.6.0).
- Memory:
memoryview(),bytearray()
[!NOTE] Many of these can be used via Resident Worker.
[!NOTE] Chained comparisons (
a < b < c) are supported (V1.6.0).
These modules cannot be transpiled to pure Rust but work via Resident Worker:
open(), file operations)re module)datetime module)collections module: deque, Counter, OrderedDict)itertools module)functools module: partial, reduce)pickle module)json module) - use Rust’s serde_json insteados, sys modules)threading, multiprocessing)socket, http, urllib)subprocess module)Libraries that work via IPC (not native Rust):
Even with Resident Worker:
NDInt = npt.NDArray[np.int64]df[df["col"] > 5] (Pandas filtering)Features listed here may be added in future versions. For feature requests, please open an issue on the GitHub repository.