From e76722ba61f13e9813739c5ee7ea52d432ccf26e Mon Sep 17 00:00:00 2001 From: Niklas Siemer <70580458+niklassiemer@users.noreply.github.com> Date: Tue, 23 Jan 2024 09:31:48 +0100 Subject: [PATCH] Lighten the import of pyiron_contrib In the main init, only pyiron_base is imported to update the JOB_CLASS_DICT. --- notebooks/coscine_io.ipynb | 3 ++- pyiron_contrib/RDM/__init__.py | 11 +++++++++++ pyiron_contrib/__init__.py | 15 +++++++-------- tests/unit/RDM/test_storagejob.py | 3 ++- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/notebooks/coscine_io.ipynb b/notebooks/coscine_io.ipynb index 23b789219..29c4ef5cc 100755 --- a/notebooks/coscine_io.ipynb +++ b/notebooks/coscine_io.ipynb @@ -62,7 +62,8 @@ } ], "source": [ - "from pyiron import Project" + "from pyiron import Project\n", + "import pyiron_contrib.RDM" ] }, { diff --git a/pyiron_contrib/RDM/__init__.py b/pyiron_contrib/RDM/__init__.py index e69de29bb..af549eec7 100644 --- a/pyiron_contrib/RDM/__init__.py +++ b/pyiron_contrib/RDM/__init__.py @@ -0,0 +1,11 @@ +import warnings + + +try: + from pyiron import Project +except: + warnings.warn("pyiron module not found, importing Project from pyiron_base") + from pyiron_base import Project + +from pyiron_contrib.generic.storage_interface_toolkit import StorageInterfaceFactory +Project.register_tools("storage_interface", StorageInterfaceFactory) diff --git a/pyiron_contrib/__init__.py b/pyiron_contrib/__init__.py index 308d7e04a..422b8412f 100644 --- a/pyiron_contrib/__init__.py +++ b/pyiron_contrib/__init__.py @@ -3,16 +3,15 @@ import warnings -try: - from pyiron import Project -except: - warnings.warn("pyiron module not found, importing Project from pyiron_base") - from pyiron_base import Project +from pyiron_base import Project as BaseProject, JOB_CLASS_DICT -from pyiron_base import JOB_CLASS_DICT -from pyiron_contrib.generic.storage_interface_toolkit import StorageInterfaceFactory -Project.register_tools("storage_interface", StorageInterfaceFactory) +class Project(BaseProject): + def __init__(self, *args, **kwargs): + warnings.warn("Importing Project from pyiron_contrib is deprecated. " + "Import from appropriate pyiron module (e.g. pyiron) instead.") + super().__init__(*args, **kwargs) + # Make classes available for new pyiron version JOB_CLASS_DICT.update( diff --git a/tests/unit/RDM/test_storagejob.py b/tests/unit/RDM/test_storagejob.py index 4252a616c..5a9350335 100644 --- a/tests/unit/RDM/test_storagejob.py +++ b/tests/unit/RDM/test_storagejob.py @@ -4,7 +4,8 @@ from shutil import rmtree from moto import mock_s3 import boto3 -from pyiron_contrib import Project +from pyiron_base import Project +import pyiron_contrib from pyiron_contrib.RDM.storagejob import StorageJob from pyiron_contrib.generic.s3io import FileS3IO from pyiron_base._tests import TestWithCleanProject