# Green API

Summary:

  - `tango.get_green_mode()`

  - `tango.set_green_mode()`

  - `tango.futures.DeviceProxy()`

  - `tango.gevent.DeviceProxy()`

tango.get_green_mode()

  Returns the current global default PyTango green mode.

  Returns

    the current global default PyTango green mode

  Return type

    GreenMode

tango.set_green_mode(green_mode=None)

  Sets the global default PyTango green mode.

  Advice: Use only in your final application. Don’t use this in a python library in order not to interfere with the beavior of other libraries and/or application where your library is being.

  Parameters

    green_mode (GreenMode) – the new global default PyTango green mode

tango.futures.DeviceProxy(self, dev_name, wait=True, timeout=True) → DeviceProxy
tango.futures.DeviceProxy(self, dev_name, need_check_acc, wait=True, timeout=True) → DeviceProxy

  Creates a futures enabled `DeviceProxy`.

  The DeviceProxy constructor internally makes some network calls which makes it slow. By using the futures green mode you are allowing other python code to be executed in a cooperative way.

  Note

  The timeout parameter has no relation with the tango device client side timeout (gettable by `get_timeout_millis()` and settable through `set_timeout_millis()`)

  Parameters

    - dev_name (str) – the device name or alias

    - need_check_acc (bool) – in first version of the function it defaults to True. Determines if at creation time of DeviceProxy it should check for channel access (rarely used)

    - wait (bool) – whether or not to wait for result of creating a DeviceProxy.

    - timeout (float) – The number of seconds to wait for the result. If None, then there is no limit on the wait time. Ignored when wait is False.

  Returns

    if wait is True:

      `DeviceProxy`

    else:

      `concurrent.futures.Future`

  Throws

    - a DevFailed if wait is True and there is an error creating the device.

    - a concurrent.futures.TimeoutError if wait is False, timeout is not None and the time to create the device has expired.

  New in PyTango 8.1.0

tango.gevent.DeviceProxy(self, dev_name, wait=True, timeout=True) → DeviceProxy
tango.gevent.DeviceProxy(self, dev_name, need_check_acc, wait=True, timeout=True) → DeviceProxy

  Creates a gevent enabled `DeviceProxy`.

  The DeviceProxy constructor internally makes some network calls which makes it slow. By using the gevent green mode you are allowing other python code to be executed in a cooperative way.

  Note

  The timeout parameter has no relation with the tango device client side timeout (gettable by `get_timeout_millis()` and settable through `set_timeout_millis()`)

  Parameters

    - dev_name (str) – the device name or alias

    - need_check_acc (bool) – in first version of the function it defaults to True. Determines if at creation time of DeviceProxy it should check for channel access (rarely used)

    - wait (bool) – whether or not to wait for result of creating a DeviceProxy.

    - timeout (float) – The number of seconds to wait for the result. If None, then there is no limit on the wait time. Ignored when wait is False.

  Returns

    if wait is True:

      `DeviceProxy`

    else:

      `gevent.event.AsynchResult`

  Throws

    - a DevFailed if wait is True and there is an error creating the device.

    - a gevent.timeout.Timeout if wait is False, timeout is not None and the time to create the device has expired.

  New in PyTango 8.1.0