Version History¶
v2.2.2 (2025-10-07)¶
New Features¶
Use the ts-conda-build 0.5 in conda recipe. (OSW-1202)
v2.2.1 (2025-09-30)¶
Bug Fixes¶
Fixed the conda build. (OSW-931)
v2.2.0 (2025-09-29)¶
New Features¶
Bug Fixes¶
Fixed version module import. (OSW-931)
Performance Enhancement¶
Set lower TCP/IP keepalive options. (OSW-931)
v2.1.0¶
Code improvements for compatibility with both Python 3.11 and Python 3.12.
v2.0.2¶
Fix the conda recipe.
v2.0.1¶
Update the version of ts-conda-build to 0.4 in the conda recipe.
v2.0.0¶
BaseClientOrServer: Removereaderandwriterproperties.OneClientServer: Removeserverproperty.Drop support for synchronous connect_callback.
v1.2.0¶
Client: new feature: specifyhost=""to create a client that is already closed.BaseClientOrServer: add ado_startconstructor argument, which defaults toTrue.
v1.1.3¶
Jenkinsfile: use the shared library.
v1.1.2¶
BaseClientOrServer: improve the exception raised by read_json for invalid data, so that the messagse includes the invalid data.
v1.1.1¶
Fix backwards compatibility issues with version 1.0:
Client: allow non-keyword constructor arguments.OneClientServer: allow non-keyword constructor arguments and remove the (new in v1.1.0) default value for thehostargument. Note thatOneClientReadLoopServeris unchanged: the constructor arguments are keyword-only andhosthas a default value.
v1.1.0¶
Deprecation warning: do not access the
reader,writer, or (in the case ofOneClientServer)serverattributes. Use the provided read and write methods, instead, and letOneClientServermanage its asyncio server.Add
OneClientReadLoopServer: an abstract subclass ofOneClientServerthat includes a read loop.BaseClientOrServer: addread_str,write_str,read_jsonandwrite_jsonmethods.BaseClientOrServerand subclasses:This also applies to the
ClientandOneClientServersubclasses.Add optional
encodingandterminatorconstructor arguments.Make constructor arguments keyword-only.
Add
BaseOneClientServerTestCase: a base clase for unit tests ofOneClientServerand subclasses.Add new constants:
DEFAULT_LOCALHOST, the same as deprecatedLOCAL_HOSTDEFAULT_TERMINATOR, the same as deprecatedTERMINATOR.DEFAULT_ENCODING.
-
Make constructor arguments keyword-only.
Fix setting
done_taskdone.
OneClientServerand subclasses:Make constructor arguments keyword-only.
Provide a default for the
hostconstructor argument:DEFAULT_LOCALHOST.Fix setting
done_taskdone.
Improve class documentation.
Use ts_pre_commit_conf.
Remove scons support.
v1.0.1¶
pre-commit: update black to 23.1.0, isort to 5.12.0, mypy to 1.0.0, and pre-commit-hooks to v4.4.0.
Jenkinsfile: do not run as root.
v1.0.0¶
Deprecation warning: the
connect_callbackOneClientServerconstructor argument should now be asynchronous.Add
Clientclass: a TCP/IP client modeled onOneClientServer.Add constants
LOCALHOST_IPV4andLOCALHOST_IPV6and deprecated constantLOCAL_HOST.Modify
OneClientServer:The
connect_callbackfunction may now be asynchronous, and synchronous functions are deprecated.Add read and write methods that check if a client is connected.
Add optional
monitor_connection_intervalconstructor argument. The default value matches the current behavior, but you can now specify 0 to disable monitoring.Replace optional
familyconstructor argument with**kwargs, adding flexibility.Make the
nameconstructor argument optional.Wait for the asyncio server to close in
OneClientServer.close.
read_intobug fix: read exactly the correct number of bytes, instead of up to the desired number.Change
ConnectionResetErrortoConnectionErroreverywhere. This catches a few extra conditions and is shorter.Expand some unit tests to test IPV6, if supported, else skip that sub test.
v0.4.4¶
Modernize conda/meta.yaml.
v0.4.3¶
Run isort.
Add isort and mypy to pre-commit and update other pre-commit tasks.
v0.4.2¶
Fix unit tests to wait for
OneClientServers connect_task after making a client connection.OneClientServer: test multiple simultaneous connection attempts.Modernize unit tests to use bare assert.
v0.4.1¶
Add a timeout to
close_stream_writerin hopes of avoiding an intermittent hang (a bug in Python).Build with pyproject.toml.
v0.4.0¶
Remove dependency on ts_utils.
Modernize the continuous integration
Jenkinsfile.doc/conf.py: tweak to make linters happier.
git ignore .hypothesis.
setup.cfg: specify asyncio_mode = auto.
v0.3.8¶
Fix the conda build.
Requirements:
ts_utils
v0.3.7¶
-
Monitor for a dropped client connection. Close the client and call connect_callback if detected.
Fix a bug whereby accepting a new connection may not call the
connect_callback(DM-34694).
Fix documentation that falsely claimed you must read from an
asyncio.StreamReaderin order to detect if the other end drops the connection.
v0.3.6¶
write_from: eliminate a race condition that allows tasks to interleave data.
v0.3.5¶
Fix a new mypy error by not checking DM’s
lsst/__init__.pyfiles.
v0.3.4¶
Enhance the User Guide:
Add a section on monitoring the stream reader when no data is expected.
Fix
catch->exceptin examples.
v0.3.3¶
Fix cleanup in a unit test file.
Add
Jenkinsfile.
v0.3.2¶
Prevent pytest from checking the generated
version.pyfile. This is necessary in order to preventmypyfrom checking that file.
v0.3.1¶
Configure pytest to run mypy.
v0.3.0¶
The conda package now gets built for noarch so it is usable on all platforms.
v0.2.0¶
OneClientServer:
Change
portto remain 0 if the user specifies port=0 and the server listens on more than one socket. This avoids ambiguity.Add
familyconstructor argument to support IPv6.Rename the
connect_callbackattribute to__connect_callbackto make it easier to inherit fromOneClientServer.
v0.1.0¶
First release.