### Navigation

- ☰
- PyTecplot-0.9 »
- Reference »

# Session and Top-Level Functionality

- tecplot
- Session
  - tecplot.session
  - session.connect()
  - session.connected()
  - session.disconnect()
  - session.stop()
  - session.acquire_license()
  - session.release_license()
  - session.start_roaming()
  - session.stop_roaming()
  - session.license_expiration()
  - session.tecplot_install_directory()
  - session.tecplot_examples_directory()
- Miscellaneous

## tecplot

## Session

### tecplot.session

Tecplot Engine and Tecplot 360 License management.

The `session` module contains methods used to manipulate the Tecplot Engine such as notification of a state-change that was done outside of PyTecplot. It also contains methods for acquiring and releasing the Tecplot 360 License.

### session.connect()

`tecplot.session.``connect`(host='localhost', port=7600, timeout=10, quiet=False)

  Connect this PyTecplot to a running instance of Tecplot 360.

  Parameters: | host (`str`, optional) – The host name or IP address of the machine running Tecplot 360 with the TecUtil Server addon loaded and listening. (default: localhost) port (`int`, optional) – The port used by the running Tecplot 360 instance. (default: 7600) timeout (`int`, optional) – Number of seconds to wait before giving up. (default: 10) quiet (`bool`, optional) – Suppress status messages sent to the console. Exception messages will still be presented on errors. (default: `False`)

  This will connect the running python script to Tecplot 360, sending requests over the network. The TecUtil Server addon must be loaded and the server must be accepting requests. To turn on the server in Tecplot 360, go to the main menu, click on “Scripting -> PyTecplot Connections…”, and finally check the option to “Accept connections.” Make sure the same port is used in both Tecplot 360 and the python script. For more information, see Requirements for Connecting to Tecplot 360 GUI Example usage:

      >>> tecplot.session.connect(port=7600)
      Connecting to Tecplot 360 TecUtil Server on:
          tcp://localhost:7600
      Connection established.

  To activate the TecUtil Server addon in Tecplot 360 on start-up, first create a macro file, named something like: startTecUtilServer.mcr, with the following content:

      #!MC 1410
      $!EXTENDEDCOMMAND
          COMMANDPROCESSORID = "TecUtilServer"
          COMMAND = R"(
              AcceptRequests = Yes
              ListenOnAddress = localhost
              ListenOnPort = 7600
          )"

  Then run Tecplot 360 from a command console with this file as one of the arguments:

      > tec360 startTecUtilServer.mcr

  New in version 2017.3: PyTecplot connections requires Tecplot 360 2017 R3 or later.

### session.connected()

`tecplot.session.``connected`(timeout=5)

  Check if PyTecplot is connected to a running instance of Tecplot 360.

  This method sends a handshake message to the TecUtil Server and waits for a successful reply, timing out in the number of seconds specified.

  Parameters: | timeout (`int`, optional) – Number of seconds to wait before giving up. (default: 5)

  New in version 2017.3: of Tecplot 360 PyTecplot connections requires Tecplot 360 2017 R3 or later.

### session.disconnect()

`tecplot.session.``disconnect`()

  Disconnect from a running instance of Tecplot 360.

  New in version 2017.3: PyTecplot connections requires Tecplot 360 2017 R3 or later.

### session.stop()

`tecplot.session.``stop`()

  Releases the Tecplot 360 License and shuts down Tecplot Engine.

  This shuts down the Tecplot Engine and releases the Tecplot 360 License. Call this function when your script is finished using PyTecplot. Calling this function is not required. If you do not call this function, it will be called automatically when your script exists. However, the Tecplot 360 License will not be released until you call this function.

  Note that stop() may only be called once during the life of a Python session. If it has already been called, subsequent calls do nothing.

  See also: `tecplot.session.acquire_license()`, `tecplot.session.release_license()`.

  Example:

      >>> import tecplot
      >>> # Do useful things with pytecplot
      >>> tecplot.session.stop() # Shutdown tecplot and release license

### session.acquire_license()

`tecplot.session.``acquire_license`()

  Attempts to acquire the Tecplot 360 License

  Call this function to attempt to acquire a Tecplot 360 License. If Tecplot Engine is not started, this function will start the Tecplot Engine before attempting to acquire a license.

  This function can be used to re-acquire a license that was released with `tecplot.session.release_license`.

  If the Tecplot Engine is currently running, and a Tecplot 360 License has already been acquired, this function has no effect.

  Licenses may be acquired and released any number of times during the same Python session.

  Raises `TecplotLicenseError` if a valid license could not be acquired.

  Note

  Warning emitted when close to expiration date.

  A warning is emitted using Python’s built-in `warnings` module if you are within 30 days of your TecPLUS subscription expiration date. The message will look like this:

      $ python
      >>> import tecplot
      >>> tecplot.session.acquire_license()
      /path/to/tecutil_connector.py:458: UserWarning:
      Your Tecplot software maintenance subscription
      (TecPLUS) will expire in **13 days**, after which you
      will no longer be able to use PyTecplot. Contact
      sales@tecplot.com to renew your TecPLUS subscription.

        warn(warning_msg)

  These warnings can be suppressed by using the `-W ignore` option when invoking the python interpreter:

      $ python -W ignore
      >>> import tecplot
      >>> tecplot.session.acquire_license()

  See also: `tecplot.session.release_license()`

  Example:

      >>> import tecplot
      >>> # Do useful things
      >>> tecplot.session.release_license()
      >>> # Do time-consuming things not related to |PyTecplot|
      >>> tecplot.session.acquire_license()  # re-acquire the license
      >>> # Do useful |PyTecplot| related things.

### session.release_license()

`tecplot.session.``release_license`()

  Attempts to release the Tecplot 360 License

  Call this to release a Tecplot 360 License. Normally you do not need to call this function since `tecplot.session.stop()` will call it for you when your script exists and the Python interpreter is unloaded.

  This function can be used to release a license so that the license is available to other instances of Tecplot 360.

  If the Tecplot 360 License has already been released, this function has no effect.

  Licenses may be acquired and released any number of times during the same Python session.

  See also: `tecplot.session.acquire_license()`

  Example usage:

      >>> import tecplot
      >>> # Do useful things
      >>> tecplot.session.release_license()
      >>> # Do time-consuming things not related to |PyTecplot|
      >>> tecplot.session.acquire_license()  # re-acquire the license
      >>> # Do useful |PyTecplot| related things.

### session.start_roaming()

`tecplot.session.``start_roaming`(days)

  Check out a roaming license.

  Parameters: | days (`integer`) – Number of days to roam.

  This will acquire a PyTecplot license and then attempt to set it up for roaming. The maximum number of days one may roam is typically 90. This function can be called in an interactive terminal and will affect all subsequent uses of PyTecplot on the local machine. Do not forget to `release` the roaming license to the server if you are finished roaming before the expiration date.

  See also: `tecplot.session.stop_roaming()`

  Example usage:

      >>> tecplot.session.start_roaming(10)
      You have successfully checked out a roaming license of
      PyTecplot. This will be valid for 10 days until
      midnight of 2017-01-15.
      >>> tecplot.session.stop_roaming()
      Your PyTecplot roaming license has been checked in.

### session.stop_roaming()

`tecplot.session.``stop_roaming`(force=False)

  Check in (release) a roaming license.

  This will check in and make available to others on the network a license that you previously checked out for roaming.

  See also: `tecplot.session.start_roaming()`

  Example usage:

      >>> tecplot.session.stop_roaming()
      Your PyTecplot roaming license has been checked in.

### session.license_expiration()

`tecplot.session.``license_expiration`()

  Expiration date of the current license.

  Returns: `datetime.date`

  Example usage:

      >>> print(tecplot.session.license_expiration())
      2017-12-31

### session.tecplot_install_directory()

`tecplot.session.``tecplot_install_directory`()

  Tecplot 360 installation directory.

  Top-level installation directory for Tecplot 360. This will typically contain configuration files and the examples directory.

  This directory is platform-dependent and will contain configuration files and the examples directory:

      import os
      import tecplot

      installdir = tecplot.session.tecplot_install_directory()
      infile = os.path.join(installdir,'examples','SimpleData','SpaceShip.lpk')
      outfile = 'spaceship.png'
      tecplot.load_layout(infile)
      tecplot.export.save_png(outfile, 600, supersample=3)

### session.tecplot_examples_directory()

`tecplot.session.``tecplot_examples_directory`()

  Tecplot 360 examples directory.

  Examples directory that is typically installed with Tecplot 360. This may be overridden with the TECPLOT_EXAMPLES environment variable.

  This directory is platform-dependent and by default contains the various examples shipped with Tecplot 360:

      import os
      import tecplot

      examples_dir = tecplot.session.tecplot_examples_directory()
      infile = os.path.join(examples_dir,'SimpleData','F18.lay')
      outfile = 'load_example.png'
      tecplot.load_layout(infile)
      tecplot.export.save_png(outfile, 600, supersample=3)

## Miscellaneous

class `tecplot.tecutil.``Index`

  Position identifier type.

  This type is used internally to represent a position in a list. It is used to indicate that a change between zero-based indexing and one-based indexing must occur at the TecUtil boundary.

  This type can be treated exactly like a Python native `int` and is only meaningful internally to the tecplot Python module.

class `tecplot.tecutil.``IndexRange`(min, max, step)

  Index range specification along some axis.

  This is similar to Python’s `slice` object except that `max` is included in the evaluated indexes. Here are some things to note:

  > - All indices start with 0 and go to some maximum index `m`.
  > - Negative values represent the indexes starting with the maximum at -1 and continuing back to the beginning of the range.
  > - A step of `None`, 0 and 1 are all equivalent and mean that no elements are skipped.
  > - A negative step indicates a skip less than the maximum.

### Navigation

- index
- modules |
- next |
- previous |