diff --git a/docs/source/Exceptions.rst b/docs/source/Exceptions.rst index c33a122b..a57f633b 100644 --- a/docs/source/Exceptions.rst +++ b/docs/source/Exceptions.rst @@ -6,13 +6,21 @@ Exceptions ============================================================== AuthError ============================================================== -.. autoclass:: polygon.websocket.__init__.AuthError +.. autoclass:: polygon.exceptions.AuthError + :members: + :undoc-members: + +============================================================== +BadResponse +============================================================== +.. autoclass:: polygon.exceptions.BadResponse :members: :undoc-members: ============================================================== NoResultsError ============================================================== -.. autoclass:: polygon.rest.base.NoResultsError +.. autoclass:: polygon.exceptions.NoResultsError :members: - :undoc-members: \ No newline at end of file + :undoc-members: + diff --git a/polygon/__init__.py b/polygon/__init__.py index bd1c56d4..da6c5136 100644 --- a/polygon/__init__.py +++ b/polygon/__init__.py @@ -1,5 +1,6 @@ from .rest import RESTClient -from .rest.base import NoResultsError, version -from .websocket import WebSocketClient, AuthError +from .rest.base import version +from .websocket import WebSocketClient +from .exceptions import * __version__ = version diff --git a/polygon/exceptions.py b/polygon/exceptions.py new file mode 100644 index 00000000..7246108c --- /dev/null +++ b/polygon/exceptions.py @@ -0,0 +1,22 @@ +class AuthError(Exception): + """ + Empty or invalid API key + """ + + pass + + +class BadResponse(Exception): + """ + Non-200 response from API + """ + + pass + + +class NoResultsError(Exception): + """ + Missing results key + """ + + pass diff --git a/polygon/rest/base.py b/polygon/rest/base.py index fc300f19..8afbd330 100644 --- a/polygon/rest/base.py +++ b/polygon/rest/base.py @@ -8,6 +8,7 @@ import pkg_resources # part of setuptools from ..logging import get_logger import logging +from ..exceptions import AuthError, BadResponse, NoResultsError logger = get_logger("RESTClient") version = "unknown" @@ -17,10 +18,6 @@ pass -class NoResultsError(Exception): - pass - - class BaseClient: def __init__( self, @@ -33,7 +30,7 @@ def __init__( verbose: bool, ): if api_key is None: - raise Exception( + raise AuthError( f"Must specify env var POLYGON_API_KEY or pass api_key in constructor" ) self.API_KEY = api_key @@ -45,7 +42,7 @@ def __init__( num_pools=num_pools, headers={ "Authorization": "Bearer " + self.API_KEY, - "User-Agent": "Python client " + version, + "User-Agent": f"Polygon.io PythonClient/{version}", }, ca_certs=certifi.where(), cert_reqs="CERT_REQUIRED", @@ -78,7 +75,7 @@ def _get( ) if resp.status != 200: - raise Exception(resp.data.decode("utf-8")) + raise BadResponse(resp.data.decode("utf-8")) if raw: return resp diff --git a/polygon/websocket/__init__.py b/polygon/websocket/__init__.py index 017a9773..b2eab462 100644 --- a/polygon/websocket/__init__.py +++ b/polygon/websocket/__init__.py @@ -11,15 +11,12 @@ from websockets.exceptions import ConnectionClosedOK, ConnectionClosedError from ..logging import get_logger import logging +from ..exceptions import AuthError env_key = "POLYGON_API_KEY" logger = get_logger("WebSocketClient") -class AuthError(Exception): - pass - - class WebSocketClient: def __init__( self, @@ -45,7 +42,7 @@ def __init__( :return: A client. """ if api_key is None: - raise Exception( + raise AuthError( f"Must specify env var {env_key} or pass api_key in constructor" ) self.api_key = api_key pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy