Releases: cainmagi/sync-stream
Sync-stream v1.2.2
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
1.2.2 @ 1/8/2025
🔧 Fix
- Fix: Correct a bug that
mprocs.LineProcMirrordoes not response to the early stop signal.
Full Changelog: v1.2.1...v1.2.2
Sync-stream v1.2.1
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
1.2.1 @ 1/7/2025
📣 New
- Use the new
pyproject.tomlconfiguration style to replace the old stylesetup.cfg. - Add more information in the readme documents.
🔧 Fix
- Fix: Correct docstrings and bad definitions of some APIs.
- Fix: Attempt to solve the lazy-load issue that only happens when using the workflow.
- Fix: Fix an issue caused by the change of
importlib.utils._LazyModule. Use a hacking technique to bypass this issue.
💾 Change
- Adjust the workflow configurations and use the new standard of PyPI publishing.
- Remove unused
utils.cached_property. - Adjust the package file list in
MANIFEST. - Drop the legacy version
3.6from the workflow because it is not supported in Ubuntu22.04.
Full Changelog: 1.2.0...v1.2.1
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
1.2.0 @ 2/27/2024
📣 New
- Add some missing methods for completing the standard IO protocol:
closed,close(),fileno(),isatty(),readable(),writable(),seekable(),seek(). - Add logics for mainatining the status when buffers are closed.
- Enable
file.LineFileBuffer()to capture warning/exception objects. But the captured objects will be stored as text items. - Expose the
maxlenproperty and the__len__property for the buffers.
🔧 Fix
- Fix: A server bug causes the warning/exception objects are captured but not recorded by
host.LineHostBuffer(). This problem has been fixed. - Fix: Fix an issue that the getting
__file__attribute of a placeholder module will cause error.
💾 Change
- Make the
send_eof()/send_error()methods automatically called by the context. Now the mirror/buffer objects will be closed once the context is closed.
Full Changelog: 1.1.2...1.2.0
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
1.1.2 @ 2/14/2024
📣 New
- Provide
.dockerignorefile for removing unexpected files in the built docker image.
🔧 Fix
- Fix: Remove an unexpected in-release package
versionwhich should only appear during the package building. - Find a way to include
tests.versioninsdistbut exclude alltestscodes inwheel.
💾 Change
- Improve the quality of codes.
- Make the
flake8warning validator omit the issues exempted byblack.
Full Changelog: 1.1.1...1.1.2
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
1.1.1 @ 2/5/2024
🔧 Fix
- Fix: Fix an incompatibility issue when
urllib3is used inPython==3.6.
💾 Change
- Improve the workflow versions.
1.1.0 @ 2/5/2024
📣 New
- Provide the user-friendly APIs
host.LineHostReader(). This class reproduces all methods ofhost.LineHostBuffer()because the latter one will not be used once it is equipped as the services. - Add a
force_stop()method formproc.LineProcBuffer. This method should be used when the subprocesses will be terminated bySIG_TERMIATEorSIG_KILL. - Add tests for validating whether
Line*Buffer.read()functionality is correct or not.
🔧 Fix
- Fix: If the
last_lineis not flushed by a new line (\n) symbol, theread()method may not readsize - 1lines. This unexpected behavior may cause the buffer not to be fully read. Now it has been fixed. - Fix:
utils._LazyAttributemay not initialize a type correctly in some cases. This issue has been fixed by adding a branch for treating the attribute types. - Fix: The
versionfolder is missing in the docker scripts. Now the folder has been added.
💾 Change
- Replace the typehints
NoReturnwithNever. - Drop the testing dependency
requestsso that this package would be lighter.
Full Changelog: 1.0.0...1.1.1
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
1.0.0 @ 1/22/2024
📣 New
- Provide full typehints for all modules.
- Make the optional packages
fileandhostlazy-loaded. If their dependencies are missing, these modules will be marked as placeholder and their corresponding members will be replaced byNone. - Provide context features to
LineBufferandLine*Mirror. Entering such contexts will redirectstdoutandstderrto the corresponding buffer/mirror. Note thatLine*Bufferdoes not support this feature. - Make the version lazy-loaded when buliding the pacakge.
- Provide the docker scripts for fast-deployment of the testing environment.
🔧 Fix
- Fix: Previously, some typehints, for example, the out type of
LineProcBuffer.read(), are not corrected. Now, these types got fixed. - Fix: Previously,
LineBuffer.write()may returnNonein some cases. Now, such methods will always returnint. - Fix:
LineBufferandLine*Mirrormay not fit the type ofcontextlib.redirect_stdout/stderr. Now, we providesyncstream.redirect_stdout/stderrto solve this issue. - Fix: PyTest will raises errors if optional dependencies are absent. Now, this issue has been fixed. If any optional dependencies are missing, the corresponding tests will be skipped.
- Fix: Move
versionas a pacakge because the module version is not compatible with Linux.
💾 Change
- Change the coding style to the Microsoft standards.
- Make the whole package blackified.
- Split the standard requirements, locked requirements, and developer's requirements.
- Drop the dependency
flask-restfulfor the optionalhostmodule. Since the service provider falls back toflask, there will be no error handler. - Refactor
conftest.pyandsetupscripts to the modern style. - Refactor the GitHub templates for fixing some typos.
- Update the GitHub Actions scripts to the newest versions.
Full Changelog: 0.3.3...1.0.0
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
0.3.3 @ 6/29/2021
- Fix small typos.
- Bump the dependencies to the newest versions.
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
0.3.2 @ 6/14/2021
- Fix a bug caused by stopping the mirrors.
- Format the meta-data defined in
setup.py. - Add the documentation. Currently, only the tutorial is finished.
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
0.3.0 @ 6/4/2021
- Support the stop signal for
mprocandhostmodules. - Fix some bugs in the testing script.
- Fix typos.
Sync-stream
Introduction
Sync-stream is a pure python tool for synchronizing the messages (including stdout, stderr, and raised exceptions or warnings) among threads, processes, devices, and hosts. This powerful tool is useful for capturing the updating logs from the sub-processes in some projects.
Updating reports
0.2.2 @ 5/25/2021
- Add
clear()methods for all buffers and mirrors. - Fix typos in the package setup and info file.
- Fix a bug caused by writing data to the host in the testing scripts for Linux.