diff --git a/massive/__init__.py b/massive/__init__.py index da6c5136..04f41281 100644 --- a/massive/__init__.py +++ b/massive/__init__.py @@ -1,6 +1,6 @@ -from .rest import RESTClient +from .rest import RESTClient as RESTClient from .rest.base import version -from .websocket import WebSocketClient +from .websocket import WebSocketClient as WebSocketClient from .exceptions import * __version__ = version diff --git a/massive/modelclass.py b/massive/modelclass.py index 117f7910..0605180a 100644 --- a/massive/modelclass.py +++ b/massive/modelclass.py @@ -1,10 +1,23 @@ import inspect +import sys import typing from dataclasses import dataclass +if typing.TYPE_CHECKING: + if sys.version_info >= (3, 11): + from typing import dataclass_transform + else: + from typing_extensions import dataclass_transform +else: + + def dataclass_transform(**kwargs): + return lambda f: f + + _T = typing.TypeVar("_T") +@dataclass_transform() def modelclass(cls: typing.Type[_T]) -> typing.Type[_T]: cls = dataclass(cls) type_hints = typing.get_type_hints(cls) diff --git a/massive/py.typed b/massive/py.typed new file mode 100644 index 00000000..e69de29b diff --git a/test_rest/test_exports.py b/test_rest/test_exports.py new file mode 100644 index 00000000..3c3c40bc --- /dev/null +++ b/test_rest/test_exports.py @@ -0,0 +1,9 @@ +import unittest + + +class ExportsTest(unittest.TestCase): + def test_star_import(self): + ns = {} + exec("from massive import *", ns) + for name in ("RESTClient", "WebSocketClient", "AuthError", "BadResponse"): + self.assertIn(name, ns)