]>
code.delx.au - offlineimap/blob - offlineimap/head/offlineimap/localeval.py
ab53c1b0f88d162fbf7ac8dab3c3676d040fe1db
1 """Eval python code with global namespace of a python source file."""
3 # Copyright (C) 2002 John Goerzen
4 # <jgoerzen@complete.org>
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; version 2 of the License.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 def __init__(self
, path
=None):
27 module
=imp
.load_module(
31 ('', 'r', imp
.PY_SOURCE
))
32 for attr
in dir(module
):
33 self
.namespace
[attr
]=getattr(module
, attr
)
35 def eval(self
, text
, namespace
=None):
37 names
.update(self
.namespace
)
38 if namespace
is not None:
39 names
.update(namespace
)
40 return eval(text
, names
)