diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f8fd6f9a..98b67c678 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,13 @@ -## neptune-client 0.13.5 +## [UNRELEASED] neptune-client 0.13.5 ### Fixes -- Restore RunMode for backward compatibility ([#775](https://github.com/neptune-ai/neptune-client/pull/775)); +- Restore RunMode for backward compatibility ([#775](https://github.com/neptune-ai/neptune-client/pull/775)) +- Restore imports for backward compatibility ([#777](https://github.com/neptune-ai/neptune-client/pull/777)) ## neptune-client 0.13.4 ### Fixes -- Fix issue that prevented waiting for subprocesses to finish after receiving stop signal from backend ([#774](https://github.com/neptune-ai/neptune-client/pull/774)); +- Fix issue that prevented waiting for subprocesses to finish after receiving stop signal from backend ([#774](https://github.com/neptune-ai/neptune-client/pull/774)) Timeout now overridable using environment var `NEPTUNE_SUBPROCESS_KILL_TIMEOUT` ## neptune-client 0.13.3 diff --git a/dev_tools/prepare_test_imports.py b/dev_tools/prepare_test_imports.py new file mode 100644 index 000000000..9764b0916 --- /dev/null +++ b/dev_tools/prepare_test_imports.py @@ -0,0 +1,79 @@ +# +# Copyright (c) 2021, Neptune Labs Sp. z o.o. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +import pkgutil +import inspect +import importlib + +EXCLUDED_MODULES = [ + "neptune.internal", + "neptune.new.internal", + "neptune.vendor.pynvml", + "neptune.management.internal", +] + + +def extract_module_classes(module_name: str): + for module_info in pkgutil.iter_modules([module_name]): + if module_info.name.startswith("_"): + continue + + if module_info.ispkg: + for module_dotted, classname in extract_module_classes( + f"{module_name}/{module_info.name}" + ): + yield (module_dotted, classname) + else: + module_dotted = module_name.replace("/", ".") + "." + module_info.name + # print(module_dotted) + module = importlib.import_module(module_dotted) + for classname, _ in inspect.getmembers(module, inspect.isclass): + yield (module_dotted, classname) + + +if __name__ == "__main__": + print( + """# +# Copyright (c) 2021, Neptune Labs Sp. z o.o. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# pylint: disable=unused-import,reimported,import-error,no-name-in-module +import unittest + +""" + ) + for module_name, classname in sorted(list(extract_module_classes("neptune"))): + excluded = False + + for excluded_module in EXCLUDED_MODULES: + if module_name.startswith(excluded_module): + excluded = True + break + + if not excluded: + print("from", module_name, "import", classname) + + print( + """ + +class TestImports(unittest.TestCase): + def test_imports(self): + pass""" + ) diff --git a/neptune/new/attributes/namespace.py b/neptune/new/attributes/namespace.py index e5b094ba8..824759b67 100644 --- a/neptune/new/attributes/namespace.py +++ b/neptune/new/attributes/namespace.py @@ -28,6 +28,8 @@ if TYPE_CHECKING: from neptune.new.attribute_container import AttributeContainer +RunStructure = ContainerStructure # backwards compatibility + class Namespace(Attribute, MutableMapping): def __init__(self, container: "AttributeContainer", path: List[str]): diff --git a/neptune/new/run.py b/neptune/new/run.py index 6e25e495b..51265a42e 100644 --- a/neptune/new/run.py +++ b/neptune/new/run.py @@ -23,7 +23,42 @@ ) from neptune.new.internal.state import ContainerState -RunState = ContainerState # backwards compatibility +# backwards compatibility +# pylint: disable=unused-import +from neptune.new.attributes.attribute import Attribute +from neptune.new.attributes.namespace import ( + NamespaceBuilder, + Namespace as NamespaceAttr, +) +from neptune.new.exceptions import ( + MetadataInconsistency, + InactiveRunException, + NeptunePossibleLegacyUsageException, +) +from neptune.new.handler import Handler +from neptune.new.internal.backends.api_model import AttributeType +from neptune.new.internal.operation import DeleteAttribute +from neptune.new.internal.run_structure import ContainerStructure as RunStructure +from neptune.new.internal.utils import ( + is_bool, + is_float, + is_float_like, + is_int, + is_string, + is_string_like, + verify_type, + is_dict_like, +) +from neptune.new.internal.utils.paths import parse_path +from neptune.new.internal.value_to_attribute_visitor import ValueToAttributeVisitor +from neptune.new.types import Boolean, Integer +from neptune.new.types.atoms.datetime import Datetime +from neptune.new.types.atoms.float import Float +from neptune.new.types.atoms.string import String +from neptune.new.types.namespace import Namespace +from neptune.new.types.value import Value + +RunState = ContainerState class Run(AttributeContainer): diff --git a/tests/neptune/test_imports.py b/tests/neptune/test_imports.py new file mode 100644 index 000000000..24e403097 --- /dev/null +++ b/tests/neptune/test_imports.py @@ -0,0 +1,506 @@ +# +# Copyright (c) 2021, Neptune Labs Sp. z o.o. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# pylint: disable=unused-import,reimported,import-error,no-name-in-module +import unittest + + +from neptune.api_exceptions import ChannelAlreadyExists +from neptune.api_exceptions import ChannelDoesNotExist +from neptune.api_exceptions import ChannelNotFound +from neptune.api_exceptions import ChannelsValuesSendBatchError +from neptune.api_exceptions import ConnectionLost +from neptune.api_exceptions import ExperimentAlreadyFinished +from neptune.api_exceptions import ExperimentLimitReached +from neptune.api_exceptions import ExperimentNotFound +from neptune.api_exceptions import ExperimentOperationErrors +from neptune.api_exceptions import ExperimentValidationError +from neptune.api_exceptions import Forbidden +from neptune.api_exceptions import InvalidApiKey +from neptune.api_exceptions import NeptuneApiException +from neptune.api_exceptions import NeptuneException +from neptune.api_exceptions import NotebookNotFound +from neptune.api_exceptions import PathInExperimentNotFound +from neptune.api_exceptions import PathInProjectNotFound +from neptune.api_exceptions import ProjectNotFound +from neptune.api_exceptions import SSLError +from neptune.api_exceptions import ServerError +from neptune.api_exceptions import StorageLimitReached +from neptune.api_exceptions import Unauthorized +from neptune.api_exceptions import WorkspaceNotFound +from neptune.backend import ABC +from neptune.backend import ApiClient +from neptune.backend import BackendApiClient +from neptune.backend import ChannelWithLastValue +from neptune.backend import Dict +from neptune.backend import LeaderboardApiClient +from neptune.checkpoint import Checkpoint +from neptune.exceptions import CannotResolveHostname +from neptune.exceptions import DeleteArtifactUnsupportedInAlphaException +from neptune.exceptions import DeprecatedApiToken +from neptune.exceptions import DownloadArtifactUnsupportedException +from neptune.exceptions import DownloadArtifactsUnsupportedException +from neptune.exceptions import DownloadSourcesException +from neptune.exceptions import FileNotFound +from neptune.exceptions import InvalidChannelValue +from neptune.exceptions import InvalidNeptuneBackend +from neptune.exceptions import InvalidNotebookPath +from neptune.exceptions import NeptuneException +from neptune.exceptions import NeptuneIncorrectImportException +from neptune.exceptions import NeptuneIncorrectProjectQualifiedNameException +from neptune.exceptions import NeptuneLibraryNotInstalledException +from neptune.exceptions import NeptuneMissingApiTokenException +from neptune.exceptions import NeptuneMissingProjectQualifiedNameException +from neptune.exceptions import NeptuneNoExperimentContextException +from neptune.exceptions import NeptuneUninitializedException +from neptune.exceptions import NoChannelValue +from neptune.exceptions import NotADirectory +from neptune.exceptions import NotAFile +from neptune.exceptions import ProjectMigratedToNewStructure +from neptune.exceptions import UnsupportedClientVersion +from neptune.exceptions import UnsupportedInAlphaException +from neptune.experiments import ChannelDoesNotExist +from neptune.experiments import ChannelNamespace +from neptune.experiments import ChannelType +from neptune.experiments import ChannelValue +from neptune.experiments import ChannelsValuesSender +from neptune.experiments import EmptyDataError +from neptune.experiments import ExecutionContext +from neptune.experiments import Experiment +from neptune.experiments import ExperimentAlreadyFinished +from neptune.experiments import InvalidChannelValue +from neptune.experiments import NeptuneIncorrectImportException +from neptune.experiments import NoChannelValue +from neptune.git_info import GitInfo +from neptune.management.exceptions import AccessRevokedOnDeletion +from neptune.management.exceptions import AccessRevokedOnMemberRemoval +from neptune.management.exceptions import BadRequestException +from neptune.management.exceptions import ConflictingWorkspaceName +from neptune.management.exceptions import InvalidProjectName +from neptune.management.exceptions import ManagementOperationFailure +from neptune.management.exceptions import MissingWorkspaceName +from neptune.management.exceptions import ProjectAlreadyExists +from neptune.management.exceptions import ProjectNotFound +from neptune.management.exceptions import ProjectsLimitReached +from neptune.management.exceptions import UnsupportedValue +from neptune.management.exceptions import UserAlreadyHasAccess +from neptune.management.exceptions import UserNotExistsOrWithoutAccess +from neptune.management.exceptions import WorkspaceNotFound +from neptune.model import ChannelWithLastValue +from neptune.model import LeaderboardEntry +from neptune.model import Point +from neptune.model import Points +from neptune.new.attributes.atoms.artifact import Artifact +from neptune.new.attributes.atoms.artifact import ArtifactDriver +from neptune.new.attributes.atoms.artifact import ArtifactDriversMap +from neptune.new.attributes.atoms.artifact import ArtifactFileData +from neptune.new.attributes.atoms.artifact import ArtifactVal +from neptune.new.attributes.atoms.artifact import AssignArtifact +from neptune.new.attributes.atoms.artifact import Atom +from neptune.new.attributes.atoms.artifact import OptionalFeatures +from neptune.new.attributes.atoms.artifact import TrackFilesToArtifact +from neptune.new.attributes.atoms.atom import Atom +from neptune.new.attributes.atoms.atom import Attribute +from neptune.new.attributes.atoms.boolean import AssignBool +from neptune.new.attributes.atoms.boolean import Atom +from neptune.new.attributes.atoms.boolean import Boolean +from neptune.new.attributes.atoms.boolean import BooleanVal +from neptune.new.attributes.atoms.datetime import AssignDatetime +from neptune.new.attributes.atoms.datetime import Atom +from neptune.new.attributes.atoms.datetime import Datetime +from neptune.new.attributes.atoms.datetime import DatetimeVal +from neptune.new.attributes.atoms.datetime import datetime +from neptune.new.attributes.atoms.file import Atom +from neptune.new.attributes.atoms.file import File +from neptune.new.attributes.atoms.file import FileVal +from neptune.new.attributes.atoms.file import UploadFile +from neptune.new.attributes.atoms.file import UploadFileContent +from neptune.new.attributes.atoms.float import AssignFloat +from neptune.new.attributes.atoms.float import Atom +from neptune.new.attributes.atoms.float import Float +from neptune.new.attributes.atoms.float import FloatVal +from neptune.new.attributes.atoms.git_ref import Atom +from neptune.new.attributes.atoms.git_ref import GitRef +from neptune.new.attributes.atoms.integer import AssignInt +from neptune.new.attributes.atoms.integer import Atom +from neptune.new.attributes.atoms.integer import Integer +from neptune.new.attributes.atoms.integer import IntegerVal +from neptune.new.attributes.atoms.notebook_ref import Atom +from neptune.new.attributes.atoms.notebook_ref import NotebookRef +from neptune.new.attributes.atoms.run_state import Atom +from neptune.new.attributes.atoms.run_state import RunState +from neptune.new.attributes.atoms.string import AssignString +from neptune.new.attributes.atoms.string import Atom +from neptune.new.attributes.atoms.string import String +from neptune.new.attributes.atoms.string import StringVal +from neptune.new.attributes.attribute import Attribute +from neptune.new.attributes.attribute import List +from neptune.new.attributes.attribute import NeptuneBackend +from neptune.new.attributes.attribute import Operation +from neptune.new.attributes.file_set import Attribute +from neptune.new.attributes.file_set import DeleteFiles +from neptune.new.attributes.file_set import FileSet +from neptune.new.attributes.file_set import FileSetVal +from neptune.new.attributes.file_set import Iterable +from neptune.new.attributes.file_set import UploadFileSet +from neptune.new.attributes.namespace import Attribute +from neptune.new.attributes.namespace import Dict +from neptune.new.attributes.namespace import Iterator +from neptune.new.attributes.namespace import List +from neptune.new.attributes.namespace import Mapping +from neptune.new.attributes.namespace import MutableMapping +from neptune.new.attributes.namespace import Namespace +from neptune.new.attributes.namespace import NamespaceBuilder +from neptune.new.attributes.namespace import NamespaceVal +from neptune.new.attributes.namespace import NoValue +from neptune.new.attributes.namespace import RunStructure +from neptune.new.attributes.series.fetchable_series import Dict +from neptune.new.attributes.series.fetchable_series import FetchableSeries +from neptune.new.attributes.series.fetchable_series import FloatSeriesValues +from neptune.new.attributes.series.fetchable_series import Generic +from neptune.new.attributes.series.fetchable_series import StringSeriesValues +from neptune.new.attributes.series.fetchable_series import TypeVar +from neptune.new.attributes.series.fetchable_series import datetime +from neptune.new.attributes.series.file_series import ClearImageLog +from neptune.new.attributes.series.file_series import Data +from neptune.new.attributes.series.file_series import File +from neptune.new.attributes.series.file_series import FileNotFound +from neptune.new.attributes.series.file_series import FileSeries +from neptune.new.attributes.series.file_series import FileSeriesVal +from neptune.new.attributes.series.file_series import ImageValue +from neptune.new.attributes.series.file_series import Iterable +from neptune.new.attributes.series.file_series import LogImages +from neptune.new.attributes.series.file_series import Operation +from neptune.new.attributes.series.file_series import OperationNotSupported +from neptune.new.attributes.series.file_series import Series +from neptune.new.attributes.series.file_series import Val +from neptune.new.attributes.series.float_series import ClearFloatLog +from neptune.new.attributes.series.float_series import ConfigFloatSeries +from neptune.new.attributes.series.float_series import FetchableSeries +from neptune.new.attributes.series.float_series import FloatSeries +from neptune.new.attributes.series.float_series import FloatSeriesVal +from neptune.new.attributes.series.float_series import FloatSeriesValues +from neptune.new.attributes.series.float_series import Iterable +from neptune.new.attributes.series.float_series import LogFloats +from neptune.new.attributes.series.float_series import Operation +from neptune.new.attributes.series.float_series import Series +from neptune.new.attributes.series.float_series import Val +from neptune.new.attributes.series.series import Attribute +from neptune.new.attributes.series.series import Generic +from neptune.new.attributes.series.series import Iterable +from neptune.new.attributes.series.series import Operation +from neptune.new.attributes.series.series import Series +from neptune.new.attributes.series.series import SeriesVal +from neptune.new.attributes.series.series import TypeVar +from neptune.new.attributes.series.string_series import ClearStringLog +from neptune.new.attributes.series.string_series import Data +from neptune.new.attributes.series.string_series import FetchableSeries +from neptune.new.attributes.series.string_series import Iterable +from neptune.new.attributes.series.string_series import List +from neptune.new.attributes.series.string_series import LogStrings +from neptune.new.attributes.series.string_series import Operation +from neptune.new.attributes.series.string_series import Series +from neptune.new.attributes.series.string_series import StringSeries +from neptune.new.attributes.series.string_series import StringSeriesVal +from neptune.new.attributes.series.string_series import StringSeriesValues +from neptune.new.attributes.series.string_series import Val +from neptune.new.attributes.sets.set import Attribute +from neptune.new.attributes.sets.set import Set +from neptune.new.attributes.sets.string_set import AddStrings +from neptune.new.attributes.sets.string_set import ClearStringSet +from neptune.new.attributes.sets.string_set import Iterable +from neptune.new.attributes.sets.string_set import RemoveStrings +from neptune.new.attributes.sets.string_set import Set +from neptune.new.attributes.sets.string_set import StringSet +from neptune.new.attributes.sets.string_set import StringSetVal +from neptune.new.attributes.utils import Artifact +from neptune.new.attributes.utils import AttributeType +from neptune.new.attributes.utils import Boolean +from neptune.new.attributes.utils import Datetime +from neptune.new.attributes.utils import File +from neptune.new.attributes.utils import FileSeries +from neptune.new.attributes.utils import FileSet +from neptune.new.attributes.utils import Float +from neptune.new.attributes.utils import FloatSeries +from neptune.new.attributes.utils import GitRef +from neptune.new.attributes.utils import Integer +from neptune.new.attributes.utils import InternalClientError +from neptune.new.attributes.utils import List +from neptune.new.attributes.utils import NotebookRef +from neptune.new.attributes.utils import RunState +from neptune.new.attributes.utils import String +from neptune.new.attributes.utils import StringSeries +from neptune.new.attributes.utils import StringSet +from neptune.new.exceptions import ArtifactNotFoundException +from neptune.new.exceptions import ArtifactUploadingError +from neptune.new.exceptions import CannotResolveHostname +from neptune.new.exceptions import CannotSynchronizeOfflineRunsWithoutProject +from neptune.new.exceptions import ClientHttpError +from neptune.new.exceptions import ExceptionWithProjectsWorkspacesListing +from neptune.new.exceptions import FetchAttributeNotFoundException +from neptune.new.exceptions import FileNotFound +from neptune.new.exceptions import FileSetUploadError +from neptune.new.exceptions import FileUploadError +from neptune.new.exceptions import Forbidden +from neptune.new.exceptions import InactiveRunException +from neptune.new.exceptions import InternalClientError +from neptune.new.exceptions import InternalServerError +from neptune.new.exceptions import List +from neptune.new.exceptions import MalformedOperation +from neptune.new.exceptions import MetadataInconsistency +from neptune.new.exceptions import MissingFieldException +from neptune.new.exceptions import NeedExistingRunForReadOnlyMode +from neptune.new.exceptions import NeptuneApiException +from neptune.new.exceptions import NeptuneConnectionLostException +from neptune.new.exceptions import NeptuneEmptyLocationException +from neptune.new.exceptions import NeptuneException +from neptune.new.exceptions import NeptuneFeaturesNotAvailableException +from neptune.new.exceptions import NeptuneIntegrationNotInstalledException +from neptune.new.exceptions import NeptuneInvalidApiTokenException +from neptune.new.exceptions import NeptuneLegacyIncompatibilityException +from neptune.new.exceptions import NeptuneLegacyProjectException +from neptune.new.exceptions import NeptuneLimitExceedException +from neptune.new.exceptions import NeptuneLocalStorageAccessException +from neptune.new.exceptions import NeptuneMissingApiTokenException +from neptune.new.exceptions import NeptuneMissingProjectNameException +from neptune.new.exceptions import NeptuneOfflineModeFetchException +from neptune.new.exceptions import NeptunePossibleLegacyUsageException +from neptune.new.exceptions import NeptuneRemoteStorageAccessException +from neptune.new.exceptions import NeptuneRemoteStorageCredentialsException +from neptune.new.exceptions import NeptuneRunResumeAndCustomIdCollision +from neptune.new.exceptions import NeptuneStorageLimitException +from neptune.new.exceptions import NeptuneUnhandledArtifactSchemeException +from neptune.new.exceptions import NeptuneUnhandledArtifactTypeException +from neptune.new.exceptions import NeptuneUninitializedException +from neptune.new.exceptions import NeptuneUnsupportedArtifactFunctionalityException +from neptune.new.exceptions import OperationNotSupported +from neptune.new.exceptions import PlotlyIncompatibilityException +from neptune.new.exceptions import Project +from neptune.new.exceptions import ProjectNameCollision +from neptune.new.exceptions import ProjectNotFound +from neptune.new.exceptions import RunNotFound +from neptune.new.exceptions import RunUUIDNotFound +from neptune.new.exceptions import SSLError +from neptune.new.exceptions import Unauthorized +from neptune.new.exceptions import UnsupportedClientVersion +from neptune.new.exceptions import Version +from neptune.new.exceptions import Workspace +from neptune.new.handler import Artifact +from neptune.new.handler import ArtifactFileData +from neptune.new.handler import File +from neptune.new.handler import FileSeries +from neptune.new.handler import FileSet +from neptune.new.handler import FileVal +from neptune.new.handler import FloatSeries +from neptune.new.handler import Handler +from neptune.new.handler import Iterable +from neptune.new.handler import List +from neptune.new.handler import NeptuneException +from neptune.new.handler import StringSeries +from neptune.new.handler import StringSet +from neptune.new.integrations.python_logger import Logger +from neptune.new.integrations.python_logger import NeptuneHandler +from neptune.new.integrations.python_logger import Run +from neptune.new.integrations.python_logger import RunState +from neptune.new.logging.logger import Logger +from neptune.new.logging.logger import Run +from neptune.new.project import HostedNeptuneBackend +from neptune.new.project import Iterable +from neptune.new.project import Project +from neptune.new.project import RunsTable +from neptune.new.run import Attribute +from neptune.new.run import AttributeType +from neptune.new.run import BackgroundJob +from neptune.new.run import Boolean +from neptune.new.run import Datetime +from neptune.new.run import DeleteAttribute +from neptune.new.run import Float +from neptune.new.run import Handler +from neptune.new.run import InactiveRunException +from neptune.new.run import Integer +from neptune.new.run import MetadataInconsistency +from neptune.new.run import Namespace +from neptune.new.run import NamespaceAttr +from neptune.new.run import NamespaceBuilder +from neptune.new.run import NeptuneBackend +from neptune.new.run import NeptunePossibleLegacyUsageException +from neptune.new.run import OperationProcessor +from neptune.new.run import Run +from neptune.new.run import RunState +from neptune.new.run import RunStructure +from neptune.new.run import String +from neptune.new.run import Value +from neptune.new.run import ValueToAttributeVisitor +from neptune.new.runs_table import AttributeType +from neptune.new.runs_table import AttributeWithProperties +from neptune.new.runs_table import Dict +from neptune.new.runs_table import HostedNeptuneBackend +from neptune.new.runs_table import LeaderboardEntry +from neptune.new.runs_table import LeaderboardHandler +from neptune.new.runs_table import List +from neptune.new.runs_table import MetadataInconsistency +from neptune.new.runs_table import RunsTable +from neptune.new.runs_table import RunsTableEntry +from neptune.new.runs_table import datetime +from neptune.new.sync import ApiRun +from neptune.new.sync import CannotSynchronizeOfflineRunsWithoutProject +from neptune.new.sync import Credentials +from neptune.new.sync import DiskQueue +from neptune.new.sync import HostedNeptuneBackend +from neptune.new.sync import Iterable +from neptune.new.sync import List +from neptune.new.sync import NeptuneBackend +from neptune.new.sync import NeptuneConnectionLostException +from neptune.new.sync import NeptuneException +from neptune.new.sync import Operation +from neptune.new.sync import Path +from neptune.new.sync import Project +from neptune.new.sync import ProjectNotFound +from neptune.new.sync import RunNotFound +from neptune.new.sync import Sequence +from neptune.new.sync import Tuple +from neptune.new.types.atoms.artifact import Artifact +from neptune.new.types.atoms.artifact import Atom +from neptune.new.types.atoms.artifact import FileHasher +from neptune.new.types.atoms.artifact import TypeVar +from neptune.new.types.atoms.atom import Atom +from neptune.new.types.atoms.atom import TypeVar +from neptune.new.types.atoms.atom import Value +from neptune.new.types.atoms.boolean import Atom +from neptune.new.types.atoms.boolean import Boolean +from neptune.new.types.atoms.boolean import TypeVar +from neptune.new.types.atoms.datetime import Atom +from neptune.new.types.atoms.datetime import Datetime +from neptune.new.types.atoms.datetime import TypeVar +from neptune.new.types.atoms.datetime import datetime +from neptune.new.types.atoms.file import Atom +from neptune.new.types.atoms.file import File +from neptune.new.types.atoms.file import IOBase +from neptune.new.types.atoms.file import TypeVar +from neptune.new.types.atoms.float import Atom +from neptune.new.types.atoms.float import Float +from neptune.new.types.atoms.float import TypeVar +from neptune.new.types.atoms.git_ref import Atom +from neptune.new.types.atoms.git_ref import GitRef +from neptune.new.types.atoms.git_ref import List +from neptune.new.types.atoms.git_ref import TypeVar +from neptune.new.types.atoms.git_ref import datetime +from neptune.new.types.atoms.integer import Atom +from neptune.new.types.atoms.integer import Integer +from neptune.new.types.atoms.integer import TypeVar +from neptune.new.types.atoms.string import Atom +from neptune.new.types.atoms.string import String +from neptune.new.types.atoms.string import TypeVar +from neptune.new.types.file_set import FileSet +from neptune.new.types.file_set import Iterable +from neptune.new.types.file_set import List +from neptune.new.types.file_set import TypeVar +from neptune.new.types.file_set import Value +from neptune.new.types.namespace import Namespace +from neptune.new.types.namespace import TypeVar +from neptune.new.types.namespace import Value +from neptune.new.types.series.file_series import File +from neptune.new.types.series.file_series import FileSeries +from neptune.new.types.series.file_series import List +from neptune.new.types.series.file_series import Series +from neptune.new.types.series.file_series import TypeVar +from neptune.new.types.series.float_series import FloatSeries +from neptune.new.types.series.float_series import Series +from neptune.new.types.series.float_series import TypeVar +from neptune.new.types.series.series import Series +from neptune.new.types.series.series import TypeVar +from neptune.new.types.series.series import Value +from neptune.new.types.series.series_value import Generic +from neptune.new.types.series.series_value import SeriesValue +from neptune.new.types.series.series_value import TypeVar +from neptune.new.types.series.string_series import Series +from neptune.new.types.series.string_series import StringSeries +from neptune.new.types.series.string_series import TypeVar +from neptune.new.types.sets.set import Set +from neptune.new.types.sets.set import TypeVar +from neptune.new.types.sets.set import Value +from neptune.new.types.sets.string_set import Iterable +from neptune.new.types.sets.string_set import Set +from neptune.new.types.sets.string_set import StringSet +from neptune.new.types.sets.string_set import TypeVar +from neptune.new.types.value import TypeVar +from neptune.new.types.value import Value +from neptune.new.types.value_visitor import Artifact +from neptune.new.types.value_visitor import Boolean +from neptune.new.types.value_visitor import Datetime +from neptune.new.types.value_visitor import File +from neptune.new.types.value_visitor import FileSeries +from neptune.new.types.value_visitor import FileSet +from neptune.new.types.value_visitor import Float +from neptune.new.types.value_visitor import FloatSeries +from neptune.new.types.value_visitor import Generic +from neptune.new.types.value_visitor import GitRef +from neptune.new.types.value_visitor import Integer +from neptune.new.types.value_visitor import Namespace +from neptune.new.types.value_visitor import String +from neptune.new.types.value_visitor import StringSeries +from neptune.new.types.value_visitor import StringSet +from neptune.new.types.value_visitor import TypeVar +from neptune.new.types.value_visitor import Value +from neptune.new.types.value_visitor import ValueVisitor +from neptune.notebook import Notebook +from neptune.oauth import AuthBase +from neptune.oauth import Authenticator +from neptune.oauth import HTTPUnauthorized +from neptune.oauth import NeptuneAuth +from neptune.oauth import NeptuneAuthenticator +from neptune.oauth import NeptuneInvalidApiTokenException +from neptune.oauth import OAuth2Error +from neptune.oauth import OAuth2Session +from neptune.oauth import TokenExpiredError +from neptune.projects import DefaultAbortImpl +from neptune.projects import Experiment +from neptune.projects import NeptuneNoExperimentContextException +from neptune.projects import Project +from neptune.sessions import HostedNeptuneBackendApiClient +from neptune.sessions import OrderedDict +from neptune.sessions import Project +from neptune.sessions import Session +from neptune.utils import BravadoConnectionError +from neptune.utils import BravadoTimeoutError +from neptune.utils import ConnectionLost +from neptune.utils import FileNotFound +from neptune.utils import Forbidden +from neptune.utils import GitInfo +from neptune.utils import HTTPBadGateway +from neptune.utils import HTTPBadRequest +from neptune.utils import HTTPForbidden +from neptune.utils import HTTPGatewayTimeout +from neptune.utils import HTTPInternalServerError +from neptune.utils import HTTPRequestTimeout +from neptune.utils import HTTPServerError +from neptune.utils import HTTPServiceUnavailable +from neptune.utils import HTTPUnauthorized +from neptune.utils import InvalidNotebookPath +from neptune.utils import JSONDecodeError +from neptune.utils import NeptuneIncorrectProjectQualifiedNameException +from neptune.utils import NeptuneMissingProjectQualifiedNameException +from neptune.utils import NoopObject +from neptune.utils import NotADirectory +from neptune.utils import NotAFile +from neptune.utils import ProjectMigratedToNewStructure +from neptune.utils import SSLError +from neptune.utils import ServerError +from neptune.utils import Unauthorized + + +class TestImports(unittest.TestCase): + def test_imports(self): + pass