3 Commits

Author SHA1 Message Date
Mose Müller
5702adbdbd update version 2023-10-10 14:54:17 +02:00
Mose Müller
e3a7932ac4 Merge pull request #26 from tiqi-group/24-issue-pydase-checks-if-protected-variables-inherit-from-dataservice
fix: only check inheritance of public attributes
2023-10-10 12:54:45 +02:00
Mose Müller
21cd039610 fix: only check inheritance of public attributes 2023-10-10 12:51:50 +02:00
4 changed files with 21 additions and 4 deletions

0
.python-version Normal file
View File

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "pydase"
version = "0.1.1"
version = "0.1.2"
description = "A flexible and robust Python library for creating, managing, and interacting with data services, with built-in support for web and RPC servers, and customizable features for diverse use cases."
authors = ["Mose Mueller <mosmuell@ethz.ch>"]
readme = "README.md"

View File

@@ -83,8 +83,9 @@ class DataService(rpyc.Service, AbstractDataService):
def __check_instance_classes(self) -> None:
for attr_name, attr_value in get_class_and_instance_attributes(self).items():
# every class defined by the user should inherit from DataService
if not attr_name.startswith("_DataService__"):
# every class defined by the user should inherit from DataService if it is
# assigned to a public attribute
if not attr_name.startswith("_"):
warn_if_instance_class_does_not_inherit_from_DataService(attr_value)
def __set_attribute_based_on_type( # noqa:CFQ002

View File

@@ -2,7 +2,7 @@ from pytest import LogCaptureFixture
from pydase import DataService
from . import caplog # noqa
from .. import caplog # noqa
def test_setattr_warnings(caplog: LogCaptureFixture) -> None: # noqa
@@ -32,3 +32,19 @@ def test_private_attribute_warning(caplog: LogCaptureFixture) -> None: # noqa
" Warning: You should not set private but rather protected attributes! Use "
"_something instead of __something." in caplog.text
)
def test_protected_attribute_warning(caplog: LogCaptureFixture) -> None: # noqa
class SubClass:
name = "Hello"
class ServiceClass(DataService):
def __init__(self) -> None:
self._subclass = SubClass
super().__init__()
ServiceClass()
assert (
"Warning: Class SubClass does not inherit from DataService." not in caplog.text
)