# HG changeset patch # User Paul Boddie # Date 1473027176 -7200 # Node ID f47c63967c5965e95ad988cea5c10b7d56eeb802 # Parent fa9a7f9773dcdb6c01667cc858d8f05ce54ea670 Separated inspection-related naming methods from common module methods. diff -r fa9a7f9773dc -r f47c63967c59 inspector.py --- a/inspector.py Sun Sep 04 23:59:55 2016 +0200 +++ b/inspector.py Mon Sep 05 00:12:56 2016 +0200 @@ -22,7 +22,7 @@ from branching import BranchTracker from common import get_argnames, init_item, predefined_constants -from modules import BasicModule, CacheWritingModule +from modules import BasicModule, CacheWritingModule, InspectionNaming from referencing import Reference from resolving import NameResolving from results import AccessRef, InstanceRef, InvocationRef, LiteralSequenceRef, \ @@ -30,7 +30,7 @@ import compiler import sys -class InspectedModule(BasicModule, CacheWritingModule, NameResolving): +class InspectedModule(BasicModule, CacheWritingModule, NameResolving, InspectionNaming): "A module inspector." diff -r fa9a7f9773dc -r f47c63967c59 modules.py --- a/modules.py Sun Sep 04 23:59:55 2016 +0200 +++ b/modules.py Mon Sep 05 00:12:56 2016 +0200 @@ -204,6 +204,31 @@ self.importer.all_instance_attrs[name] = self.instance_attrs.get(name) or {} self.importer.all_instance_attr_constants[name] = self.instance_attr_constants.get(name) or {} + def set_object(self, name, value=None): + + "Set an object with the given 'name' and the given 'value'." + + ref = decode_reference(value, name) + multiple = self.objects.has_key(name) and self.objects[name].get_kind() != ref.get_kind() + self.importer.objects[name] = self.objects[name] = multiple and ref.as_var() or ref + + def queue_module(self, name, required=False): + + """ + Queue the module with the given 'name'. If 'required' is true (it is + false by default), indicate that the module is required in the final + program. + """ + + self.importer.queue_module(name, self, required) + if required: + self.required.add(name) + self.imports.add(name) + +class InspectionNaming: + + "Name operations related to inspection." + # Module-relative naming. def is_global(self, name): @@ -265,14 +290,6 @@ else: return Reference("", path) - def set_object(self, name, value=None): - - "Set an object with the given 'name' and the given 'value'." - - ref = decode_reference(value, name) - multiple = self.objects.has_key(name) and self.objects[name].get_kind() != ref.get_kind() - self.importer.objects[name] = self.objects[name] = multiple and ref.as_var() or ref - def import_name_from_module(self, name, module_name): "Import 'name' from the module having the given 'module_name'." @@ -281,19 +298,6 @@ self.queue_module(module_name) return Reference("", "%s.%s" % (module_name, name)) - def queue_module(self, name, required=False): - - """ - Queue the module with the given 'name'. If 'required' is true (it is - false by default), indicate that the module is required in the final - program. - """ - - self.importer.queue_module(name, self, required) - if required: - self.required.add(name) - self.imports.add(name) - class CachedModule(BasicModule): "A cached module."