// Copyright (c) Corporation for National Research Initiatives package org.python.core; public class PyModule extends PyObject { //~ BEGIN GENERATED REGION -- DO NOT EDIT SEE gexpose.py /* type info */ public static final String exposed_name = "module"; public static void typeSetup(PyObject dict, PyType.Newstyle marker) { dict.__setitem__("__dict__", new PyGetSetDescr("__dict__", PyModule.class, "getDict", "setDict", "delDict")); dict.__setitem__("__doc__", new PyGetSetDescr("__doc__", PyModule.class, "getDoc", null, null)); class exposed___repr__ extends PyBuiltinMethodNarrow { exposed___repr__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___repr__(self, info); } public PyObject __call__() { return new PyString(((PyModule) self).module_toString()); } } dict.__setitem__("__repr__", new PyMethodDescr("__repr__", PyModule.class, 0, 0, new exposed___repr__(null, null))); class exposed___setattr__ extends PyBuiltinMethodNarrow { exposed___setattr__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___setattr__(self, info); } public PyObject __call__(PyObject arg0, PyObject arg1) { try { ((PyModule) self).module___setattr__(arg0.asName(0), arg1); return Py.None; } catch (PyObject.ConversionException e) { String msg; switch (e.index) { case 0: msg = "attribute name must be a string"; break; default: msg = "xxx"; } throw Py.TypeError(msg); } } } dict.__setitem__("__setattr__", new PyMethodDescr("__setattr__", PyModule.class, 2, 2, new exposed___setattr__( null, null))); class exposed___delattr__ extends PyBuiltinMethodNarrow { exposed___delattr__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___delattr__(self, info); } public PyObject __call__(PyObject arg0) { try { ((PyModule) self).module___delattr__(arg0.asName(0)); return Py.None; } catch (PyObject.ConversionException e) { String msg; switch (e.index) { case 0: msg = "attribute name must be a string"; break; default: msg = "xxx"; } throw Py.TypeError(msg); } } } dict.__setitem__("__delattr__", new PyMethodDescr("__delattr__", PyModule.class, 1, 1, new exposed___delattr__( null, null))); class exposed___init__ extends PyBuiltinMethod { exposed___init__(PyObject self, PyBuiltinFunction.Info info) { super(self, info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___init__(self, info); } public PyObject __call__(PyObject[] args) { return __call__(args, Py.NoKeywords); } public PyObject __call__(PyObject[] args, String[] keywords) { ((PyModule) self).module_init(args, keywords); return Py.None; } } dict.__setitem__("__init__", new PyMethodDescr("__init__", PyModule.class, -1, -1, new exposed___init__(null, null))); dict.__setitem__("__new__", new PyNewWrapper(PyModule.class, "__new__", -1, -1) { public PyObject new_impl(boolean init, PyType subtype, PyObject[] args, String[] keywords) { PyModule newobj; if (for_type == subtype) { newobj = new PyModule(); if (init) newobj.module_init(args, keywords); } else { newobj = new PyModuleDerived(subtype); } return newobj; } }); } //~ END GENERATED REGION -- DO NOT EDIT SEE gexpose.py private final PyObject module_doc = new PyString("module(name[, doc])\n" + "\n" + "Create a module object.\n" + "The name must be a string; the optional doc argument can have any type."); public PyObject __dict__; public PyModule() { super(); } public PyModule(PyType subType) { super(subType); } public PyModule(PyType subType, String name) { super(subType); module_init(new PyString(name), Py.None); } public PyModule(String name) { this(name, null); } public PyModule(String name, PyObject dict) { super(); __dict__ = dict; module_init(new PyString(name), Py.None); } final void module_init(PyObject name, PyObject doc) { ensureDict(); __dict__.__setitem__("__name__", name); __dict__.__setitem__("__doc__", doc); } final void module_init(PyObject[] args, String[] keywords) { ArgParser ap = new ArgParser("__init__", args, keywords, new String[] { "name", "doc" }); PyObject name = ap.getPyObject(0); PyObject docs = ap.getPyObject(1, Py.None); module_init(name, docs); } public PyObject fastGetDict() { return __dict__; } public PyObject getDict() { if (__dict__ == null) return Py.None; return __dict__; } public void setDict(PyObject newDict) { throw Py.TypeError("readonly attribute"); } public void delDict() { throw Py.TypeError("readonly attribute"); } public PyObject getDoc() { PyObject d = fastGetDict(); if (d != null) { PyObject doc = d.__finditem__("__doc__"); if (doc != null) { return doc; } } return module_doc; } protected PyObject impAttr(String attr) { PyObject path = __dict__.__finditem__("__path__"); PyObject pyname = __dict__.__finditem__("__name__"); if (path == null || pyname == null) return null; String name = pyname.__str__().toString(); String fullName = (name + '.' + attr).intern(); PyObject ret = null; //System.err.println("PyModule.impAttr " + attr + " " + name + " " + fullName); if (path == Py.None) { /* disabled: ret = imp.loadFromClassLoader( (name+'.'+attr).intern(), Py.getSystemState().getClassLoader()); */ } else if (path instanceof PyList) { ret = imp.find_module(attr, fullName, (PyList) path); } else { throw Py.TypeError("__path__ must be list or None"); } if (ret == null) { ret = PySystemState.packageManager.lookupName(fullName); } if (ret != null) { // Allow a package component to change its own meaning PyObject tmp = Py.getSystemState().modules.__finditem__(fullName); if (tmp != null) ret = tmp; __dict__.__setitem__(attr, ret); return ret; } return null; } public PyObject __findattr__(String attr) { return module___findattr__(attr); } final PyObject module___findattr__(String attr) { PyObject ret; if (__dict__ != null) { ret = __dict__.__finditem__(attr); if (ret != null) return ret; } ret = super.__findattr__(attr); if (ret != null) return ret; if (__dict__ == null) { return null; } PyObject pyname = __dict__.__finditem__("__name__"); if (pyname == null) return null; return impHook(pyname.__str__().toString() + '.' + attr); } public void __setattr__(String attr, PyObject value) { module___setattr__(attr, value); } final void module___setattr__(String attr, PyObject value) { if (attr != "__dict__") ensureDict(); super.__setattr__(attr, value); } public void __delattr__(String attr) { module___delattr__(attr); } final void module___delattr__(String attr) { super.__delattr__(attr); } public String toString() { return module_toString(); } final String module_toString() { PyObject name = null; PyObject filename = null; if (__dict__ != null) { name = __dict__.__finditem__("__name__"); filename = __dict__.__finditem__("__file__"); } if (name == null) name = new PyString("?"); if (filename == null) filename = new PyString("(built-in)"); else filename = new PyString("from '" + filename + "'"); return "<module '" + name + "' " + filename + ">"; } public PyObject __dir__() { if (__dict__ == null) throw Py.TypeError("module.__dict__ is not a dictionary"); return __dict__.invoke("keys"); } private void ensureDict() { if (__dict__ == null) __dict__ = new PyStringMap(); } static private PyObject silly_list = null; private static PyObject impHook(String name) { if (silly_list == null) { silly_list = new PyTuple(new PyString[] { Py.newString("__doc__"), }); } try { return __builtin__.__import__(name, null, null, silly_list); } catch (PyException e) { if (Py.matchException(e, Py.ImportError)) { return null; } throw e; } } }