From 2a795e0d8e1596c5b34d3787ba771f01d34d30cb Mon Sep 17 00:00:00 2001 From: coolreader18 <33094578+coolreader18@users.noreply.github.com> Date: Tue, 13 Aug 2019 21:33:24 -0500 Subject: [PATCH] Add module __repr__ --- vm/src/obj/objmodule.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vm/src/obj/objmodule.rs b/vm/src/obj/objmodule.rs index cc3f3a596..3d7c89795 100644 --- a/vm/src/obj/objmodule.rs +++ b/vm/src/obj/objmodule.rs @@ -37,11 +37,18 @@ impl PyModuleRef { Err(err) => Err(err), } } + + fn repr(self, vm: &VirtualMachine) -> PyResult { + let importlib = vm.import("_frozen_importlib", &vm.ctx.new_tuple(vec![]), 0)?; + let module_repr = vm.get_attribute(importlib, "_module_repr")?; + vm.invoke(&module_repr, vec![self.into_object()]) + } } pub fn init(context: &PyContext) { - extend_class!(&context, &context.module_type, { + extend_class!(&context, &context.types.module_type, { "__new__" => context.new_rustfunc(PyModuleRef::new), "__getattribute__" => context.new_rustfunc(PyModuleRef::getattribute), + "__repr__" => context.new_rustfunc(PyModuleRef::repr), }); }