Skip to content

Commit 2d7e43a

Browse files
fix: pass logging param withing header, rename api_url as base_url and other fixes.
1 parent 0c3aa60 commit 2d7e43a

20 files changed

+180
-177
lines changed

jigsawstack/__init__.py

Lines changed: 46 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
class JigsawStack:
2424
api_key: str
25-
api_url: str
25+
base_url: str
2626
headers: Dict[str, str]
2727
audio: Audio
2828
classification: Classification
@@ -43,7 +43,7 @@ class JigsawStack:
4343
def __init__(
4444
self,
4545
api_key: Union[str, None] = None,
46-
api_url: Union[str, None] = None,
46+
base_url: Union[str, None] = None,
4747
headers: Union[Dict[str, str], None] = None,
4848
) -> None:
4949
if api_key is None:
@@ -54,50 +54,50 @@ def __init__(
5454
"The api_key client option must be set either by passing api_key to the client or by setting the JIGSAWSTACK_API_KEY environment variable"
5555
)
5656

57-
if api_url is None:
58-
api_url = os.environ.get("JIGSAWSTACK_API_URL")
59-
if api_url is None:
60-
api_url = "https://api.jigsawstack.com/"
57+
if base_url is None:
58+
base_url = os.environ.get("JIGSAWSTACK_base_url")
59+
if base_url is None:
60+
base_url = "https://api.jigsawstack.com/"
6161

6262
self.api_key = api_key
63-
self.api_url = api_url
63+
self.base_url = base_url
6464

6565
self.headers = headers or {"Content-Type": "application/json"}
6666

67-
self.audio = Audio(api_key=api_key, api_url=api_url + "/v1")
67+
self.audio = Audio(api_key=api_key, base_url=base_url + "/v1")
6868

69-
self.web = Web(api_key=api_key, api_url=api_url + "/v1")
69+
self.web = Web(api_key=api_key, base_url=base_url + "/v1")
7070

71-
self.sentiment = Sentiment(api_key=api_key, api_url=api_url + "/v1").analyze
71+
self.sentiment = Sentiment(api_key=api_key, base_url=base_url + "/v1").analyze
7272

73-
self.validate = Validate(api_key=api_key, api_url=api_url + "/v1")
74-
self.summary = Summary(api_key=api_key, api_url=api_url + "/v1").summarize
73+
self.validate = Validate(api_key=api_key, base_url=base_url + "/v1")
74+
self.summary = Summary(api_key=api_key, base_url=base_url + "/v1").summarize
7575

76-
self.vision = Vision(api_key=api_key, api_url=api_url + "/v1")
76+
self.vision = Vision(api_key=api_key, base_url=base_url + "/v1")
7777

78-
self.prediction = Prediction(api_key=api_key, api_url=api_url + "/v1").predict
78+
self.prediction = Prediction(api_key=api_key, base_url=base_url + "/v1").predict
7979

80-
self.text_to_sql = SQL(api_key=api_key, api_url=api_url + "/v1").text_to_sql
80+
self.text_to_sql = SQL(api_key=api_key, base_url=base_url + "/v1").text_to_sql
8181

82-
self.store = Store(api_key=api_key, api_url=api_url + "/v1")
83-
self.translate = Translate(api_key=api_key, api_url=api_url + "/v1")
82+
self.store = Store(api_key=api_key, base_url=base_url + "/v1")
83+
self.translate = Translate(api_key=api_key, base_url=base_url + "/v1")
8484

85-
self.embedding = Embedding(api_key=api_key, api_url=api_url + "/v1").execute
85+
self.embedding = Embedding(api_key=api_key, base_url=base_url + "/v1").execute
8686

87-
self.embedding_v2 = EmbeddingV2(api_key=api_key, api_url=api_url + "/v2").execute
87+
self.embedding_v2 = EmbeddingV2(api_key=api_key, base_url=base_url + "/v2").execute
8888

8989
self.image_generation = ImageGeneration(
90-
api_key=api_key, api_url=api_url + "/v1"
90+
api_key=api_key, base_url=base_url + "/v1"
9191
).image_generation
9292

93-
self.classification = Classification(api_key=api_key, api_url=api_url + "/v1").classify
93+
self.classification = Classification(api_key=api_key, base_url=base_url + "/v1").classify
9494

95-
self.prompt_engine = PromptEngine(api_key=api_key, api_url=api_url + "/v1")
95+
self.prompt_engine = PromptEngine(api_key=api_key, base_url=base_url + "/v1")
9696

9797

9898
class AsyncJigsawStack:
9999
api_key: str
100-
api_url: str
100+
base_url: str
101101
headers: Dict[str, str]
102102
audio: AsyncAudio
103103
classification: AsyncClassification
@@ -118,7 +118,7 @@ class AsyncJigsawStack:
118118
def __init__(
119119
self,
120120
api_key: Union[str, None] = None,
121-
api_url: Union[str, None] = None,
121+
base_url: Union[str, None] = None,
122122
headers: Union[Dict[str, str], None] = None,
123123
) -> None:
124124
if api_key is None:
@@ -129,45 +129,47 @@ def __init__(
129129
"The api_key client option must be set either by passing api_key to the client or by setting the JIGSAWSTACK_API_KEY environment variable"
130130
)
131131

132-
if api_url is None:
133-
api_url = os.environ.get("JIGSAWSTACK_API_URL")
134-
if api_url is None:
135-
api_url = "https://api.jigsawstack.com/"
132+
if base_url is None:
133+
base_url = os.environ.get("JIGSAWSTACK_base_url")
134+
if base_url is None:
135+
base_url = "https://api.jigsawstack.com/"
136136

137137
self.api_key = api_key
138-
self.api_url = api_url
138+
self.base_url = base_url
139139
self.headers = headers or {"Content-Type": "application/json"}
140140

141-
self.web = AsyncWeb(api_key=api_key, api_url=api_url + "/v1")
141+
self.web = AsyncWeb(api_key=api_key, base_url=base_url + "/v1")
142142

143-
self.validate = AsyncValidate(api_key=api_key, api_url=api_url + "/v1")
144-
self.audio = AsyncAudio(api_key=api_key, api_url=api_url + "/v1")
143+
self.validate = AsyncValidate(api_key=api_key, base_url=base_url + "/v1")
144+
self.audio = AsyncAudio(api_key=api_key, base_url=base_url + "/v1")
145145

146-
self.vision = AsyncVision(api_key=api_key, api_url=api_url + "/v1")
146+
self.vision = AsyncVision(api_key=api_key, base_url=base_url + "/v1")
147147

148-
self.store = AsyncStore(api_key=api_key, api_url=api_url + "/v1")
148+
self.store = AsyncStore(api_key=api_key, base_url=base_url + "/v1")
149149

150-
self.summary = AsyncSummary(api_key=api_key, api_url=api_url + "/v1").summarize
150+
self.summary = AsyncSummary(api_key=api_key, base_url=base_url + "/v1").summarize
151151

152-
self.prediction = AsyncPrediction(api_key=api_key, api_url=api_url + "/v1").predict
152+
self.prediction = AsyncPrediction(api_key=api_key, base_url=base_url + "/v1").predict
153153

154-
self.text_to_sql = AsyncSQL(api_key=api_key, api_url=api_url + "/v1").text_to_sql
154+
self.text_to_sql = AsyncSQL(api_key=api_key, base_url=base_url + "/v1").text_to_sql
155155

156-
self.sentiment = AsyncSentiment(api_key=api_key, api_url=api_url + "/v1").analyze
156+
self.sentiment = AsyncSentiment(api_key=api_key, base_url=base_url + "/v1").analyze
157157

158-
self.translate = AsyncTranslate(api_key=api_key, api_url=api_url + "/v1")
158+
self.translate = AsyncTranslate(api_key=api_key, base_url=base_url + "/v1")
159159

160-
self.embedding = AsyncEmbedding(api_key=api_key, api_url=api_url + "/v1").execute
160+
self.embedding = AsyncEmbedding(api_key=api_key, base_url=base_url + "/v1").execute
161161

162-
self.embedding_v2 = AsyncEmbeddingV2(api_key=api_key, api_url=api_url + "/v2").execute
162+
self.embedding_v2 = AsyncEmbeddingV2(api_key=api_key, base_url=base_url + "/v2").execute
163163

164164
self.image_generation = AsyncImageGeneration(
165-
api_key=api_key, api_url=api_url + "/v1"
165+
api_key=api_key, base_url=base_url + "/v1"
166166
).image_generation
167167

168-
self.classification = AsyncClassification(api_key=api_key, api_url=api_url + "/v1").classify
168+
self.classification = AsyncClassification(
169+
api_key=api_key, base_url=base_url + "/v1"
170+
).classify
169171

170-
self.prompt_engine = AsyncPromptEngine(api_key=api_key, api_url=api_url + "/v1")
172+
self.prompt_engine = AsyncPromptEngine(api_key=api_key, base_url=base_url + "/v1")
171173

172174

173175
# Create a global instance of the Web class

jigsawstack/_config.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
from typing import Union
1+
from typing import Dict, Union
22

33

44
class ClientConfig:
55
base_url: str
66
api_key: str
7-
disable_request_logging: Union[bool, None] = None
7+
headers: Union[Dict[str, str], None]
88

99
def __init__(
1010
self,
1111
api_key: str,
12-
api_url: str,
13-
disable_request_logging: Union[bool, None] = None,
12+
base_url: str,
13+
headers: Union[Dict[str, str], None] = None,
1414
):
1515
self.api_key = api_key
16-
self.api_url = api_url
17-
self.disable_request_logging = disable_request_logging
16+
self.base_url = base_url
17+
self.headers = headers

jigsawstack/async_request.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414

1515
class AsyncRequestConfig(TypedDict):
16-
api_url: str
16+
base_url: str
1717
api_key: str
1818
headers: Union[Dict[str, str], None]
1919

@@ -25,18 +25,17 @@ def __init__(
2525
path: str,
2626
params: Union[Dict[Any, Any], List[Dict[Any, Any]]],
2727
verb: RequestVerb,
28-
headers: Dict[str, str] = None,
2928
data: Union[bytes, None] = None,
3029
stream: Union[bool, None] = False,
3130
files: Union[Dict[str, Any], None] = None, # Add files parameter
3231
):
3332
self.path = path
3433
self.params = params
3534
self.verb = verb
36-
self.api_url = config.get("api_url")
35+
self.base_url = config.get("base_url")
3736
self.api_key = config.get("api_key")
3837
self.data = data
39-
self.headers = headers or {"Content-Type": "application/json"}
38+
self.headers = config.get("headers", None) or {"Content-Type": "application/json"}
4039
self.stream = stream
4140
self.files = files # Store files for multipart requests
4241

@@ -68,7 +67,7 @@ async def perform(self) -> Union[T, None]:
6867
Async method to make an HTTP request to the JigsawStack API.
6968
"""
7069
async with self.__get_session() as session:
71-
resp = await self.make_request(session, url=f"{self.api_url}{self.path}")
70+
resp = await self.make_request(session, url=f"{self.base_url}{self.path}")
7271

7372
# For binary responses
7473
if resp.status == 200:
@@ -109,7 +108,7 @@ async def perform(self) -> Union[T, None]:
109108

110109
async def perform_file(self) -> Union[T, None]:
111110
async with self.__get_session() as session:
112-
resp = await self.make_request(session, url=f"{self.api_url}{self.path}")
111+
resp = await self.make_request(session, url=f"{self.base_url}{self.path}")
113112

114113
if resp.status != 200:
115114
try:
@@ -198,7 +197,7 @@ async def perform_streaming(self) -> AsyncGenerator[Union[T, str], None]:
198197
AsyncGenerator[Union[T, str], None]: A generator of response chunks
199198
"""
200199
async with self.__get_session() as session:
201-
resp = await self.make_request(session, url=f"{self.api_url}{self.path}")
200+
resp = await self.make_request(session, url=f"{self.base_url}{self.path}")
202201

203202
# delete calls do not return a body
204203
if await resp.text() == "":

jigsawstack/audio.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ class Audio(ClientConfig):
5454
def __init__(
5555
self,
5656
api_key: str,
57-
api_url: str,
57+
base_url: str,
5858
headers: Union[Dict[str, str], None] = None,
5959
):
60-
super().__init__(api_key, api_url, headers)
61-
self.config = RequestConfig(api_url=api_url, api_key=api_key, headers=headers)
60+
super().__init__(api_key, base_url, headers)
61+
self.config = RequestConfig(base_url=base_url, api_key=api_key, headers=headers)
6262

6363
@overload
6464
def speech_to_text(
@@ -103,12 +103,12 @@ class AsyncAudio(ClientConfig):
103103
def __init__(
104104
self,
105105
api_key: str,
106-
api_url: str,
106+
base_url: str,
107107
headers: Union[Dict[str, str], None] = None,
108108
):
109-
super().__init__(api_key, api_url, headers)
109+
super().__init__(api_key, base_url, headers)
110110
self.config = AsyncRequestConfig(
111-
api_url=api_url,
111+
base_url=base_url,
112112
api_key=api_key,
113113
headers=headers,
114114
)

jigsawstack/classification.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ class Classification(ClientConfig):
6767
def __init__(
6868
self,
6969
api_key: str,
70-
api_url: str,
70+
base_url: str,
7171
headers: Union[Dict[str, str], None] = None,
7272
):
73-
super().__init__(api_key, api_url, headers)
73+
super().__init__(api_key, base_url, headers)
7474
self.config = RequestConfig(
75-
api_url=api_url,
75+
base_url=base_url,
7676
api_key=api_key,
7777
headers=headers,
7878
)
@@ -94,12 +94,12 @@ class AsyncClassification(ClientConfig):
9494
def __init__(
9595
self,
9696
api_key: str,
97-
api_url: str,
97+
base_url: str,
9898
headers: Union[Dict[str, str], None] = None,
9999
):
100-
super().__init__(api_key, api_url, headers)
100+
super().__init__(api_key, base_url, headers)
101101
self.config = AsyncRequestConfig(
102-
api_url=api_url,
102+
base_url=base_url,
103103
api_key=api_key,
104104
headers=headers,
105105
)

jigsawstack/embedding.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ class Embedding(ClientConfig):
3333
def __init__(
3434
self,
3535
api_key: str,
36-
api_url: str,
36+
base_url: str,
3737
headers: Union[Dict[str, str], None] = None,
3838
):
39-
super().__init__(api_key, api_url, headers)
39+
super().__init__(api_key, base_url, headers)
4040
self.config = RequestConfig(
41-
api_url=api_url,
41+
base_url=base_url,
4242
api_key=api_key,
4343
headers=headers,
4444
)
@@ -81,12 +81,12 @@ class AsyncEmbedding(ClientConfig):
8181
def __init__(
8282
self,
8383
api_key: str,
84-
api_url: str,
84+
base_url: str,
8585
headers: Union[Dict[str, str], None] = None,
8686
):
87-
super().__init__(api_key, api_url, headers)
87+
super().__init__(api_key, base_url, headers)
8888
self.config = RequestConfig(
89-
api_url=api_url,
89+
base_url=base_url,
9090
api_key=api_key,
9191
headers=headers,
9292
)

jigsawstack/embedding_v2.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ class EmbeddingV2(ClientConfig):
3131
def __init__(
3232
self,
3333
api_key: str,
34-
api_url: str,
34+
base_url: str,
3535
headers: Union[Dict[str, str], None] = None,
3636
):
37-
super().__init__(api_key, api_url, headers)
37+
super().__init__(api_key, base_url, headers)
3838
self.config = RequestConfig(
39-
api_url=api_url,
39+
base_url=base_url,
4040
api_key=api_key,
4141
headers=headers,
4242
)
@@ -79,12 +79,12 @@ class AsyncEmbeddingV2(ClientConfig):
7979
def __init__(
8080
self,
8181
api_key: str,
82-
api_url: str,
82+
base_url: str,
8383
headers: Union[Dict[str, str], None] = None,
8484
):
85-
super().__init__(api_key, api_url, headers)
85+
super().__init__(api_key, base_url, headers)
8686
self.config = RequestConfig(
87-
api_url=api_url,
87+
base_url=base_url,
8888
api_key=api_key,
8989
headers=headers,
9090
)

0 commit comments

Comments
 (0)