Skip to content

Commit 8a8a923

Browse files
committed
fix: metadata response shape
Stainless-Generated-From: 2ab6a1c9c1bb044c224b88fe00ed2e51e7dce4cf
1 parent 9d94fb4 commit 8a8a923

1 file changed

Lines changed: 132 additions & 6 deletions

File tree

src/imagekitio/types/metadata.py

Lines changed: 132 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3-
from typing import Dict, List, Optional
3+
from typing import TYPE_CHECKING, Dict, List, Optional
44

55
from pydantic import Field as FieldInfo
66

@@ -14,6 +14,8 @@ class ExifExif(BaseModel):
1414

1515
aperture_value: Optional[float] = FieldInfo(alias="ApertureValue", default=None)
1616

17+
brightness_value: Optional[float] = FieldInfo(alias="BrightnessValue", default=None)
18+
1719
color_space: Optional[int] = FieldInfo(alias="ColorSpace", default=None)
1820

1921
create_date: Optional[str] = FieldInfo(alias="CreateDate", default=None)
@@ -42,7 +44,9 @@ class ExifExif(BaseModel):
4244

4345
f_number: Optional[float] = FieldInfo(alias="FNumber", default=None)
4446

45-
focal_length: Optional[int] = FieldInfo(alias="FocalLength", default=None)
47+
focal_length: Optional[float] = FieldInfo(alias="FocalLength", default=None)
48+
49+
focal_length_in35mm_format: Optional[int] = FieldInfo(alias="FocalLengthIn35mmFormat", default=None)
4650

4751
focal_plane_resolution_unit: Optional[int] = FieldInfo(alias="FocalPlaneResolutionUnit", default=None)
4852

@@ -54,30 +58,92 @@ class ExifExif(BaseModel):
5458

5559
iso: Optional[int] = FieldInfo(alias="ISO", default=None)
5660

61+
lens_model: Optional[str] = FieldInfo(alias="LensModel", default=None)
62+
63+
light_source: Optional[int] = FieldInfo(alias="LightSource", default=None)
64+
65+
max_aperture_value: Optional[float] = FieldInfo(alias="MaxApertureValue", default=None)
66+
5767
metering_mode: Optional[int] = FieldInfo(alias="MeteringMode", default=None)
5868

5969
scene_capture_type: Optional[int] = FieldInfo(alias="SceneCaptureType", default=None)
6070

71+
scene_type: Optional[str] = FieldInfo(alias="SceneType", default=None)
72+
73+
sensing_method: Optional[int] = FieldInfo(alias="SensingMethod", default=None)
74+
6175
shutter_speed_value: Optional[float] = FieldInfo(alias="ShutterSpeedValue", default=None)
6276

6377
sub_sec_time: Optional[str] = FieldInfo(alias="SubSecTime", default=None)
6478

79+
user_comment: Optional[str] = FieldInfo(alias="UserComment", default=None)
80+
6581
white_balance: Optional[int] = FieldInfo(alias="WhiteBalance", default=None)
6682

83+
if TYPE_CHECKING:
84+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
85+
# value to this field, so for compatibility we avoid doing it at runtime.
86+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
87+
88+
# Stub to indicate that arbitrary properties are accepted.
89+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
90+
# `getattr(obj, '$type')`
91+
def __getattr__(self, attr: str) -> object: ...
92+
else:
93+
__pydantic_extra__: Dict[str, object]
94+
6795

6896
class ExifGps(BaseModel):
6997
"""Object containing GPS information."""
7098

99+
gps_altitude: Optional[float] = FieldInfo(alias="GPSAltitude", default=None)
100+
101+
gps_altitude_ref: Optional[int] = FieldInfo(alias="GPSAltitudeRef", default=None)
102+
103+
gps_date_stamp: Optional[str] = FieldInfo(alias="GPSDateStamp", default=None)
104+
105+
gps_img_direction: Optional[float] = FieldInfo(alias="GPSImgDirection", default=None)
106+
107+
gps_img_direction_ref: Optional[str] = FieldInfo(alias="GPSImgDirectionRef", default=None)
108+
109+
gps_latitude: Optional[List[float]] = FieldInfo(alias="GPSLatitude", default=None)
110+
111+
gps_latitude_ref: Optional[str] = FieldInfo(alias="GPSLatitudeRef", default=None)
112+
113+
gps_longitude: Optional[List[float]] = FieldInfo(alias="GPSLongitude", default=None)
114+
115+
gps_longitude_ref: Optional[str] = FieldInfo(alias="GPSLongitudeRef", default=None)
116+
117+
gps_time_stamp: Optional[List[float]] = FieldInfo(alias="GPSTimeStamp", default=None)
118+
71119
gps_version_id: Optional[List[int]] = FieldInfo(alias="GPSVersionID", default=None)
72120

121+
if TYPE_CHECKING:
122+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
123+
# value to this field, so for compatibility we avoid doing it at runtime.
124+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
125+
126+
# Stub to indicate that arbitrary properties are accepted.
127+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
128+
# `getattr(obj, '$type')`
129+
def __getattr__(self, attr: str) -> object: ...
130+
else:
131+
__pydantic_extra__: Dict[str, object]
132+
73133

74134
class ExifImage(BaseModel):
75135
"""Object containing EXIF image information."""
76136

137+
artist: Optional[str] = FieldInfo(alias="Artist", default=None)
138+
139+
copyright: Optional[str] = FieldInfo(alias="Copyright", default=None)
140+
77141
exif_offset: Optional[int] = FieldInfo(alias="ExifOffset", default=None)
78142

79143
gps_info: Optional[int] = FieldInfo(alias="GPSInfo", default=None)
80144

145+
image_description: Optional[str] = FieldInfo(alias="ImageDescription", default=None)
146+
81147
make: Optional[str] = FieldInfo(alias="Make", default=None)
82148

83149
model: Optional[str] = FieldInfo(alias="Model", default=None)
@@ -90,11 +156,23 @@ class ExifImage(BaseModel):
90156

91157
software: Optional[str] = FieldInfo(alias="Software", default=None)
92158

93-
x_resolution: Optional[int] = FieldInfo(alias="XResolution", default=None)
159+
x_resolution: Optional[float] = FieldInfo(alias="XResolution", default=None)
94160

95161
y_cb_cr_positioning: Optional[int] = FieldInfo(alias="YCbCrPositioning", default=None)
96162

97-
y_resolution: Optional[int] = FieldInfo(alias="YResolution", default=None)
163+
y_resolution: Optional[float] = FieldInfo(alias="YResolution", default=None)
164+
165+
if TYPE_CHECKING:
166+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
167+
# value to this field, so for compatibility we avoid doing it at runtime.
168+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
169+
170+
# Stub to indicate that arbitrary properties are accepted.
171+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
172+
# `getattr(obj, '$type')`
173+
def __getattr__(self, attr: str) -> object: ...
174+
else:
175+
__pydantic_extra__: Dict[str, object]
98176

99177

100178
class ExifInteroperability(BaseModel):
@@ -104,6 +182,18 @@ class ExifInteroperability(BaseModel):
104182

105183
interop_version: Optional[str] = FieldInfo(alias="InteropVersion", default=None)
106184

185+
if TYPE_CHECKING:
186+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
187+
# value to this field, so for compatibility we avoid doing it at runtime.
188+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
189+
190+
# Stub to indicate that arbitrary properties are accepted.
191+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
192+
# `getattr(obj, '$type')`
193+
def __getattr__(self, attr: str) -> object: ...
194+
else:
195+
__pydantic_extra__: Dict[str, object]
196+
107197

108198
class ExifThumbnail(BaseModel):
109199
"""Object containing Thumbnail information."""
@@ -116,9 +206,21 @@ class ExifThumbnail(BaseModel):
116206

117207
thumbnail_offset: Optional[int] = FieldInfo(alias="ThumbnailOffset", default=None)
118208

119-
x_resolution: Optional[int] = FieldInfo(alias="XResolution", default=None)
209+
x_resolution: Optional[float] = FieldInfo(alias="XResolution", default=None)
210+
211+
y_resolution: Optional[float] = FieldInfo(alias="YResolution", default=None)
120212

121-
y_resolution: Optional[int] = FieldInfo(alias="YResolution", default=None)
213+
if TYPE_CHECKING:
214+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
215+
# value to this field, so for compatibility we avoid doing it at runtime.
216+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
217+
218+
# Stub to indicate that arbitrary properties are accepted.
219+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
220+
# `getattr(obj, '$type')`
221+
def __getattr__(self, attr: str) -> object: ...
222+
else:
223+
__pydantic_extra__: Dict[str, object]
122224

123225

124226
class Exif(BaseModel):
@@ -139,6 +241,18 @@ class Exif(BaseModel):
139241
thumbnail: Optional[ExifThumbnail] = None
140242
"""Object containing Thumbnail information."""
141243

244+
if TYPE_CHECKING:
245+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
246+
# value to this field, so for compatibility we avoid doing it at runtime.
247+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
248+
249+
# Stub to indicate that arbitrary properties are accepted.
250+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
251+
# `getattr(obj, '$type')`
252+
def __getattr__(self, attr: str) -> object: ...
253+
else:
254+
__pydantic_extra__: Dict[str, object]
255+
142256

143257
class Metadata(BaseModel):
144258
"""JSON object containing metadata."""
@@ -183,3 +297,15 @@ class Metadata(BaseModel):
183297

184298
width: Optional[int] = None
185299
"""The width of the image or video in pixels."""
300+
301+
if TYPE_CHECKING:
302+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
303+
# value to this field, so for compatibility we avoid doing it at runtime.
304+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
305+
306+
# Stub to indicate that arbitrary properties are accepted.
307+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
308+
# `getattr(obj, '$type')`
309+
def __getattr__(self, attr: str) -> object: ...
310+
else:
311+
__pydantic_extra__: Dict[str, object]

0 commit comments

Comments
 (0)