Package org.python.core

# Class PySystemState

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

All Implemented Interfaces:
  `Closeable`, `Serializable`, `AutoCloseable`, `ClassDictInit`, `Traverseproc`

public class PySystemState extends PyObject implements AutoCloseable, ClassDictInit, Closeable, Traverseproc
The "sys" module.

See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`PySystemState.PySystemStateCloser`

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

`PyObject.ConversionException`

## Field Summary

Fields
Modifier and Type
Field
Description
`PyObject`
`__dict__`
`PyObject`
`__displayhook__`
`PyObject`
`__excepthook__`
`PyObject`
`__name__`
`PyObject`
`__stderr__`
`PyObject`
`__stdin__`
`PyObject`
`__stdout__`
`static final PyTuple`
`_git`
`PyList`
`argv`
The arguments passed to this program on the command line.
`static PyTuple`
`builtin_module_names`
`PyObject`
`builtins`
`static final PyString`
`byteorder`
`static final 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 final Class`
`flags`
`static final PyObject`
`float_info`
`static final PyString`
`float_repr_style`
`static final int`
`hexversion`
`static final String`
`JYTHON_DEV_JAR`
`static final String`
`JYTHON_JAR`
`PyObject`
`last_traceback`
`PyObject`
`last_type`
`PyObject`
`last_value`
`static final PyObject`
`long_info`
`static final int`
`maxint`
`static final int`
`maxsize`
`static final int`
`maxunicode`
`PyList`
`meta_path`
`static final int`
`minint`
`PyObject`
`modules`
`Map<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 Properties`
`registry`
`PyObject`
`stderr`
`PyObject`
`stdin`
`PyObject`
`stdout`
`static final PyTuple`
`subversion`
`static final PyString`
`version`
`static final PyVersionInfo`
`version_info`
`PyList`
`warnoptions`

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

`gcMonitorGlobal, TYPE`

## Constructor Summary

Constructors
Constructor
Description
`PySystemState()`

## Method Summary

Modifier and Type
Method
Description
`void`
`__delattr__(String name)`
A variant of the __delattr__ method which accepts a String as the key.
`PyObject`
`__findattr_ex__(String name)`
Attribute lookup hook.
`void`
`__rawdir__(PyDictionary accum)`
`void`
`__setattr__(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(String directoryPath)`
Add a classpath directory to the list of places that are searched for java packages.
`static void`
`add_extdir(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(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(String n)`
`static PyJavaPackage`
`add_package(String n, String contents)`
`void`
`callExitFunc()`
`static void`
`classDictInit(PyObject dict)`
`void`
`cleanup()`
`void`
`close()`
`static PySystemState`
`doInitialize(Properties preProperties, Properties postProperties, String[] argv, 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 Properties`
`getBaseProperties()`
`static String`
`getBuiltin(String name)`
`PyObject`
`getBuiltins()`
`PyInteger`
`getcheckinterval()`
`ClassLoader`
`getClassLoader()`
`codecs.CodecState`
`getCodecState()`
`String`
`getCurrentWorkingDir()`
Return a string representing the current working directory.
`static PyObject`
`getDefaultBuiltins()`
`PyString`
`getdefaultencoding()`
`File`
`getFile(String path)`
Resolve a path, returning a `File`, taking the current working directory into account.
`PyObject`
`getfilesystemencoding()`
`ReentrantLock`
`getImportLock()`
`static String`
`getNativePlatform()`
Emulates CPython's way to name sys.platform.
`String`
`getPath(String path)`
Resolve a path.
`static String`
`getPathLazy(String path)`
Resolve a path.
`PyObject`
`getPlatform()`
`PyObject`
`getprofile()`
`int`
`getrecursionlimit()`
`ClassLoader`
`getSyspathJavaLoader()`
`static String`
`getSystemVersionString()`
Attempt to find the OS version.
`PyObject`
`gettrace()`
`PyObject`
`getWarnoptions()`
`org.python.core.WinVersion`
`getwindowsversion()`
`static void`
`initialize()`
`static void`
`initialize(Properties preProperties, Properties postProperties)`
`static void`
`initialize(Properties preProperties, Properties postProperties, String[] argv)`
`static void`
`initialize(Properties preProperties, Properties postProperties, String[] argv, ClassLoader classLoader)`
`static void`
`initialize(Properties preProperties, Properties postProperties, String[] argv, ClassLoader classLoader, ExtensiblePyObjectAdapter adapter)`
`static boolean`
`isPackageCacheEnabled()`
`boolean`
`refersDirectlyTo(PyObject ob)`
Optional operation.
`void`
`registerCloser(Callable<Void> resourceCloser)`
`void`
`setBuiltins(PyObject value)`
`void`
`setcheckinterval(int interval)`
`void`
`setClassLoader(ClassLoader classLoader)`
`void`
`setCurrentWorkingDir(String path)`
Change the current working directory to the specified path.
`void`
`setdefaultencoding(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.
`String`
`toString()`
`int`
`traverse(Visitproc visit, Object arg)`
Traverses all directly contained `PyObject`s.
`boolean`
`unregisterCloser(Callable<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 Details

### JYTHON_JAR

public static final String JYTHON_JAR

See Also:
  - Constant Field Values

### JYTHON_DEV_JAR

public static final 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 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 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 Map<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 Details

### PySystemState

public PySystemState()

## Method Details

### 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 ReentrantLock getImportLock()

### getSyspathJavaLoader

public ClassLoader getSyspathJavaLoader()

### __findattr_ex__

public PyObject __findattr_ex__(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__(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__(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 String toString()

Overrides:
  `toString` in class `PyObject`

### getrecursionlimit

public int getrecursionlimit()

### 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(String encoding)

### getfilesystemencoding

public PyObject getfilesystemencoding()

### getcheckinterval

public PyInteger getcheckinterval()

### setcheckinterval

public void setcheckinterval(int interval)

### setCurrentWorkingDir

public void setCurrentWorkingDir(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 String getCurrentWorkingDir()
Return a string representing the current working directory.

Returns:
  a path String

### getPath

public String getPath(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 String getPathLazy(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 File getFile(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 ClassLoader getClassLoader()

### setClassLoader

public void setClassLoader(ClassLoader classLoader)

### getNativePlatform

public static 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 Properties getBaseProperties()

### initialize

public static void initialize()

### initialize

public static void initialize(Properties preProperties, Properties postProperties)

### initialize

public static void initialize(Properties preProperties, Properties postProperties, String[] argv)

### initialize

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

### initialize

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

### doInitialize

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

### isPackageCacheEnabled

public static boolean isPackageCacheEnabled()

### getBuiltin

public static String getBuiltin(String name)

### add_package

public static PyJavaPackage add_package(String n)

### add_package

public static PyJavaPackage add_package(String n, String contents)

### add_classdir

public static void add_classdir(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(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(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(Callable<Void> resourceCloser)

### unregisterCloser

public boolean unregisterCloser(Callable<Void> resourceCloser)

### cleanup

public void cleanup()

### close

public void close()

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`

### getSystemVersionString

public static 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, 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`