Skip to content

Commit d4d9c38

Browse files
author
Mike Kistler
authored
Merge pull request #52 from IBM/mdk/date-utils
feat: Add date_to_string and string_to_date utility methods
2 parents 8b76c78 + 6dbfff9 commit d4d9c38

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

ibm_cloud_sdk_core/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
functions:
2626
datetime_to_string: Serializes a datetime to a string.
2727
string_to_datetime: De-serializes a string to a datetime.
28+
date_to_string: Serializes a date to a string.
29+
string_to_date: De-serializes a string to a date.
2830
convert_model: Convert a model object into an equivalent dict.
2931
convert_list: Convert a list of strings into comma-separated string.
3032
read_external_sources: Get config object from external sources.
@@ -38,5 +40,6 @@
3840
from .cp4d_token_manager import CP4DTokenManager
3941
from .api_exception import ApiException
4042
from .utils import datetime_to_string, string_to_datetime, read_external_sources
43+
from .utils import date_to_string, string_to_date
4144
from .utils import convert_model, convert_list
4245
from .get_authenticator import get_authenticator_from_environment

ibm_cloud_sdk_core/utils.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,28 @@ def string_to_datetime(string: str) -> datetime.datetime:
9090
"""
9191
return date_parser.parse(string)
9292

93+
def date_to_string(val: datetime.date) -> str:
94+
"""Convert a date object to string.
95+
96+
Args:
97+
val: The date object.
98+
99+
Returns:
100+
date serialized to `YYYY-MM-DD` format.
101+
"""
102+
return str(val)
103+
104+
def string_to_date(string: str) -> datetime.date:
105+
"""De-serializes string to date.
106+
107+
Args:
108+
string: string containing date in 'YYYY-MM-DD' format.
109+
110+
Returns:
111+
the de-serialized string as a date object.
112+
"""
113+
return date_parser.parse(string).date()
114+
93115
def convert_model(val: any) -> dict:
94116
"""Convert a model object into an equivalent dict.
95117

test/test_utils.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33

44
from ibm_cloud_sdk_core import string_to_datetime, datetime_to_string, get_authenticator_from_environment
5+
from ibm_cloud_sdk_core import string_to_date, date_to_string
56
from ibm_cloud_sdk_core import convert_model, convert_list
67
from ibm_cloud_sdk_core.authenticators import BasicAuthenticator, IAMAuthenticator
78

@@ -11,6 +12,12 @@ def test_datetime_conversion():
1112
res = datetime_to_string(date)
1213
assert res == '2017-03-06T16:00:04.159338'
1314

15+
def test_date_conversion():
16+
date = string_to_date('2017-03-06')
17+
assert date.day == 6
18+
res = date_to_string(date)
19+
assert res == '2017-03-06'
20+
1421
def test_convert_model():
1522

1623
class MockModel:

0 commit comments

Comments
 (0)