Provides timezone support for bson.json_util.dumps and bson.json_util.loads
Project description
bson_timezone
A package that provides timezone support for MongoDB bson -> https://api.mongodb.com/python/current/api/bson/index.html
MongoDB bson is great - but it doens't allow for timezone support. This package rectifies that.
This package provides a new dumps
and loads
method that overrides the ~bson.json_util.dumps
and ~bson.json_util.load
functions
in a few key places to support timezones - everything else works in the same way as in the core package.
Installation
pip install bson_timezone
Usage
bson_timezone
handle timezone aware and timezone naive datetimes.
bson_timezone
retains all existing functionality of ~bson.json_util.dumps
- meaning you can provide json_options
to configure the output
as required.
Dumping a timezone aware datetime
>>> from datetime import datetime
>>> from bson_timezone import bson_tz_dumps
>>> import pytz
>>> timezone = pytz.timezone("America/New_York")
>>> dt = datetime(2020,6,20,12,30,45).astimezone(timezone)
>>> bson_tz_dumps(dt)
'{"$date": 1592652645000, "$zone": "America/New_York", "$offset": {"total_seconds": -14400.0}}'
Loading a timezone aware datetime
>>> from datetime import datetime
>>> from bson_timezone import bson_tz_loads
>>> dumped_data = '{"$date": 1592652645000, "$zone": "America/New_York", "$offset": {"total_seconds": -14400.0}}'
>>> bson_tz_loads(dumped_data)
datetime.datetime(2020, 6, 20, 7, 30, 45, tzinfo=<DstTzInfo 'America/New_York' EDT-1 day, 20:00:00 DST>)
Dumping a timezone naive datetime
>>> from datetime import datetime
>>> from bson_timezone import bson_tz_dumps
>>> dt = datetime(2020,6,20,12,30,45)
>>> bson_tz_dumps(dt)
'{"$date": 1592656245000, "$zone": null, "$offset": null}'
Loading a timezone naive datetime
>>> from datetime import datetime
>>> from bson_timezone import bson_tz_loads
>>> dumped_data = '{"$date": 1592656245000, "$zone": null, "$offset": null}'
>>> bson_tz_loads(dumped_data)
datetime.datetime(2020, 6, 20, 7, 30, 45)
Running the tests
python setup.py test
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for bson_timezone-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ece6080a474ecba9cd37d92f6d7ee5caa6344cc3c99095c9536399d92b55025 |
|
MD5 | d38a0c1e541c308a29aa334d0d082e56 |
|
BLAKE2b-256 | 76fe990d809371cdacf2780def0dce8f647d87920917a8061c1a265c2b702fef |