Mercurial > personal > weather-server
view weather_server/common.py @ 45:10bde12a9163 v0.2.2
duh don't convert k to k
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Tue, 01 Apr 2025 16:30:55 -0400 |
parents | b77c8e7d2742 |
children |
line wrap: on
line source
import datetime import json import typing as t import bson BSON_OPTIONS = bson.DEFAULT_CODEC_OPTIONS.with_options( tz_aware=True, tzinfo=datetime.UTC) def bson_encode(data: t.Dict[str, t.Any]) -> bytes: return bson.BSON.encode(data, codec_options=BSON_OPTIONS) class DateEncoder(json.JSONEncoder): def default(self, o: t.Any) -> t.Any: if not isinstance(o, datetime.datetime): return super().default(o) return o.timestamp() JSON_ENCODER = DateEncoder(sort_keys=True) def json_dumps(data: t.Any) -> str: return JSON_ENCODER.encode(data) def utc_now(): return datetime.datetime.now(datetime.UTC)