-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Summary
Let's say we have two separate native modules, things_types
which defines a Thing
class, and things
which has a get_all() -> List[Thing]
function. Then I write the following code.
import things
my_things = things.get_all()
for thing in my_things:
thing.do_stuff()
Expected
I would expect this to work just fine, for Thing
instances to be returned from things.get_all()
and for the pymethod do_stuff
to be called on each instance.
Actual
An error occurs when calling things.get_all()
, which is static type is not initialized
.
Workaround
A workaround here is to import things_types
as well, but I don't think that's very ergonomic.
Context
I'm creating a set of native modules to be provided to a rustpython interpreter as a sandbox for users. Asking users to import everything, even if they don't need it, is a little awkward. If there was a way I could, in my pymodule itself, intialize the static type easily, I would be happy to do that; I just couldn't find a way in the docs or examples or my journey through the source code (admittedly, my journey through the source code was to figure out the static type is not initialized
meaning.)