stadiamaps 1.0.6__py3-none-any.whl → 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. stadiamaps/__init__.py +6 -24
  2. stadiamaps/api/geocoding_api.py +1917 -760
  3. stadiamaps/api/geospatial_api.py +483 -221
  4. stadiamaps/api/routing_api.py +1615 -723
  5. stadiamaps/api_client.py +275 -272
  6. stadiamaps/api_response.py +12 -16
  7. stadiamaps/configuration.py +13 -11
  8. stadiamaps/exceptions.py +67 -30
  9. stadiamaps/models/__init__.py +5 -23
  10. stadiamaps/models/access.py +44 -26
  11. stadiamaps/models/admin_region.py +46 -28
  12. stadiamaps/models/administrative.py +48 -30
  13. stadiamaps/models/auto_costing_options.py +69 -48
  14. stadiamaps/models/auto_costing_options_all_of.py +1 -1
  15. stadiamaps/models/base_costing_options.py +52 -33
  16. stadiamaps/models/base_trace_request.py +70 -40
  17. stadiamaps/models/bicycle_costing_options.py +61 -42
  18. stadiamaps/models/bicycle_costing_options_all_of.py +1 -1
  19. stadiamaps/models/bike_network.py +42 -24
  20. stadiamaps/models/contour.py +45 -27
  21. stadiamaps/models/coordinate.py +45 -26
  22. stadiamaps/models/costing_model.py +10 -12
  23. stadiamaps/models/costing_options.py +51 -33
  24. stadiamaps/models/directions_options.py +45 -27
  25. stadiamaps/models/distance_unit.py +8 -11
  26. stadiamaps/models/edge_sign.py +46 -28
  27. stadiamaps/models/edge_use.py +8 -11
  28. stadiamaps/models/end_node.py +48 -30
  29. stadiamaps/models/geo_attributes.py +47 -29
  30. stadiamaps/models/geo_json_geometry.py +25 -25
  31. stadiamaps/models/geo_json_geometry_base.py +45 -27
  32. stadiamaps/models/geo_json_line_string.py +47 -28
  33. stadiamaps/models/geo_json_line_string_all_of.py +2 -2
  34. stadiamaps/models/geo_json_point.py +47 -28
  35. stadiamaps/models/geo_json_point_all_of.py +2 -2
  36. stadiamaps/models/geo_json_polygon.py +47 -28
  37. stadiamaps/models/geo_json_polygon_all_of.py +2 -2
  38. stadiamaps/models/geocoding_object.py +46 -28
  39. stadiamaps/models/height_request.py +55 -34
  40. stadiamaps/models/height_response.py +49 -30
  41. stadiamaps/models/highway_classification.py +52 -34
  42. stadiamaps/models/intersecting_edge.py +45 -27
  43. stadiamaps/models/isochrone_costing_model.py +8 -11
  44. stadiamaps/models/isochrone_feature.py +45 -27
  45. stadiamaps/models/isochrone_properties.py +48 -30
  46. stadiamaps/models/isochrone_request.py +54 -35
  47. stadiamaps/models/isochrone_response.py +47 -29
  48. stadiamaps/models/locate_detailed_edge.py +73 -55
  49. stadiamaps/models/locate_edge.py +56 -39
  50. stadiamaps/models/locate_edge_info.py +47 -29
  51. stadiamaps/models/locate_node.py +50 -31
  52. stadiamaps/models/locate_node_all_of.py +1 -1
  53. stadiamaps/models/locate_object.py +49 -31
  54. stadiamaps/models/maneuver_sign.py +50 -32
  55. stadiamaps/models/maneuver_sign_element.py +45 -27
  56. stadiamaps/models/map_match_costing_model.py +8 -11
  57. stadiamaps/models/map_match_request.py +74 -44
  58. stadiamaps/models/map_match_request_all_of.py +1 -1
  59. stadiamaps/models/map_match_route_response.py +57 -29
  60. stadiamaps/models/map_match_route_response_all_of.py +1 -1
  61. stadiamaps/models/map_match_trace_options.py +47 -29
  62. stadiamaps/models/map_match_waypoint.py +49 -30
  63. stadiamaps/models/map_match_waypoint_all_of.py +1 -1
  64. stadiamaps/models/matched_point.py +52 -34
  65. stadiamaps/models/matrix_costing_model.py +9 -12
  66. stadiamaps/models/matrix_distance.py +46 -28
  67. stadiamaps/models/matrix_request.py +70 -39
  68. stadiamaps/models/matrix_response.py +60 -36
  69. stadiamaps/models/motor_scooter_costing_options.py +70 -49
  70. stadiamaps/models/motor_scooter_costing_options_all_of.py +1 -1
  71. stadiamaps/models/motorcycle_costing_options.py +69 -48
  72. stadiamaps/models/motorcycle_costing_options_all_of.py +1 -1
  73. stadiamaps/models/nearest_roads_request.py +65 -34
  74. stadiamaps/models/node_id.py +42 -24
  75. stadiamaps/models/node_type.py +8 -11
  76. stadiamaps/models/optimized_route_request.py +66 -35
  77. stadiamaps/models/pedestrian_costing_options.py +59 -40
  78. stadiamaps/models/pelias_geo_json_feature.py +50 -31
  79. stadiamaps/models/pelias_geo_json_properties.py +54 -36
  80. stadiamaps/models/pelias_geo_json_properties_addendum.py +43 -25
  81. stadiamaps/models/pelias_geo_json_properties_addendum_osm.py +42 -24
  82. stadiamaps/models/pelias_layer.py +8 -11
  83. stadiamaps/models/pelias_response.py +49 -30
  84. stadiamaps/models/pelias_response_geocoding.py +1 -1
  85. stadiamaps/models/pelias_source.py +8 -11
  86. stadiamaps/models/restrictions.py +44 -26
  87. stadiamaps/models/road_class.py +8 -11
  88. stadiamaps/models/route_leg.py +48 -29
  89. stadiamaps/models/route_maneuver.py +73 -55
  90. stadiamaps/models/route_request.py +76 -43
  91. stadiamaps/models/route_response.py +56 -28
  92. stadiamaps/models/route_response_alternates_inner.py +105 -0
  93. stadiamaps/models/route_response_trip.py +1 -1
  94. stadiamaps/models/route_summary.py +48 -30
  95. stadiamaps/models/route_trip.py +135 -0
  96. stadiamaps/models/routing_response_waypoint.py +49 -30
  97. stadiamaps/models/routing_response_waypoint_all_of.py +1 -1
  98. stadiamaps/models/routing_waypoint.py +60 -41
  99. stadiamaps/models/routing_waypoint_all_of.py +1 -1
  100. stadiamaps/models/routing_waypoint_all_of_search_filter.py +48 -30
  101. stadiamaps/models/simple_routing_waypoint.py +48 -29
  102. stadiamaps/models/simple_routing_waypoint_all_of.py +1 -1
  103. stadiamaps/models/speeds.py +49 -31
  104. stadiamaps/models/trace_attribute_filter_options.py +47 -28
  105. stadiamaps/models/trace_attribute_key.py +8 -11
  106. stadiamaps/models/trace_attributes_base_response.py +51 -32
  107. stadiamaps/models/trace_attributes_request.py +72 -42
  108. stadiamaps/models/trace_attributes_request_all_of.py +1 -1
  109. stadiamaps/models/trace_attributes_request_all_of_filters.py +2 -2
  110. stadiamaps/models/trace_attributes_response.py +54 -35
  111. stadiamaps/models/trace_attributes_response_all_of.py +1 -1
  112. stadiamaps/models/trace_edge.py +88 -70
  113. stadiamaps/models/travel_mode.py +8 -11
  114. stadiamaps/models/traversability.py +8 -11
  115. stadiamaps/models/truck_costing_options.py +72 -51
  116. stadiamaps/models/truck_costing_options_all_of.py +1 -1
  117. stadiamaps/models/tz_response.py +45 -27
  118. stadiamaps/models/valhalla_languages.py +8 -11
  119. stadiamaps/models/valhalla_long_units.py +8 -11
  120. stadiamaps/models/warning.py +42 -24
  121. stadiamaps/py.typed +0 -0
  122. stadiamaps/rest.py +127 -172
  123. {stadiamaps-1.0.6.dist-info → stadiamaps-2.0.0.dist-info}/METADATA +4 -4
  124. stadiamaps-2.0.0.dist-info/RECORD +128 -0
  125. {stadiamaps-1.0.6.dist-info → stadiamaps-2.0.0.dist-info}/WHEEL +1 -1
  126. stadiamaps-1.0.6.dist-info/RECORD +0 -125
  127. {stadiamaps-1.0.6.dist-info → stadiamaps-2.0.0.dist-info}/LICENSE.txt +0 -0
  128. {stadiamaps-1.0.6.dist-info → stadiamaps-2.0.0.dist-info}/top_level.txt +0 -0
stadiamaps/rest.py CHANGED
@@ -3,55 +3,67 @@
3
3
  """
4
4
  Stadia Maps Geospatial APIs
5
5
 
6
- The Stadia Maps Geospatial APIs provide you with the data you need to build awesome applications. # noqa: E501
6
+ The Stadia Maps Geospatial APIs provide you with the data you need to build awesome applications.
7
7
 
8
- The version of the OpenAPI document: 5.0.5
8
+ The version of the OpenAPI document: 6.0.0
9
9
  Contact: support@stadiamaps.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
12
12
  Do not edit the class manually.
13
- """
13
+ """ # noqa: E501
14
14
 
15
15
 
16
16
  import io
17
17
  import json
18
- import logging
19
18
  import re
20
19
  import ssl
21
20
 
22
- from urllib.parse import urlencode, quote_plus
23
21
  import urllib3
24
22
 
25
- from stadiamaps.exceptions import ApiException, UnauthorizedException, ForbiddenException, NotFoundException, ServiceException, ApiValueError
23
+ from stadiamaps.exceptions import ApiException, ApiValueError
24
+
25
+ SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
26
+ RESTResponseType = urllib3.HTTPResponse
26
27
 
27
28
 
28
- logger = logging.getLogger(__name__)
29
+ def is_socks_proxy_url(url):
30
+ if url is None:
31
+ return False
32
+ split_section = url.split("://")
33
+ if len(split_section) < 2:
34
+ return False
35
+ else:
36
+ return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES
29
37
 
30
38
 
31
39
  class RESTResponse(io.IOBase):
32
40
 
33
- def __init__(self, resp):
34
- self.urllib3_response = resp
41
+ def __init__(self, resp) -> None:
42
+ self.response = resp
35
43
  self.status = resp.status
36
44
  self.reason = resp.reason
37
- self.data = resp.data
45
+ self.data = None
46
+
47
+ def read(self):
48
+ if self.data is None:
49
+ self.data = self.response.data
50
+ return self.data
38
51
 
39
52
  def getheaders(self):
40
53
  """Returns a dictionary of the response headers."""
41
- return self.urllib3_response.headers
54
+ return self.response.headers
42
55
 
43
56
  def getheader(self, name, default=None):
44
57
  """Returns a given response header."""
45
- return self.urllib3_response.headers.get(name, default)
58
+ return self.response.headers.get(name, default)
46
59
 
47
60
 
48
- class RESTClientObject(object):
61
+ class RESTClientObject:
49
62
 
50
- def __init__(self, configuration, pools_size=4, maxsize=None):
63
+ def __init__(self, configuration) -> None:
51
64
  # urllib3.PoolManager will pass all kw parameters to connectionpool
52
65
  # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
53
66
  # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
54
- # maxsize is the number of requests to host that are allowed in parallel # noqa: E501
55
67
  # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
56
68
 
57
69
  # cert_reqs
@@ -60,74 +72,79 @@ class RESTClientObject(object):
60
72
  else:
61
73
  cert_reqs = ssl.CERT_NONE
62
74
 
63
- addition_pool_args = {}
75
+ pool_args = {
76
+ "cert_reqs": cert_reqs,
77
+ "ca_certs": configuration.ssl_ca_cert,
78
+ "cert_file": configuration.cert_file,
79
+ "key_file": configuration.key_file,
80
+ }
64
81
  if configuration.assert_hostname is not None:
65
- addition_pool_args['assert_hostname'] = configuration.assert_hostname # noqa: E501
82
+ pool_args['assert_hostname'] = (
83
+ configuration.assert_hostname
84
+ )
66
85
 
67
86
  if configuration.retries is not None:
68
- addition_pool_args['retries'] = configuration.retries
87
+ pool_args['retries'] = configuration.retries
69
88
 
70
89
  if configuration.tls_server_name:
71
- addition_pool_args['server_hostname'] = configuration.tls_server_name
90
+ pool_args['server_hostname'] = configuration.tls_server_name
72
91
 
73
92
 
74
93
  if configuration.socket_options is not None:
75
- addition_pool_args['socket_options'] = configuration.socket_options
94
+ pool_args['socket_options'] = configuration.socket_options
76
95
 
77
- if maxsize is None:
78
- if configuration.connection_pool_maxsize is not None:
79
- maxsize = configuration.connection_pool_maxsize
80
- else:
81
- maxsize = 4
96
+ if configuration.connection_pool_maxsize is not None:
97
+ pool_args['maxsize'] = configuration.connection_pool_maxsize
82
98
 
83
99
  # https pool manager
100
+ self.pool_manager: urllib3.PoolManager
101
+
84
102
  if configuration.proxy:
85
- self.pool_manager = urllib3.ProxyManager(
86
- num_pools=pools_size,
87
- maxsize=maxsize,
88
- cert_reqs=cert_reqs,
89
- ca_certs=configuration.ssl_ca_cert,
90
- cert_file=configuration.cert_file,
91
- key_file=configuration.key_file,
92
- proxy_url=configuration.proxy,
93
- proxy_headers=configuration.proxy_headers,
94
- **addition_pool_args
95
- )
103
+ if is_socks_proxy_url(configuration.proxy):
104
+ from urllib3.contrib.socks import SOCKSProxyManager
105
+ pool_args["proxy_url"] = configuration.proxy
106
+ pool_args["headers"] = configuration.proxy_headers
107
+ self.pool_manager = SOCKSProxyManager(**pool_args)
108
+ else:
109
+ pool_args["proxy_url"] = configuration.proxy
110
+ pool_args["proxy_headers"] = configuration.proxy_headers
111
+ self.pool_manager = urllib3.ProxyManager(**pool_args)
96
112
  else:
97
- self.pool_manager = urllib3.PoolManager(
98
- num_pools=pools_size,
99
- maxsize=maxsize,
100
- cert_reqs=cert_reqs,
101
- ca_certs=configuration.ssl_ca_cert,
102
- cert_file=configuration.cert_file,
103
- key_file=configuration.key_file,
104
- **addition_pool_args
105
- )
106
-
107
- def request(self, method, url, query_params=None, headers=None,
108
- body=None, post_params=None, _preload_content=True,
109
- _request_timeout=None):
113
+ self.pool_manager = urllib3.PoolManager(**pool_args)
114
+
115
+ def request(
116
+ self,
117
+ method,
118
+ url,
119
+ headers=None,
120
+ body=None,
121
+ post_params=None,
122
+ _request_timeout=None
123
+ ):
110
124
  """Perform requests.
111
125
 
112
126
  :param method: http request method
113
127
  :param url: http request url
114
- :param query_params: query parameters in the url
115
128
  :param headers: http request headers
116
129
  :param body: request json body, for `application/json`
117
130
  :param post_params: request post parameters,
118
131
  `application/x-www-form-urlencoded`
119
132
  and `multipart/form-data`
120
- :param _preload_content: if False, the urllib3.HTTPResponse object will
121
- be returned without reading/decoding response
122
- data. Default is True.
123
133
  :param _request_timeout: timeout setting for this request. If one
124
134
  number provided, it will be total request
125
135
  timeout. It can also be a pair (tuple) of
126
136
  (connection, read) timeouts.
127
137
  """
128
138
  method = method.upper()
129
- assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT',
130
- 'PATCH', 'OPTIONS']
139
+ assert method in [
140
+ 'GET',
141
+ 'HEAD',
142
+ 'DELETE',
143
+ 'POST',
144
+ 'PUT',
145
+ 'PATCH',
146
+ 'OPTIONS'
147
+ ]
131
148
 
132
149
  if post_params and body:
133
150
  raise ApiValueError(
@@ -136,63 +153,84 @@ class RESTClientObject(object):
136
153
 
137
154
  post_params = post_params or {}
138
155
  headers = headers or {}
139
- # url already contains the URL query string
140
- # so reset query_params to empty dict
141
- query_params = {}
142
156
 
143
157
  timeout = None
144
158
  if _request_timeout:
145
- if isinstance(_request_timeout, (int,float)): # noqa: E501,F821
159
+ if isinstance(_request_timeout, (int, float)):
146
160
  timeout = urllib3.Timeout(total=_request_timeout)
147
- elif (isinstance(_request_timeout, tuple) and
148
- len(_request_timeout) == 2):
161
+ elif (
162
+ isinstance(_request_timeout, tuple)
163
+ and len(_request_timeout) == 2
164
+ ):
149
165
  timeout = urllib3.Timeout(
150
- connect=_request_timeout[0], read=_request_timeout[1])
166
+ connect=_request_timeout[0],
167
+ read=_request_timeout[1]
168
+ )
151
169
 
152
170
  try:
153
171
  # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
154
172
  if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
155
173
 
156
174
  # no content type provided or payload is json
157
- if not headers.get('Content-Type') or re.search('json', headers['Content-Type'], re.IGNORECASE):
175
+ content_type = headers.get('Content-Type')
176
+ if (
177
+ not content_type
178
+ or re.search('json', content_type, re.IGNORECASE)
179
+ ):
158
180
  request_body = None
159
181
  if body is not None:
160
182
  request_body = json.dumps(body)
161
183
  r = self.pool_manager.request(
162
- method, url,
184
+ method,
185
+ url,
163
186
  body=request_body,
164
- preload_content=_preload_content,
165
187
  timeout=timeout,
166
- headers=headers)
167
- elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
188
+ headers=headers,
189
+ preload_content=False
190
+ )
191
+ elif content_type == 'application/x-www-form-urlencoded':
168
192
  r = self.pool_manager.request(
169
- method, url,
193
+ method,
194
+ url,
170
195
  fields=post_params,
171
196
  encode_multipart=False,
172
- preload_content=_preload_content,
173
197
  timeout=timeout,
174
- headers=headers)
175
- elif headers['Content-Type'] == 'multipart/form-data':
198
+ headers=headers,
199
+ preload_content=False
200
+ )
201
+ elif content_type == 'multipart/form-data':
176
202
  # must del headers['Content-Type'], or the correct
177
203
  # Content-Type which generated by urllib3 will be
178
204
  # overwritten.
179
205
  del headers['Content-Type']
180
206
  r = self.pool_manager.request(
181
- method, url,
207
+ method,
208
+ url,
182
209
  fields=post_params,
183
210
  encode_multipart=True,
184
- preload_content=_preload_content,
185
211
  timeout=timeout,
186
- headers=headers)
212
+ headers=headers,
213
+ preload_content=False
214
+ )
187
215
  # Pass a `string` parameter directly in the body to support
188
- # other content types than Json when `body` argument is
189
- # provided in serialized form
216
+ # other content types than JSON when `body` argument is
217
+ # provided in serialized form.
190
218
  elif isinstance(body, str) or isinstance(body, bytes):
191
- request_body = body
192
219
  r = self.pool_manager.request(
193
- method, url,
220
+ method,
221
+ url,
222
+ body=body,
223
+ timeout=timeout,
224
+ headers=headers,
225
+ preload_content=False
226
+ )
227
+ elif headers['Content-Type'] == 'text/plain' and isinstance(body, bool):
228
+ request_body = "true" if body else "false"
229
+ r = self.pool_manager.request(
230
+ method,
231
+ url,
194
232
  body=request_body,
195
- preload_content=_preload_content,
233
+ preload_content=False,
196
234
  timeout=timeout,
197
235
  headers=headers)
198
236
  else:
@@ -203,99 +241,16 @@ class RESTClientObject(object):
203
241
  raise ApiException(status=0, reason=msg)
204
242
  # For `GET`, `HEAD`
205
243
  else:
206
- r = self.pool_manager.request(method, url,
207
- fields={},
208
- preload_content=_preload_content,
209
- timeout=timeout,
210
- headers=headers)
244
+ r = self.pool_manager.request(
245
+ method,
246
+ url,
247
+ fields={},
248
+ timeout=timeout,
249
+ headers=headers,
250
+ preload_content=False
251
+ )
211
252
  except urllib3.exceptions.SSLError as e:
212
- msg = "{0}\n{1}".format(type(e).__name__, str(e))
253
+ msg = "\n".join([type(e).__name__, str(e)])
213
254
  raise ApiException(status=0, reason=msg)
214
255
 
215
- if _preload_content:
216
- r = RESTResponse(r)
217
-
218
- # log response body
219
- logger.debug("response body: %s", r.data)
220
-
221
- if not 200 <= r.status <= 299:
222
- if r.status == 401:
223
- raise UnauthorizedException(http_resp=r)
224
-
225
- if r.status == 403:
226
- raise ForbiddenException(http_resp=r)
227
-
228
- if r.status == 404:
229
- raise NotFoundException(http_resp=r)
230
-
231
- if 500 <= r.status <= 599:
232
- raise ServiceException(http_resp=r)
233
-
234
- raise ApiException(http_resp=r)
235
-
236
- return r
237
-
238
- def get_request(self, url, headers=None, query_params=None, _preload_content=True,
239
- _request_timeout=None):
240
- return self.request("GET", url,
241
- headers=headers,
242
- _preload_content=_preload_content,
243
- _request_timeout=_request_timeout,
244
- query_params=query_params)
245
-
246
- def head_request(self, url, headers=None, query_params=None, _preload_content=True,
247
- _request_timeout=None):
248
- return self.request("HEAD", url,
249
- headers=headers,
250
- _preload_content=_preload_content,
251
- _request_timeout=_request_timeout,
252
- query_params=query_params)
253
-
254
- def options_request(self, url, headers=None, query_params=None, post_params=None,
255
- body=None, _preload_content=True, _request_timeout=None):
256
- return self.request("OPTIONS", url,
257
- headers=headers,
258
- query_params=query_params,
259
- post_params=post_params,
260
- _preload_content=_preload_content,
261
- _request_timeout=_request_timeout,
262
- body=body)
263
-
264
- def delete_request(self, url, headers=None, query_params=None, body=None,
265
- _preload_content=True, _request_timeout=None):
266
- return self.request("DELETE", url,
267
- headers=headers,
268
- query_params=query_params,
269
- _preload_content=_preload_content,
270
- _request_timeout=_request_timeout,
271
- body=body)
272
-
273
- def post_request(self, url, headers=None, query_params=None, post_params=None,
274
- body=None, _preload_content=True, _request_timeout=None):
275
- return self.request("POST", url,
276
- headers=headers,
277
- query_params=query_params,
278
- post_params=post_params,
279
- _preload_content=_preload_content,
280
- _request_timeout=_request_timeout,
281
- body=body)
282
-
283
- def put_request(self, url, headers=None, query_params=None, post_params=None,
284
- body=None, _preload_content=True, _request_timeout=None):
285
- return self.request("PUT", url,
286
- headers=headers,
287
- query_params=query_params,
288
- post_params=post_params,
289
- _preload_content=_preload_content,
290
- _request_timeout=_request_timeout,
291
- body=body)
292
-
293
- def patch_request(self, url, headers=None, query_params=None, post_params=None,
294
- body=None, _preload_content=True, _request_timeout=None):
295
- return self.request("PATCH", url,
296
- headers=headers,
297
- query_params=query_params,
298
- post_params=post_params,
299
- _preload_content=_preload_content,
300
- _request_timeout=_request_timeout,
301
- body=body)
256
+ return RESTResponse(r)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: stadiamaps
3
- Version: 1.0.6
3
+ Version: 2.0.0
4
4
  Summary: Stadia Maps Geospatial APIs
5
5
  Home-page: https://github.com/stadiamaps/stadiamaps-api-py
6
6
  Author: Stadia Maps Support
@@ -8,10 +8,10 @@ Author-email: support@stadiamaps.com
8
8
  Keywords: OpenAPI,OpenAPI-Generator,Stadia Maps Geospatial APIs
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE.txt
11
- Requires-Dist: urllib3 (>=1.25.3)
11
+ Requires-Dist: urllib3 <2.1.0,>=1.25.3
12
12
  Requires-Dist: python-dateutil
13
- Requires-Dist: pydantic (<2,>=1.10.5)
14
- Requires-Dist: aenum
13
+ Requires-Dist: pydantic >=2
14
+ Requires-Dist: typing-extensions >=4.7.1
15
15
 
16
16
 
17
17
  # Stadia Maps Python API Client
@@ -0,0 +1,128 @@
1
+ stadiamaps/__init__.py,sha256=UewGwAYcYDJ2AKgennna3FCgavngOiBP-8GwFgVu24k,6996
2
+ stadiamaps/api_client.py,sha256=ESx1a0VxTwTbYrIv8Cg6rJuu-3UeWxE7NXgZCgrKD3g,25814
3
+ stadiamaps/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
4
+ stadiamaps/configuration.py,sha256=tunCTJSbeqwtAV81WH7lUR67cUQQgElXCnFJItpZDcE,15562
5
+ stadiamaps/exceptions.py,sha256=AG6tZWKk-U3L0RivmtH493BERbstzQyPsVgXhPLNrh8,6019
6
+ stadiamaps/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ stadiamaps/rest.py,sha256=fEF78W5r4RIZ0nCoHQXWvTvdpJPJg7my6S-NRj6kmsE,9275
8
+ stadiamaps/api/__init__.py,sha256=NRdfWLDRL2TYgITiS6K4OX8lmmVVmf9-_yyMe2_6hTs,208
9
+ stadiamaps/api/geocoding_api.py,sha256=1e7fcBkWYzwRcH4WU8yOcaN_wGc8CW96_VXpK7-LMRA,147742
10
+ stadiamaps/api/geospatial_api.py,sha256=r35fwcj0Yx6fGvBLu60JiKmrDIywW_5ZkXjuo6Ttf2U,29289
11
+ stadiamaps/api/routing_api.py,sha256=L0tvAKRZ6q1Uo-OZU7lKqNbEsG8J1G8z9eGnPSWDr3E,80984
12
+ stadiamaps/models/__init__.py,sha256=XYBfah6Qss-baK0ynP9bAyNI0JPrV4b0CjOuphLaKWM,6328
13
+ stadiamaps/models/access.py,sha256=-O7op9jXyisD-CFc7aPMmoGEzZqMYYybv8zX1NTI8Lc,4179
14
+ stadiamaps/models/admin_region.py,sha256=5Dn_2uDYOEhbfTmGzYOXpYKs8vtmc_3tWQM2y0Sld-Q,3793
15
+ stadiamaps/models/administrative.py,sha256=Hly6vw2P8oLHQIbVGBoYYCp7-p9ZTUxXxb1-hcGDWlE,3842
16
+ stadiamaps/models/auto_costing_options.py,sha256=PiK3xr6XEgh0B0HBbUlnJwtj8gaNmM_JNmE9qqC6ItI,11746
17
+ stadiamaps/models/auto_costing_options_all_of.py,sha256=JSiFHNEljR4if13lP3jeJc8ny_gSfVzyQZErdt6LaBM,7083
18
+ stadiamaps/models/base_costing_options.py,sha256=J2HG68Kng2DAbobvoHQSqv4DmPmugIeOiIq_-kQSs58,6688
19
+ stadiamaps/models/base_trace_request.py,sha256=t8TFbpcCQs8qAltJlC3XKLbkbdtAiBEH6_t6YIyglxM,7086
20
+ stadiamaps/models/bicycle_costing_options.py,sha256=uaIUyRpFZUOZGagkCUdIs_goF5twGPKHEvE69gwwWSw,10660
21
+ stadiamaps/models/bicycle_costing_options_all_of.py,sha256=AhDT4CYE3wRA0j1EXvBiK_Bevw2mN-WQA4AnAb7uM5A,5904
22
+ stadiamaps/models/bike_network.py,sha256=KX0FDlpwNHG5m5IRtfnpYEyqRgggQwxjcQ8Ci4AUCtU,3432
23
+ stadiamaps/models/contour.py,sha256=sDBXABjI3V3X9zNUpM-YTEtHoUZu3vZJoxOGErdwHSo,3744
24
+ stadiamaps/models/coordinate.py,sha256=HjNA09lu9fVnqyKlU6KZEbYJsCTf9ucNAlR-rqmzIb4,3525
25
+ stadiamaps/models/costing_model.py,sha256=CMM6vOpqsbjXxxmq22VqW5JOzcZ4S45ovaBIuhqolAw,1369
26
+ stadiamaps/models/costing_options.py,sha256=c6V6s1QBWzbioRMzxiZO09PuzOdqKxRpxc-JbisH4bU,6269
27
+ stadiamaps/models/directions_options.py,sha256=3O77ju30AyNRiXc5zMs4EVbSGChQBe6DQ9D28hvm5lI,4171
28
+ stadiamaps/models/distance_unit.py,sha256=uCwBWamfgpSK5KQNlah8wBzquZy4l1fo5BCHFFB3CXU,780
29
+ stadiamaps/models/edge_sign.py,sha256=9oJ2kixTfG9JOr7SGH4kN6Fuh5q18Y0m-YteUFTdCZY,3491
30
+ stadiamaps/models/edge_use.py,sha256=KoeHkYj4j1n0bg_opGqU5Ee44GvOSLvuXyNsii_US2Q,1663
31
+ stadiamaps/models/end_node.py,sha256=6vCUblY2xrJEwfBmWXDZANp-MueyX3UIamdHf-n1IBU,4718
32
+ stadiamaps/models/geo_attributes.py,sha256=SCG4Sb4X5AXCUPeqQIQEett9ok2gqvzjue20jDHSFlA,4213
33
+ stadiamaps/models/geo_json_geometry.py,sha256=BdzUU8cEQwHNEn7ClHnSMPvEI0TCH9B07zi_WDbFSg8,6217
34
+ stadiamaps/models/geo_json_geometry_base.py,sha256=X3WkCJHga7hMXv-Vnn7BKy8LfQFxmC1Ig_h8breh7xs,3532
35
+ stadiamaps/models/geo_json_line_string.py,sha256=xb8iC9eFi7x4nsQy8eqG0_srg1xd15H4XyzYdGnvV3A,3773
36
+ stadiamaps/models/geo_json_line_string_all_of.py,sha256=_vHsj7n-c1QEAoL9M8MAWj7Q1wv4AtqpG0lXHluRYzA,2663
37
+ stadiamaps/models/geo_json_point.py,sha256=JcJf47D9AWqRY14SYYKERREZyNLzarvBfrj_MFc1mP4,3747
38
+ stadiamaps/models/geo_json_point_all_of.py,sha256=Md1qYy2GAtnsy_8IwXrYXlNc5e_RBAfjTSBKzrrDUn8,2614
39
+ stadiamaps/models/geo_json_polygon.py,sha256=Z9l9BiVEuCq944TuTxvh1Wj5XumvC3qB5MBSf9zbWJ0,3767
40
+ stadiamaps/models/geo_json_polygon_all_of.py,sha256=lOsNbT0B-2d_wJTwOIQt7gny_aldHzT9cMC5XoIETtE,2648
41
+ stadiamaps/models/geocoding_object.py,sha256=skv-yLkki9ETOiSN0wqUcz9jx3eZzUvxp8XvRnPskFo,4217
42
+ stadiamaps/models/height_request.py,sha256=5LFnVlVwvc-Ga4vBF15_jBQgeubmY9Cl2huNG1fSRrQ,5950
43
+ stadiamaps/models/height_response.py,sha256=DnqBgPXuGBw689s04IJwJWNgB3CPHTliLd-VeWVtdws,5092
44
+ stadiamaps/models/highway_classification.py,sha256=QrhHJlhS1I8A1qB4HtTaDB-0aSgd-2PKIvel5t3CCIM,6219
45
+ stadiamaps/models/intersecting_edge.py,sha256=pDeINqUMrRYOR8GLhugetrrndvwf5HgiLD37NLwcyoQ,4608
46
+ stadiamaps/models/isochrone_costing_model.py,sha256=yS7yFuTW0vs8DdbaNy3EtYpnCBHrD5U5yTZk0UBPTtI,851
47
+ stadiamaps/models/isochrone_feature.py,sha256=0NGKptWL7H3VPDcWjcp0EHX3roWkVyfMhDqQRg0zc2g,3996
48
+ stadiamaps/models/isochrone_properties.py,sha256=JMeXNop4g73pfzMPKoZWMttY7GOgkbqS79Tc8mZ4Ybw,4235
49
+ stadiamaps/models/isochrone_request.py,sha256=IE1zZFT2F9rX40_fE1Uw7iM7fEejG7VEJFEeG1fZ6Tg,6701
50
+ stadiamaps/models/isochrone_response.py,sha256=9dp-cms6e4CYrOFmPtDCDmWLiaS_DqitJz7pUnka0H0,4042
51
+ stadiamaps/models/locate_detailed_edge.py,sha256=DQdE33HGJH3ozir9yqOVImHt69W7FALhJ1YpLbKlguI,10839
52
+ stadiamaps/models/locate_edge.py,sha256=QQqkCLWIeAepqcWtRlRQRFJm_3J3A3Pe9CWMj_R8NYI,6553
53
+ stadiamaps/models/locate_edge_info.py,sha256=Sr5ajBJGmCITB_D2J1YjkhVrk2iktTxKSaHH8Fz_bnU,4350
54
+ stadiamaps/models/locate_node.py,sha256=M_OIPJBUqqtwnr1tNb5lr58ucMp9NR80CnAU8zyL5Ik,5948
55
+ stadiamaps/models/locate_node_all_of.py,sha256=CIpyV5ssH034gmC-fHlshAOZkolUy7LYejgHLqHeMyI,4800
56
+ stadiamaps/models/locate_object.py,sha256=VWNWUileooRTi6tXf1laD-gqB2ptwIa4T2zw1-m7FvU,4671
57
+ stadiamaps/models/maneuver_sign.py,sha256=beWpx3U9n-ythQBMpPdBxaD9qTNiOj5B20mRDn1e1og,6142
58
+ stadiamaps/models/maneuver_sign_element.py,sha256=VeuwtnH6EUBKIvbltnvVlnoHuCkrOGLKZKgUidlL_SM,3711
59
+ stadiamaps/models/map_match_costing_model.py,sha256=qDRwgCpzg44sQ_Wxs1atnJ4HvLPkrCnwxH03FuEV1fs,864
60
+ stadiamaps/models/map_match_request.py,sha256=71aaAxhgK0HxZAKGmhDgJfVsOgs3N98SNJmyW1lbyWY,8962
61
+ stadiamaps/models/map_match_request_all_of.py,sha256=4I-A8Lvt59Gu-xMvfsHIe-GcCfO_qLab6uCKAXqTasM,4291
62
+ stadiamaps/models/map_match_route_response.py,sha256=KWnbANzXGzAi3Rdx7_xrnDqhyNUc9Lh4fhfp67cOfpE,4371
63
+ stadiamaps/models/map_match_route_response_all_of.py,sha256=WOWvtLLp801qQM4aJoKR-MTuL6e1nJ3C7FrTRPJ4gxI,2649
64
+ stadiamaps/models/map_match_trace_options.py,sha256=FHXcyeK4S3DMUB5aEQIQOrG1hRAg6JT3uLMWWSPupTc,4609
65
+ stadiamaps/models/map_match_waypoint.py,sha256=ZXvUvIgQgrUg9_cwz36MvBnJhhUHufwUdn6dHZgzryg,4836
66
+ stadiamaps/models/map_match_waypoint_all_of.py,sha256=wLt5dB0JfKtZOqRcNoFZod2k-EJ3OcBGh_nhTjFA2gk,2793
67
+ stadiamaps/models/matched_point.py,sha256=mRBwnEG96gzXQXWTNsJZwawy1DC4tXsIfI00FXuCZww,5417
68
+ stadiamaps/models/matrix_costing_model.py,sha256=41Ysi5EKnu07qqFJhW9jPhkw3vvOKe56dqhMjsY1ycg,1034
69
+ stadiamaps/models/matrix_distance.py,sha256=5UUyjGUMJ0EA9IPM773CM4Q57xnmWIguU0o892hAJws,3859
70
+ stadiamaps/models/matrix_request.py,sha256=Lym3WGeWyvqvIo-mkyyt8o6hhaY5w8jLTSPBYW7g9WE,6631
71
+ stadiamaps/models/matrix_response.py,sha256=sX5IWdomeISC-qIcx_6U-IebzcYo0bc3ET-g7CkQ-QI,6356
72
+ stadiamaps/models/motor_scooter_costing_options.py,sha256=4cKzmZ-JsunD3Xt7nGBu3aemQTtJnOjjwfLvBE9yas8,12827
73
+ stadiamaps/models/motor_scooter_costing_options_all_of.py,sha256=3XuHRpUB_VvAro0XZwCbq1ExJbEMnB5cm6iagIruuP4,3525
74
+ stadiamaps/models/motorcycle_costing_options.py,sha256=IrCqhizlomaxtiVM5O_GiyuyUFtCMF8G8AB8OkrBZWM,12283
75
+ stadiamaps/models/motorcycle_costing_options_all_of.py,sha256=NJQD3ez643xF0r9Dmix88gGrPLzrbgJNBPz9il6G9HM,3479
76
+ stadiamaps/models/nearest_roads_request.py,sha256=RAwfLuPbat6bxZOrjvKfZ_uTSSABZ-gSbcx0soNZ9s8,5563
77
+ stadiamaps/models/node_id.py,sha256=zeqBvfelyCFi_aqJBhmgrYyBNEduAmYJ7hoxuxMrS2Y,3367
78
+ stadiamaps/models/node_type.py,sha256=cGydxewnUub798c3Yb57BweOieUXYGBy02azRjmDC6E,1052
79
+ stadiamaps/models/optimized_route_request.py,sha256=z4p_OzrrzY3LtYltiCgvVvbTQexvj_R01KVplXWQPsI,5776
80
+ stadiamaps/models/pedestrian_costing_options.py,sha256=ILFtoUGqWYVBeSa6MFxtQiKtHi2T89Edho4lRUEwU_c,9210
81
+ stadiamaps/models/pelias_geo_json_feature.py,sha256=lt-k3KQpqsuc4ClE6XkqgPiVpFJRvjQUkyLnl7RUOXc,4669
82
+ stadiamaps/models/pelias_geo_json_properties.py,sha256=yRPmolIPL_bKTlVN1s5Qzp-LWyBDJ0JnOtLcVayoiVY,8513
83
+ stadiamaps/models/pelias_geo_json_properties_addendum.py,sha256=OJoTAJCr5ZV2tj1UmUsOl4BWaqC81QvQ-NwQK1SKc-s,3714
84
+ stadiamaps/models/pelias_geo_json_properties_addendum_osm.py,sha256=hE1kHbpZlg-Ar6pJncZMkwcUlnU3WCvA72aWmpxNbzI,3519
85
+ stadiamaps/models/pelias_layer.py,sha256=ashl4usKBTaSKeGt-x46lT_BnQo1j6Spv43mzi6_eFA,2522
86
+ stadiamaps/models/pelias_response.py,sha256=cjwVRLqvCKVMlK-l_RaO_xhdbfCgmTBC_qCG5r7PiI4,4381
87
+ stadiamaps/models/pelias_response_geocoding.py,sha256=KPrpxVWAvd6U0lZCcsHA2WI29Ij4jyVl3YOuxvhvxmo,3621
88
+ stadiamaps/models/pelias_source.py,sha256=xjlldTUACbRY7CtjudqZybaimZBseGss0hxuG39o7vQ,1023
89
+ stadiamaps/models/restrictions.py,sha256=rz2owC9pj1juthwY71XnP5IkCS-6UB6ftmo7sWCEKt0,4203
90
+ stadiamaps/models/road_class.py,sha256=xyHWuhGVRBSl4wY_ddA8DOhqeIBT8XH3A0crGIRDKmg,1002
91
+ stadiamaps/models/route_leg.py,sha256=ZjmTmdLsdOF_dw524BpPBBwU6eL6TxZyPN-bXpbwo-0,4252
92
+ stadiamaps/models/route_maneuver.py,sha256=jRgjKDAB97DTVAiFwh8T0x95eeWYlIEATpTk9Gq8GqI,12445
93
+ stadiamaps/models/route_request.py,sha256=J_GqW5GCCvyS8VDBSE-FQv0f9_h7SELoBtiglrBHt34,7169
94
+ stadiamaps/models/route_response.py,sha256=QGXllIJGrtYxMTqghTpDQYhU6sm8Y_tl8cbm8BA1gP0,4199
95
+ stadiamaps/models/route_response_alternates_inner.py,sha256=-jY7nWLiO7L1x65khpthkdLFYvkREg1AyhJlJaNwM3w,3448
96
+ stadiamaps/models/route_response_trip.py,sha256=dArv_kidtG7keQJCrRXRP5GqTaSXJMBMd_MgGbR125I,4565
97
+ stadiamaps/models/route_summary.py,sha256=WF-g-aX5Ld7paGSUaewNHLpTFWWQ8jXoSXyTq7G1bOY,4117
98
+ stadiamaps/models/route_trip.py,sha256=FzNn3Y35UeFKKc_qmgc5Mq6JYitnSC9HIxfu6d3tEvU,5077
99
+ stadiamaps/models/routing_response_waypoint.py,sha256=4CV_XT_UEZjd3ASFGc9aJsri7vSBo9zSHVZo30euFHE,4778
100
+ stadiamaps/models/routing_response_waypoint_all_of.py,sha256=2u_wmV3NfKkz1rl_DDAbc_6rqMdamOXCFA3XSmh22sA,2756
101
+ stadiamaps/models/routing_waypoint.py,sha256=OB3nT7X_LeUUaG4KHcR98GYi3GN8DEPrVxGSn-r37Q8,9513
102
+ stadiamaps/models/routing_waypoint_all_of.py,sha256=v7BryWQd_LrFAaEXhHKQBU1OBiF4WmCRN8FJstZUFzU,7320
103
+ stadiamaps/models/routing_waypoint_all_of_search_filter.py,sha256=NGLjszBHlRPWJpJDE2zIJT7wVLlmR90od8lifd5H3U4,4506
104
+ stadiamaps/models/simple_routing_waypoint.py,sha256=8l7OQ4_tskDSFHlYKsBtk2Z3lDmN0t4GRtDFhKg2mDU,4502
105
+ stadiamaps/models/simple_routing_waypoint_all_of.py,sha256=mFHVKuKWz3AuOxfqyGA5D_pai-RCu4Msdmmgf7fwm7A,3385
106
+ stadiamaps/models/speeds.py,sha256=U74zT4acgtMiwZd6hQA27uSKRYQAG_r1HrFX3ol7MJA,4550
107
+ stadiamaps/models/trace_attribute_filter_options.py,sha256=2s6Qlgg1gjdEAekafARV-WkKXh-lWjDGxZIYjaeu4Y4,3813
108
+ stadiamaps/models/trace_attribute_key.py,sha256=oe5adcZtqQKVRcA7Fd1Hkjy-xQWCe4sl-s_hMo8V7O4,4323
109
+ stadiamaps/models/trace_attributes_base_response.py,sha256=MEbYJ9ZTQyKoCBMRslz9cN-siPBECV6AuS5PqbGs7tE,5915
110
+ stadiamaps/models/trace_attributes_request.py,sha256=D6BhbEHPNtxDaYLhtDdkgZahjDUd7MnAHqTlZAJoB7Q,7776
111
+ stadiamaps/models/trace_attributes_request_all_of.py,sha256=ClTna0geZtUYYJHbVf96BwchKQ8sbf9PwWqKtSNXkyM,2967
112
+ stadiamaps/models/trace_attributes_request_all_of_filters.py,sha256=GM0OdKUGHcmDECtjbmifzLwS-SnbZWSWzn1qGWgia0o,3374
113
+ stadiamaps/models/trace_attributes_response.py,sha256=jQx04PqO-ybjRhAkiayx3JwqiNSD0vj90Sbj0IWWl4s,7011
114
+ stadiamaps/models/trace_attributes_response_all_of.py,sha256=3RKI65ZLB1oH9l_S2yiNWewc-G43E7KrYwr8OK-iRlQ,3632
115
+ stadiamaps/models/trace_edge.py,sha256=ywxgUvGggdHhNS3fYmwk-xBgNzoLhCtFTS3P9Wxh1kI,14710
116
+ stadiamaps/models/travel_mode.py,sha256=r0rrQwsh_qJFedJ-jriBTxZwwXKm836lno0BZ1RlwH4,844
117
+ stadiamaps/models/traversability.py,sha256=pK3R2-hITDMCzsha-0HIaKHnAKvJlRQn74zYMC8_gL4,860
118
+ stadiamaps/models/truck_costing_options.py,sha256=sz6tVb3l6WduSetNhJni6DNTgHAw97FTH2Nq5bHHUzk,12648
119
+ stadiamaps/models/truck_costing_options_all_of.py,sha256=WJDDKZ8rNATbzi8EUoceT7qDzK_kTyu_MQuh45M7Uy0,3804
120
+ stadiamaps/models/tz_response.py,sha256=rrJ3iWZrDSKIfQFebs0NfSypU7sdu_CGNp8Vdc7JYCA,3969
121
+ stadiamaps/models/valhalla_languages.py,sha256=qHDwerAYBxxGZ6oXPB2hxrem0WLCWraU8bDUpxe8UbU,1551
122
+ stadiamaps/models/valhalla_long_units.py,sha256=2LLa7w3RixL-cN735x02Shfue9lxFYb1nzZVUzp0xVc,817
123
+ stadiamaps/models/warning.py,sha256=NRbbA4KXMbzdkTFnlPUyCN5559WJh7jtbbvwcmHDlyc,3206
124
+ stadiamaps-2.0.0.dist-info/LICENSE.txt,sha256=vs0H95Mi3Rf1pSskD7rv4KbXLYCSYZ6cqZcFmek0hOg,1518
125
+ stadiamaps-2.0.0.dist-info/METADATA,sha256=Xvs9iHFgD_6NqL4folFvaUvwOnL9Dq4Fav6nB9o2myA,2455
126
+ stadiamaps-2.0.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
127
+ stadiamaps-2.0.0.dist-info/top_level.txt,sha256=dFHpcPo1v2Ajmc74F29BleqU5u8MLB0fgTnNYJIatx0,11
128
+ stadiamaps-2.0.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.40.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5