-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
[tool.poetry] | ||
name = "seam" | ||
version = "0.7.1" | ||
version = "0.8.0" | ||
description = "SDK for the Seam API written in Python." | ||
authors = ["Seam Labs, Inc. <[email protected]>"] | ||
license = "MIT" | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
from typing import Dict | ||
from urllib.parse import urljoin | ||
import niquests as requests | ||
from importlib.metadata import version | ||
|
||
from seam.constants import LTS_VERSION | ||
from seam.types import AbstractSeamHttpClient, SeamHttpApiError | ||
|
||
SDK_HEADERS = { | ||
"seam-sdk-name": "seamapi/python", | ||
"seam-sdk-version": version("seam"), | ||
"seam-lts-version": LTS_VERSION, | ||
} | ||
|
||
|
||
class SeamHttpClient(requests.Session, AbstractSeamHttpClient): | ||
def __init__(self, base_url: str, auth_headers: Dict[str, str], **kwargs): | ||
super().__init__(**kwargs) | ||
|
||
self.base_url = base_url | ||
headers = {**auth_headers, **kwargs.get("headers", {}), **SDK_HEADERS} | ||
|
||
self.headers.update(headers) | ||
|
||
def request(self, method, url, *args, **kwargs): | ||
url = urljoin(self.base_url, url) | ||
response = super().request(method, url, *args, **kwargs) | ||
|
||
return self._handle_response(response) | ||
|
||
def _handle_response(self, response: requests.Response): | ||
if response.status_code != 200: | ||
raise SeamHttpApiError(response) | ||
|
||
if "application/json" in response.headers["content-type"]: | ||
return response.json() | ||
|
||
return response.text |
This file was deleted.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.