1
- import os
2
1
from typing import Optional , cast
2
+ from urllib .parse import urljoin
3
3
4
4
import requests
5
5
@@ -55,7 +55,7 @@ def list_event_sources(
55
55
continue_ : Optional [str ] = None ,
56
56
) -> EventSourceList :
57
57
resp = requests .get (
58
- url = os . path . join (self .host , "api/v1/event-sources/{namespace}" ).format (
58
+ url = urljoin (self .host , "api/v1/event-sources/{namespace}" ).format (
59
59
namespace = namespace if namespace is not None else self .namespace
60
60
),
61
61
params = {
@@ -81,7 +81,7 @@ def list_event_sources(
81
81
82
82
def create_event_source (self , req : CreateEventSourceRequest , namespace : Optional [str ] = None ) -> EventSource :
83
83
resp = requests .post (
84
- url = os . path . join (self .host , "api/v1/event-sources/{namespace}" ).format (
84
+ url = urljoin (self .host , "api/v1/event-sources/{namespace}" ).format (
85
85
namespace = namespace if namespace is not None else self .namespace
86
86
),
87
87
params = None ,
@@ -99,7 +99,7 @@ def create_event_source(self, req: CreateEventSourceRequest, namespace: Optional
99
99
100
100
def get_event_source (self , name : str , namespace : Optional [str ] = None ) -> EventSource :
101
101
resp = requests .get (
102
- url = os . path . join (self .host , "api/v1/event-sources/{namespace}/{name}" ).format (
102
+ url = urljoin (self .host , "api/v1/event-sources/{namespace}/{name}" ).format (
103
103
name = name , namespace = namespace if namespace is not None else self .namespace
104
104
),
105
105
params = None ,
@@ -117,7 +117,7 @@ def update_event_source(
117
117
self , name : str , req : UpdateEventSourceRequest , namespace : Optional [str ] = None
118
118
) -> EventSource :
119
119
resp = requests .put (
120
- url = os . path . join (self .host , "api/v1/event-sources/{namespace}/{name}" ).format (
120
+ url = urljoin (self .host , "api/v1/event-sources/{namespace}/{name}" ).format (
121
121
name = name , namespace = namespace if namespace is not None else self .namespace
122
122
),
123
123
params = None ,
@@ -145,7 +145,7 @@ def delete_event_source(
145
145
dry_run : Optional [list ] = None ,
146
146
) -> EventSourceDeletedResponse :
147
147
resp = requests .delete (
148
- url = os . path . join (self .host , "api/v1/event-sources/{namespace}/{name}" ).format (
148
+ url = urljoin (self .host , "api/v1/event-sources/{namespace}/{name}" ).format (
149
149
name = name , namespace = namespace if namespace is not None else self .namespace
150
150
),
151
151
params = {
@@ -168,7 +168,7 @@ def delete_event_source(
168
168
169
169
def receive_event (self , discriminator : str , req : Item , namespace : Optional [str ] = None ) -> EventResponse :
170
170
resp = requests .post (
171
- url = os . path . join (self .host , "api/v1/events/{namespace}/{discriminator}" ).format (
171
+ url = urljoin (self .host , "api/v1/events/{namespace}/{discriminator}" ).format (
172
172
discriminator = discriminator , namespace = namespace if namespace is not None else self .namespace
173
173
),
174
174
params = None ,
@@ -186,7 +186,7 @@ def receive_event(self, discriminator: str, req: Item, namespace: Optional[str]
186
186
187
187
def get_info (self ) -> InfoResponse :
188
188
resp = requests .get (
189
- url = os . path . join (self .host , "api/v1/info" ),
189
+ url = urljoin (self .host , "api/v1/info" ),
190
190
params = None ,
191
191
headers = {"Authorization" : f"Bearer { self .token } " },
192
192
data = None ,
@@ -212,7 +212,7 @@ def list_sensors(
212
212
continue_ : Optional [str ] = None ,
213
213
) -> SensorList :
214
214
resp = requests .get (
215
- url = os . path . join (self .host , "api/v1/sensors/{namespace}" ).format (
215
+ url = urljoin (self .host , "api/v1/sensors/{namespace}" ).format (
216
216
namespace = namespace if namespace is not None else self .namespace
217
217
),
218
218
params = {
@@ -238,7 +238,7 @@ def list_sensors(
238
238
239
239
def create_sensor (self , req : CreateSensorRequest , namespace : Optional [str ] = None ) -> Sensor :
240
240
resp = requests .post (
241
- url = os . path . join (self .host , "api/v1/sensors/{namespace}" ).format (
241
+ url = urljoin (self .host , "api/v1/sensors/{namespace}" ).format (
242
242
namespace = namespace if namespace is not None else self .namespace
243
243
),
244
244
params = None ,
@@ -256,7 +256,7 @@ def create_sensor(self, req: CreateSensorRequest, namespace: Optional[str] = Non
256
256
257
257
def get_sensor (self , name : str , namespace : Optional [str ] = None , resource_version : Optional [str ] = None ) -> Sensor :
258
258
resp = requests .get (
259
- url = os . path . join (self .host , "api/v1/sensors/{namespace}/{name}" ).format (
259
+ url = urljoin (self .host , "api/v1/sensors/{namespace}/{name}" ).format (
260
260
name = name , namespace = namespace if namespace is not None else self .namespace
261
261
),
262
262
params = {"getOptions.resourceVersion" : resource_version },
@@ -272,7 +272,7 @@ def get_sensor(self, name: str, namespace: Optional[str] = None, resource_versio
272
272
273
273
def update_sensor (self , name : str , req : UpdateSensorRequest , namespace : Optional [str ] = None ) -> Sensor :
274
274
resp = requests .put (
275
- url = os . path . join (self .host , "api/v1/sensors/{namespace}/{name}" ).format (
275
+ url = urljoin (self .host , "api/v1/sensors/{namespace}/{name}" ).format (
276
276
name = name , namespace = namespace if namespace is not None else self .namespace
277
277
),
278
278
params = None ,
@@ -300,7 +300,7 @@ def delete_sensor(
300
300
dry_run : Optional [list ] = None ,
301
301
) -> DeleteSensorResponse :
302
302
resp = requests .delete (
303
- url = os . path . join (self .host , "api/v1/sensors/{namespace}/{name}" ).format (
303
+ url = urljoin (self .host , "api/v1/sensors/{namespace}/{name}" ).format (
304
304
name = name , namespace = namespace if namespace is not None else self .namespace
305
305
),
306
306
params = {
@@ -335,7 +335,7 @@ def watch_event_sources(
335
335
continue_ : Optional [str ] = None ,
336
336
) -> EventSourceWatchEvent :
337
337
resp = requests .get (
338
- url = os . path . join (self .host , "api/v1/stream/event-sources/{namespace}" ).format (
338
+ url = urljoin (self .host , "api/v1/stream/event-sources/{namespace}" ).format (
339
339
namespace = namespace if namespace is not None else self .namespace
340
340
),
341
341
params = {
@@ -378,7 +378,7 @@ def event_sources_logs(
378
378
insecure_skip_tls_verify_backend : Optional [bool ] = None ,
379
379
) -> EventsourceLogEntry :
380
380
resp = requests .get (
381
- url = os . path . join (self .host , "api/v1/stream/event-sources/{namespace}/logs" ).format (
381
+ url = urljoin (self .host , "api/v1/stream/event-sources/{namespace}/logs" ).format (
382
382
namespace = namespace if namespace is not None else self .namespace
383
383
),
384
384
params = {
@@ -421,7 +421,7 @@ def watch_events(
421
421
continue_ : Optional [str ] = None ,
422
422
) -> Event :
423
423
resp = requests .get (
424
- url = os . path . join (self .host , "api/v1/stream/events/{namespace}" ).format (
424
+ url = urljoin (self .host , "api/v1/stream/events/{namespace}" ).format (
425
425
namespace = namespace if namespace is not None else self .namespace
426
426
),
427
427
params = {
@@ -459,7 +459,7 @@ def watch_sensors(
459
459
continue_ : Optional [str ] = None ,
460
460
) -> SensorWatchEvent :
461
461
resp = requests .get (
462
- url = os . path . join (self .host , "api/v1/stream/sensors/{namespace}" ).format (
462
+ url = urljoin (self .host , "api/v1/stream/sensors/{namespace}" ).format (
463
463
namespace = namespace if namespace is not None else self .namespace
464
464
),
465
465
params = {
@@ -501,7 +501,7 @@ def sensors_logs(
501
501
insecure_skip_tls_verify_backend : Optional [bool ] = None ,
502
502
) -> SensorLogEntry :
503
503
resp = requests .get (
504
- url = os . path . join (self .host , "api/v1/stream/sensors/{namespace}/logs" ).format (
504
+ url = urljoin (self .host , "api/v1/stream/sensors/{namespace}/logs" ).format (
505
505
namespace = namespace if namespace is not None else self .namespace
506
506
),
507
507
params = {
@@ -531,7 +531,7 @@ def sensors_logs(
531
531
532
532
def get_user_info (self ) -> GetUserInfoResponse :
533
533
resp = requests .get (
534
- url = os . path . join (self .host , "api/v1/userinfo" ),
534
+ url = urljoin (self .host , "api/v1/userinfo" ),
535
535
params = None ,
536
536
headers = {"Authorization" : f"Bearer { self .token } " },
537
537
data = None ,
@@ -545,7 +545,7 @@ def get_user_info(self) -> GetUserInfoResponse:
545
545
546
546
def get_version (self ) -> Version :
547
547
resp = requests .get (
548
- url = os . path . join (self .host , "api/v1/version" ),
548
+ url = urljoin (self .host , "api/v1/version" ),
549
549
params = None ,
550
550
headers = {"Authorization" : f"Bearer { self .token } " },
551
551
data = None ,
@@ -568,7 +568,7 @@ def get_artifact_file(
568
568
) -> str :
569
569
"""Get an artifact."""
570
570
resp = requests .get (
571
- url = os . path . join (
571
+ url = urljoin (
572
572
self .host ,
573
573
"artifact-files/{namespace}/{idDiscriminator}/{id}/{nodeId}/{artifactDiscriminator}/{artifactName}" ,
574
574
).format (
@@ -593,7 +593,7 @@ def get_artifact_file(
593
593
def get_output_artifact_by_uid (self , uid : str , node_id : str , artifact_name : str ) -> str :
594
594
"""Get an output artifact by UID."""
595
595
resp = requests .get (
596
- url = os . path . join (self .host , "artifacts-by-uid/{uid}/{nodeId}/{artifactName}" ).format (
596
+ url = urljoin (self .host , "artifacts-by-uid/{uid}/{nodeId}/{artifactName}" ).format (
597
597
uid = uid , nodeId = node_id , artifactName = artifact_name
598
598
),
599
599
params = None ,
@@ -610,7 +610,7 @@ def get_output_artifact_by_uid(self, uid: str, node_id: str, artifact_name: str)
610
610
def get_output_artifact (self , name : str , node_id : str , artifact_name : str , namespace : Optional [str ] = None ) -> str :
611
611
"""Get an output artifact."""
612
612
resp = requests .get (
613
- url = os . path . join (self .host , "artifacts/{namespace}/{name}/{nodeId}/{artifactName}" ).format (
613
+ url = urljoin (self .host , "artifacts/{namespace}/{name}/{nodeId}/{artifactName}" ).format (
614
614
name = name ,
615
615
nodeId = node_id ,
616
616
artifactName = artifact_name ,
@@ -630,7 +630,7 @@ def get_output_artifact(self, name: str, node_id: str, artifact_name: str, names
630
630
def get_input_artifact_by_uid (self , uid : str , node_id : str , artifact_name : str ) -> str :
631
631
"""Get an input artifact by UID."""
632
632
resp = requests .get (
633
- url = os . path . join (self .host , "input-artifacts-by-uid/{uid}/{nodeId}/{artifactName}" ).format (
633
+ url = urljoin (self .host , "input-artifacts-by-uid/{uid}/{nodeId}/{artifactName}" ).format (
634
634
uid = uid , nodeId = node_id , artifactName = artifact_name
635
635
),
636
636
params = None ,
@@ -647,7 +647,7 @@ def get_input_artifact_by_uid(self, uid: str, node_id: str, artifact_name: str)
647
647
def get_input_artifact (self , name : str , node_id : str , artifact_name : str , namespace : Optional [str ] = None ) -> str :
648
648
"""Get an input artifact."""
649
649
resp = requests .get (
650
- url = os . path . join (self .host , "input-artifacts/{namespace}/{name}/{nodeId}/{artifactName}" ).format (
650
+ url = urljoin (self .host , "input-artifacts/{namespace}/{name}/{nodeId}/{artifactName}" ).format (
651
651
name = name ,
652
652
nodeId = node_id ,
653
653
artifactName = artifact_name ,
0 commit comments