Changes#

What’s new in 3.2#

3.2.1#

  • Improve Posix/Windows compatibility

3.2.0#

  • Uses mhi.help framework for HTML Help documentation.

  • The command py -m mhi.help will open all help documentation.

What’s new in 3.1#

3.1.7#

  • Add py -m mhi.common help command, to open the module’s help file.

3.1.6#

  • Corrected LingeringCache to use a daemon thread

  • Added experimental support for calling functions in an external script

3.1.5#

3.1.4#

  • Automatically close the connection in response to an application quit request.

3.1.3#

  • Type-hint corrections for TimedCachedProperty

3.1.2#

  • Added FuzzyCodec

  • @deprecated now works on functions, instead of just methods.

3.1.1#

  • Launching applications with minimized=False no longer uses SW_SHOWNOACTIVATE, which no longer seems to be obeyed, and was preventing the application window position from being preserved between launches.

3.1.0#

What’s new in 3.0#

3.0.3#

  • Version now treats (Beta) as .99

  • Reintroduce support for allow_beta in find_exe()

3.0.2#

  • unused_tcp_port() now allows restricted port ranges

  • Added LingeringCache

  • Live proxy objects are cached and returned where possible.

  • Improved IPv4/IPv6 support

3.0.1#

  • Fix: Cached exceptions needed to be raised, not returned.

3.0.0#

  • Drops support for Python 3.5 and 3.6

  • Add @rmi(fallback=True) option for remote methods.

What’s new in 2.5#

2.5.1#

2.5.0#

What’s new in 2.4#

2.4.5#

2.4.4#

  • When listener is bound to port 0, expose actual port number used.

2.4.3#

  • Replaced set[bool] with Set[bool] to restore Python 3.5 compatibility.

2.4.2#

  • (recalled)

2.4.1#

  • Added default module help command subprocessor

  • Only retry SystemError('Could not queue task') instead of all SystemError exceptions.

2.4.0#

  • Add support for auto-retry of RMI requestes

  • Add CodecMap

What’s new in 2.3#

2.3.11#

  • Version class is now hashable

  • py -m mhi.common.process show PIDs, etc.

  • Removed Thread.isAlive call (deprecated in 3.8)

2.3.10#

  • Version class is now hashable

2.3.9#

  • Added Application.is_embedded() method

  • Fixed crash when an uncomparible version identifier is found.

  • Fixed packaging module requirement

2.3.8#

2.3.7#

  • Replaced deprecated distutils package.

2.3.6#

  • Corrected Windows pathname accidently resulting in illegal escapes.

  • Replaced f-strings, to restore Python 3.5 compatibility.

2.3.5#

2.3.4#

  • Fix Enerplot 1.0.0 legacy communication issue.

2.3.3#

  • Optimized communication memory buffer usage.

2.3.2#

  • Python server kept awake one additional task cycle, to improve responsiveness.

2.3.1#

  • Removed Python 3.9 specific typehint syntax from LibraryZipper.

2.3.0#

  • Added mhi.common.zipper.LibraryZipper to support updating embedded libraries with versions downloaded from PyPI.

What’s new in 2.2#

2.2.1#

  • Added type-hints for mypy type checking.

  • Allow Remotable objects to override their persistent id module name.

  • Clear the linecache after each program execution, to avoid tracebacks from showing old file contents.

2.2.0#

  • Renamed from mhi.*.common namespace submodules to mhi.common.

What’s new in 2.1#

2.1.3#

  • Input to BooleanCodec restricted to booleans, integers 0 and 1, and the strings "true", "false", "0", "1", "yes", "no". Additionally, emits a warning if the input is not a boolean.

  • Update rmi_property to work with newer versions of Sphinx

2.1.2#

2.1.1#

2.1.0#

  • Added minimum, maximum, allow_alpha and allow_beta to find_exe.

  • Added user configuration readers

What’s new in 2.0#

2.0.1#