Skip to content

Commit 321ce2d

Browse files
authored
🐛 Fix: field name same as type cause pydantic error (#261)
1 parent 19895e4 commit 321ce2d

File tree

1,219 files changed

+5764
-5732
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,219 files changed

+5764
-5732
lines changed

codegen/parser/schemas/schema.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,8 @@ def _get_field_args(self) -> dict[str, str]:
292292

293293
@dataclass(kw_only=True)
294294
class DateTimeSchema(SchemaData):
295-
_type_string: ClassVar[str] = "datetime"
295+
# avoid conflict with field name which will cause pydantic analyze error
296+
_type_string: ClassVar[str] = "_dt.datetime"
296297

297298
@override
298299
def get_response_type_string(self) -> str:
@@ -303,37 +304,38 @@ def get_response_type_string(self) -> str:
303304
@override
304305
def get_model_imports(self) -> set[str]:
305306
imports = super().get_model_imports()
306-
imports.add("from datetime import datetime")
307+
imports.add("import datetime as _dt")
307308
return imports
308309

309310
@override
310311
def get_type_imports(self) -> set[str]:
311312
imports = super().get_type_imports()
312-
imports.add("from datetime import datetime")
313+
imports.add("import datetime as _dt")
313314
return imports
314315

315316
@override
316317
def get_param_imports(self) -> set[str]:
317318
imports = super().get_param_imports()
318-
imports.add("from datetime import datetime")
319+
imports.add("import datetime as _dt")
319320
return imports
320321

321322
@override
322323
def get_using_imports(self) -> set[str]:
323324
imports = super().get_using_imports()
324-
imports.add("from datetime import datetime")
325+
imports.add("import datetime as _dt")
325326
return imports
326327

327328
@override
328329
def get_response_imports(self) -> set[str]:
329330
imports = super().get_response_imports()
330-
imports.add("from datetime import datetime")
331+
imports.add("import datetime as _dt")
331332
return imports
332333

333334

334335
@dataclass(kw_only=True)
335336
class DateSchema(SchemaData):
336-
_type_string: ClassVar[str] = "date"
337+
# avoid conflict with field name which will cause pydantic analyze error
338+
_type_string: ClassVar[str] = "_dt.date"
337339

338340
@override
339341
def get_response_type_string(self) -> str:
@@ -344,31 +346,31 @@ def get_response_type_string(self) -> str:
344346
@override
345347
def get_model_imports(self) -> set[str]:
346348
imports = super().get_model_imports()
347-
imports.add("from datetime import date")
349+
imports.add("import datetime as _dt")
348350
return imports
349351

350352
@override
351353
def get_type_imports(self) -> set[str]:
352354
imports = super().get_type_imports()
353-
imports.add("from datetime import date")
355+
imports.add("import datetime as _dt")
354356
return imports
355357

356358
@override
357359
def get_param_imports(self) -> set[str]:
358360
imports = super().get_param_imports()
359-
imports.add("from datetime import date")
361+
imports.add("import datetime as _dt")
360362
return imports
361363

362364
@override
363365
def get_using_imports(self) -> set[str]:
364366
imports = super().get_using_imports()
365-
imports.add("from datetime import date")
367+
imports.add("import datetime as _dt")
366368
return imports
367369

368370
@override
369371
def get_response_imports(self) -> set[str]:
370372
imports = super().get_response_imports()
371-
imports.add("from datetime import date")
373+
imports.add("import datetime as _dt")
372374
return imports
373375

374376

githubkit/versions/ghec_v2022_11_28/models/group_0004.py

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

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Annotated, Literal, Union
1414

1515
from pydantic import Field
@@ -55,19 +55,19 @@ class GlobalAdvisory(GitHubModel):
5555
)
5656
identifiers: Union[list[GlobalAdvisoryPropIdentifiersItems], None] = Field()
5757
references: Union[list[str], None] = Field()
58-
published_at: datetime = Field(
58+
published_at: _dt.datetime = Field(
5959
description="The date and time of when the advisory was published, in ISO 8601 format."
6060
)
61-
updated_at: datetime = Field(
61+
updated_at: _dt.datetime = Field(
6262
description="The date and time of when the advisory was last updated, in ISO 8601 format."
6363
)
64-
github_reviewed_at: Union[datetime, None] = Field(
64+
github_reviewed_at: Union[_dt.datetime, None] = Field(
6565
description="The date and time of when the advisory was reviewed by GitHub, in ISO 8601 format."
6666
)
67-
nvd_published_at: Union[datetime, None] = Field(
67+
nvd_published_at: Union[_dt.datetime, None] = Field(
6868
description="The date and time when the advisory was published in the National Vulnerability Database, in ISO 8601 format.\nThis field is only populated when the advisory is imported from the National Vulnerability Database."
6969
)
70-
withdrawn_at: Union[datetime, None] = Field(
70+
withdrawn_at: Union[_dt.datetime, None] = Field(
7171
description="The date and time of when the advisory was withdrawn, in ISO 8601 format."
7272
)
7373
vulnerabilities: Union[list[Vulnerability], None] = Field(

githubkit/versions/ghec_v2022_11_28/models/group_0008.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Union
1414

1515
from pydantic import Field
@@ -36,8 +36,8 @@ class Enterprise(GitHubModel):
3636
node_id: str = Field()
3737
name: str = Field(description="The name of the enterprise.")
3838
slug: str = Field(description="The slug url identifier for the enterprise.")
39-
created_at: Union[datetime, None] = Field()
40-
updated_at: Union[datetime, None] = Field()
39+
created_at: Union[_dt.datetime, None] = Field()
40+
updated_at: Union[_dt.datetime, None] = Field()
4141
avatar_url: str = Field()
4242

4343

githubkit/versions/ghec_v2022_11_28/models/group_0010.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Union
1414

1515
from pydantic import Field
@@ -43,8 +43,8 @@ class actors within GitHub.
4343
description: Union[str, None] = Field()
4444
external_url: str = Field()
4545
html_url: str = Field()
46-
created_at: datetime = Field()
47-
updated_at: datetime = Field()
46+
created_at: _dt.datetime = Field()
47+
updated_at: _dt.datetime = Field()
4848
permissions: IntegrationPropPermissions = Field(
4949
description="The set of permissions for the GitHub app"
5050
)

githubkit/versions/ghec_v2022_11_28/models/group_0012.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Union
1414

1515
from pydantic import Field
@@ -29,7 +29,7 @@ class HookDeliveryItem(GitHubModel):
2929
guid: str = Field(
3030
description="Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event)."
3131
)
32-
delivered_at: datetime = Field(
32+
delivered_at: _dt.datetime = Field(
3333
description="Time when the webhook delivery occurred."
3434
)
3535
redelivery: bool = Field(
@@ -50,7 +50,7 @@ class HookDeliveryItem(GitHubModel):
5050
repository_id: Union[int, None] = Field(
5151
description="The id of the repository associated with this event."
5252
)
53-
throttled_at: Missing[Union[datetime, None]] = Field(
53+
throttled_at: Missing[Union[_dt.datetime, None]] = Field(
5454
default=UNSET, description="Time when the webhook delivery was throttled."
5555
)
5656

githubkit/versions/ghec_v2022_11_28/models/group_0015.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Union
1414

1515
from pydantic import Field
@@ -29,7 +29,9 @@ class HookDelivery(GitHubModel):
2929
guid: str = Field(
3030
description="Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event)."
3131
)
32-
delivered_at: datetime = Field(description="Time when the delivery was delivered.")
32+
delivered_at: _dt.datetime = Field(
33+
description="Time when the delivery was delivered."
34+
)
3335
redelivery: bool = Field(description="Whether the delivery is a redelivery.")
3436
duration: float = Field(description="Time spent delivering.")
3537
status: str = Field(
@@ -46,7 +48,7 @@ class HookDelivery(GitHubModel):
4648
repository_id: Union[int, None] = Field(
4749
description="The id of the repository associated with this event."
4850
)
49-
throttled_at: Missing[Union[datetime, None]] = Field(
51+
throttled_at: Missing[Union[_dt.datetime, None]] = Field(
5052
default=UNSET, description="Time when the webhook delivery was throttled."
5153
)
5254
url: Missing[str] = Field(

githubkit/versions/ghec_v2022_11_28/models/group_0016.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Union
1414

1515
from pydantic import Field
@@ -32,7 +32,7 @@ class IntegrationInstallationRequest(GitHubModel):
3232
node_id: Missing[str] = Field(default=UNSET)
3333
account: Union[SimpleUser, Enterprise] = Field()
3434
requester: SimpleUser = Field(title="Simple User", description="A GitHub user.")
35-
created_at: datetime = Field()
35+
created_at: _dt.datetime = Field()
3636

3737

3838
model_rebuild(IntegrationInstallationRequest)

githubkit/versions/ghec_v2022_11_28/models/group_0018.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Literal, Union
1414

1515
from pydantic import Field
@@ -48,14 +48,14 @@ class Installation(GitHubModel):
4848
description="The permissions granted to the user access token.",
4949
)
5050
events: list[str] = Field()
51-
created_at: datetime = Field()
52-
updated_at: datetime = Field()
51+
created_at: _dt.datetime = Field()
52+
updated_at: _dt.datetime = Field()
5353
single_file_name: Union[str, None] = Field()
5454
has_multiple_single_files: Missing[bool] = Field(default=UNSET)
5555
single_file_paths: Missing[list[str]] = Field(default=UNSET)
5656
app_slug: str = Field()
5757
suspended_by: Union[None, SimpleUser] = Field()
58-
suspended_at: Union[datetime, None] = Field()
58+
suspended_at: Union[_dt.datetime, None] = Field()
5959
contact_email: Missing[Union[str, None]] = Field(default=UNSET)
6060

6161

githubkit/versions/ghec_v2022_11_28/models/group_0020.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Literal, Union
1414

1515
from pydantic import Field
@@ -121,9 +121,9 @@ class Repository(GitHubModel):
121121
default=UNSET,
122122
description="The repository visibility: public, private, or internal.",
123123
)
124-
pushed_at: Union[datetime, None] = Field()
125-
created_at: Union[datetime, None] = Field()
126-
updated_at: Union[datetime, None] = Field()
124+
pushed_at: Union[_dt.datetime, None] = Field()
125+
created_at: Union[_dt.datetime, None] = Field()
126+
updated_at: Union[_dt.datetime, None] = Field()
127127
allow_rebase_merge: Missing[bool] = Field(
128128
default=UNSET, description="Whether to allow rebase merges for pull requests."
129129
)

githubkit/versions/ghec_v2022_11_28/models/group_0023.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from datetime import datetime
12+
import datetime as _dt
1313
from typing import Union
1414

1515
from pydantic import Field
@@ -39,12 +39,12 @@ class Authorization(GitHubModel):
3939
app: AuthorizationPropApp = Field()
4040
note: Union[str, None] = Field()
4141
note_url: Union[str, None] = Field()
42-
updated_at: datetime = Field()
43-
created_at: datetime = Field()
42+
updated_at: _dt.datetime = Field()
43+
created_at: _dt.datetime = Field()
4444
fingerprint: Union[str, None] = Field()
4545
user: Missing[Union[None, SimpleUser]] = Field(default=UNSET)
4646
installation: Missing[Union[None, ScopedInstallation]] = Field(default=UNSET)
47-
expires_at: Union[datetime, None] = Field()
47+
expires_at: Union[_dt.datetime, None] = Field()
4848

4949

5050
class AuthorizationPropApp(GitHubModel):

0 commit comments

Comments
 (0)