Options (Jython API documentation)
Date: 2024-08-18

org.python.core

## Class Options

- java.lang.Object
- - org.python.core.Options

-     public class Options
      extends java.lang.Object

  A class with static fields for each of the settable options. The options from registry and command line is copied into the fields here and the rest of Jython checks these fields.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `bytes_warning`
    `static boolean` | `caseok` If true, Jython will use the first module found on sys.path where java File.isFile() returns true.
    `static int` | `division_warning` Enable division warning.
    `static boolean` | `dont_write_bytecode` Whether -B (don't write bytecode on import) was enabled via the command line.
    `static boolean` | `ignore_environment` Whether -E (ignore environment) was enabled via the command line.
    `static boolean` | `importSite` When `false` the `site.py` will not be imported.
    `static boolean` | `includeJavaStackInExceptions` If true, exceptions raised from Python code will include a Java stack trace in addition to the Python traceback.
    `static boolean` | `inspect` When a script given on the command line finishes, start an interactive interpreter.
    `static boolean` | `interactive` Set by the `-i` option to the interpreter command, to ask for an interactive session to start after the script ends.
    `static boolean` | `no_site` When `true` the `site.py` was not imported.
    `static boolean` | `no_user_site` Whether -s (don't add user site directory to `sys.path`) was on the command line.
    `static int` | `optimize` Corresponds to -O (Python bytecode optimization), -OO (remove docstrings) flags in CPython.
    `static java.lang.String` | `proxyDebugDirectory` A directory where the dynamically generated classes are written.
    `static boolean` | `py3k_warning` Whether -3 (py3k warnings) was enabled via the command line.
    `static boolean` | `Qnew` If true, enable true division for the '/' operator.
    `static boolean` | `respectJavaAccessibility` If true, Jython respects Java the accessibility flag for fields, methods, and constructors.
    `static boolean` | `showJavaExceptions` when an exception occurs in Java code, and it is not caught, should the interpreter print out the Java exception in the traceback?
    `static boolean` | `showPythonProxyExceptions` When true, python exception raised in overridden methods will be shown on stderr.
    `static java.lang.String` | `sreCacheSpec`
    `static java.lang.String` | `sreCacheSpecDefault` Cache spec for the SRE_STATE code point cache.
    `static boolean` | `unbuffered` Force stdin, stdout and stderr to be unbuffered, and opened in binary mode.
    `static int` | `verbose` Deprecated. Use `PrePy.getLoggingLevel()`, `PrePy.setLoggingLevel(java.util.logging.Level)`, or `java.util.logging` preferences to configure logging levels.

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `setFromRegistry()` Initialize the static fields from the registry options.

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

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### showJavaExceptions

          public static boolean showJavaExceptions

      when an exception occurs in Java code, and it is not caught, should the interpreter print out the Java exception in the traceback?

    - #### includeJavaStackInExceptions

          public static boolean includeJavaStackInExceptions

      If true, exceptions raised from Python code will include a Java stack trace in addition to the Python traceback. This can slow raising considerably.
      See Also:
        `RegistryKey.PYTHON_OPTIONS_INCLUDE_JAVA_STACK_IN_EXCEPTIONS`

    - #### showPythonProxyExceptions

          public static boolean showPythonProxyExceptions

      When true, python exception raised in overridden methods will be shown on stderr. This option is remarkably useful when python is used for implementing CORBA server. Some CORBA servers will turn python exception (say a NameError) into an anonymous user exception without any stacktrace. Setting this option will show the stacktrace.
      See Also:
        `RegistryKey.PYTHON_OPTIONS_SHOW_PYTHON_PROXY_EXCEPTIONS`

    - #### respectJavaAccessibility

          public static boolean respectJavaAccessibility

      If true, Jython respects Java the accessibility flag for fields, methods, and constructors. This means you can only access public members. Set this to false to access all members by toggling the accessible flag on the member.
      See Also:
        `RegistryKey.PYTHON_SECURITY_RESPECT_JAVA_ACCESSIBILITY`

    - #### importSite

          public static boolean importSite

      When `false` the `site.py` will not be imported. This may be set by the command line main class (`-S` option) or from the registry and is checked in `PythonInterpreter`.
      See Also:
        `no_site`, `RegistryKey.PYTHON_IMPORT_SITE`

    - #### no_site

          public static boolean no_site

      When `true` the `site.py` was not imported. This is may be set by the command line main class (`-S` option) or from the registry. However, in Jython 2, `no_site` is simply the opposite of `importSite`, as the interpreter starts up, provided for compatibility with the standard Python `sys.flags`. Actual control over the import of the site module in Jython 2, when necessary from Java, is accomplished through `importSite`.

    - #### verbose

          @Deprecated
          public static int verbose

      Deprecated. Use `PrePy.getLoggingLevel()`, `PrePy.setLoggingLevel(java.util.logging.Level)`, or `java.util.logging` preferences to configure logging levels.
      Verbosity of informative messages from Jython, retained as a field for reasons of backward-compatibility. Normally this option should be allowed to find its value indirectly through `java.util.logging`, as adjusted by the command line `-v` option.

    - #### interactive

          public static boolean interactive

      Set by the `-i` option to the interpreter command, to ask for an interactive session to start after the script ends. It also allows certain streams to be considered interactive when `isatty` is not available.

    - #### inspect

          public static boolean inspect

      When a script given on the command line finishes, start an interactive interpreter. It is set `true` by the `-i` option on the command-line, or programmatically from the script, and reset to `false` just before the interactive session starts. (This session only actually starts if the console is interactive.)

    - #### proxyDebugDirectory

          public static java.lang.String proxyDebugDirectory

      A directory where the dynamically generated classes are written. Nothing is ever read from here, it is only for debugging purposes.

    - #### caseok

          public static boolean caseok

      If true, Jython will use the first module found on sys.path where java File.isFile() returns true. Setting this to true have no effect on unix-type filesystems. On Windows/HFS+ systems setting it to true will enable Jython-2.0 behaviour.
      See Also:
        `RegistryKey.PYTHON_OPTIONS_CASE_OK`

    - #### Qnew

          public static boolean Qnew

      If true, enable true division for the '/' operator.
      See Also:
        `RegistryKey.PYTHON_OPTIONS_Q_NEW`

    - #### unbuffered

          public static boolean unbuffered

      Force stdin, stdout and stderr to be unbuffered, and opened in binary mode.

    - #### py3k_warning

          public static boolean py3k_warning

      Whether -3 (py3k warnings) was enabled via the command line.

    - #### dont_write_bytecode

          public static boolean dont_write_bytecode

      Whether -B (don't write bytecode on import) was enabled via the command line.

    - #### ignore_environment

          public static boolean ignore_environment

      Whether -E (ignore environment) was enabled via the command line.

    - #### no_user_site

          public static boolean no_user_site

      Whether -s (don't add user site directory to `sys.path`) was on the command line. The implementation is mostly in the `site` module.

    - #### bytes_warning

          public static int bytes_warning

    - #### optimize

          public static int optimize

      Corresponds to -O (Python bytecode optimization), -OO (remove docstrings) flags in CPython. Jython processes the option and makes it visible as of 2.7, but there is no change of behaviour in the current version.

    - #### division_warning

          public static int division_warning

      Enable division warning. The value maps to the registry values of
      - old: 0
      - warn: 1
      - warnall: 2

    - #### sreCacheSpecDefault

          public static final java.lang.String sreCacheSpecDefault

      Cache spec for the SRE_STATE code point cache. The value maps to the CacheBuilderSpec string and affects how the SRE_STATE cache will behave/evict cached `PyString -> int[]` code points.
      See Also:
        Constant Field Values

    - #### sreCacheSpec

          public static java.lang.String sreCacheSpec

  - ### Method Detail

    - #### setFromRegistry

          public static void setFromRegistry()

      Initialize the static fields from the registry options.

Jython homepage