# PyPy[__pypy__-module]

PyPy[__pypy__-module]
news getting-started documentation svn issues contact EU/project

# The `__pypy__` module

The `__pypy__` module is the main entry point to special features provided by PyPy's standard interpreter. Its content depends on configuration options which may add new functionality and functions whose existence or non-existence indicates the presence of such features.

# Generally available functionality

> - `internal_repr(obj)`: return the interpreter-level representation of an object.

# Thunk Object Space Functionality

When the thunk object space is used (choose with --objspace), the following functions are put into `__pypy__`:

> - `thunk`
> - `is_thunk`
> - `become`
> - `lazy`

Those are all described in the interface section of the thunk object space docs.

For explanations and examples see the thunk object space docs.

# Taint Object Space Functionality

When the taint object space is used (choose with --objspace), the following names are put into `__pypy__`:

> - `taint`
> - `is_tainted`
> - `untaint`
> - `taint_atomic`
> - `_taint_debug`
> - `_taint_look`
> - `TaintError`

Those are all described in the interface section of the taint object space docs.

For more detailed explanations and examples see the taint object space docs.

# Transparent Proxy Functionality

If transparent proxies are enabled (with --objspace-std-withtproxy) the following functions are put into `__pypy__`:

> - `tproxy(typ, controller)`: Return something that looks like it is of type typ. Its behaviour is completely controlled by the controller. See the docs about transparent proxies for detail.
> - `get_tproxy_controller(obj)`: If obj is really a transparent proxy, return its controller. Otherwise return None.

# Functionality available on py.py (not after translation)

> - `isfake(obj)`: returns True if `obj` is faked.
> - `interp_pdb()`: start a pdb at interpreter-level.