org.python.core

## Class PySystemState

- java.lang.Object
- - org.python.core.PyObject
  - - org.python.core.PySystemState

All Implemented Interfaces:
  java.io.Closeable, java.io.Serializable, java.lang.AutoCloseable, ClassDictInit, Traverseproc

    public class PySystemState
    extends PyObject
    implements java.lang.AutoCloseable, ClassDictInit, java.io.Closeable, Traverseproc

The "sys" module.

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`static class` `PySystemState.PySystemStateCloser`

### Nested classes/interfaces inherited from class org.python.core.PyObject

`PyObject.ConversionException`

### Field Summary

Fields
`PyObject` `__dict__`
`PyObject` `__displayhook__`
`PyObject` `__excepthook__`
`PyObject` `__name__`
`PyObject` `__stderr__`
`PyObject` `__stdin__`
`PyObject` `__stdout__`
`static PyTuple` `_git`
`PyList` `argv` The arguments passed to this program on the command line.
`static PyTuple` `builtin_module_names`
`PyObject` `builtins`
`static PyString` `byteorder`
`static PyObject` `copyright` The copyright notice for this release.
`boolean` `dont_write_bytecode` Whether bytecode should be written to disk on import.
`static PyObject` `exec_prefix` A string giving the site-specific directory prefix where the platform-dependent Python files are installed; by default, this is the same as `exec_prefix`.
`PyObject` `executable`
`static java.lang.Class` `flags`
`static PyObject` `float_info`
`static PyString` `float_repr_style`
`static int` `hexversion`
`static java.lang.String` `JYTHON_DEV_JAR`
`static java.lang.String` `JYTHON_JAR`
`PyObject` `last_traceback`
`PyObject` `last_type`
`PyObject` `last_value`
`static PyObject` `long_info`
`static int` `maxint`
`static int` `maxsize`
`static int` `maxunicode`
`PyList` `meta_path`
`static int` `minint`
`PyObject` `modules`
`java.util.Map<java.lang.String,PyModule>` `modules_reloading`
`static PackageManager` `packageManager`
`PyList` `path`
`PyList` `path_hooks`
`PyObject` `path_importer_cache`
`PyObject` `platform`
`static PyObject` `prefix` A string giving the site-specific directory prefix where the platform independent Python files are installed; by default, this is based on the property `python.home` or the location of the Jython JAR.
`PyObject` `ps1`
`PyObject` `ps2`
`static boolean` `py3kwarning`
`static java.util.Properties` `registry`
`PyObject` `stderr`
`PyObject` `stdin`
`PyObject` `stdout`
`static PyTuple` `subversion`
`static PyString` `version`
`static PyVersionInfo` `version_info`
`PyList` `warnoptions`

### Fields inherited from class org.python.core.PyObject

`gcMonitorGlobal, TYPE`

### Constructor Summary

Constructors
Constructor and Description
`PySystemState()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`void` `__delattr__(java.lang.String name)` A variant of the __delattr__ method which accepts a String as the key.
`PyObject` `__findattr_ex__(java.lang.String name)` Attribute lookup hook.
`void` `__rawdir__(PyDictionary accum)`
`void` `__setattr__(java.lang.String name, PyObject value)` A variant of the __setattr__ method which accepts a String as the key.
`static PyDictionary` `_current_frames()`
`static PyFrame` `_getframe()`
`static PyFrame` `_getframe(int depth)`
`static void` `add_classdir(java.lang.String directoryPath)` Add a classpath directory to the list of places that are searched for java packages.
`static void` `add_extdir(java.lang.String directoryPath)` Add a .jar and .zip directory to the list of places that are searched for java .jar and .zip files.
`static void` `add_extdir(java.lang.String directoryPath, boolean cache)` Add a .jar and .zip directory to the list of places that are searched for java .jar and .zip files.
`static PyJavaPackage` `add_package(java.lang.String n)`
`static PyJavaPackage` `add_package(java.lang.String n, java.lang.String contents)`
`void` `callExitFunc()`
`static void` `classDictInit(PyObject dict)`
`void` `cleanup()`
`void` `close()`
`static PySystemState` `doInitialize(java.util.Properties preProperties, java.util.Properties postProperties, java.lang.String[] argv, java.lang.ClassLoader classLoader, ExtensiblePyObjectAdapter adapter)`
`static void` `exc_clear()`
`static PyTuple` `exc_info()`
`static void` `exit()` Exit a Python program with the status 0.
`static void` `exit(PyObject status)` Exit a Python program with the given status.
`static java.util.Properties` `getBaseProperties()`
`static java.lang.String` `getBuiltin(java.lang.String name)`
`PyObject` `getBuiltins()`
`PyInteger` `getcheckinterval()`
`java.lang.ClassLoader` `getClassLoader()`
`codecs.CodecState` `getCodecState()`
`java.lang.String` `getCurrentWorkingDir()` Return a string representing the current working directory.
`static PyObject` `getDefaultBuiltins()`
`PyString` `getdefaultencoding()`
`java.io.File` `getFile(java.lang.String path)` Resolve a path, returning a `File`, taking the current working directory into account.
`PyObject` `getfilesystemencoding()`
`java.util.concurrent.locks.ReentrantLock` `getImportLock()`
`static java.lang.String` `getNativePlatform()` Emulates CPython's way to name sys.platform.
`java.lang.String` `getPath(java.lang.String path)` Resolve a path.
`static java.lang.String` `getPathLazy(java.lang.String path)` Resolve a path.
`PyObject` `getPlatform()`
`PyObject` `getprofile()`
`int` `getrecursionlimit()`
`long` `getsizeof(java.lang.Object obj)`
`long` `getsizeof(java.lang.Object obj, long defaultVal)`
`java.lang.ClassLoader` `getSyspathJavaLoader()`
`static java.lang.String` `getSystemVersionString()` Attempt to find the OS version.
`PyObject` `gettrace()`
`PyObject` `getWarnoptions()`
`org.python.core.WinVersion` `getwindowsversion()`
`static void` `initialize()`
`static void` `initialize(java.util.Properties preProperties, java.util.Properties postProperties)`
`static void` `initialize(java.util.Properties preProperties, java.util.Properties postProperties, java.lang.String[] argv)`
`static void` `initialize(java.util.Properties preProperties, java.util.Properties postProperties, java.lang.String[] argv, java.lang.ClassLoader classLoader)`
`static void` `initialize(java.util.Properties preProperties, java.util.Properties postProperties, java.lang.String[] argv, java.lang.ClassLoader classLoader, ExtensiblePyObjectAdapter adapter)`
`static boolean` `isPackageCacheEnabled()`
`boolean` `refersDirectlyTo(PyObject ob)` Optional operation.
`void` `registerCloser(java.util.concurrent.Callable<java.lang.Void> resourceCloser)`
`void` `setBuiltins(PyObject value)`
`void` `setcheckinterval(int interval)`
`void` `setClassLoader(java.lang.ClassLoader classLoader)`
`void` `setCurrentWorkingDir(java.lang.String path)` Change the current working directory to the specified path.
`void` `setdefaultencoding(java.lang.String encoding)`
`void` `setPlatform(PyObject value)`
`void` `setprofile(PyObject profilefunc)`
`void` `setrecursionlimit(int recursionlimit)`
`void` `settrace(PyObject tracefunc)`
`void` `setWarnoptions(PyObject value)`
`void` `shadow()` Deprecated.
`java.lang.String` `toString()`
`int` `traverse(Visitproc visit, java.lang.Object arg)` Traverses all directly contained `PyObject`s.
`boolean` `unregisterCloser(java.util.concurrent.Callable<java.lang.Void> resourceCloser)`

### Methods inherited from class org.python.core.PyObject

`__abs__, __add__, __and__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __call__, __cmp__, __coerce__, __coerce_ex__, __complex__, __contains__, __delattr__, __delete__, __delitem__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __eq__, __findattr__, __findattr__, __finditem__, __finditem__, __finditem__, __float__, __floordiv__, __format__, __ge__, __get__, __getattr__, __getattr__, __getitem__, __getitem__, __getnewargs__, __getslice__, __getslice__, __gt__, __hash__, __hex__, __iadd__, __iand__, __idiv__, __idivmod__, __ifloordiv__, __ilshift__, __imod__, __imul__, __index__, __int__, __invert__, __ior__, __ipow__, __irshift__, __isub__, __iter__, __iternext__, __itruediv__, __ixor__, __le__, __len__, __long__, __lshift__, __lt__, __mod__, __mul__, __ne__, __neg__, __nonzero__, __not__, __oct__, __or__, __pos__, __pow__, __pow__, __radd__, __rand__, __rdiv__, __rdivmod__, __reduce__, __reduce_ex__, __reduce_ex__, __repr__, __rfloordiv__, __rlshift__, __rmod__, __rmul__, __ror__, __rpow__, __rrshift__, __rshift__, __rsub__, __rtruediv__, __rxor__, __set__, __setattr__, __setitem__, __setitem__, __setitem__, __setslice__, __setslice__, __str__, __sub__, __tojava__, __truediv__, __trunc__, __unicode__, __xor__, _add, _and, _callextra, _cmp, _div, _divmod, _doget, _doget, _doset, _eq, _floordiv, _ge, _gt, _iadd, _iand, _idiv, _idivmod, _ifloordiv, _ilshift, _imod, _imul, _in, _ior, _ipow, _irshift, _is, _isnot, _isub, _itruediv, _ixor, _jcall, _jcallexc, _jthrow, _le, _lshift, _lt, _mod, _mul, _ne, _notin, _or, _pow, _rshift, _sub, _truediv, _xor, asDouble, asIndex, asIndex, asInt, asInt, asIterable, asLong, asLong, asName, asName, asString, asString, asStringOrNull, asStringOrNull, bit_length, conjugate, delDict, delType, dispatch__init__, equals, fastGetClass, fastGetDict, getDict, getType, hashCode, implementsDescrDelete, implementsDescrGet, implementsDescrSet, invoke, invoke, invoke, invoke, invoke, invoke, isCallable, isDataDescr, isIndex, isInteger, isMappingType, isNumberType, isSequenceType, noAttributeError, object___subclasshook__, readonlyAttributeError, setDict, setType`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### JYTHON_JAR

    public static final java.lang.String JYTHON_JAR

See Also:
  Constant Field Values

#### JYTHON_DEV_JAR

    public static final java.lang.String JYTHON_DEV_JAR

See Also:
  Constant Field Values

#### version

    public static final PyString version

#### subversion

    public static final PyTuple subversion

#### hexversion

    public static final int hexversion

#### version_info

    public static final PyVersionInfo version_info

#### maxunicode

    public static final int maxunicode

See Also:
  Constant Field Values

#### maxsize

    public static final int maxsize

See Also:
  Constant Field Values

#### float_repr_style

    public static final PyString float_repr_style

#### py3kwarning

    public static boolean py3kwarning

#### flags

    public static final java.lang.Class flags

#### _git

    public static final PyTuple _git

#### copyright

    public static final PyObject copyright

The copyright notice for this release.

#### builtin_module_names

    public static PyTuple builtin_module_names

#### packageManager

    public static PackageManager packageManager

#### registry

    public static java.util.Properties registry

#### prefix

    public static PyObject prefix

A string giving the site-specific directory prefix where the platform independent Python files are installed; by default, this is based on the property `python.home` or the location of the Jython JAR. The main collection of Python library modules is installed in the directory `prefix/Lib`. This object should contain bytes in the file system encoding for consistency with use in the standard library (see `sysconfig.py`).

#### exec_prefix

    public static PyObject exec_prefix

A string giving the site-specific directory prefix where the platform-dependent Python files are installed; by default, this is the same as `exec_prefix`. This object should contain bytes in the file system encoding for consistency with use in the standard library (see `sysconfig.py`).

#### byteorder

    public static final PyString byteorder

#### maxint

    public static final int maxint

See Also:
  Constant Field Values

#### minint

    public static final int minint

See Also:
  Constant Field Values

#### argv

    public PyList argv

The arguments passed to this program on the command line.

#### modules

    public PyObject modules

#### modules_reloading

    public java.util.Map<java.lang.String,PyModule> modules_reloading

#### path

    public PyList path

#### warnoptions

    public PyList warnoptions

#### builtins

    public PyObject builtins

#### platform

    public PyObject platform

#### meta_path

    public PyList meta_path

#### path_hooks

    public PyList path_hooks

#### path_importer_cache

    public PyObject path_importer_cache

#### ps1

    public PyObject ps1

#### ps2

    public PyObject ps2

#### executable

    public PyObject executable

#### stdout

    public PyObject stdout

#### stderr

    public PyObject stderr

#### stdin

    public PyObject stdin

#### __stdout__

    public PyObject __stdout__

#### __stderr__

    public PyObject __stderr__

#### __stdin__

    public PyObject __stdin__

#### __displayhook__

    public PyObject __displayhook__

#### __excepthook__

    public PyObject __excepthook__

#### last_value

    public PyObject last_value

#### last_type

    public PyObject last_type

#### last_traceback

    public PyObject last_traceback

#### __name__

    public PyObject __name__

#### __dict__

    public PyObject __dict__

#### dont_write_bytecode

    public boolean dont_write_bytecode

Whether bytecode should be written to disk on import.

#### float_info

    public static final PyObject float_info

#### long_info

    public static final PyObject long_info

### Constructor Detail

#### PySystemState

    public PySystemState()

### Method Detail

#### classDictInit

    public static void classDictInit(PyObject dict)

#### shadow

    @Deprecated
    public void shadow()

Deprecated.

#### getDefaultBuiltins

    public static PyObject getDefaultBuiltins()

#### getBuiltins

    public PyObject getBuiltins()

#### setBuiltins

    public void setBuiltins(PyObject value)

#### getWarnoptions

    public PyObject getWarnoptions()

#### setWarnoptions

    public void setWarnoptions(PyObject value)

#### getPlatform

    public PyObject getPlatform()

#### setPlatform

    public void setPlatform(PyObject value)

#### getwindowsversion

    public org.python.core.WinVersion getwindowsversion()

#### getCodecState

    public codecs.CodecState getCodecState()

#### getImportLock

    public java.util.concurrent.locks.ReentrantLock getImportLock()

#### getSyspathJavaLoader

    public java.lang.ClassLoader getSyspathJavaLoader()

#### __findattr_ex__

    public PyObject __findattr_ex__(java.lang.String name)

Description copied from class: `PyObject`
Attribute lookup hook. If the attribute is not found, null may be returned or a Py.AttributeError can be thrown, whatever is more correct, efficient and/or convenient for the implementing class. Client code should use `PyObject.__getattr__(String)` or `PyObject.__findattr__(String)`. Both methods have a clear policy for failed lookups.

Overrides:
  `__findattr_ex__` in class `PyObject`
Returns:
  The looked up value. May return null if the attribute is not found

#### __setattr__

    public void __setattr__(java.lang.String name,
                            PyObject value)

Description copied from class: `PyObject`
A variant of the __setattr__ method which accepts a String as the key. This String must be interned.

Overrides:
  `__setattr__` in class `PyObject`
Parameters:
  `name` - the name whose value will be set - must be an interned string .
  `value` - the value to set this name to
See Also:
  `PyObject.__setattr__(PyString, PyObject)`

#### __delattr__

    public void __delattr__(java.lang.String name)

Description copied from class: `PyObject`
A variant of the __delattr__ method which accepts a String as the key. This String must be interned. By default, this will call `__delattr__(PyString name)` with the appropriate args. The only reason to override this method is for performance.

Overrides:
  `__delattr__` in class `PyObject`
Parameters:
  `name` - the name which will be removed - must be an interned string .
See Also:
  `PyObject.__delattr__(PyString)`

#### __rawdir__

    public void __rawdir__(PyDictionary accum)

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `PyObject`

#### getrecursionlimit

    public int getrecursionlimit()

#### getsizeof

    public long getsizeof(java.lang.Object obj,
                          long defaultVal)

#### getsizeof

    public long getsizeof(java.lang.Object obj)

#### setrecursionlimit

    public void setrecursionlimit(int recursionlimit)

#### gettrace

    public PyObject gettrace()

#### settrace

    public void settrace(PyObject tracefunc)

#### getprofile

    public PyObject getprofile()

#### setprofile

    public void setprofile(PyObject profilefunc)

#### getdefaultencoding

    public PyString getdefaultencoding()

#### setdefaultencoding

    public void setdefaultencoding(java.lang.String encoding)

#### getfilesystemencoding

    public PyObject getfilesystemencoding()

#### getcheckinterval

    public PyInteger getcheckinterval()

#### setcheckinterval

    public void setcheckinterval(int interval)

#### setCurrentWorkingDir

    public void setCurrentWorkingDir(java.lang.String path)

Change the current working directory to the specified path. path is assumed to be absolute and canonical (via os.path.realpath).

Parameters:
  `path` - a path String

#### getCurrentWorkingDir

    public java.lang.String getCurrentWorkingDir()

Return a string representing the current working directory.

Returns:
  a path String

#### getPath

    public java.lang.String getPath(java.lang.String path)

Resolve a path. Returns the full path taking the current working directory into account.

Parameters:
  `path` - a path String
Returns:
  a resolved path String

#### getPathLazy

    public static java.lang.String getPathLazy(java.lang.String path)

Resolve a path. Returns the full path taking the current working directory into account. Like getPath but called statically. The current PySystemState is only consulted for the current working directory when it's necessary (when the path is relative).

Parameters:
  `path` - a path String
Returns:
  a resolved path String

#### getFile

    public java.io.File getFile(java.lang.String path)

Resolve a path, returning a `File`, taking the current working directory into account.

Parameters:
  `path` - a path `String`
Returns:
  a resolved `File`

#### callExitFunc

    public void callExitFunc()
                      throws PyIgnoreMethodTag

Throws:
  `PyIgnoreMethodTag`

#### getClassLoader

    public java.lang.ClassLoader getClassLoader()

#### setClassLoader

    public void setClassLoader(java.lang.ClassLoader classLoader)

#### getNativePlatform

    public static java.lang.String getNativePlatform()

Emulates CPython's way to name sys.platform. Works according to this table:

Platform names
System | Value
--- | ---
Linux (2.x and 3.x) | linux2
Windows | win32
Windows/Cygwin | cygwin
Mac OS X | darwin
OS/2 | os2
OS/2 EMX | os2emx
RiscOS | riscos
AtheOS | atheos

#### getBaseProperties

    public static java.util.Properties getBaseProperties()

#### initialize

    public static void initialize()

#### initialize

    public static void initialize(java.util.Properties preProperties,
                                  java.util.Properties postProperties)

#### initialize

    public static void initialize(java.util.Properties preProperties,
                                  java.util.Properties postProperties,
                                  java.lang.String[] argv)

#### initialize

    public static void initialize(java.util.Properties preProperties,
                                  java.util.Properties postProperties,
                                  java.lang.String[] argv,
                                  java.lang.ClassLoader classLoader)

#### initialize

    public static void initialize(java.util.Properties preProperties,
                                  java.util.Properties postProperties,
                                  java.lang.String[] argv,
                                  java.lang.ClassLoader classLoader,
                                  ExtensiblePyObjectAdapter adapter)

#### doInitialize

    public static PySystemState doInitialize(java.util.Properties preProperties,
                                             java.util.Properties postProperties,
                                             java.lang.String[] argv,
                                             java.lang.ClassLoader classLoader,
                                             ExtensiblePyObjectAdapter adapter)

#### isPackageCacheEnabled

    public static boolean isPackageCacheEnabled()

#### getBuiltin

    public static java.lang.String getBuiltin(java.lang.String name)

#### add_package

    public static PyJavaPackage add_package(java.lang.String n)

#### add_package

    public static PyJavaPackage add_package(java.lang.String n,
                                            java.lang.String contents)

#### add_classdir

    public static void add_classdir(java.lang.String directoryPath)

Add a classpath directory to the list of places that are searched for java packages.

Note. Classes found in directory and sub-directory are not made available to jython by this call. It only makes the java package found in the directory available. This call is mostly useful if jython is embedded in an application that deals with its own class loaders. A servlet container is a very good example. Calling `add_classdir("<context>/WEB-INF/classes")` makes the java packages in WEB-INF classes available to jython import. However the actual class loading is completely handled by the servlet container's context classloader.

#### add_extdir

    public static void add_extdir(java.lang.String directoryPath)

Add a .jar and .zip directory to the list of places that are searched for java .jar and .zip files. The .jar and .zip files found will not be cached.

Note. Classes in .jar and .zip files found in the directory are not made available to jython by this call. See the note for add_classdir(dir) for more details.

Parameters:
  `directoryPath` - The name of a directory.
See Also:
  `add_classdir(java.lang.String)`

#### add_extdir

    public static void add_extdir(java.lang.String directoryPath,
                                  boolean cache)

Add a .jar and .zip directory to the list of places that are searched for java .jar and .zip files.

Note. Classes in .jar and .zip files found in the directory are not made available to jython by this call. See the note for add_classdir(dir) for more details.

Parameters:
  `directoryPath` - The name of a directory.
  `cache` - Controls if the packages in the zip and jar file should be cached.
See Also:
  `add_classdir(java.lang.String)`

#### exit

    public static void exit(PyObject status)

Exit a Python program with the given status.

Parameters:
  `status` - the value to exit with
Throws:
  `PyException` - `SystemExit` always throws this exception. When caught at top level the program will exit.

#### exit

    public static void exit()

Exit a Python program with the status 0.

#### exc_info

    public static PyTuple exc_info()

#### exc_clear

    public static void exc_clear()

#### _getframe

    public static PyFrame _getframe()

#### _getframe

    public static PyFrame _getframe(int depth)

#### _current_frames

    public static PyDictionary _current_frames()

#### registerCloser

    public void registerCloser(java.util.concurrent.Callable<java.lang.Void> resourceCloser)

#### unregisterCloser

    public boolean unregisterCloser(java.util.concurrent.Callable<java.lang.Void> resourceCloser)

#### cleanup

    public void cleanup()

#### close

    public void close()

Specified by:
  `close` in interface `java.io.Closeable`
Specified by:
  `close` in interface `java.lang.AutoCloseable`

#### getSystemVersionString

    public static java.lang.String getSystemVersionString()

Attempt to find the OS version. The mechanism on Windows is to extract it from the result of `cmd.exe /C ver`, and otherwise (assumed Unix-like OS) to use `uname -v</code>`.

#### traverse

    public int traverse(Visitproc visit,
                        java.lang.Object arg)

Description copied from interface: `Traverseproc`
Traverses all directly contained `PyObject`s. Like in CPython, `arg` must be passed unmodified to `visit` as its second parameter. If `Visitproc.visit(PyObject, Object)` returns nonzero, this return value must be returned immediately by traverse. `Visitproc.visit(PyObject, Object)` must not be called with a `null` PyObject-argument.

Specified by:
  `traverse` in interface `Traverseproc`

#### refersDirectlyTo

    public boolean refersDirectlyTo(PyObject ob)

Description copied from interface: `Traverseproc`
Optional operation. Should only be implemented if it is more efficient than calling `Traverseproc.traverse(Visitproc, Object)` with a visitproc that just watches out for `ob`. Must return `false` if `ob` is `null`.

Specified by:
  `refersDirectlyTo` in interface `Traverseproc`