From 33f3c6fc4ca8810cee4c517594be725a26eec70c Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Sun, 26 Jul 2026 13:49:26 +0200 Subject: pyouroboros: Use consistent format docstrings This is basically a clean up pass to make sure all docstrings are aligned. The copyright banners are replaced by SPDX statements. Also did a general clean up on the comments. Passes pylint. No structural changes. Signed-off-by: Dimitri Staessens --- examples/oecho.py | 61 +++++++++++++++++-------------------------------- examples/oecho_set.py | 63 +++++++++++++++++++-------------------------------- 2 files changed, 44 insertions(+), 80 deletions(-) mode change 100755 => 100644 examples/oecho.py mode change 100755 => 100644 examples/oecho_set.py (limited to 'examples') diff --git a/examples/oecho.py b/examples/oecho.py old mode 100755 new mode 100644 index 4bf3e05..ae94103 --- a/examples/oecho.py +++ b/examples/oecho.py @@ -1,43 +1,13 @@ -#!/bin/python - -# Ouroboros - Copyright (C) 2016 - 2026 -# -# A simple echo application -# -# Dimitri Staessens -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: # -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. +# SPDX-FileCopyrightText: 2016 - 2026 Dimitri Staessens +# SPDX-License-Identifier: BSD-3-Clause # -# 2. Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# -# 3. Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -# OF THE POSSIBILITY OF SUCH DAMAGE. - -"""A simple echo client/server example using Ouroboros flows.""" - -# Standalone demo; intentionally duplicates oecho_set.py. + +""" +A simple echo client/server example using Ouroboros flows. +""" + +# Standalone demo; duplicates oecho_set.py. # pylint: disable=duplicate-code from __future__ import annotations @@ -48,27 +18,38 @@ from ouroboros.dev import flow_accept, flow_alloc def client() -> None: - """Send a message and print the echo reply.""" + """ + Send a message and print the echo reply. + """ + with flow_alloc("oecho") as f: f.writeline("Hello, PyOuroboros!") print(f.readline()) def server() -> None: - """Accept flows and echo back received messages.""" + """ + Accept flows and echo back received messages. + """ + print("Starting the server.") + while True: with flow_accept() as f: print("New flow.") + line = f.readline() + print(f"Message from client is {line}") f.writeline(line) if __name__ == "__main__": parser = argparse.ArgumentParser(description='A simple echo client/server') + parser.add_argument('-l', '--listen', help='run as a server', action='store_true') + args = parser.parse_args() if args.listen: server() diff --git a/examples/oecho_set.py b/examples/oecho_set.py old mode 100755 new mode 100644 index 72265df..469fdb0 --- a/examples/oecho_set.py +++ b/examples/oecho_set.py @@ -1,43 +1,13 @@ -#!/bin/python - -# Ouroboros - Copyright (C) 2016 - 2026 -# -# A simple echo application -# -# Dimitri Staessens -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. # -# 2. Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. +# SPDX-FileCopyrightText: 2016 - 2026 Dimitri Staessens +# SPDX-License-Identifier: BSD-3-Clause # -# 3. Neither the name of the copyright holder nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -# OF THE POSSIBILITY OF SUCH DAMAGE. - -"""A simple echo client/server example using Ouroboros flow event sets.""" - -# Standalone demo; intentionally duplicates oecho.py. + +""" +A simple echo client/server example using Ouroboros flow event sets. +""" + +# Standalone demo; duplicates oecho.py. # pylint: disable=duplicate-code from __future__ import annotations @@ -49,32 +19,45 @@ from ouroboros.event import FEventQueue, FEventType, FlowSet def client() -> None: - """Send a message and print the echo reply.""" + """ + Send a message and print the echo reply. + """ + with flow_alloc("oecho") as f: f.writeline("Hello, PyOuroboros!") print(f.readline()) def server() -> None: - """Accept flows and echo back received messages using flow events.""" + """ + Accept flows and echo back received messages using flow events. + """ + print("Starting the server.") + while True: with flow_accept() as f: print("New flow.") with FEventQueue() as fq, FlowSet([f]) as fs: fs.wait(fq) + f2, t = fq.next() + if t != FEventType.FLOW_PKT: continue + line = f2.readline() + print(f"Message from client is {line}") f2.writeline(line) if __name__ == "__main__": parser = argparse.ArgumentParser(description='A simple echo client/server') + parser.add_argument('-l', '--listen', help='run as a server', action='store_true') + args = parser.parse_args() if args.listen: server() -- cgit v1.2.3