From 03058c570668843f23d18243783c4951102d06b5 Mon Sep 17 00:00:00 2001 From: "F.N. Claessen" Date: Thu, 3 Feb 2022 12:11:21 +0100 Subject: [PATCH 1/4] Let common classes be imported from a central place in flexmeasures Signed-off-by: F.N. Claessen --- flexmeasures/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/flexmeasures/__init__.py b/flexmeasures/__init__.py index 52dea79f6..f811dad9d 100644 --- a/flexmeasures/__init__.py +++ b/flexmeasures/__init__.py @@ -1,5 +1,10 @@ from importlib_metadata import version, PackageNotFoundError +from flexmeasures.data.models.user import Account, AccountRole, User # noqa F401 +from flexmeasures.data.models.data_sources import DataSource as Source # noqa F401 +from flexmeasures.data.models.generic_assets import GenericAsset as Asset # noqa F401 +from flexmeasures.data.models.time_series import Sensor # noqa F401 + __version__ = "Unknown" From a8f4ac675acd29ac3911fd62a88c114647d55394 Mon Sep 17 00:00:00 2001 From: "F.N. Claessen" Date: Thu, 3 Feb 2022 12:15:08 +0100 Subject: [PATCH 2/4] Add test Signed-off-by: F.N. Claessen --- flexmeasures/config/__init__.py | 0 flexmeasures/config/tests/__init__.py | 0 flexmeasures/config/tests/test_package.py | 19 +++++++++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 flexmeasures/config/__init__.py create mode 100644 flexmeasures/config/tests/__init__.py create mode 100644 flexmeasures/config/tests/test_package.py diff --git a/flexmeasures/config/__init__.py b/flexmeasures/config/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/flexmeasures/config/tests/__init__.py b/flexmeasures/config/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/flexmeasures/config/tests/test_package.py b/flexmeasures/config/tests/test_package.py new file mode 100644 index 000000000..5c8b5facd --- /dev/null +++ b/flexmeasures/config/tests/test_package.py @@ -0,0 +1,19 @@ +import pytest + + +@pytest.mark.parametrize( + "class_name", + [ + "Account", + "AccountRole", + "Asset", + "Sensor", + "Source", + "User", + ], +) +def test_class_imports(class_name: str): + """Make sure that plugins can import these classes as `from flexmeasures import `.""" + import flexmeasures as fm + + assert hasattr(fm, class_name) From 7d93326c76c0b6fad56db7382ec9ef90f5aa4658 Mon Sep 17 00:00:00 2001 From: "F.N. Claessen" Date: Thu, 3 Feb 2022 12:21:22 +0100 Subject: [PATCH 3/4] Changelog entry Signed-off-by: F.N. Claessen --- documentation/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/changelog.rst b/documentation/changelog.rst index 1f0e990b5..bd5b4bcf0 100644 --- a/documentation/changelog.rst +++ b/documentation/changelog.rst @@ -20,6 +20,7 @@ Bugfixes Infrastructure / Support ---------------------- +* Plugins can import common FlexMeasures classes (like ``Asset`` and ``Sensor``) from a central place, using ``from flexmeasures import Asset, Sensor`` [see `PR #354 `_] v0.8.0 | January 24, 2022 From a28accaccda485c7c1d29fd70cd89a1ca79bb9cc Mon Sep 17 00:00:00 2001 From: "F.N. Claessen" Date: Thu, 3 Feb 2022 17:17:33 +0100 Subject: [PATCH 4/4] Consider Annotation and GenericAssetType as common classes, too Signed-off-by: F.N. Claessen --- flexmeasures/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/flexmeasures/__init__.py b/flexmeasures/__init__.py index f811dad9d..1322fb24f 100644 --- a/flexmeasures/__init__.py +++ b/flexmeasures/__init__.py @@ -1,8 +1,12 @@ from importlib_metadata import version, PackageNotFoundError +from flexmeasures.data.models.annotations import Annotation # noqa F401 from flexmeasures.data.models.user import Account, AccountRole, User # noqa F401 from flexmeasures.data.models.data_sources import DataSource as Source # noqa F401 -from flexmeasures.data.models.generic_assets import GenericAsset as Asset # noqa F401 +from flexmeasures.data.models.generic_assets import ( # noqa F401 + GenericAsset as Asset, + GenericAssetType as AssetType, +) from flexmeasures.data.models.time_series import Sensor # noqa F401