Skip to content

Commit 05e7d75

Browse files
Revert "Unify _to_date converter across arrow and polars modules"
This reverts commit 0acc69a.
1 parent 0acc69a commit 05e7d75

File tree

3 files changed

+27
-12
lines changed

3 files changed

+27
-12
lines changed

pyathena/arrow/converter.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
from __future__ import annotations
33

44
import logging
5+
from builtins import isinstance
56
from copy import deepcopy
6-
from typing import Any, Callable, Dict, Optional, Type
7+
from datetime import date, datetime
8+
from typing import Any, Callable, Dict, Optional, Type, Union
79

810
from pyathena.converter import (
911
Converter,
1012
_to_binary,
11-
_to_date,
1213
_to_decimal,
1314
_to_default,
1415
_to_json,
@@ -18,6 +19,14 @@
1819
_logger = logging.getLogger(__name__) # type: ignore
1920

2021

22+
def _to_date(value: Optional[Union[str, datetime]]) -> Optional[date]:
23+
if value is None:
24+
return None
25+
if isinstance(value, datetime):
26+
return value.date()
27+
return datetime.strptime(value, "%Y-%m-%d").date()
28+
29+
2130
_DEFAULT_ARROW_CONVERTERS: Dict[str, Callable[[Optional[str]], Optional[Any]]] = {
2231
"date": _to_date,
2332
"time": _to_time,

pyathena/converter.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from copy import deepcopy
99
from datetime import date, datetime, time
1010
from decimal import Decimal
11-
from typing import Any, Callable, Dict, List, Optional, Type, Union
11+
from typing import Any, Callable, Dict, List, Optional, Type
1212

1313
from dateutil.tz import gettz
1414

@@ -17,14 +17,10 @@
1717
_logger = logging.getLogger(__name__) # type: ignore
1818

1919

20-
def _to_date(value: Optional[Union[str, datetime, date]]) -> Optional[date]:
21-
if value is None:
20+
def _to_date(varchar_value: Optional[str]) -> Optional[date]:
21+
if varchar_value is None:
2222
return None
23-
if isinstance(value, datetime):
24-
return value.date()
25-
if isinstance(value, date):
26-
return value
27-
return datetime.strptime(value, "%Y-%m-%d").date()
23+
return datetime.strptime(varchar_value, "%Y-%m-%d").date()
2824

2925

3026
def _to_datetime(varchar_value: Optional[str]) -> Optional[datetime]:

pyathena/polars/converter.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
import logging
55
from copy import deepcopy
6-
from typing import Any, Callable, Dict, Optional
6+
from datetime import date, datetime
7+
from typing import Any, Callable, Dict, Optional, Union
78

89
from pyathena.converter import (
910
Converter,
1011
_to_binary,
11-
_to_date,
1212
_to_default,
1313
_to_json,
1414
_to_time,
@@ -17,6 +17,16 @@
1717
_logger = logging.getLogger(__name__)
1818

1919

20+
def _to_date(value: Optional[Union[str, datetime, date]]) -> Optional[date]:
21+
if value is None:
22+
return None
23+
if isinstance(value, datetime):
24+
return value.date()
25+
if isinstance(value, date):
26+
return value
27+
return datetime.strptime(value, "%Y-%m-%d").date()
28+
29+
2030
_DEFAULT_POLARS_CONVERTERS: Dict[str, Callable[[Optional[str]], Optional[Any]]] = {
2131
"date": _to_date,
2232
"time": _to_time,

0 commit comments

Comments
 (0)