Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions examples/build_bcd_payload.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
that can be used in the pymodbus library. Below is a
simple binary coded decimal builder and decoder.
"""

from struct import pack

from pymodbus.constants import Endian
Expand Down Expand Up @@ -219,9 +220,3 @@ def decode_string(self, size: int = 1):

if __name__ == "__main__":
print("Test")

# --------------------------------------------------------------------------- #
# Exported Identifiers
# --------------------------------------------------------------------------- #

__all__ = ["BcdPayloadBuilder", "BcdPayloadDecoder"]
18 changes: 7 additions & 11 deletions pymodbus/__init__.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
"""Pymodbus: Modbus Protocol Implementation.

Released under the the BSD license
Released under the BSD license
"""

__all__ = [
"pymodbus_apply_logging_config",
"__version__",
"__version_full__",
]

from pymodbus.logging import pymodbus_apply_logging_config
from pymodbus.version import version


__version__ = version.short()
__version_full__ = str(version)

# --------------------------------------------------------------------------- #
# Exported symbols
# --------------------------------------------------------------------------- #

__all__ = [
"pymodbus_apply_logging_config",
"__version__",
"__version_full__",
]
21 changes: 9 additions & 12 deletions pymodbus/bit_read_message.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
"""Bit Reading Request/Response messages."""

__all__ = [
"ReadBitsResponseBase",
"ReadCoilsRequest",
"ReadCoilsResponse",
"ReadDiscreteInputsRequest",
"ReadDiscreteInputsResponse",
]

# pylint: disable=missing-type-doc
import struct

Expand Down Expand Up @@ -256,15 +265,3 @@ def __init__(self, values=None, slave=Defaults.Slave, **kwargs):
:param slave: Modbus slave slave ID
"""
ReadBitsResponseBase.__init__(self, values, slave, **kwargs)


# ---------------------------------------------------------------------------#
# Exported symbols
# ---------------------------------------------------------------------------#
__all__ = [
"ReadBitsResponseBase",
"ReadCoilsRequest",
"ReadCoilsResponse",
"ReadDiscreteInputsRequest",
"ReadDiscreteInputsResponse",
]
19 changes: 8 additions & 11 deletions pymodbus/bit_write_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

TODO write mask request/response
"""

__all__ = [
"WriteSingleCoilRequest",
"WriteSingleCoilResponse",
"WriteMultipleCoilsRequest",
"WriteMultipleCoilsResponse",
]

# pylint: disable=missing-type-doc
import struct

Expand Down Expand Up @@ -276,14 +284,3 @@ def __str__(self):
:returns: A string representation of the instance
"""
return f"WriteNCoilResponse({self.address}, {self.count})"


# ---------------------------------------------------------------------------#
# Exported symbols
# ---------------------------------------------------------------------------#
__all__ = [
"WriteSingleCoilRequest",
"WriteSingleCoilResponse",
"WriteMultipleCoilsRequest",
"WriteMultipleCoilsResponse",
]
15 changes: 6 additions & 9 deletions pymodbus/client/__init__.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
"""Client"""
from pymodbus.client.base import ModbusBaseClient
from pymodbus.client.serial import AsyncModbusSerialClient, ModbusSerialClient
from pymodbus.client.tcp import AsyncModbusTcpClient, ModbusTcpClient
from pymodbus.client.tls import AsyncModbusTlsClient, ModbusTlsClient
from pymodbus.client.udp import AsyncModbusUdpClient, ModbusUdpClient


# ---------------------------------------------------------------------------#
# Exported symbols
# ---------------------------------------------------------------------------#
__all__ = [
"AsyncModbusSerialClient",
"AsyncModbusTcpClient",
Expand All @@ -20,3 +11,9 @@
"ModbusTlsClient",
"ModbusUdpClient",
]

from pymodbus.client.base import ModbusBaseClient
from pymodbus.client.serial import AsyncModbusSerialClient, ModbusSerialClient
from pymodbus.client.tcp import AsyncModbusTcpClient, ModbusTcpClient
from pymodbus.client.tls import AsyncModbusTlsClient, ModbusTlsClient
from pymodbus.client.udp import AsyncModbusUdpClient, ModbusUdpClient
13 changes: 6 additions & 7 deletions pymodbus/client/sync_diag.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
"""Sync diag."""

__all__ = [
"ModbusTcpDiagClient",
"get_client",
]

import socket
import time

Expand Down Expand Up @@ -160,10 +166,3 @@ def get_client():
:returns: ModbusTcpClient or a child class thereof
"""
return ModbusTcpDiagClient


# --------------------------------------------------------------------------- #
# Exported symbols
# --------------------------------------------------------------------------- #

__all__ = ["ModbusTcpDiagClient", "get_client"]
13 changes: 0 additions & 13 deletions pymodbus/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,16 +307,3 @@ class MoreData: # pylint: disable=too-few-public-methods
def __init__(self):
"""Prohibit objects."""
raise RuntimeError(INTERNAL_ERROR)


# ---------------------------------------------------------------------------#
# Exported Identifiers
# ---------------------------------------------------------------------------#
__all__ = [
"Defaults",
"ModbusStatus",
"Endian",
"ModbusPlusOperation",
"DeviceInformation",
"MoreData",
]
23 changes: 10 additions & 13 deletions pymodbus/datastore/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
"""Datastore."""

__all__ = [
"ModbusBaseSlaveContext",
"ModbusSequentialDataBlock",
"ModbusSparseDataBlock",
"ModbusSlaveContext",
"ModbusServerContext",
"ModbusSimulatorContext",
]

from pymodbus.datastore.context import (
ModbusBaseSlaveContext,
ModbusServerContext,
Expand All @@ -9,16 +19,3 @@
ModbusSequentialDataBlock,
ModbusSparseDataBlock,
)


# ---------------------------------------------------------------------------#
# Exported symbols
# ---------------------------------------------------------------------------#
__all__ = [
"ModbusBaseSlaveContext",
"ModbusSequentialDataBlock",
"ModbusSparseDataBlock",
"ModbusSlaveContext",
"ModbusServerContext",
"ModbusSimulatorContext",
]
18 changes: 7 additions & 11 deletions pymodbus/device.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
maintained in the server context and the various methods
should be inserted in the correct locations.
"""

__all__ = [
"ModbusPlusStatistics",
"ModbusDeviceIdentification",
"DeviceInformationFactory",
]

import struct

# pylint: disable=missing-type-doc
Expand Down Expand Up @@ -599,14 +606,3 @@ def getDiagnosticRegister(self):
:returns: The diagnostic register collection
"""
return self.__diagnostic


# ---------------------------------------------------------------------------#
# Exported Identifiers
# ---------------------------------------------------------------------------#
__all__ = [
"ModbusPlusStatistics",
"ModbusDeviceIdentification",
"DeviceInformationFactory",
"ModbusControlBlock",
]
83 changes: 40 additions & 43 deletions pymodbus/diag_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,46 @@
These need to be tied into a the current server context
or linked to the appropriate data
"""

__all__ = [
"DiagnosticStatusRequest",
"DiagnosticStatusResponse",
"ReturnQueryDataRequest",
"ReturnQueryDataResponse",
"RestartCommunicationsOptionRequest",
"RestartCommunicationsOptionResponse",
"ReturnDiagnosticRegisterRequest",
"ReturnDiagnosticRegisterResponse",
"ChangeAsciiInputDelimiterRequest",
"ChangeAsciiInputDelimiterResponse",
"ForceListenOnlyModeRequest",
"ForceListenOnlyModeResponse",
"ClearCountersRequest",
"ClearCountersResponse",
"ReturnBusMessageCountRequest",
"ReturnBusMessageCountResponse",
"ReturnBusCommunicationErrorCountRequest",
"ReturnBusCommunicationErrorCountResponse",
"ReturnBusExceptionErrorCountRequest",
"ReturnBusExceptionErrorCountResponse",
"ReturnSlaveMessageCountRequest",
"ReturnSlaveMessageCountResponse",
"ReturnSlaveNoResponseCountRequest",
"ReturnSlaveNoResponseCountResponse",
"ReturnSlaveNAKCountRequest",
"ReturnSlaveNAKCountResponse",
"ReturnSlaveBusyCountRequest",
"ReturnSlaveBusyCountResponse",
"ReturnSlaveBusCharacterOverrunCountRequest",
"ReturnSlaveBusCharacterOverrunCountResponse",
"ReturnIopOverrunCountRequest",
"ReturnIopOverrunCountResponse",
"ClearOverrunCountRequest",
"ClearOverrunCountResponse",
"GetClearModbusPlusRequest",
"GetClearModbusPlusResponse",
]

# pylint: disable=missing-type-doc
import struct

Expand Down Expand Up @@ -826,46 +866,3 @@ class GetClearModbusPlusResponse(DiagnosticStatusSimpleResponse):
"""

sub_function_code = 0x0015


# ---------------------------------------------------------------------------#
# Exported symbols
# ---------------------------------------------------------------------------#
__all__ = [
"DiagnosticStatusRequest",
"DiagnosticStatusResponse",
"ReturnQueryDataRequest",
"ReturnQueryDataResponse",
"RestartCommunicationsOptionRequest",
"RestartCommunicationsOptionResponse",
"ReturnDiagnosticRegisterRequest",
"ReturnDiagnosticRegisterResponse",
"ChangeAsciiInputDelimiterRequest",
"ChangeAsciiInputDelimiterResponse",
"ForceListenOnlyModeRequest",
"ForceListenOnlyModeResponse",
"ClearCountersRequest",
"ClearCountersResponse",
"ReturnBusMessageCountRequest",
"ReturnBusMessageCountResponse",
"ReturnBusCommunicationErrorCountRequest",
"ReturnBusCommunicationErrorCountResponse",
"ReturnBusExceptionErrorCountRequest",
"ReturnBusExceptionErrorCountResponse",
"ReturnSlaveMessageCountRequest",
"ReturnSlaveMessageCountResponse",
"ReturnSlaveNoResponseCountRequest",
"ReturnSlaveNoResponseCountResponse",
"ReturnSlaveNAKCountRequest",
"ReturnSlaveNAKCountResponse",
"ReturnSlaveBusyCountRequest",
"ReturnSlaveBusyCountResponse",
"ReturnSlaveBusCharacterOverrunCountRequest",
"ReturnSlaveBusCharacterOverrunCountResponse",
"ReturnIopOverrunCountRequest",
"ReturnIopOverrunCountResponse",
"ClearOverrunCountRequest",
"ClearOverrunCountResponse",
"GetClearModbusPlusRequest",
"GetClearModbusPlusResponse",
]
26 changes: 11 additions & 15 deletions pymodbus/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@
Custom exceptions to be used in the Modbus code.
"""

__all__ = [
"ModbusException",
"ModbusIOException",
"ParameterException",
"NotImplementedException",
"ConnectionException",
"NoSuchSlaveException",
"InvalidMessageReceivedException",
"MessageRegisterException",
]


class ModbusException(Exception):
"""Base modbus exception."""
Expand Down Expand Up @@ -104,18 +115,3 @@ def __init__(self, string=""):
"""Initialize."""
message = f"[Error registering message] {string}"
ModbusException.__init__(self, message)


# --------------------------------------------------------------------------- #
# Exported symbols
# --------------------------------------------------------------------------- #
__all__ = [
"ModbusException",
"ModbusIOException",
"ParameterException",
"NotImplementedException",
"ConnectionException",
"NoSuchSlaveException",
"InvalidMessageReceivedException",
"MessageRegisterException",
]
9 changes: 1 addition & 8 deletions pymodbus/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
Regardless of how many functions are added to the lookup, O(1) behavior is
kept as a result of a pre-computed lookup dictionary.
"""

# pylint: disable=missing-type-doc
from pymodbus.bit_read_message import (
ReadCoilsRequest,
Expand Down Expand Up @@ -367,11 +368,3 @@ def register(self, function):
self.__sub_lookup[function.function_code][
function.sub_function_code
] = function


# --------------------------------------------------------------------------- #
# Exported symbols
# --------------------------------------------------------------------------- #


__all__ = ["ServerDecoder", "ClientDecoder"]
Loading