]>
code.delx.au - offlineimap/blob - offlineimap/localeval.py
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; either version 2 of the License, or
9 # (at your option) any later version.
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
27 def __init__(self
, path
=None):
32 module
=imp
.load_module(
36 ('', 'r', imp
.PY_SOURCE
))
37 for attr
in dir(module
):
38 self
.namespace
[attr
]=getattr(module
, attr
)
40 def eval(self
, text
, namespace
=None):
42 names
.update(self
.namespace
)
43 if namespace
is not None:
44 names
.update(namespace
)
45 return eval(text
, names
)