Skip to content

Commit

Permalink
Fix Python sqlite3 converter/adapter deprecation warning
Browse files Browse the repository at this point in the history
  • Loading branch information
jay0lee committed Jan 18, 2024
1 parent 623d4bc commit 5881949
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions gyb.py
Original file line number Diff line number Diff line change
Expand Up @@ -1960,6 +1960,30 @@ def message_hygiene(msg):
return omsg.as_bytes()


def adapt_date_iso(val):
"""Adapt datetime.date to ISO 8601 date."""
return val.isoformat()

def adapt_datetime_iso(val):
"""Adapt datetime.datetime to timezone-naive ISO 8601 date."""
return val.isoformat()

def adapt_datetime_epoch(val):
"""Adapt datetime.datetime to Unix timestamp."""
return int(val.timestamp())

def convert_date(val):
"""Convert ISO 8601 date to datetime.date object."""
return datetime.date.fromisoformat(val.decode())

def convert_datetime(val):
"""Convert ISO 8601 datetime to datetime.datetime object."""
return datetime.datetime.fromisoformat(val.decode())

def convert_timestamp(val):
"""Convert Unix epoch timestamp to datetime.datetime object."""
return datetime.datetime.fromtimestamp(int(val))

def main(argv):
global options, gmail
options = SetupOptionParser(argv)
Expand Down Expand Up @@ -2034,6 +2058,12 @@ def main(argv):
print("\nUsing backup folder %s" % options.local_folder)
global sqlconn
global sqlcur
sqlite3.register_adapter(datetime.date, adapt_date_iso)
sqlite3.register_adapter(datetime.datetime, adapt_datetime_iso)
sqlite3.register_adapter(datetime.datetime, adapt_datetime_epoch)
sqlite3.register_converter("date", convert_date)
sqlite3.register_converter("datetime", convert_datetime)
sqlite3.register_converter("timestamp", convert_timestamp)
sqlconn = sqlite3.connect(sqldbfile,
detect_types=sqlite3.PARSE_DECLTYPES)
sqlcur = sqlconn.cursor()
Expand Down

0 comments on commit 5881949

Please sign in to comment.