1.1 --- a/modules.py Sat Nov 12 23:27:04 2016 +0100
1.2 +++ b/modules.py Sat Nov 12 23:29:32 2016 +0100
1.3 @@ -38,6 +38,7 @@
1.4 self.imports = set()
1.5 self.required = set()
1.6 self.deferred = []
1.7 + self.imported = {}
1.8
1.9 # Global name information.
1.10
1.11 @@ -338,6 +339,26 @@
1.12 if ref.has_kind("<depends>"):
1.13 self.deferred.append(ref)
1.14
1.15 + def get_imported_name(self, name):
1.16 +
1.17 + "Return a reference for 'name', imported from another module."
1.18 +
1.19 + if "." in name:
1.20 + path = name
1.21 + name = path.rsplit(".", 1)[-1]
1.22 + else:
1.23 + path = self.get_object_path(name)
1.24 +
1.25 + global_path = self.get_global_path(name)
1.26 + return self.imported.get(path) or self.imported.get(global_path)
1.27 +
1.28 + def set_imported_name(self, name, ref):
1.29 +
1.30 + "Establish a reference for 'name' given by 'ref'."
1.31 +
1.32 + path = self.get_object_path(name)
1.33 + self.imported[path] = ref
1.34 +
1.35 class CachedModule(BasicModule):
1.36
1.37 "A cached module."