mirror of
https://github.com/robmcmullen/atrcopy.git
synced 2024-05-31 18:41:29 +00:00
* force unicode on uuid string conversion in py2
This commit is contained in:
parent
06e07bafe6
commit
8260774995
|
@ -8,12 +8,11 @@ from builtins import range
|
||||||
from builtins import object
|
from builtins import object
|
||||||
import bisect
|
import bisect
|
||||||
import io
|
import io
|
||||||
import uuid
|
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
from .errors import *
|
from .errors import *
|
||||||
from .utils import to_numpy, to_numpy_list
|
from .utils import to_numpy, to_numpy_list, uuid
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
||||||
user_bit_mask = 0x07
|
user_bit_mask = 0x07
|
||||||
|
@ -364,7 +363,7 @@ class DefaultSegment(object):
|
||||||
self.verbose_name = verbose_name
|
self.verbose_name = verbose_name
|
||||||
self.page_size = -1
|
self.page_size = -1
|
||||||
self.map_width = 40
|
self.map_width = 40
|
||||||
self.uuid = str(uuid.uuid4())
|
self.uuid = uuid()
|
||||||
if memory_map is None:
|
if memory_map is None:
|
||||||
memory_map = {}
|
memory_map = {}
|
||||||
self.memory_map = memory_map
|
self.memory_map = memory_map
|
||||||
|
@ -453,7 +452,7 @@ class DefaultSegment(object):
|
||||||
added to a segment, a default value should be applied here.
|
added to a segment, a default value should be applied here.
|
||||||
"""
|
"""
|
||||||
self.memory_map = dict(state.pop('memory_map', []))
|
self.memory_map = dict(state.pop('memory_map', []))
|
||||||
self.uuid = state.pop('uuid', uuid.uuid4())
|
self.uuid = state.pop('uuid', uuid())
|
||||||
self.can_resize = state.pop('can_resize', self.__class__.can_resize_default)
|
self.can_resize = state.pop('can_resize', self.__class__.can_resize_default)
|
||||||
self.restore_missing_serializable_defaults()
|
self.restore_missing_serializable_defaults()
|
||||||
self.__dict__.update(state)
|
self.__dict__.update(state)
|
||||||
|
|
|
@ -4,6 +4,7 @@ from builtins import str
|
||||||
from builtins import range
|
from builtins import range
|
||||||
from builtins import object
|
from builtins import object
|
||||||
import types
|
import types
|
||||||
|
import uuid as stdlib_uuid
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
@ -17,6 +18,18 @@ except NameError:
|
||||||
_xd = False
|
_xd = False
|
||||||
|
|
||||||
|
|
||||||
|
def uuid():
|
||||||
|
u = stdlib_uuid.uuid4()
|
||||||
|
|
||||||
|
# Force it to use unicode(py2) or str(py3) so it isn't serialized as
|
||||||
|
# future.types.newstr.newstr on py2
|
||||||
|
try:
|
||||||
|
u = unicode(u)
|
||||||
|
except:
|
||||||
|
u = str(u)
|
||||||
|
return u
|
||||||
|
|
||||||
|
|
||||||
def to_numpy(value):
|
def to_numpy(value):
|
||||||
if type(value) is np.ndarray:
|
if type(value) is np.ndarray:
|
||||||
return value
|
return value
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from builtins import range
|
from builtins import range
|
||||||
from builtins import object
|
from builtins import object
|
||||||
|
from builtins import str
|
||||||
import os
|
import os
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
@ -15,7 +16,14 @@ class TestSegment(object):
|
||||||
r = SegmentData(data)
|
r = SegmentData(data)
|
||||||
self.segment = DefaultSegment(r, 0)
|
self.segment = DefaultSegment(r, 0)
|
||||||
|
|
||||||
def test_s1(self):
|
def test_getstate(self):
|
||||||
|
state = self.segment.__getstate__()
|
||||||
|
for k, v in state.items():
|
||||||
|
print("k=%s v=%s type=%s" % (k, v, type(v)))
|
||||||
|
byte_type = type(str(u' ').encode('utf-8')) # py2 and py3
|
||||||
|
assert type(state['uuid']) == byte_type
|
||||||
|
|
||||||
|
def test_extra(self):
|
||||||
s = self.segment
|
s = self.segment
|
||||||
s.set_comment([[4,5]], "test1")
|
s.set_comment([[4,5]], "test1")
|
||||||
s.set_comment([[40,50]], "test2")
|
s.set_comment([[40,50]], "test2")
|
||||||
|
@ -51,4 +59,4 @@ class TestSegment(object):
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
t = TestSegment()
|
t = TestSegment()
|
||||||
t.setup()
|
t.setup()
|
||||||
t.test_s1()
|
t.test_getstate()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user