aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-07-26 13:49:26 +0200
committerDimitri Staessens <dimitri@ouroboros.rocks>2026-07-26 14:50:26 +0200
commit33f3c6fc4ca8810cee4c517594be725a26eec70c (patch)
treec4b2f8c14357b1b4e979e01c3b516ddf254f3b98 /examples
parent3947452e391b1f1fc3933b28ce97d86e3b555d84 (diff)
downloadpyouroboros-33f3c6fc4ca8810cee4c517594be725a26eec70c.tar.gz
pyouroboros-33f3c6fc4ca8810cee4c517594be725a26eec70c.zip
pyouroboros: Use consistent format docstringsHEADmaster
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 <dimitri@ouroboros.rocks>
Diffstat (limited to 'examples')
-rw-r--r--[-rwxr-xr-x]examples/oecho.py61
-rw-r--r--[-rwxr-xr-x]examples/oecho_set.py63
2 files changed, 44 insertions, 80 deletions
diff --git a/examples/oecho.py b/examples/oecho.py
index 4bf3e05..ae94103 100755..100644
--- 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 <dimitri@ouroboros.rocks>
-#
-# 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
index 72265df..469fdb0 100755..100644
--- 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 <dimitri@ouroboros.rocks>
-#
-# 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()