Make a copy of this JSONOptions, overriding some options:: >>> from bson.json_util import CANONICAL_JSON_OPTIONS >>> CANONICAL_JSON_OPTIONS.tz_aware True >>> json_options = CANONICAL_JSON_OPTIONS.with_options(tz_aware=False, tzinfo=None)
(self, **kwargs: Any)
| 383 | ) |
| 384 | |
| 385 | def with_options(self, **kwargs: Any) -> JSONOptions: |
| 386 | """ |
| 387 | Make a copy of this JSONOptions, overriding some options:: |
| 388 | |
| 389 | >>> from bson.json_util import CANONICAL_JSON_OPTIONS |
| 390 | >>> CANONICAL_JSON_OPTIONS.tz_aware |
| 391 | True |
| 392 | >>> json_options = CANONICAL_JSON_OPTIONS.with_options(tz_aware=False, tzinfo=None) |
| 393 | >>> json_options.tz_aware |
| 394 | False |
| 395 | |
| 396 | .. versionadded:: 3.12 |
| 397 | """ |
| 398 | opts = self._asdict() |
| 399 | for opt in ("strict_number_long", "datetime_representation", "strict_uuid", "json_mode"): |
| 400 | opts[opt] = kwargs.get(opt, getattr(self, opt)) |
| 401 | opts.update(kwargs) |
| 402 | return JSONOptions(**opts) |
| 403 | |
| 404 | |
| 405 | LEGACY_JSON_OPTIONS: JSONOptions = JSONOptions(json_mode=JSONMode.LEGACY) |