From 03676f296f613cf720efacb879dc49ed34c4ea70 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Thu, 15 Aug 2024 11:04:40 +0200
Subject: [PATCH 01/20] fast forward commits
---
examples | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples b/examples
index 846e00dc..d64ab922 160000
--- a/examples
+++ b/examples
@@ -1 +1 @@
-Subproject commit 846e00dca80c0fd2930eebf4b247662915229d49
+Subproject commit d64ab922adc081e2bae28f3f0cd7eb1d4f4cba2d
From 4b77de69c444da0ceccec862751041f6e2db54e5 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Thu, 15 Aug 2024 13:47:20 +0200
Subject: [PATCH 02/20] updates handlers doc code-block
---
hololinked/server/handlers.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hololinked/server/handlers.py b/hololinked/server/handlers.py
index 8aad290f..4deaf17e 100644
--- a/hololinked/server/handlers.py
+++ b/hololinked/server/handlers.py
@@ -139,7 +139,7 @@ def set_headers(self) -> None:
"""
sets default headers for RPC (property read-write and action execution). The general headers are listed as follows:
- .. code-block:: http
+ .. code-block:: yaml
Content-Type: application/json
Access-Control-Allow-Credentials: true
@@ -220,7 +220,7 @@ def set_headers(self) -> None:
"""
sets default headers for event handling. The general headers are listed as follows:
- .. code-block:: http
+ .. code-block:: yaml
Content-Type: text/event-stream
Cache-Control: no-cache
From 57cc0ef6d8a11103859b4224841f5be71cab0450 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Sat, 24 Aug 2024 21:10:14 +0200
Subject: [PATCH 03/20] picoscope example added
---
doc | 2 +-
examples | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc b/doc
index 84450d06..c0c4a8d5 160000
--- a/doc
+++ b/doc
@@ -1 +1 @@
-Subproject commit 84450d06c1f09e74df08afafa9f5e6571569d32c
+Subproject commit c0c4a8d5d942c9c4c360f668c1ee626c787a42b3
diff --git a/examples b/examples
index d64ab922..3484e58d 160000
--- a/examples
+++ b/examples
@@ -1 +1 @@
-Subproject commit d64ab922adc081e2bae28f3f0cd7eb1d4f4cba2d
+Subproject commit 3484e58d9b6f166f977b80c3e267c7871bac59a4
From 2466d330ad1573cb062e90f36382fce6c57716b4 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Sat, 24 Aug 2024 21:11:33 +0200
Subject: [PATCH 04/20] update readme - ways to contact me
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index bab7e68f..51bb926d 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
[](https://hololinked.readthedocs.io/en/latest/?badge=latest) [](https://pypi.org/project/hololinked/) [](https://pypistats.org/packages/hololinked) [](https://codecov.io/gh/VigneshVSV/hololinked)
-[](mailto:vignesh.vaidyanathan@hololinked.dev) [](https://discord.com/users/1178428338746966066)
+[](mailto:vignesh.vaidyanathan@hololinked.dev) [](https://hololinked.dev/contact)
### To Install
From 3bc096547eba0fe2b58113fce903fe5972cb36c7 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Sun, 8 Sep 2024 04:46:08 +0200
Subject: [PATCH 05/20] author name typo fix
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 198b9e1b..269bf80c 100644
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@
setuptools.setup(
name="hololinked",
version="0.2.3",
- author="Vigneh Vaidyanathan",
+ author="Vignesh Vaidyanathan",
author_email="vignesh.vaidyanathan@hololinked.dev",
description="A ZMQ-based Object Oriented RPC tool-kit with HTTP support for instrument control/data acquisition or controlling generic python objects.",
long_description=long_description,
From c6c4d89dacbefe70df9f3b7ed43a966463128615 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Sun, 8 Sep 2024 04:53:21 +0200
Subject: [PATCH 06/20] update description string
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 269bf80c..b379cba0 100644
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@
version="0.2.3",
author="Vignesh Vaidyanathan",
author_email="vignesh.vaidyanathan@hololinked.dev",
- description="A ZMQ-based Object Oriented RPC tool-kit with HTTP support for instrument control/data acquisition or controlling generic python objects.",
+ description="A ZMQ-based Object Oriented RPC tool-kit for instrument control/data acquisition or controlling generic python objects.",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://hololinked.readthedocs.io/en/latest/index.html",
From 48ea82f7851b33dedc319ef5d57f9b4526ecb0ab Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 09:39:38 +0200
Subject: [PATCH 07/20] use two versions of python for tests
---
.github/workflows/test-dev.yml | 9 +++++++--
hololinked/server/eventloop.py | 4 +++-
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index 2900858b..9f54e90f 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -13,14 +13,19 @@ on:
jobs:
test:
runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ python-version: [3.10, 3.11]
+
steps:
- name: Checkout code
uses: actions/checkout@v4
- - name: Set up Python
+ - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
- python-version: 3.11
+ python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install -r tests/requirements.txt
diff --git a/hololinked/server/eventloop.py b/hololinked/server/eventloop.py
index e605ff42..f06073b5 100644
--- a/hololinked/server/eventloop.py
+++ b/hololinked/server/eventloop.py
@@ -353,7 +353,9 @@ async def execute_once(cls, instance_name : str, instance : Thing, instruction_s
if action == "write":
if resource.state is None or (hasattr(instance, 'state_machine') and
instance.state_machine.current_state in resource.state):
- return prop.__set__(owner_inst, arguments["value"])
+ if isinstance(arguments, dict) and len(arguments) == 1 and "value" in arguments:
+ return prop.__set__(owner_inst, arguments["value"])
+ return prop.__set__(owner_inst, arguments)
else:
raise StateMachineError("Thing {} is in `{}` state, however attribute can be written only in `{}` state".format(
instance_name, instance.state_machine.current_state, resource.state))
From 07404e4daf6b0eedba6ebd0cf10c2132518fac88 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 09:48:46 +0200
Subject: [PATCH 08/20] fix version 3.10
---
.github/workflows/test-dev.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index 9f54e90f..120fd585 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -16,7 +16,7 @@ jobs:
strategy:
matrix:
- python-version: [3.10, 3.11]
+ python-version: ['3.10', 3.11]
steps:
- name: Checkout code
From 16569e237f5340715a997133815b4397b412592e Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 10:07:17 +0200
Subject: [PATCH 09/20] no compatibility with 3.10
---
.github/workflows/test-dev.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index 120fd585..d6d1b713 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -16,7 +16,7 @@ jobs:
strategy:
matrix:
- python-version: ['3.10', 3.11]
+ python-version: [3.11, 3.12, 3.13]
steps:
- name: Checkout code
From d03301c3428e9f30a006872ba78a425271f18b7d Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 10:10:01 +0200
Subject: [PATCH 10/20] remove version 3.13
---
.github/workflows/test-dev.yml | 2 +-
setup.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index d6d1b713..87a5938c 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -16,7 +16,7 @@ jobs:
strategy:
matrix:
- python-version: [3.11, 3.12, 3.13]
+ python-version: [3.11, 3.12]
steps:
- name: Checkout code
diff --git a/setup.py b/setup.py
index b379cba0..0f00aeb7 100644
--- a/setup.py
+++ b/setup.py
@@ -38,7 +38,7 @@
"Topic :: System :: Hardware",
"Development Status :: 4 - Beta"
],
- python_requires='>=3.7',
+ python_requires='>=3.11',
install_requires=[
"argon2-cffi>=23.0.0",
"ifaddr>=0.2.0",
From 09d5b0c5181e7aa6b528d12ab3ee7b53072d3d04 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 10:15:23 +0200
Subject: [PATCH 11/20] update test release and increase version to 0.2.4
---
.github/workflows/test-release.yml | 9 +++++++--
CHANGELOG.md | 5 +++++
hololinked/__init__.py | 2 +-
setup.py | 2 +-
4 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/test-release.yml b/.github/workflows/test-release.yml
index b428a532..f42b588e 100644
--- a/.github/workflows/test-release.yml
+++ b/.github/workflows/test-release.yml
@@ -10,14 +10,19 @@ on:
jobs:
test:
runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ python-version: [3.11, 3.12]
+
steps:
- name: Checkout code
uses: actions/checkout@v4
- - name: Set up Python
+ - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
- python-version: 3.11
+ python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8dbbdcca..5b98bdf1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- image event handlers (develop branch) for streaming live video as JPEG and PNG ✓
- pydantic support for property models (develop branch) ✓
+## [v0.2.4] - 2024-09-09
+
+- added multiple versions of python for testing
+- unlike claimed in previous versions, this package runs only on python 3.11 or higher
+
## [v0.2.3] - 2024-08-11
- HTTP SSE minor bug-fix/optimization - no difference to the user
diff --git a/hololinked/__init__.py b/hololinked/__init__.py
index d31c31ea..788da1fb 100644
--- a/hololinked/__init__.py
+++ b/hololinked/__init__.py
@@ -1 +1 @@
-__version__ = "0.2.3"
+__version__ = "0.2.4"
diff --git a/setup.py b/setup.py
index 0f00aeb7..01725b96 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@
setuptools.setup(
name="hololinked",
- version="0.2.3",
+ version="0.2.4",
author="Vignesh Vaidyanathan",
author_email="vignesh.vaidyanathan@hololinked.dev",
description="A ZMQ-based Object Oriented RPC tool-kit for instrument control/data acquisition or controlling generic python objects.",
From 37e4ba88a70e704de7dcf214556997af6aa1fc3f Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 12:28:06 +0200
Subject: [PATCH 12/20] updated OS to matric strategy
---
.github/workflows/test-release.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/test-release.yml b/.github/workflows/test-release.yml
index f42b588e..ff5e91f7 100644
--- a/.github/workflows/test-release.yml
+++ b/.github/workflows/test-release.yml
@@ -9,11 +9,13 @@ on:
jobs:
test:
- runs-on: ubuntu-latest
-
+
strategy:
matrix:
python-version: [3.11, 3.12]
+ os: [ubuntu-latest, windows-latest, macos-latest]
+
+ runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
From 30217a58121cb26d2722c88f60d3099c7d7c5ea8 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 12:44:58 +0200
Subject: [PATCH 13/20] updated OS to matrix strategy
---
.github/workflows/test-dev.yml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index 87a5938c..d06d2dc5 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -12,11 +12,12 @@ on:
jobs:
test:
- runs-on: ubuntu-latest
-
strategy:
matrix:
python-version: [3.11, 3.12]
+ os: [ubuntu-latest, windows-latest, macos-latest]
+
+ runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
From f8c5969e48237637b160e3fbbcebc10a5a19c5bf Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 16:42:46 +0200
Subject: [PATCH 14/20] update OS to python mapping due to failed installation
of some packages
---
.github/workflows/test-release.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/test-release.yml b/.github/workflows/test-release.yml
index ff5e91f7..e89ae08c 100644
--- a/.github/workflows/test-release.yml
+++ b/.github/workflows/test-release.yml
@@ -12,8 +12,12 @@ jobs:
strategy:
matrix:
- python-version: [3.11, 3.12]
- os: [ubuntu-latest, windows-latest, macos-latest]
+ include:
+ # Define specific Python versions for each OS
+ - os: [ubuntu-latest, windows-latest, macos-latest]
+ python-version: 3.11
+ - os: ubuntu-latest
+ python-version: 3.12
runs-on: ${{ matrix.os }}
From 1a89401c0241089ab2c4b33b7ebd2dc208e41a60 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Mon, 9 Sep 2024 16:44:12 +0200
Subject: [PATCH 15/20] update OS to python mapping due to failed installation
of some packages
---
.github/workflows/test-dev.yml | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index d06d2dc5..25a20478 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -14,8 +14,12 @@ jobs:
test:
strategy:
matrix:
- python-version: [3.11, 3.12]
- os: [ubuntu-latest, windows-latest, macos-latest]
+ include:
+ # Define specific Python versions for each OS
+ - os: [ubuntu-latest, windows-latest, macos-latest]
+ python-version: 3.11
+ - os: ubuntu-latest
+ python-version: 3.12
runs-on: ${{ matrix.os }}
From a9abf849826a84d108e77bf0cd9340a1768fe4f1 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Tue, 10 Sep 2024 07:18:57 +0200
Subject: [PATCH 16/20] added codecov yml
---
codecov.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 codecov.yml
diff --git a/codecov.yml b/codecov.yml
new file mode 100644
index 00000000..bd646db7
--- /dev/null
+++ b/codecov.yml
@@ -0,0 +1,5 @@
+coverage:
+ status:
+ patch:
+ default:
+ enabled: false
From 00d4c0302022926f4fda98db2ccbb628eb851373 Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Tue, 10 Sep 2024 07:23:59 +0200
Subject: [PATCH 17/20] update OS version specifying method for py 3.11
---
.github/workflows/test-dev.yml | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index 25a20478..1e7d7c80 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -16,7 +16,11 @@ jobs:
matrix:
include:
# Define specific Python versions for each OS
- - os: [ubuntu-latest, windows-latest, macos-latest]
+ - os: ubuntu-latest
+ python-version: 3.11
+ - os: windows-latest
+ python-version: 3.11
+ - os: macos-latest
python-version: 3.11
- os: ubuntu-latest
python-version: 3.12
From 4a5cb77a31636c2f345e8b2a1d7fd989412cf42b Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Tue, 10 Sep 2024 07:33:37 +0200
Subject: [PATCH 18/20] commented out win and macos tests and temp folder
configuration tricky
---
.github/workflows/test-dev.yml | 8 ++++----
.github/workflows/test-release.yml | 6 +++++-
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml
index 1e7d7c80..3fca9407 100644
--- a/.github/workflows/test-dev.yml
+++ b/.github/workflows/test-dev.yml
@@ -18,10 +18,10 @@ jobs:
# Define specific Python versions for each OS
- os: ubuntu-latest
python-version: 3.11
- - os: windows-latest
- python-version: 3.11
- - os: macos-latest
- python-version: 3.11
+ # - os: windows-latest
+ # python-version: 3.11
+ # - os: macos-latest
+ # python-version: 3.11
- os: ubuntu-latest
python-version: 3.12
diff --git a/.github/workflows/test-release.yml b/.github/workflows/test-release.yml
index e89ae08c..edea8255 100644
--- a/.github/workflows/test-release.yml
+++ b/.github/workflows/test-release.yml
@@ -14,7 +14,11 @@ jobs:
matrix:
include:
# Define specific Python versions for each OS
- - os: [ubuntu-latest, windows-latest, macos-latest]
+ - os: ubuntu-latest
+ python-version: 3.11
+ - os: windows-latest
+ python-version: 3.11
+ - os: macos-latest
python-version: 3.11
- os: ubuntu-latest
python-version: 3.12
From 284ab4cd7fff3a7a51c1a2f594f1c41ee0eab2ac Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Tue, 10 Sep 2024 08:08:23 +0200
Subject: [PATCH 19/20] update README
---
README.md | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index 51bb926d..f9b93012 100644
--- a/README.md
+++ b/README.md
@@ -105,7 +105,7 @@ class OceanOpticsSpectrometer(Thing):
In this case, instead of generating a data container with an internal name, the setter method is called when `integration_time` property is set/written. One might add the hardware device driver (say, supplied by the manufacturer) logic here to apply the property onto the device. In the above example, there is not a way provided by lower level library to read the value from the device, so we store it in a variable after applying it and supply the variable back to the getter method. Normally, one would also want the getter to read from the device directly.
-Those familiar with Web of Things (WoT) terminology may note that these properties generate the property affordance schema to become accessible by the [node-wot](https://github.com/eclipse-thingweb/node-wot) HTTP(s) client. An example of autogenerated property affordance for `integration_time` is as follows:
+Those familiar with Web of Things (WoT) terminology may note that these properties generate the property affordance schema. An example of autogenerated property affordance for `integration_time` is as follows:
```JSON
"integration_time": {
@@ -127,9 +127,9 @@ Those familiar with Web of Things (WoT) terminology may note that these properti
"minimum": 0.001
},
```
-If you are not familiar with Web of Things or the term "property affordance", consider the above JSON as a description of
+If you are not familiar with Web of Things or the term "property affordance", consider the above JSON as a description of
what the property represents and how to interact with it from somewhere else. Such a JSON is both human-readable, yet consumable
-by a client provider to create a client object to interact with the property.
+by a client provider to create a client object to interact with the property. For example, the Eclipse ThingWeb [node-wot](https://github.com/eclipse-thingweb/node-wot) supports this feature to produce a HTTP(s) client that can issue `readProperty("integration_time")` and `writeProperty("integration_time", 1000)` to read and write this property.
The URL path segment `../spectrometer/..` in href field is taken from the `instance_name` which was specified in the `__init__`.
This is a mandatory key word argument to the parent class `Thing` to generate a unique name/id for the instance. One should use URI compatible strings.
@@ -305,14 +305,14 @@ See a list of currently supported possibilities while using this package [below]
> You may use a script deployment/automation tool to remote stop and start servers, in an attempt to remotely control your hardware scripts.
-One may use the HTTP API according to one's beliefs (including letting the package auto-generate it), but it is mainly intended for web development and cross platform clients like the [node-wot](https://github.com/eclipse-thingweb/node-wot) HTTP(s) client. If your plan is to develop a truly networked system, it is recommended to learn more and use [Thing Descriptions](https://www.w3.org/TR/wot-thing-description11) to describe your hardware. A Thing Description will be automatically generated if absent as shown in JSON examples above or can be supplied manually. The node-wot HTTP(s) client will be able to consume such a description, validate it and abstract away the protocol level details so that one can invoke actions, read & write properties or subscribe to events in a technology agnostic manner. In this way, one can plugin code developed from this package to the rest of the IoT/data-acquisition tools, protocols & standardizations. To know more about client side scripting with node-wot, please look into the documentation [How-To](https://hololinked.readthedocs.io/en/latest/howto/clients.html#using-node-wot-http-s-client) section.
+One may use the HTTP API according to one's beliefs (including letting the package auto-generate it), but it is mainly intended for web development and cross platform clients like the [node-wot](https://github.com/eclipse-thingweb/node-wot) HTTP(s) client. If your plan is to develop a truly networked system, it is recommended to learn more and use [Thing Descriptions](https://www.w3.org/TR/wot-thing-description11) to describe your hardware. A Thing Description will be automatically generated if absent as shown in JSON examples above or can be supplied manually.
### Currently Supported
- control method execution and property write with a custom finite state machine.
- database (Postgres, MySQL, SQLite - based on SQLAlchemy) support for storing and loading properties when the object dies and restarts.
- auto-generate Thing Description for Web of Things applications.
-- use serializer of your choice (except for HTTP) - MessagePack, JSON, pickle etc. & extend serialization to suit your requirement. HTTP Server will support only JSON serializer to maintain compatibility with node-wot. Default is JSON serializer based on msgspec.
+- use serializer of your choice (except for HTTP) - MessagePack, JSON, pickle etc. & extend serialization to suit your requirement. HTTP Server will support only JSON serializer to maintain comptibility with Javascript (MessagePack may be added later). Default is JSON serializer based on msgspec.
- asyncio compatible - async RPC server event-loop and async HTTP Server - write methods in async
- choose from multiple ZeroMQ transport methods which offers some possibilities like the following without changing the code:
- run HTTP Server & python object in separate processes or the same process
@@ -325,14 +325,12 @@ Again, please check examples or the code for explanations. Documentation is bein
### Currently being worked
- improving accuracy of Thing Descriptions
-- cookie credentials for authentication - as a workaround until credentials are supported, use `allowed_clients` argument on HTTP server which restricts access based on remote IP supplied with the HTTP headers.
+- separation of HTTP protocol specification like URL path and HTTP verbs from the API of properties, actions and events and move their customization completely to the HTTP server
+- unit tests coverage
+- cookie credentials for authentication - as a workaround until credentials are supported, use `allowed_clients` argument on HTTP server which restricts access based on remote IP supplied with the HTTP headers. This wont still help you in public networks or modified/non-standard HTTP clients.
### Internals
This package is an implementation of a ZeroMQ-based Object Oriented RPC with customizable HTTP end-points. A dual transport in both ZMQ and HTTP is provided to maximize flexibility in data type, serialization and speed, although HTTP is preferred for networked applications. If one is looking for an object oriented approach towards creating components within a control or data acquisition system, or an IoT device, one may consider this package.
-### Some Day In Future
-
-- mongo DB support for DB operations
-- HTTP 2.0
From 6eee54ed35fa1200bca9bfbe5cc3ab4dcb578a9e Mon Sep 17 00:00:00 2001
From: Vignesh Venkatasubramanian Vaidyanathan
<62492557+VigneshVSV@users.noreply.github.com>
Date: Tue, 10 Sep 2024 08:16:44 +0200
Subject: [PATCH 20/20] update test release without windows and macos tests
---
.github/workflows/test-release.yml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/test-release.yml b/.github/workflows/test-release.yml
index edea8255..1e3cb4b5 100644
--- a/.github/workflows/test-release.yml
+++ b/.github/workflows/test-release.yml
@@ -16,10 +16,10 @@ jobs:
# Define specific Python versions for each OS
- os: ubuntu-latest
python-version: 3.11
- - os: windows-latest
- python-version: 3.11
- - os: macos-latest
- python-version: 3.11
+ # - os: windows-latest
+ # python-version: 3.11
+ # - os: macos-latest
+ # python-version: 3.11
- os: ubuntu-latest
python-version: 3.12