Skip to content

Releases: cainmagi/sync-stream

Sync-stream v1.2.2

08 Jan 06:08

Choose a tag to compare

Introduction

GitHub release (latest SemVer) GitHub all releases GitHub PyPI - Downloads

GitHub Actions (Build) GitHub Actions (Release)

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

  1. Fix: Correct a bug that mprocs.LineProcMirror does not response to the early stop signal.

Full Changelog: v1.2.1...v1.2.2

Sync-stream v1.2.1

07 Jan 23:17

Choose a tag to compare

Introduction

GitHub release (latest SemVer) GitHub all releases GitHub PyPI - Downloads

GitHub Actions (Build) GitHub Actions (Release)

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

  1. Use the new pyproject.toml configuration style to replace the old style setup.cfg.
  2. Add more information in the readme documents.

🔧 Fix

  1. Fix: Correct docstrings and bad definitions of some APIs.
  2. Fix: Attempt to solve the lazy-load issue that only happens when using the workflow.
  3. Fix: Fix an issue caused by the change of importlib.utils._LazyModule. Use a hacking technique to bypass this issue.

💾 Change

  1. Adjust the workflow configurations and use the new standard of PyPI publishing.
  2. Remove unused utils.cached_property.
  3. Adjust the package file list in MANIFEST.
  4. Drop the legacy version 3.6 from the workflow because it is not supported in Ubuntu 22.04.

Full Changelog: 1.2.0...v1.2.1

Sync-stream

27 Feb 19:20

Choose a tag to compare

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

  1. Add some missing methods for completing the standard IO protocol: closed, close(), fileno(), isatty(), readable(), writable(), seekable(), seek().
  2. Add logics for mainatining the status when buffers are closed.
  3. Enable file.LineFileBuffer() to capture warning/exception objects. But the captured objects will be stored as text items.
  4. Expose the maxlen property and the __len__ property for the buffers.

🔧 Fix

  1. Fix: A server bug causes the warning/exception objects are captured but not recorded by host.LineHostBuffer(). This problem has been fixed.
  2. Fix: Fix an issue that the getting __file__ attribute of a placeholder module will cause error.

💾 Change

  1. 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

14 Feb 15:28

Choose a tag to compare

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

  1. Provide .dockerignore file for removing unexpected files in the built docker image.

🔧 Fix

  1. Fix: Remove an unexpected in-release package version which should only appear during the package building.
  2. Find a way to include tests.version in sdist but exclude all tests codes in wheel.

💾 Change

  1. Improve the quality of codes.
  2. Make the flake8 warning validator omit the issues exempted by black.

Full Changelog: 1.1.1...1.1.2

Sync-stream

05 Feb 21:20

Choose a tag to compare

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

  1. Fix: Fix an incompatibility issue when urllib3 is used in Python==3.6.

💾 Change

  1. Improve the workflow versions.

1.1.0 @ 2/5/2024

📣 New

  1. Provide the user-friendly APIs host.LineHostReader(). This class reproduces all methods of host.LineHostBuffer() because the latter one will not be used once it is equipped as the services.
  2. Add a force_stop() method for mproc.LineProcBuffer. This method should be used when the subprocesses will be terminated by SIG_TERMIATE or SIG_KILL.
  3. Add tests for validating whether Line*Buffer.read() functionality is correct or not.

🔧 Fix

  1. Fix: If the last_line is not flushed by a new line (\n) symbol, the read() method may not read size - 1 lines. This unexpected behavior may cause the buffer not to be fully read. Now it has been fixed.
  2. Fix: utils._LazyAttribute may not initialize a type correctly in some cases. This issue has been fixed by adding a branch for treating the attribute types.
  3. Fix: The version folder is missing in the docker scripts. Now the folder has been added.

💾 Change

  1. Replace the typehints NoReturn with Never.
  2. Drop the testing dependency requests so that this package would be lighter.

Full Changelog: 1.0.0...1.1.1

Sync-stream

23 Jan 07:18

Choose a tag to compare

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

  1. Provide full typehints for all modules.
  2. Make the optional packages file and host lazy-loaded. If their dependencies are missing, these modules will be marked as placeholder and their corresponding members will be replaced by None.
  3. Provide context features to LineBuffer and Line*Mirror. Entering such contexts will redirect stdout and stderr to the corresponding buffer/mirror. Note that Line*Buffer does not support this feature.
  4. Make the version lazy-loaded when buliding the pacakge.
  5. Provide the docker scripts for fast-deployment of the testing environment.

🔧 Fix

  1. Fix: Previously, some typehints, for example, the out type of LineProcBuffer.read(), are not corrected. Now, these types got fixed.
  2. Fix: Previously, LineBuffer.write() may return None in some cases. Now, such methods will always return int.
  3. Fix: LineBuffer and Line*Mirror may not fit the type of contextlib.redirect_stdout/stderr. Now, we provide syncstream.redirect_stdout/stderr to solve this issue.
  4. 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.
  5. Fix: Move version as a pacakge because the module version is not compatible with Linux.

💾 Change

  1. Change the coding style to the Microsoft standards.
  2. Make the whole package blackified.
  3. Split the standard requirements, locked requirements, and developer's requirements.
  4. Drop the dependency flask-restful for the optional host module. Since the service provider falls back to flask, there will be no error handler.
  5. Refactor conftest.py and setup scripts to the modern style.
  6. Refactor the GitHub templates for fixing some typos.
  7. Update the GitHub Actions scripts to the newest versions.

Full Changelog: 0.3.3...1.0.0

Sync-stream

29 Jun 23:55

Choose a tag to compare

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

  1. Fix small typos.
  2. Bump the dependencies to the newest versions.

Sync-stream

14 Jun 14:14

Choose a tag to compare

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

  1. Fix a bug caused by stopping the mirrors.
  2. Format the meta-data defined in setup.py.
  3. Add the documentation. Currently, only the tutorial is finished.

Sync-stream

04 Jun 15:45

Choose a tag to compare

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

  1. Support the stop signal for mproc and host modules.
  2. Fix some bugs in the testing script.
  3. Fix typos.

Sync-stream

25 May 15:12

Choose a tag to compare

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

  1. Add clear() methods for all buffers and mirrors.
  2. Fix typos in the package setup and info file.
  3. Fix a bug caused by writing data to the host in the testing scripts for Linux.