Skip to content

Commit

Permalink
Support for python 3.12 datetime
Browse files Browse the repository at this point in the history
  • Loading branch information
Matej Spiller Muys committed Feb 11, 2024
1 parent 955f779 commit f16dc7d
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions pylint_django/transforms/fields.py
Expand Up @@ -46,7 +46,7 @@ def is_model_or_form_field(cls):
return is_model_field(cls) or is_form_field(cls)


def apply_type_shim(cls, _context=None):
def apply_type_shim(cls, _context=None): # pylint: disable=too-many-statements
if cls.name in _STR_FIELDS:
base_nodes = scoped_nodes.builtin_lookup("str")
elif cls.name in _INT_FIELDS:
Expand All @@ -61,13 +61,25 @@ def apply_type_shim(cls, _context=None):
except AstroidImportError:
base_nodes = MANAGER.ast_from_module_name("_pydecimal").lookup("Decimal")
elif cls.name in ("SplitDateTimeField", "DateTimeField"):
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("datetime")
try:
base_nodes = MANAGER.ast_from_module_name("_pydatetime").lookup("datetime")
except AstroidImportError:
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("datetime")
elif cls.name == "TimeField":
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("time")
try:
base_nodes = MANAGER.ast_from_module_name("_pydatetime").lookup("time")
except AstroidImportError:
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("time")
elif cls.name == "DateField":
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("date")
try:
base_nodes = MANAGER.ast_from_module_name("_pydatetime").lookup("date")
except AstroidImportError:
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("date")
elif cls.name == "DurationField":
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("timedelta")
try:
base_nodes = MANAGER.ast_from_module_name("_pydatetime").lookup("timedelta")
except AstroidImportError:
base_nodes = MANAGER.ast_from_module_name("datetime").lookup("timedelta")
elif cls.name == "UUIDField":
base_nodes = MANAGER.ast_from_module_name("uuid").lookup("UUID")
elif cls.name == "ManyToManyField":
Expand Down

0 comments on commit f16dc7d

Please sign in to comment.