473,396 Members | 1,773 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Import weirdness

Hello,

A couple of months ago, I posted a question related to the same
problem, but didn't get any replies. I've created a ugly workaround
but still would like to get some insight on the matter.

Case:

XMLRPC client imports modules and packages from a XMLRPC server.

Method used:

path_hooks
See PEP302 - http://www.python.org/peps/pep-0302.html

Basic layout of the importer class:

class RemoteImporter:

def __init__(self, path):
self.path = path
if path.split('.')[0] not in self.pathlist:
raise ImportError

def find_module(self, fullname, path=None):
print 'FIND MODULE:', fullname
self.package, self.code = self.server.import(fullname)
if self.code:
self.request_path = fullname.split('.')
return self

def load_module(self, fullname):
print 'LOAD MODULE:', fullname
path = self._get_code(fullname)
# create new module
mod = imp.new_module(fullname)
mod.__file__ = "<%s>" % fullname
mod.__loader__ = self
mod.__path__ = path
# register with sys.modules
sys.modules[fullname] = mod
# exec
exec self.code in mod.__dict__
return mod

def _get_code(self, fullname):
if len(self.request_path) > 1:
_fname = '.'.join(self.request_path[0:-1])
return self._get_subfile(fname, self.request_path[-1])
del fname
else:
return self._get_archive(self.request_path[-1])

def _get_archive(self, modname):
# assemble path
if self.package:
path = ["%s" % self.fullname]
else:
path = []
# return results
return path

def _get_subfile(self, parent, modname):
# assemble path
if self.package:
path = ["%s.%s" % (parent, modname)]
else:
path = []
# return results
return path
Note: pathlist contains ie: ['mymodules', 'RemoteImporter']

In the xmlrpc client app I have: import mymodules

The package mymodules get's imported and modules contained in
mymodules wil also be imported. One of the problems is that when I
want to import modules in other modules contained in the package.

Example:

mymodules
__init__.py
module_1.py
module_2.py
module_3.py

When I use the line: 'import module_2' in module_1.py, the 'fullname'
as printed by find_module is not mymodules.module_2 but only
module_2. Without the base, the module can't be found. It is solvable
by prefixing imports with 'mymodules' like 'import
mymodules.module_2', but that is not a portable solution since the
name 'mymodules' could change.

Is this behavour a bug?

< Remy >


Jul 18 '05 #1
0 1262

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

15
by: Corne' Cornelius | last post by:
Hi, I'm experiencing some weirdness in a program, when subtracting 2 (double)'s which should result in 0, but instead it returns -1.11022e-16. It looks to me that changing the double x_step...
1
by: (Pete Cresswell) | last post by:
TabControl on the right side of a form with two tabs: Tab #1 contains two subforms that show some dynamic query results. Tab #2 contains a ListView that gets dynamically populated as the user...
0
by: Bruce B | last post by:
Hi group, I'm experiencing some extreme weirdness over the last week with IIS related to it's Mappings and how .NET is behaving. I can't explain the behavior as it seems very random. Our...
1
by: VB Programmer | last post by:
My development machine has been working perfectly, writing ASP.NET apps, etc... I just went to open a project and it said: "Visual Studio .NET has detected that the specified web server is not...
5
by: Phil Weber | last post by:
I'm attempting to debug an ASP.NET Web application in VS.NET 2003. I'm running the app and the debugger on my local machine (Windows XP Professional). I am logged in as a local administrator. In...
5
by: David Thielen | last post by:
Hi; I am creating png files in my ASP .NET app. When I am running under Windows 2003/IIS 6, the file is not given the security permissions it should have. It does not have any permission for...
1
by: rhino | last post by:
I've got some positioning problems that I can't figure out. Can anyone help? My website was working fine in IE7 and the current releases of Firefox and Opera so I had a look at it in IE6 and...
26
by: Prisoner at War | last post by:
Hi, All: I have a JavaScript search engine that always causes MSIE 7 to do a top-of-page security "warning" (that top-of-page-bar, and not an "alert" )...but other websites' JavaScripts do not...
2
by: JYA | last post by:
Hi. I was writing an xmltv parser using python when I faced some weirdness that I couldn't explain. What I'm doing, is read an xml file, create another dom object and copy the element from...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.