def _change_module(self, resources, changes,
                       factory_name, global_, job_set):
        if global_:
            replacement = '__rope_factory_%s_' % factory_name
        else:
            replacement = self._new_function_name(factory_name, global_)

        for file_ in resources:
            job_set.started_job(file_.path)
            if file_ == self.resource:
                self._change_resource(changes, factory_name, global_)
                job_set.finished_job()
                continue
            changed_code = self._rename_occurrences(file_, replacement,
                                                    global_)
            if changed_code is not None:
                if global_:
                    new_pymodule = self.pycore.get_string_module(changed_code,
                                                                 self.resource)
                    modname = importutils.get_module_name(self.pycore,
                                                          self.resource)
                    changed_code, imported = importutils.add_import(
                        self.pycore, new_pymodule, modname, factory_name)
                    changed_code = changed_code.replace(replacement, imported)
                changes.add_change(ChangeContents(file_, changed_code))
            job_set.finished_job()
Exemple #2
0
def _add_import_to_module(pycore, resource, imported):
    pymodule = pycore.resource_to_pyobject(resource)
    import_tools = importutils.ImportTools(pycore)
    module_imports = import_tools.module_imports(pymodule)
    module_name = importutils.get_module_name(pycore, imported)
    new_import = importutils.NormalImport(((module_name, None), ))
    module_imports.add_import(new_import)
    return change.ChangeContents(resource, module_imports.get_changed_source())
Exemple #3
0
 def _get_module(self, pyfunction):
     module = pyfunction.get_module()
     if module is not None:
         resource = module.get_resource()
         if resource is not None:
             return importutils.get_module_name(
                 pyfunction.pycore, resource) + '.'
     return ''
Exemple #4
0
def _pydefined_to_str(pydefined):
    address = []
    if isinstance(pydefined, (builtins.BuiltinClass, builtins.BuiltinFunction)):
        return '__builtins__.' + pydefined.get_name()
    else:
        while pydefined.parent is not None:
            address.insert(0, pydefined.get_name())
            pydefined = pydefined.parent
        module_name = importutils.get_module_name(pydefined.pycore,
                                                  pydefined.resource)
    return '.'.join(module_name.split('.') + address)
Exemple #5
0
 def _module_name(self):
     return importutils.get_module_name(self.project.pycore,
                                        self.resource)
Exemple #6
0
 def _new_modname(self, dest):
     destname = importutils.get_module_name(self.pycore, dest)
     if destname:
         return destname + '.' + self.old_name
     return self.old_name
Exemple #7
0
 def _new_modname(self, dest):
     return importutils.get_module_name(self.pycore, dest)