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
@@ -3,14 +3,14 @@
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
  from __future__ import annotations
@@ -18,52 +18,70 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
-
22
- from typing import List, Optional
23
- from pydantic import BaseModel, Field, StrictStr, conlist
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from typing_extensions import Annotated
24
24
  from stadiamaps.models.coordinate import Coordinate
25
25
  from stadiamaps.models.matrix_distance import MatrixDistance
26
26
  from stadiamaps.models.valhalla_long_units import ValhallaLongUnits
27
27
  from stadiamaps.models.warning import Warning
28
+ from typing import Optional, Set
29
+ from typing_extensions import Self
28
30
 
29
31
  class MatrixResponse(BaseModel):
30
32
  """
31
33
  MatrixResponse
32
- """
33
- id: Optional[StrictStr] = Field(None, description="An identifier to disambiguate requests (echoed by the server).")
34
- sources: conlist(conlist(Coordinate), min_items=1) = Field(..., description="The list of starting locations")
35
- targets: conlist(conlist(Coordinate), min_items=1) = Field(..., description="The list of ending locations")
36
- sources_to_targets: conlist(conlist(MatrixDistance), min_items=1) = Field(..., description="The matrix of starting and ending locations, along with the computed distance and travel time. The array is row-ordered. This means that the time and distance from the first location to all others forms the first row of the array, followed by the time and distance from the second source location to all target locations, etc.")
37
- warnings: Optional[conlist(Warning)] = None
38
- units: ValhallaLongUnits = Field(...)
34
+ """ # noqa: E501
35
+ id: Optional[StrictStr] = Field(default=None, description="An identifier to disambiguate requests (echoed by the server).")
36
+ sources: Annotated[List[Coordinate], Field(min_length=1)] = Field(description="The list of starting locations")
37
+ targets: Annotated[List[Coordinate], Field(min_length=1)] = Field(description="The list of ending locations")
38
+ sources_to_targets: Annotated[List[List[MatrixDistance]], Field(min_length=1)] = Field(description="The matrix of starting and ending locations, along with the computed distance and travel time. The array is row-ordered. This means that the time and distance from the first location to all others forms the first row of the array, followed by the time and distance from the second source location to all target locations, etc.")
39
+ warnings: Optional[List[Warning]] = None
40
+ units: ValhallaLongUnits
39
41
  additional_properties: Dict[str, Any] = {}
40
- __properties = ["id", "sources", "targets", "sources_to_targets", "warnings", "units"]
42
+ __properties: ClassVar[List[str]] = ["id", "sources", "targets", "sources_to_targets", "warnings", "units"]
43
+
44
+ model_config = ConfigDict(
45
+ populate_by_name=True,
46
+ validate_assignment=True,
47
+ protected_namespaces=(),
48
+ )
41
49
 
42
- class Config:
43
- """Pydantic configuration"""
44
- allow_population_by_field_name = True
45
- validate_assignment = True
46
50
 
47
51
  def to_str(self) -> str:
48
52
  """Returns the string representation of the model using alias"""
49
- return pprint.pformat(self.dict(by_alias=True))
53
+ return pprint.pformat(self.model_dump(by_alias=True))
50
54
 
51
55
  def to_json(self) -> str:
52
56
  """Returns the JSON representation of the model using alias"""
57
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
53
58
  return json.dumps(self.to_dict())
54
59
 
55
60
  @classmethod
56
- def from_json(cls, json_str: str) -> MatrixResponse:
61
+ def from_json(cls, json_str: str) -> Optional[Self]:
57
62
  """Create an instance of MatrixResponse from a JSON string"""
58
63
  return cls.from_dict(json.loads(json_str))
59
64
 
60
- def to_dict(self):
61
- """Returns the dictionary representation of the model using alias"""
62
- _dict = self.dict(by_alias=True,
63
- exclude={
64
- "additional_properties"
65
- },
66
- exclude_none=True)
65
+ def to_dict(self) -> Dict[str, Any]:
66
+ """Return the dictionary representation of the model using alias.
67
+
68
+ This has the following differences from calling pydantic's
69
+ `self.model_dump(by_alias=True)`:
70
+
71
+ * `None` is only added to the output dict for nullable fields that
72
+ were set at model initialization. Other fields with value `None`
73
+ are ignored.
74
+ * Fields in `self.additional_properties` are added to the output dict.
75
+ """
76
+ excluded_fields: Set[str] = set([
77
+ "additional_properties",
78
+ ])
79
+
80
+ _dict = self.model_dump(
81
+ by_alias=True,
82
+ exclude=excluded_fields,
83
+ exclude_none=True,
84
+ )
67
85
  # override the default output from pydantic by calling `to_dict()` of each item in sources (list)
68
86
  _items = []
69
87
  if self.sources:
@@ -78,12 +96,14 @@ class MatrixResponse(BaseModel):
78
96
  if _item:
79
97
  _items.append(_item.to_dict())
80
98
  _dict['targets'] = _items
81
- # override the default output from pydantic by calling `to_dict()` of each item in sources_to_targets (list)
99
+ # override the default output from pydantic by calling `to_dict()` of each item in sources_to_targets (list of list)
82
100
  _items = []
83
101
  if self.sources_to_targets:
84
102
  for _item in self.sources_to_targets:
85
103
  if _item:
86
- _items.append(_item.to_dict())
104
+ _items.append(
105
+ [_inner_item.to_dict() for _inner_item in _item if _inner_item is not None]
106
+ )
87
107
  _dict['sources_to_targets'] = _items
88
108
  # override the default output from pydantic by calling `to_dict()` of each item in warnings (list)
89
109
  _items = []
@@ -100,20 +120,23 @@ class MatrixResponse(BaseModel):
100
120
  return _dict
101
121
 
102
122
  @classmethod
103
- def from_dict(cls, obj: dict) -> MatrixResponse:
123
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
104
124
  """Create an instance of MatrixResponse from a dict"""
105
125
  if obj is None:
106
126
  return None
107
127
 
108
128
  if not isinstance(obj, dict):
109
- return MatrixResponse.parse_obj(obj)
129
+ return cls.model_validate(obj)
110
130
 
111
- _obj = MatrixResponse.parse_obj({
131
+ _obj = cls.model_validate({
112
132
  "id": obj.get("id"),
113
- "sources": [[Coordinate.from_dict(_item) for _item in _items] for _items in obj.get("sources")] if obj.get("sources") is not None else None,
114
- "targets": [[Coordinate.from_dict(_item) for _item in _items] for _items in obj.get("targets")] if obj.get("targets") is not None else None,
115
- "sources_to_targets": [[MatrixDistance.from_dict(_item) for _item in _items] for _items in obj.get("sources_to_targets")] if obj.get("sources_to_targets") is not None else None,
116
- "warnings": [Warning.from_dict(_item) for _item in obj.get("warnings")] if obj.get("warnings") is not None else None,
133
+ "sources": [Coordinate.from_dict(_item) for _item in obj["sources"]] if obj.get("sources") is not None else None,
134
+ "targets": [Coordinate.from_dict(_item) for _item in obj["targets"]] if obj.get("targets") is not None else None,
135
+ "sources_to_targets": [
136
+ [MatrixDistance.from_dict(_inner_item) for _inner_item in _item]
137
+ for _item in obj["sources_to_targets"]
138
+ ] if obj.get("sources_to_targets") is not None else None,
139
+ "warnings": [Warning.from_dict(_item) for _item in obj["warnings"]] if obj.get("warnings") is not None else None,
117
140
  "units": obj.get("units")
118
141
  })
119
142
  # store additional fields in additional_properties
@@ -123,3 +146,4 @@ class MatrixResponse(BaseModel):
123
146
 
124
147
  return _obj
125
148
 
149
+
@@ -3,14 +3,14 @@
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
  from __future__ import annotations
@@ -18,67 +18,86 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
-
22
- from typing import Optional, Union
23
- from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, confloat, conint
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing_extensions import Annotated
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
24
26
 
25
27
  class MotorScooterCostingOptions(BaseModel):
26
28
  """
27
29
  MotorScooterCostingOptions
28
- """
29
- maneuver_penalty: Optional[StrictInt] = Field(5, description="A penalty (in seconds) applied when transitioning between roads (determined by name).")
30
- gate_cost: Optional[StrictInt] = Field(15, description="The estimated cost (in seconds) when a gate is encountered.")
31
- gate_penalty: Optional[StrictInt] = Field(300, description="A penalty (in seconds) applied to the route cost when a gate is encountered. This penalty can be used to reduce the likelihood of suggesting a route with gates unless absolutely necessary.")
32
- country_crossing_cost: Optional[StrictInt] = Field(600, description="The estimated cost (in seconds) when encountering an international border.")
33
- country_crossing_penalty: Optional[StrictInt] = Field(0, description="A penalty applied to transitions to international border crossings. This penalty can be used to reduce the likelihood of suggesting a route with border crossings unless absolutely necessary.")
34
- service_penalty: Optional[StrictInt] = Field(None, description="A penalty applied to transitions to service roads. This penalty can be used to reduce the likelihood of suggesting a route with service roads unless absolutely necessary. The default penalty is 15 for cars, busses, motor scooters, and motorcycles; and zero for others.")
35
- service_factor: Optional[Union[StrictFloat, StrictInt]] = Field(1, description="A factor that multiplies the cost when service roads are encountered. The default is 1.2 for cars and busses, and 1 for trucks, motor scooters, and motorcycles.")
36
- use_living_streets: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(None, description="A measure of willingness to take living streets. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without living streets, 0 does not guarantee avoidance of them. The default value is 0 for trucks; 0.1 for other motor vehicles; 0.5 for bicycles; and 0.6 for pedestrians.")
37
- use_ferry: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.5, description="A measure of willingness to take ferries. Values near 0 attempt to avoid ferries, and values near 1 will favour them. Note that as some routes may be impossible without ferries, 0 does not guarantee avoidance of them.")
38
- height: Optional[Union[StrictFloat, StrictInt]] = Field(1.9, description="The height of the automobile (in meters).")
39
- width: Optional[Union[StrictFloat, StrictInt]] = Field(1.6, description="The width of the automobile (in meters).")
40
- toll_booth_cost: Optional[StrictInt] = Field(15, description="The estimated cost (in seconds) when a toll booth is encountered.")
41
- toll_booth_penalty: Optional[StrictInt] = Field(0, description="A penalty (in seconds) applied to the route cost when a toll booth is encountered. This penalty can be used to reduce the likelihood of suggesting a route with toll booths unless absolutely necessary.")
42
- ferry_cost: Optional[StrictInt] = Field(300, description="The estimated cost (in seconds) when a ferry is encountered.")
43
- use_highways: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.5, description="A measure of willingness to take highways. Values near 0 attempt to avoid highways, and values near 1 will favour them. Note that as some routes may be impossible without highways, 0 does not guarantee avoidance of them.")
44
- use_tolls: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.5, description="A measure of willingness to take toll roads. Values near 0 attempt to avoid tolls, and values near 1 will favour them. Note that as some routes may be impossible without tolls, 0 does not guarantee avoidance of them.")
45
- use_tracks: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(None, description="A measure of willingness to take track roads. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without track roads, 0 does not guarantee avoidance of them. The default value is 0 for automobiles, busses, and trucks; and 0.5 for all other costing modes.")
46
- top_speed: Optional[conint(strict=True, le=252, ge=10)] = Field(140, description="The top speed (in kph) that the vehicle is capable of travelling.")
47
- shortest: Optional[StrictBool] = Field(False, description="If true changes the cost metric to be quasi-shortest (pure distance-based) costing. This will disable ALL other costing factors.")
48
- ignore_closures: Optional[StrictBool] = Field(False, description="If true, ignores all known closures. This option cannot be set if `location.search_filter.exclude_closures` is also specified.")
49
- include_hov2: Optional[StrictBool] = Field(False, description="If true, indicates the desire to include HOV roads with a 2-occupant requirement in the route when advantageous.")
50
- include_hov3: Optional[StrictBool] = Field(False, description="If true, indicates the desire to include HOV roads with a 3-occupant requirement in the route when advantageous.")
51
- include_hot: Optional[StrictBool] = Field(False, description="If true, indicates the desire to include toll roads which require the driver to pay a toll if the occupant requirement isn't met")
52
- use_primary: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.5, description="A measure of willingness to use primary roads. Values near 0 attempt to avoid primary roads and stay on roads with lower speeds, and values near 1 indicate the rider is more comfortable on these roads.")
53
- use_hills: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.5, description="A measure of willingness to take tackle hills. Values near 0 attempt to avoid hills and steeper grades even if it means a longer route, and values near 1 indicates that the rider does not fear them. Note that as some routes may be impossible without hills, 0 does not guarantee avoidance of them.")
30
+ """ # noqa: E501
31
+ maneuver_penalty: Optional[StrictInt] = Field(default=5, description="A penalty (in seconds) applied when transitioning between roads (determined by name).")
32
+ gate_cost: Optional[StrictInt] = Field(default=15, description="The estimated cost (in seconds) when a gate is encountered.")
33
+ gate_penalty: Optional[StrictInt] = Field(default=300, description="A penalty (in seconds) applied to the route cost when a gate is encountered. This penalty can be used to reduce the likelihood of suggesting a route with gates unless absolutely necessary.")
34
+ country_crossing_cost: Optional[StrictInt] = Field(default=600, description="The estimated cost (in seconds) when encountering an international border.")
35
+ country_crossing_penalty: Optional[StrictInt] = Field(default=0, description="A penalty applied to transitions to international border crossings. This penalty can be used to reduce the likelihood of suggesting a route with border crossings unless absolutely necessary.")
36
+ service_penalty: Optional[StrictInt] = Field(default=None, description="A penalty applied to transitions to service roads. This penalty can be used to reduce the likelihood of suggesting a route with service roads unless absolutely necessary. The default penalty is 15 for cars, busses, motor scooters, and motorcycles; and zero for others.")
37
+ service_factor: Optional[Union[StrictFloat, StrictInt]] = Field(default=1, description="A factor that multiplies the cost when service roads are encountered. The default is 1.2 for cars and busses, and 1 for trucks, motor scooters, and motorcycles.")
38
+ use_living_streets: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="A measure of willingness to take living streets. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without living streets, 0 does not guarantee avoidance of them. The default value is 0 for trucks; 0.1 for other motor vehicles; 0.5 for bicycles; and 0.6 for pedestrians.")
39
+ use_ferry: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.5, description="A measure of willingness to take ferries. Values near 0 attempt to avoid ferries, and values near 1 will favour them. Note that as some routes may be impossible without ferries, 0 does not guarantee avoidance of them.")
40
+ height: Optional[Union[StrictFloat, StrictInt]] = Field(default=1.9, description="The height of the automobile (in meters).")
41
+ width: Optional[Union[StrictFloat, StrictInt]] = Field(default=1.6, description="The width of the automobile (in meters).")
42
+ toll_booth_cost: Optional[StrictInt] = Field(default=15, description="The estimated cost (in seconds) when a toll booth is encountered.")
43
+ toll_booth_penalty: Optional[StrictInt] = Field(default=0, description="A penalty (in seconds) applied to the route cost when a toll booth is encountered. This penalty can be used to reduce the likelihood of suggesting a route with toll booths unless absolutely necessary.")
44
+ ferry_cost: Optional[StrictInt] = Field(default=300, description="The estimated cost (in seconds) when a ferry is encountered.")
45
+ use_highways: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.5, description="A measure of willingness to take highways. Values near 0 attempt to avoid highways, and values near 1 will favour them. Note that as some routes may be impossible without highways, 0 does not guarantee avoidance of them.")
46
+ use_tolls: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.5, description="A measure of willingness to take toll roads. Values near 0 attempt to avoid tolls, and values near 1 will favour them. Note that as some routes may be impossible without tolls, 0 does not guarantee avoidance of them.")
47
+ use_tracks: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="A measure of willingness to take track roads. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without track roads, 0 does not guarantee avoidance of them. The default value is 0 for automobiles, busses, and trucks; and 0.5 for all other costing modes.")
48
+ top_speed: Optional[Annotated[int, Field(le=252, strict=True, ge=10)]] = Field(default=140, description="The top speed (in kph) that the vehicle is capable of travelling.")
49
+ shortest: Optional[StrictBool] = Field(default=False, description="If true changes the cost metric to be quasi-shortest (pure distance-based) costing. This will disable ALL other costing factors.")
50
+ ignore_closures: Optional[StrictBool] = Field(default=False, description="If true, ignores all known closures. This option cannot be set if `location.search_filter.exclude_closures` is also specified.")
51
+ include_hov2: Optional[StrictBool] = Field(default=False, description="If true, indicates the desire to include HOV roads with a 2-occupant requirement in the route when advantageous.")
52
+ include_hov3: Optional[StrictBool] = Field(default=False, description="If true, indicates the desire to include HOV roads with a 3-occupant requirement in the route when advantageous.")
53
+ include_hot: Optional[StrictBool] = Field(default=False, description="If true, indicates the desire to include toll roads which require the driver to pay a toll if the occupant requirement isn't met")
54
+ alley_factor: Optional[Union[StrictFloat, StrictInt]] = Field(default=1, description="A factor that multiplies the cost when alleys are encountered.")
55
+ use_primary: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.5, description="A measure of willingness to use primary roads. Values near 0 attempt to avoid primary roads and stay on roads with lower speeds, and values near 1 indicate the rider is more comfortable on these roads.")
56
+ use_hills: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.5, description="A measure of willingness to take tackle hills. Values near 0 attempt to avoid hills and steeper grades even if it means a longer route, and values near 1 indicates that the rider does not fear them. Note that as some routes may be impossible without hills, 0 does not guarantee avoidance of them.")
54
57
  additional_properties: Dict[str, Any] = {}
55
- __properties = ["maneuver_penalty", "gate_cost", "gate_penalty", "country_crossing_cost", "country_crossing_penalty", "service_penalty", "service_factor", "use_living_streets", "use_ferry", "height", "width", "toll_booth_cost", "toll_booth_penalty", "ferry_cost", "use_highways", "use_tolls", "use_tracks", "top_speed", "shortest", "ignore_closures", "include_hov2", "include_hov3", "include_hot", "use_primary", "use_hills"]
58
+ __properties: ClassVar[List[str]] = ["maneuver_penalty", "gate_cost", "gate_penalty", "country_crossing_cost", "country_crossing_penalty", "service_penalty", "service_factor", "use_living_streets", "use_ferry", "height", "width", "toll_booth_cost", "toll_booth_penalty", "ferry_cost", "use_highways", "use_tolls", "use_tracks", "top_speed", "shortest", "ignore_closures", "include_hov2", "include_hov3", "include_hot", "alley_factor", "use_primary", "use_hills"]
59
+
60
+ model_config = ConfigDict(
61
+ populate_by_name=True,
62
+ validate_assignment=True,
63
+ protected_namespaces=(),
64
+ )
56
65
 
57
- class Config:
58
- """Pydantic configuration"""
59
- allow_population_by_field_name = True
60
- validate_assignment = True
61
66
 
62
67
  def to_str(self) -> str:
63
68
  """Returns the string representation of the model using alias"""
64
- return pprint.pformat(self.dict(by_alias=True))
69
+ return pprint.pformat(self.model_dump(by_alias=True))
65
70
 
66
71
  def to_json(self) -> str:
67
72
  """Returns the JSON representation of the model using alias"""
73
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
68
74
  return json.dumps(self.to_dict())
69
75
 
70
76
  @classmethod
71
- def from_json(cls, json_str: str) -> MotorScooterCostingOptions:
77
+ def from_json(cls, json_str: str) -> Optional[Self]:
72
78
  """Create an instance of MotorScooterCostingOptions from a JSON string"""
73
79
  return cls.from_dict(json.loads(json_str))
74
80
 
75
- def to_dict(self):
76
- """Returns the dictionary representation of the model using alias"""
77
- _dict = self.dict(by_alias=True,
78
- exclude={
79
- "additional_properties"
80
- },
81
- exclude_none=True)
81
+ def to_dict(self) -> Dict[str, Any]:
82
+ """Return the dictionary representation of the model using alias.
83
+
84
+ This has the following differences from calling pydantic's
85
+ `self.model_dump(by_alias=True)`:
86
+
87
+ * `None` is only added to the output dict for nullable fields that
88
+ were set at model initialization. Other fields with value `None`
89
+ are ignored.
90
+ * Fields in `self.additional_properties` are added to the output dict.
91
+ """
92
+ excluded_fields: Set[str] = set([
93
+ "additional_properties",
94
+ ])
95
+
96
+ _dict = self.model_dump(
97
+ by_alias=True,
98
+ exclude=excluded_fields,
99
+ exclude_none=True,
100
+ )
82
101
  # puts key-value pairs in additional_properties in the top level
83
102
  if self.additional_properties is not None:
84
103
  for _key, _value in self.additional_properties.items():
@@ -87,15 +106,15 @@ class MotorScooterCostingOptions(BaseModel):
87
106
  return _dict
88
107
 
89
108
  @classmethod
90
- def from_dict(cls, obj: dict) -> MotorScooterCostingOptions:
109
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
91
110
  """Create an instance of MotorScooterCostingOptions from a dict"""
92
111
  if obj is None:
93
112
  return None
94
113
 
95
114
  if not isinstance(obj, dict):
96
- return MotorScooterCostingOptions.parse_obj(obj)
115
+ return cls.model_validate(obj)
97
116
 
98
- _obj = MotorScooterCostingOptions.parse_obj({
117
+ _obj = cls.model_validate({
99
118
  "maneuver_penalty": obj.get("maneuver_penalty") if obj.get("maneuver_penalty") is not None else 5,
100
119
  "gate_cost": obj.get("gate_cost") if obj.get("gate_cost") is not None else 15,
101
120
  "gate_penalty": obj.get("gate_penalty") if obj.get("gate_penalty") is not None else 300,
@@ -119,6 +138,7 @@ class MotorScooterCostingOptions(BaseModel):
119
138
  "include_hov2": obj.get("include_hov2") if obj.get("include_hov2") is not None else False,
120
139
  "include_hov3": obj.get("include_hov3") if obj.get("include_hov3") is not None else False,
121
140
  "include_hot": obj.get("include_hot") if obj.get("include_hot") is not None else False,
141
+ "alley_factor": obj.get("alley_factor") if obj.get("alley_factor") is not None else 1,
122
142
  "use_primary": obj.get("use_primary") if obj.get("use_primary") is not None else 0.5,
123
143
  "use_hills": obj.get("use_hills") if obj.get("use_hills") is not None else 0.5
124
144
  })
@@ -129,3 +149,4 @@ class MotorScooterCostingOptions(BaseModel):
129
149
 
130
150
  return _obj
131
151
 
152
+
@@ -5,7 +5,7 @@
5
5
 
6
6
  The Stadia Maps Geospatial APIs provide you with the data you need to build awesome applications. # noqa: E501
7
7
 
8
- The version of the OpenAPI document: 5.0.5
8
+ The version of the OpenAPI document: 5.0.6
9
9
  Contact: support@stadiamaps.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11
 
@@ -3,14 +3,14 @@
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
  from __future__ import annotations
@@ -18,66 +18,85 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
-
22
- from typing import Optional, Union
23
- from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, confloat, conint
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing_extensions import Annotated
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
24
26
 
25
27
  class MotorcycleCostingOptions(BaseModel):
26
28
  """
27
29
  MotorcycleCostingOptions
28
- """
29
- maneuver_penalty: Optional[StrictInt] = Field(5, description="A penalty (in seconds) applied when transitioning between roads (determined by name).")
30
- gate_cost: Optional[StrictInt] = Field(15, description="The estimated cost (in seconds) when a gate is encountered.")
31
- gate_penalty: Optional[StrictInt] = Field(300, description="A penalty (in seconds) applied to the route cost when a gate is encountered. This penalty can be used to reduce the likelihood of suggesting a route with gates unless absolutely necessary.")
32
- country_crossing_cost: Optional[StrictInt] = Field(600, description="The estimated cost (in seconds) when encountering an international border.")
33
- country_crossing_penalty: Optional[StrictInt] = Field(0, description="A penalty applied to transitions to international border crossings. This penalty can be used to reduce the likelihood of suggesting a route with border crossings unless absolutely necessary.")
34
- service_penalty: Optional[StrictInt] = Field(None, description="A penalty applied to transitions to service roads. This penalty can be used to reduce the likelihood of suggesting a route with service roads unless absolutely necessary. The default penalty is 15 for cars, busses, motor scooters, and motorcycles; and zero for others.")
35
- service_factor: Optional[Union[StrictFloat, StrictInt]] = Field(1, description="A factor that multiplies the cost when service roads are encountered. The default is 1.2 for cars and busses, and 1 for trucks, motor scooters, and motorcycles.")
36
- use_living_streets: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(None, description="A measure of willingness to take living streets. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without living streets, 0 does not guarantee avoidance of them. The default value is 0 for trucks; 0.1 for other motor vehicles; 0.5 for bicycles; and 0.6 for pedestrians.")
37
- use_ferry: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.5, description="A measure of willingness to take ferries. Values near 0 attempt to avoid ferries, and values near 1 will favour them. Note that as some routes may be impossible without ferries, 0 does not guarantee avoidance of them.")
38
- height: Optional[Union[StrictFloat, StrictInt]] = Field(1.9, description="The height of the automobile (in meters).")
39
- width: Optional[Union[StrictFloat, StrictInt]] = Field(1.6, description="The width of the automobile (in meters).")
40
- toll_booth_cost: Optional[StrictInt] = Field(15, description="The estimated cost (in seconds) when a toll booth is encountered.")
41
- toll_booth_penalty: Optional[StrictInt] = Field(0, description="A penalty (in seconds) applied to the route cost when a toll booth is encountered. This penalty can be used to reduce the likelihood of suggesting a route with toll booths unless absolutely necessary.")
42
- ferry_cost: Optional[StrictInt] = Field(300, description="The estimated cost (in seconds) when a ferry is encountered.")
43
- use_highways: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(1.0, description="A measure of willingness to use highways. Values near 0 attempt to avoid highways and stay on roads with lower speeds, and values near 1 indicate the rider is more comfortable on these roads.")
44
- use_tolls: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.5, description="A measure of willingness to take toll roads. Values near 0 attempt to avoid tolls, and values near 1 will favour them. Note that as some routes may be impossible without tolls, 0 does not guarantee avoidance of them.")
45
- use_tracks: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(None, description="A measure of willingness to take track roads. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without track roads, 0 does not guarantee avoidance of them. The default value is 0 for automobiles, busses, and trucks; and 0.5 for all other costing modes.")
46
- top_speed: Optional[conint(strict=True, le=252, ge=10)] = Field(140, description="The top speed (in kph) that the vehicle is capable of travelling.")
47
- shortest: Optional[StrictBool] = Field(False, description="If true changes the cost metric to be quasi-shortest (pure distance-based) costing. This will disable ALL other costing factors.")
48
- ignore_closures: Optional[StrictBool] = Field(False, description="If true, ignores all known closures. This option cannot be set if `location.search_filter.exclude_closures` is also specified.")
49
- include_hov2: Optional[StrictBool] = Field(False, description="If true, indicates the desire to include HOV roads with a 2-occupant requirement in the route when advantageous.")
50
- include_hov3: Optional[StrictBool] = Field(False, description="If true, indicates the desire to include HOV roads with a 3-occupant requirement in the route when advantageous.")
51
- include_hot: Optional[StrictBool] = Field(False, description="If true, indicates the desire to include toll roads which require the driver to pay a toll if the occupant requirement isn't met")
52
- use_trails: Optional[Union[confloat(le=1, ge=0, strict=True), conint(le=1, ge=0, strict=True)]] = Field(0.0, description="A measure of the rider's sense of adventure. Values near 0 attempt to avoid highways and stay on roads with potentially unsuitable terrain (trails, tracks, unclassified, or bad surfaces), and values near 1 will tend to avoid major roads and route on secondary roads.")
30
+ """ # noqa: E501
31
+ maneuver_penalty: Optional[StrictInt] = Field(default=5, description="A penalty (in seconds) applied when transitioning between roads (determined by name).")
32
+ gate_cost: Optional[StrictInt] = Field(default=15, description="The estimated cost (in seconds) when a gate is encountered.")
33
+ gate_penalty: Optional[StrictInt] = Field(default=300, description="A penalty (in seconds) applied to the route cost when a gate is encountered. This penalty can be used to reduce the likelihood of suggesting a route with gates unless absolutely necessary.")
34
+ country_crossing_cost: Optional[StrictInt] = Field(default=600, description="The estimated cost (in seconds) when encountering an international border.")
35
+ country_crossing_penalty: Optional[StrictInt] = Field(default=0, description="A penalty applied to transitions to international border crossings. This penalty can be used to reduce the likelihood of suggesting a route with border crossings unless absolutely necessary.")
36
+ service_penalty: Optional[StrictInt] = Field(default=None, description="A penalty applied to transitions to service roads. This penalty can be used to reduce the likelihood of suggesting a route with service roads unless absolutely necessary. The default penalty is 15 for cars, busses, motor scooters, and motorcycles; and zero for others.")
37
+ service_factor: Optional[Union[StrictFloat, StrictInt]] = Field(default=1, description="A factor that multiplies the cost when service roads are encountered. The default is 1.2 for cars and busses, and 1 for trucks, motor scooters, and motorcycles.")
38
+ use_living_streets: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="A measure of willingness to take living streets. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without living streets, 0 does not guarantee avoidance of them. The default value is 0 for trucks; 0.1 for other motor vehicles; 0.5 for bicycles; and 0.6 for pedestrians.")
39
+ use_ferry: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.5, description="A measure of willingness to take ferries. Values near 0 attempt to avoid ferries, and values near 1 will favour them. Note that as some routes may be impossible without ferries, 0 does not guarantee avoidance of them.")
40
+ height: Optional[Union[StrictFloat, StrictInt]] = Field(default=1.9, description="The height of the automobile (in meters).")
41
+ width: Optional[Union[StrictFloat, StrictInt]] = Field(default=1.6, description="The width of the automobile (in meters).")
42
+ toll_booth_cost: Optional[StrictInt] = Field(default=15, description="The estimated cost (in seconds) when a toll booth is encountered.")
43
+ toll_booth_penalty: Optional[StrictInt] = Field(default=0, description="A penalty (in seconds) applied to the route cost when a toll booth is encountered. This penalty can be used to reduce the likelihood of suggesting a route with toll booths unless absolutely necessary.")
44
+ ferry_cost: Optional[StrictInt] = Field(default=300, description="The estimated cost (in seconds) when a ferry is encountered.")
45
+ use_highways: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=1.0, description="A measure of willingness to use highways. Values near 0 attempt to avoid highways and stay on roads with lower speeds, and values near 1 indicate the rider is more comfortable on these roads.")
46
+ use_tolls: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.5, description="A measure of willingness to take toll roads. Values near 0 attempt to avoid tolls, and values near 1 will favour them. Note that as some routes may be impossible without tolls, 0 does not guarantee avoidance of them.")
47
+ use_tracks: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="A measure of willingness to take track roads. Values near 0 attempt to avoid them, and values near 1 will favour them. Note that as some routes may be impossible without track roads, 0 does not guarantee avoidance of them. The default value is 0 for automobiles, busses, and trucks; and 0.5 for all other costing modes.")
48
+ top_speed: Optional[Annotated[int, Field(le=252, strict=True, ge=10)]] = Field(default=140, description="The top speed (in kph) that the vehicle is capable of travelling.")
49
+ shortest: Optional[StrictBool] = Field(default=False, description="If true changes the cost metric to be quasi-shortest (pure distance-based) costing. This will disable ALL other costing factors.")
50
+ ignore_closures: Optional[StrictBool] = Field(default=False, description="If true, ignores all known closures. This option cannot be set if `location.search_filter.exclude_closures` is also specified.")
51
+ include_hov2: Optional[StrictBool] = Field(default=False, description="If true, indicates the desire to include HOV roads with a 2-occupant requirement in the route when advantageous.")
52
+ include_hov3: Optional[StrictBool] = Field(default=False, description="If true, indicates the desire to include HOV roads with a 3-occupant requirement in the route when advantageous.")
53
+ include_hot: Optional[StrictBool] = Field(default=False, description="If true, indicates the desire to include toll roads which require the driver to pay a toll if the occupant requirement isn't met")
54
+ alley_factor: Optional[Union[StrictFloat, StrictInt]] = Field(default=1, description="A factor that multiplies the cost when alleys are encountered.")
55
+ use_trails: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=0.0, description="A measure of the rider's sense of adventure. Values near 0 attempt to avoid highways and stay on roads with potentially unsuitable terrain (trails, tracks, unclassified, or bad surfaces), and values near 1 will tend to avoid major roads and route on secondary roads.")
53
56
  additional_properties: Dict[str, Any] = {}
54
- __properties = ["maneuver_penalty", "gate_cost", "gate_penalty", "country_crossing_cost", "country_crossing_penalty", "service_penalty", "service_factor", "use_living_streets", "use_ferry", "height", "width", "toll_booth_cost", "toll_booth_penalty", "ferry_cost", "use_highways", "use_tolls", "use_tracks", "top_speed", "shortest", "ignore_closures", "include_hov2", "include_hov3", "include_hot", "use_trails"]
57
+ __properties: ClassVar[List[str]] = ["maneuver_penalty", "gate_cost", "gate_penalty", "country_crossing_cost", "country_crossing_penalty", "service_penalty", "service_factor", "use_living_streets", "use_ferry", "height", "width", "toll_booth_cost", "toll_booth_penalty", "ferry_cost", "use_highways", "use_tolls", "use_tracks", "top_speed", "shortest", "ignore_closures", "include_hov2", "include_hov3", "include_hot", "alley_factor", "use_trails"]
58
+
59
+ model_config = ConfigDict(
60
+ populate_by_name=True,
61
+ validate_assignment=True,
62
+ protected_namespaces=(),
63
+ )
55
64
 
56
- class Config:
57
- """Pydantic configuration"""
58
- allow_population_by_field_name = True
59
- validate_assignment = True
60
65
 
61
66
  def to_str(self) -> str:
62
67
  """Returns the string representation of the model using alias"""
63
- return pprint.pformat(self.dict(by_alias=True))
68
+ return pprint.pformat(self.model_dump(by_alias=True))
64
69
 
65
70
  def to_json(self) -> str:
66
71
  """Returns the JSON representation of the model using alias"""
72
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
67
73
  return json.dumps(self.to_dict())
68
74
 
69
75
  @classmethod
70
- def from_json(cls, json_str: str) -> MotorcycleCostingOptions:
76
+ def from_json(cls, json_str: str) -> Optional[Self]:
71
77
  """Create an instance of MotorcycleCostingOptions from a JSON string"""
72
78
  return cls.from_dict(json.loads(json_str))
73
79
 
74
- def to_dict(self):
75
- """Returns the dictionary representation of the model using alias"""
76
- _dict = self.dict(by_alias=True,
77
- exclude={
78
- "additional_properties"
79
- },
80
- exclude_none=True)
80
+ def to_dict(self) -> Dict[str, Any]:
81
+ """Return the dictionary representation of the model using alias.
82
+
83
+ This has the following differences from calling pydantic's
84
+ `self.model_dump(by_alias=True)`:
85
+
86
+ * `None` is only added to the output dict for nullable fields that
87
+ were set at model initialization. Other fields with value `None`
88
+ are ignored.
89
+ * Fields in `self.additional_properties` are added to the output dict.
90
+ """
91
+ excluded_fields: Set[str] = set([
92
+ "additional_properties",
93
+ ])
94
+
95
+ _dict = self.model_dump(
96
+ by_alias=True,
97
+ exclude=excluded_fields,
98
+ exclude_none=True,
99
+ )
81
100
  # puts key-value pairs in additional_properties in the top level
82
101
  if self.additional_properties is not None:
83
102
  for _key, _value in self.additional_properties.items():
@@ -86,15 +105,15 @@ class MotorcycleCostingOptions(BaseModel):
86
105
  return _dict
87
106
 
88
107
  @classmethod
89
- def from_dict(cls, obj: dict) -> MotorcycleCostingOptions:
108
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
109
  """Create an instance of MotorcycleCostingOptions from a dict"""
91
110
  if obj is None:
92
111
  return None
93
112
 
94
113
  if not isinstance(obj, dict):
95
- return MotorcycleCostingOptions.parse_obj(obj)
114
+ return cls.model_validate(obj)
96
115
 
97
- _obj = MotorcycleCostingOptions.parse_obj({
116
+ _obj = cls.model_validate({
98
117
  "maneuver_penalty": obj.get("maneuver_penalty") if obj.get("maneuver_penalty") is not None else 5,
99
118
  "gate_cost": obj.get("gate_cost") if obj.get("gate_cost") is not None else 15,
100
119
  "gate_penalty": obj.get("gate_penalty") if obj.get("gate_penalty") is not None else 300,
@@ -118,6 +137,7 @@ class MotorcycleCostingOptions(BaseModel):
118
137
  "include_hov2": obj.get("include_hov2") if obj.get("include_hov2") is not None else False,
119
138
  "include_hov3": obj.get("include_hov3") if obj.get("include_hov3") is not None else False,
120
139
  "include_hot": obj.get("include_hot") if obj.get("include_hot") is not None else False,
140
+ "alley_factor": obj.get("alley_factor") if obj.get("alley_factor") is not None else 1,
121
141
  "use_trails": obj.get("use_trails") if obj.get("use_trails") is not None else 0.0
122
142
  })
123
143
  # store additional fields in additional_properties
@@ -127,3 +147,4 @@ class MotorcycleCostingOptions(BaseModel):
127
147
 
128
148
  return _obj
129
149
 
150
+
@@ -5,7 +5,7 @@
5
5
 
6
6
  The Stadia Maps Geospatial APIs provide you with the data you need to build awesome applications. # noqa: E501
7
7
 
8
- The version of the OpenAPI document: 5.0.5
8
+ The version of the OpenAPI document: 5.0.6
9
9
  Contact: support@stadiamaps.com
10
10
  Generated by OpenAPI Generator (https://openapi-generator.tech)
11
11