diff --git a/.vscode/settings.json b/.vscode/settings.json index 1f34c50..eb47b35 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,5 +5,5 @@ "python3.8InterpreterPath": "/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8", "modulename": "${workspaceFolderBasename}", "distname": "${workspaceFolderBasename}", - "moduleversion": "1.0.3" + "moduleversion": "1.0.4" } \ No newline at end of file diff --git a/README.md b/README.md index 4d147cc..ea53e8d 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ class pyspartn.spartnreader.SPARTNReader(stream, **kwargs) You can create a `SPARTNReader` object by calling the constructor with an active stream object. The stream object can be any data stream which supports a `read(n) -> bytes` method (e.g. File or Serial, with -or without a buffer wrapper). `pyspartn` implements an internal `SocketStream` class to allow sockets to be read in the same way as other streams. +or without a buffer wrapper). `pyspartn` implements an internal `SocketWrapper` class to allow sockets to be read in the same way as other streams. Individual SPARTN messages can then be read using the `SPARTNReader.read()` function, which returns both the raw binary data (as bytes) and the parsed data (as a `SPARTNMessage`, via the `parse()` method). The function is thread-safe in so far as the incoming data stream object is thread-safe. `SPARTNReader` also implements an iterator. See examples below. diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 0d26f32..f902c46 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -2,6 +2,14 @@ ### RELEASE 1.0.3 +CHANGES: + +1. Add active support for Python 3.13 +1. Drop active support for Python 3.8 - now EOL as at October 2024. +1. Rename socket_stream to socket_wrapper for clarity. + +### RELEASE 1.0.3 + FIXES: 1. Add offsets to SF043, SF045 and SF048 - thanks to @jonathanmuller for contribution. diff --git a/docs/pyspartn.rst b/docs/pyspartn.rst index c708b31..8a85f6a 100644 --- a/docs/pyspartn.rst +++ b/docs/pyspartn.rst @@ -12,10 +12,10 @@ pyspartn.exceptions module :undoc-members: :show-inheritance: -pyspartn.socket\_stream module ------------------------------- +pyspartn.socket\_wrapper module +------------------------------- -.. automodule:: pyspartn.socket_stream +.. automodule:: pyspartn.socket_wrapper :members: :undoc-members: :show-inheritance: diff --git a/pyproject.toml b/pyproject.toml index 7113d51..57d70ae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "pyspartn" authors = [{ name = "semuadmin", email = "semuadmin@semuconsulting.com" }] maintainers = [{ name = "semuadmin", email = "semuadmin@semuconsulting.com" }] description = "SPARTN protocol parser" -version = "1.0.3" +version = "1.0.4" license = { file = "LICENSE" } readme = "README.md" requires-python = ">=3.9" diff --git a/src/pyspartn/__init__.py b/src/pyspartn/__init__.py index 31e6e6d..a410762 100644 --- a/src/pyspartn/__init__.py +++ b/src/pyspartn/__init__.py @@ -14,7 +14,7 @@ SPARTNStreamError, SPARTNTypeError, ) -from pyspartn.socket_stream import SocketStream +from pyspartn.socket_wrapper import SocketWrapper from pyspartn.spartnhelpers import * from pyspartn.spartnmessage import SPARTNMessage from pyspartn.spartnreader import SPARTNReader diff --git a/src/pyspartn/_version.py b/src/pyspartn/_version.py index 53527a5..7f227aa 100644 --- a/src/pyspartn/_version.py +++ b/src/pyspartn/_version.py @@ -8,4 +8,4 @@ :license: BSD 3-Clause """ -__version__ = "1.0.3" +__version__ = "1.0.4" diff --git a/src/pyspartn/socket_stream.py b/src/pyspartn/socket_wrapper.py similarity index 98% rename from src/pyspartn/socket_stream.py rename to src/pyspartn/socket_wrapper.py index 467765d..387fee3 100644 --- a/src/pyspartn/socket_stream.py +++ b/src/pyspartn/socket_wrapper.py @@ -1,5 +1,5 @@ """ -socket_stream class. +socket_wrapper.py A skeleton socket wrapper which provides basic stream-like read(bytes) and readline() methods. @@ -19,7 +19,7 @@ from socket import socket -class SocketStream: +class SocketWrapper: """ socket stream class. """ diff --git a/src/pyspartn/spartnreader.py b/src/pyspartn/spartnreader.py index 1d7f8e4..6fa66eb 100644 --- a/src/pyspartn/spartnreader.py +++ b/src/pyspartn/spartnreader.py @@ -54,7 +54,7 @@ SPARTNStreamError, SPARTNTypeError, ) -from pyspartn.socket_stream import SocketStream +from pyspartn.socket_wrapper import SocketWrapper from pyspartn.spartnhelpers import bitsval, naive2aware, timetag2date, valid_crc from pyspartn.spartnmessage import SPARTNMessage from pyspartn.spartntables import ALN_ENUM @@ -93,7 +93,7 @@ def __init__( # pylint: disable=too-many-arguments if isinstance(datastream, socket): - self._stream = SocketStream(datastream, bufsize=bufsize) + self._stream = SocketWrapper(datastream, bufsize=bufsize) else: self._stream = datastream self.key = getenv("MQTTKEY", None) if key is None else key diff --git a/tests/test_socket.py b/tests/test_socket.py index 916b801..d2e7df0 100644 --- a/tests/test_socket.py +++ b/tests/test_socket.py @@ -1,6 +1,6 @@ """ Socket reader tests for pyspartn - uses dummy socket class -to achieve 99% test coverage of SocketStream. +to achieve 99% test coverage of SocketWrapper. Created on 11 May 2022