PyFrame (Jython API documentation)
Date: 2022-09-10

org.python.core

## Class PyFrame

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

- All Implemented Interfaces:
    java.io.Serializable, Traverseproc

      public class PyFrame
      extends PyObject
      implements Traverseproc

  A Python frame object.
  See Also:
    Serialized Form

- - ### Nested Class Summary

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

      `PyObject.ConversionException`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `PyFrame` | `f_back` Previous frame or null.
    `PyObject` | `f_builtins` builtin symbol table.
    `PyBaseCode` | `f_code` The underyling code object.
    `PyCell[]` | `f_env` Nested scopes: cell + free env.
    `PyObject[]` | `f_exits` with context exits - used by generated bytecode
    `PyObject[]` | `f_fastlocals`
    `PyObject` | `f_globals` Global symbol table.
    `int` | `f_lasti`
    `int` | `f_lineno` Current line number.
    `PyObject` | `f_locals` Local symbol table.
    `int` | `f_ncells`
    `int` | `f_nfreevars`
    `java.lang.Object[]` | `f_savedlocals`
    `TraceFunction` | `tracefunc` An interface to functions suitable for tracing, e.g. via sys.settrace().
    `static PyType` | `TYPE`

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

      `gcMonitorGlobal`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PyFrame(PyBaseCode code, PyObject globals)`
    `PyFrame(PyBaseCode code, PyObject locals, PyObject globals, PyObject builtins)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `checkGeneratorInput()`
    `void` | `delglobal(java.lang.String index)`
    `void` | `dellocal(int index)`
    `void` | `dellocal(java.lang.String index)`
    `void` | `delTrace()`
    `PyObject` | `getclosure(int index)`
    `PyObject` | `getderef(int index)`
    `PyObject` | `getf_locals()` Return the current f_locals dict.
    `java.lang.Object` | `getGeneratorInput()`
    `PyObject` | `getglobal(java.lang.String index)`
    `int` | `getline()`
    `PyObject` | `getlocal(int index)`
    `PyObject` | `getLocals()` Return the locals dict.
    `PyObject` | `getname(java.lang.String index)`
    `PyObject` | `getTrace()`
    `boolean` | `refersDirectlyTo(PyObject ob)` Optional operation.
    `void` | `setderef(int index, PyObject value)`
    `void` | `setglobal(java.lang.String index, PyObject value)`
    `void` | `setline(int line)` Track the current line number.
    `void` | `setlocal(int index, PyObject value)`
    `void` | `setlocal(java.lang.String index, PyObject value)`
    `void` | `setTrace(PyObject trace)`
    `void` | `to_cell(int parm_index, int env_index)`
    `int` | `traverse(Visitproc visit, java.lang.Object arg)` Traverses all directly contained `PyObject`s.

    - ### 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__, __delattr__, __delete__, __delitem__, __delitem__, __delslice__, __delslice__, __dir__, __div__, __divmod__, __ensure_finalizer__, __eq__, __findattr__, __findattr__, __findattr_ex__, __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__, __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, toString`

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

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

- - ### Field Detail

    - #### TYPE

          public static final PyType TYPE

    - #### f_back

          public PyFrame f_back

      Previous frame or null.

    - #### f_code

          public PyBaseCode f_code

      The underyling code object.

    - #### f_builtins

          public PyObject f_builtins

      builtin symbol table.

    - #### f_globals

          public PyObject f_globals

      Global symbol table.

    - #### f_locals

          public PyObject f_locals

      Local symbol table.

    - #### f_lineno

          public int f_lineno

      Current line number.

    - #### f_fastlocals

          public PyObject[] f_fastlocals

    - #### f_env

          public PyCell[] f_env

      Nested scopes: cell + free env.

    - #### f_ncells

          public int f_ncells

    - #### f_nfreevars

          public int f_nfreevars

    - #### f_lasti

          public int f_lasti

    - #### f_savedlocals

          public java.lang.Object[] f_savedlocals

    - #### f_exits

          public PyObject[] f_exits

      with context exits - used by generated bytecode

    - #### tracefunc

          public TraceFunction tracefunc

      An interface to functions suitable for tracing, e.g. via sys.settrace().

  - ### Constructor Detail

    - #### PyFrame

          public PyFrame(PyBaseCode code,
                         PyObject locals,
                         PyObject globals,
                         PyObject builtins)

    - #### PyFrame

          public PyFrame(PyBaseCode code,
                         PyObject globals)

  - ### Method Detail

    - #### getGeneratorInput

          public java.lang.Object getGeneratorInput()

    - #### checkGeneratorInput

          public java.lang.Object checkGeneratorInput()

    - #### getLocals

          public PyObject getLocals()

      Return the locals dict. First merges the fast locals into f_locals, then returns the updated f_locals.
      Returns:
        a PyObject mapping of locals

    - #### getTrace

          public PyObject getTrace()

    - #### setTrace

          public void setTrace(PyObject trace)

    - #### delTrace

          public void delTrace()

    - #### getf_locals

          public PyObject getf_locals()

      Return the current f_locals dict.
      Returns:
        a PyObject mapping of locals

    - #### setline

          public void setline(int line)

      Track the current line number. Called by generated code. This is not to be confused with the CPython method frame_setlineno() which causes the interpreter to jump to the given line.

    - #### getline

          public int getline()

    - #### getlocal

          public PyObject getlocal(int index)

    - #### getname

          public PyObject getname(java.lang.String index)

    - #### getglobal

          public PyObject getglobal(java.lang.String index)

    - #### setlocal

          public void setlocal(int index,
                               PyObject value)

    - #### setlocal

          public void setlocal(java.lang.String index,
                               PyObject value)

    - #### setglobal

          public void setglobal(java.lang.String index,
                                PyObject value)

    - #### dellocal

          public void dellocal(int index)

    - #### dellocal

          public void dellocal(java.lang.String index)

    - #### delglobal

          public void delglobal(java.lang.String index)

    - #### getclosure

          public PyObject getclosure(int index)

    - #### getderef

          public PyObject getderef(int index)

    - #### setderef

          public void setderef(int index,
                               PyObject value)

    - #### to_cell

          public void to_cell(int parm_index,
                              int env_index)

    - #### 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)
                                   throws java.lang.UnsupportedOperationException

      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`
      Throws:
        `java.lang.UnsupportedOperationException`

Jython homepage