.. py:currentmodule:: mhi.pscad .. |ss| raw:: html .. |se| raw:: html ======= Changes ======= What's new in 3.0 ================= 3.0.8 ----- * Updated tutorial * ``LCP_MaxConcurrentExec`` now returned as an ``int`` in :meth:`.PSCAD.settings` * The ``active_graphics`` setting is no longer encoded with a trailing underscore * Fixed ``KeyError`` in codec for "C/Linker" * Fixed typing error (missing ``from typing import Set``) 3.0.7 ----- * Starting with PSCAD 5.1, codecs for Fortran and Matlab versions are retrieved from PSCAD * ``@deprecated`` :func:`mhi.pscad.fortran_versions` and :func:`mhi.pscad.matlab_versions` * Documentation improvements 3.0.6 ----- * Embedded documentation is now formatted as `html` * Corrected 5.0 fallback for :meth:`.Canvas.names_in_use` * 'Choice' parameters with sequential integer values, such as the `master:cable_interface`'s ``NCAB`` parameter, are now returned as integers instead of strings. * Add ``@deprecated`` :meth:`.Switch.value` and :meth:`.Selector.value` methods, as aliases for :meth:`.Switch.set_state` and :meth:`.Selector.position` methods to support incorrect method names use in PSCAD's script recording. 3.0.5 ----- * :meth:`~mhi.pscad.launch` * permits ``allow_beta=`` argument again * supports ``edition=`` argument (either ``"PRO"`` or ``"EDU"``) * rejects unknown argument names * Improved IPv4/IPv6 host support in :meth:`~mhi.pscad.launch` & :meth:`~mhi.pscad.connect` 3.0.4 ----- * Fixed crash in :meth:`.PSCAD.get_current_certificate`. * Removed :meth:`.TLine.split` and :meth:`.Cable.split`. They will be re-introduced in version 3.1 3.0.3 ----- * |ss| Added :meth:`.TLine.split` and :meth:`.Cable.split` that split transmission lines and cables at a defined length |se| * Added :attr:`.content_type` to :class:`.UserDefnWizard.Parameter`. * Fixed crash in :meth:`.Canvas.components`, introduced by 3.0.2 3.0.2 ----- * :meth:`~mhi.pscad.launch` now accepts * a port ``range`` * an network ``address`` for PSCAD to bind the automation server to * Added Proxy object caching to speed up automation queries * Support recorded scripts with improper create_wire vertices argument * Support find with parameter encoding when definition specified * Removed unnecessary ``Mixin`` Classes * Added fallback impmentation for :meth:`.UserCanvas.create_connection` * Added :meth:`.Project.remap_definitions` 3.0.1 ----- * Removed debug print statements 3.0.0 ----- * Drops support for Python 3.5 and 3.6 * Added :meth:`.Project.names_in_use` and :meth:`.Canvas.names_in_use` What's New in 2.9 ================= 2.9.7 ----- * Fixed error fetched Project parameters with PSCAD 5.0.x 2.9.6 ----- * :mod:`mhi.common` dependency updated. * Support additional compiler options in :meth:`.Project.parameters` * Added :meth:`.Project.branch_search` and :meth:`.Project.node_search` * Added :meth:`.PSCAD.search_results`, :meth:`.PSCAD.project_names` * `PSCAD.settings(bb_target_namespace='project_name')` is now supported * Added :meth:`.Canvas.bounds`, :attr:`.Canvas.size` * Added :meth:`.Canvas.get_empty_rects` and :meth:`.Canvas.closest_empty_rect` for finding empty spaces on the canvas * :meth:`.Canvas.bounds` and :attr:`.Canvas.bounds` output the newly added :class:`.types.Rect` instead of tuple. * Added ``create_leads`` parameter to :meth:`.wizard.UserDefnWizard.create_definition` 2.9.5 ----- * Auto-retry of RMI commands, if `SystemError: Could not queue task` occurs. * Add ``py -m mhi.pscad help`` command, to open the module's help file. 2.9.4 ----- * Fixed backward-incompatible Python 3.10+ type-union syntax * Added :attr:`.Component.orient` property (PSCAD 5.1+ only). 2.9.3 ----- * :meth:`.utilities.file.OutFile.toCSV` no longer adds a space after commas. * Better error reporting in :meth:`.utilities.mail.Mail.send_outlook_mail`. 2.9.2 ----- * `master:sequencer_wait` component's `CrossDir` parameter now allows `'FROM_POS_TO_NEG'` and `'FROM_NEG_TO_POS'`. 2.9.1 ----- * Corrected :class:`.wizard.UserDefnWizard` port name parameter. * :mod:`mhi.common` dependency updated. 2.9.0 ----- * Added support for :class:`GroupBox` components. * New :meth:`.UserCanvas.create_group_box` method. * New :meth:`.Project.paste_definitions` and :meth:`.Project.paste_definitions_with_dependents` methods. What's New in 2.8 ================= 2.8.4 ----- * added :meth:`.PSCAD.wait_for_idle` after launch, to allow loading of a prior workspace to complete if "Reload the last session" is present in the user profile. * added `load` option to :meth:`mhi.pscad.launch` to automatically load a workspace, or individual projects & libraries at startup. 2.8.3 ----- * Fixed bug preventing :meth:`.UserCmp.blackbox` working in PSCAD 5.0.1 2.8.2 ----- * Removed `f"{strings"}` to restore Python 3.5 compatibility. * Fixed incorrectly escaped characters. 2.8.1 ----- * New :meth:`.PSCAD.save_settings` method. * New :attr:`.PSCAD.parameter_grid` attribute for viewing, loading and saving the parameter grid. * New :attr:`Project.global_substitution` attribute for loading and saving substitutions sets. * New :attr:`Component.enabled` attribute. * Allow :meth:`.Project.save_as` to a path in PSCAD 5.0.2 * Fixed bug preventing reading of ProductList.xml. 2.8.0 ----- * New :meth:`.Project.compile_library` method. * :attr:`.UserCmp.definition` is now read/write. Setting a new definition is equivalent to specifying a new definition using "Edit Reference ..." in the PSCAD GUI. * New :meth:`.Definition.parameters` method. * New :attr:`.Definition.instances` attribute. * New :meth:`.OutFile.values_at` method. * Fixed bug causing ``RealCodec`` to sometimes return the Python ``str`` class. * :meth:`.Project.create_definition` now also accepts an `ElementTree.Element`. * Fixed bug preventing project bitfield parameters from being set. What's New in 2.7 ================= 2.7.2 ----- * In PSCAD 5.1, :meth:`.Project.save_as` can save the project to a directory other than the project's current directory. In PSCAD 5.0, a filename with a path may be given instead of just a new project name, but it must resolve to the current project directory. * Minor documentation improvements 2.7.1 ----- * `cl_use_advanced` may once again be set to `True` or `False` and be queried via :meth:`.PSCAD.settings`. * :meth:`.PSCAD.get_certificate` properly switches to from lock-based to certificate licensing. 2.7.0 ----- * :meth:`.UserCmp.blackbox` accepts `x`, `y`, `sub_prefix` & `instance_data` parameters. * New :meth:`.UserCmp.blackbox_defn` method. What's New in 2.6 ================= 2.6.0 ----- * New :meth:`.PSCAD.cases` and :meth:`.PSCAD.libraries` methods. * :meth:`.Project.parameters` accept and return boolean flags for project settings, in place of `Advanced`, `Build`, `Check`, `Debug`, `Options` and `Warn` bit-encoded integers. What's New in 2.5 ================= 2.5.1 ----- * :class:`~.mhi.pscad.utilities.mail.Mail` methods * take lists for `recipients` and `attachments`, * automatically resolve attachment filenames to absolute pathnames, * use the log facility instead of printing to the console, * no longer suppress exceptions 2.5.0 ----- * Added :attr:`~.UserDefnWizard.module` property to :class:`.UserDefnWizard` What's New in 2.4 ================= 2.4.1 ----- * `PlotType` parameter in :meth:`Project.parameters()` now accepts `"NONE"`, `"OUT"`, `"PSOUT"` and the aliases `"NO"`, `"LEGACY"` and `"ADVANCED"` instead of yes/no options (`0`, `1`, `False`, `True`, `"NO"`, and `"YES"`). 2.4.0 ----- * `extra_args` option added to :meth:`mhi.pscad.launch()` What's New in 2.3 ================= 2.3.4 ----- * `mhi.common` dependency updated. 2.3.3 ----- * Documentation updates. * `mhi.common` dependency updated. 2.3.2 ----- * Minimum number of rows/columns when writing table parameters reduced from 2 to 1. * Added :meth:`.Canvas.selection` to retrieve selected components. * Added :meth:`.Project.current_canvas` to retrieve currently focused canvas. * Support setting Integer/Real parameters with context_type of 'Variable' or 'Constant' to variable names. 2.3.1 ----- * License attribute has been added for `pip show` commands. * Added support for reading and writing table parameters, such as the ``datatable`` of the ``master:xy_table`` component. 2.3.0 ----- * `mhi.pscad.common` has been moved to an external dependency: `mhi.common`. * `mhi.pscad.application.*` has been flatten to `mhi.pscad.*`. What's New in 2.2 ================= 2.2.2 ----- * Fixed :meth:`.Project.settings` to accept full range of values for bitmask parameters (``Advanced``, ``Build``, ``Check``, ``Debug``, and ``Options``) and not return or accept removed parameters. * Fixed :meth:`.Canvas.settings` to no longer accept or return removed parameters. Added missing documentation. 2.2.1 ----- * New Classes & Methods :meth:`.PSCAD.substitute` :attr:`.PSCAD.workspace_dir` :attr:`.PSCAD.workspace_name` :attr:`.PSCAD.workspace_path` 2.2.0 ----- * New Classes & Methods :class:`.UserDefnWizard` :class:`.GfxCanvas` :meth:`.Definition.graphics` :attr:`.Definition.script` What's New in 2.1 ================= 2.1.1 ----- * New Classes & Methods :meth:`.PSCAD.release_all_certificates` :meth:`.PlotFrame.create_curve` :meth:`.PlotFrame.create_curves` :class:`.Oscilloscope` :class:`.PhasorMeter` :class:`.PolyMeter` 2.1.0 ----- Summary ------- * New namespace :mod:`mhi.pscad` replaces `mhrc.automation` * Embedding of Python inside PSCAD * An external Python environment is no longer required. Python scripts may be executed from within the PSCAD application itself. External execution of scripts remains supported, and remains essential for debugging. * Communication with PSCAD is no longer using XML fragments * Commands returning XML fragments as results have been removed Deprecations ------------ * The `Workspace`, `KeyStroke` and `Mouse` proxies have been removed; and their methods moved into the :class:`PSCAD ` class. * All commands which returned XML fragments from the communication protocol between PSCAD and the Automation Library have been removed, since that communication protocol has been replaced.