Release Notes
Version 1.1.0 (in development)
Added
support for Python 3.12
the
Service.requestpropertyloads_kwargs and dumps_kwargs keyword arguments to
use()
Fixed
the
to_json()method was not reliably called for an object, which resulted in the object not being JSON serializable
Removed
Support for Python 3.6 and 3.7
Version 1.0.0 (2023-06-16)
Added
a
Linkcan create an exclusive or shared lock with aServiceadd
service_max_clientsproperty to aLinkandLinkedClientthe
loop_thread_idproperty for aServiceand aClientthe
emit_notification_threadsafe()method for aServiceability to specify the host to use when starting a
Managersupport for Python 3.9, 3.10 and 3.11
set_logging_level()to be able to set the logging level at runtimeability to add tasks to the event loop via the
add_tasks()methodthe
shutdown_handler()method is called after the connection to theManageris lost but before the event loop stopsability to use all
Databaseclasses as a context manager (i.e., using a with statement)the
--log-levelflag to thestartcommandthe
deletecommand-line argument to delete files that are created by MSL-NetworkJSON,UJSON,RAPIDJSONandSIMPLEJSONare aliases for the JSON backends inPackagethe
auto_savekeyword argument toconnect()andget_ssl_context()the
digest_sizekeyword argument togenerate_certificate()andget_fingerprint()the
nameandextensionskeyword arguments togenerate_certificate(),**kwargstoget_ssl_context()
Changed
the result object that is returned by a
Serviceresponse can implement a callableto_json()methodthe value of the
algorithmkeyword argument inget_fingerprint()can now also be of typestrrenamed
uuidto beuidin the JSON formatmaking an asynchronous request now returns a
concurrent.futures.Futureinstance instead of anasyncio.Futureinstancemove the
utils.localhost_aliasesfunction to be defined asLOCALHOST_ALIASESrenamed the
Client.managermethod toidentities()renamed
certfiletocert_fileinconnect(),start()andget_ssl_context()can now change which JSON backend to use during runtime by calling the
use()functionmoved the
msl.network.constants.JSONPackageclass tomsl.network.json.Packagerenamed the command line arguments
--certfileto--cert-file,--keyfileto--key-file,--keyfile-passwordto--key-file-password, and--logfileto--log-filefor thestartcommanduse
Tas the separator between the date and time in aConnectionsTablerename the keyword arguments
timestamp1tostartandtimestamp2toendinconnections()the default filename for the certificate and key files now use
'localhost'instead of the value of HOSTNAME
Fixed
an
AttributeErrorcould be raised when generating the identity of aServicecan now handle multiple requests/replies contained within the same network packet
Removed
Support for Python 3.5
the
MSLNetworkErrorexception class (aRuntimeErroris raised instead)the
Service.set_debugmethodthe
terminationandencodingclass attributes ofNetworkthe
send_pending_requests,raise_latest_errorandwaitmethods of aClientthe
--debugflag from thestartcommandthe
utils.new_selector_event_loopfunctionthe
constants.JSONattributeYAJL as a JSON backend option
Version 0.5.0 (2020-03-18)
Added
support for Python 3.8
the utils.new_selector_event_loop function to create a new asyncio.SelectorEventLoop
the
--logfilecommand line argument for the start commanda Service can emit notifications to all Clients that are linked with it
a Service now accepts an ignore_attributes keyword argument when it is instantiated and also has an ignore_attributes method
a Link can unlink from a Service
the LinkedClient.client property
1.0.0.127.in-addr.arpaas a localhost alias
Changed
use
__package__as the logger namethe FileHandler and StreamHandler that are added to the root logger now use a decimal point instead of a comma between the seconds and milliseconds values
renamed the disconnect_service method for a Link and a Service (which was added in version 0.4.0) to be shutdown_service
Removed
the Service._shutdown method since it is no longer necessary to call this method from the Service subclass because shutting down happens automatically behind the scenes
Version 0.4.1 (2019-07-23)
Added
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpaas a localhost alias
Changed
calling the Client.manager(as_string=True) method now prints the attributes analogous to how a Client would call the method of a Service
Fixed
the timeout value for creating a LinkedClient is now the total time that it takes to connect to the Network Manager plus the time required to link with the Service (this fixes a race condition when starting a Service on a remote computer and then trying to link to the same Service)
Version 0.4.0 (2019-04-16)
Added
the ssh module
a LinkedClient class
the run_forever (to start the Manager) and the run_services (to start the Manager and then start the Services) functions
the filter_service_start_kwargs, filter_run_forever_kwargs and filter_client_connect_kwargs functions
a disconnect_service method to Link
shorter argument name options for some CLI parameters
a Service now accepts name and max_clients as keyword arguments when it is instantiated
Changed
the following CLI changes to argument names for the certgen command
--key-pathbecame--keyfile--key-passwordbecame--keyfile-password
the following CLI changes to argument names for the keygen command
--pathbecame--out
the following CLI changes to argument names for the start command
--certbecame--certfile--keybecame--keyfile--key-passwordbecame--keyfile-password
the certificate keyword argument for the connect and get_ssl_context functions and for the Service.start method was changed to certfile
the as_yaml keyword argument for the Client.manager method was changed to as_string
a Client can no longer request a private attribute – i.e., an attribute that starts with a
_(an underscore) – from a Servicethe default timeout value for connecting to the Manager is now 10 seconds
Fixed
Removed
the name class attribute for a Service
the send_request method for a Client (must link with a Service)
Version 0.3.0 (2019-01-06)
Added
every request from a Client can now specify a timeout value
the docs now include an example for how to send requests to the
EchoService
Changed
the default timeout value for connecting to the Manager is now 10 seconds
the __repr__ method for a Client no longer includes the id as a hex number
Fixed
Removed
the __repr__ method for a Service
Version 0.2.0 (2018-08-24)
Added
a
wakeup()Task in debug mode on Windows (see: https://bugs.python.org/issue23057)the
version_infonamed tuple now includes a releaselevelexample for creating a Client and a Service in LabVIEW
the ability to establish a connection to the Network Manager without using TLS
a
timeoutkwarg to Service.start()an
EchoService to the examples
Changed
rename ‘async’ kwarg to be ‘asynchronous’ (for Python 3.7 support)
the termination bytes were changed from
\nto\r\n
Version 0.1.0 (2017-12-14)
Initial release