mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-24 07:06:41 +00:00
Put the choice of JSON encoder for Eliot into its own module
and use it in a few places
This commit is contained in:
parent
66a0c6f3f4
commit
f40da7dc27
@ -125,5 +125,5 @@ if sys.platform == "win32":
|
|||||||
initialize()
|
initialize()
|
||||||
|
|
||||||
from eliot import to_file
|
from eliot import to_file
|
||||||
from allmydata.util.jsonbytes import AnyBytesJSONEncoder
|
from allmydata.util.eliotutil import eliot_json_encoder
|
||||||
to_file(open("eliot.log", "wb"), encoder=AnyBytesJSONEncoder)
|
to_file(open("eliot.log", "wb"), encoder=eliot_json_encoder)
|
||||||
|
@ -65,11 +65,11 @@ from twisted.internet.task import deferLater
|
|||||||
from twisted.internet import reactor
|
from twisted.internet import reactor
|
||||||
|
|
||||||
from ..util.eliotutil import (
|
from ..util.eliotutil import (
|
||||||
|
eliot_json_encoder,
|
||||||
log_call_deferred,
|
log_call_deferred,
|
||||||
_parse_destination_description,
|
_parse_destination_description,
|
||||||
_EliotLogging,
|
_EliotLogging,
|
||||||
)
|
)
|
||||||
from ..util.jsonbytes import AnyBytesJSONEncoder
|
|
||||||
|
|
||||||
from .common import (
|
from .common import (
|
||||||
SyncTestCase,
|
SyncTestCase,
|
||||||
@ -118,7 +118,7 @@ class ParseDestinationDescriptionTests(SyncTestCase):
|
|||||||
reactor = object()
|
reactor = object()
|
||||||
self.assertThat(
|
self.assertThat(
|
||||||
_parse_destination_description("file:-")(reactor),
|
_parse_destination_description("file:-")(reactor),
|
||||||
Equals(FileDestination(stdout, encoder=AnyBytesJSONEncoder)),
|
Equals(FileDestination(stdout, encoder=eliot_json_encoder)),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
28
src/allmydata/util/_eliot_updates.py
Normal file
28
src/allmydata/util/_eliot_updates.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
"""
|
||||||
|
Bring in some Eliot updates from newer versions of Eliot than we can
|
||||||
|
depend on in Python 2.
|
||||||
|
|
||||||
|
Every API in this module (except ``eliot_json_encoder``) should be obsolete as
|
||||||
|
soon as we depend on Eliot 1.14 or newer.
|
||||||
|
|
||||||
|
Ported to Python 3.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import absolute_import
|
||||||
|
from __future__ import division
|
||||||
|
from __future__ import print_function
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from future.utils import PY2
|
||||||
|
if PY2:
|
||||||
|
from builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min # noqa: F401
|
||||||
|
|
||||||
|
from .jsonbytes import AnyBytesJSONEncoder
|
||||||
|
|
||||||
|
# There are currently a number of log messages that include non-UTF-8 bytes.
|
||||||
|
# Allow these, at least for now. Later when the whole test suite has been
|
||||||
|
# converted to our SyncTestCase or AsyncTestCase it will be easier to turn
|
||||||
|
# this off and then attribute log failures to specific codepaths so they can
|
||||||
|
# be fixed (and then not regressed later) because those instances will result
|
||||||
|
# in test failures instead of only garbage being written to the eliot log.
|
||||||
|
eliot_json_encoder = AnyBytesJSONEncoder
|
@ -87,8 +87,9 @@ from twisted.internet.defer import (
|
|||||||
)
|
)
|
||||||
from twisted.application.service import Service
|
from twisted.application.service import Service
|
||||||
|
|
||||||
from .jsonbytes import AnyBytesJSONEncoder
|
from ._eliot_updates import (
|
||||||
|
eliot_json_encoder,
|
||||||
|
)
|
||||||
|
|
||||||
def validateInstanceOf(t):
|
def validateInstanceOf(t):
|
||||||
"""
|
"""
|
||||||
@ -306,7 +307,7 @@ class _DestinationParser(object):
|
|||||||
rotateLength=rotate_length,
|
rotateLength=rotate_length,
|
||||||
maxRotatedFiles=max_rotated_files,
|
maxRotatedFiles=max_rotated_files,
|
||||||
)
|
)
|
||||||
return lambda reactor: FileDestination(get_file(), AnyBytesJSONEncoder)
|
return lambda reactor: FileDestination(get_file(), eliot_json_encoder)
|
||||||
|
|
||||||
|
|
||||||
_parse_destination_description = _DestinationParser().parse
|
_parse_destination_description = _DestinationParser().parse
|
||||||
|
Loading…
Reference in New Issue
Block a user