diff --git a/test/tree/common/test_storage.py b/test/tree/common/test_storage.py index 9b895a4034cd561cf4a5b12eeeccc3fc41ce3aac..e3f7e081e9d26bd35032359f755c253b8e4c1b16 100644 --- a/test/tree/common/test_storage.py +++ b/test/tree/common/test_storage.py @@ -111,12 +111,14 @@ class TestTreeStorage: assert isinstance(t.get('d'), TreeStorage) assert t.get('_0a') is None - with pytest.raises(KeyError): - t.set('', 233) - with pytest.raises(KeyError): - t.set('a' * 1000, 233) - with pytest.raises(KeyError): - t.set('0' + 'a' * 10, 233) + t.set('', 233) + assert t.get('') == 233 + + t.set('a' * 1000, 234) + assert t.get('a' * 1000) == 234 + + t.set('0' * 1000, 235) + assert t.get('0' * 1000) == 235 def test_del_(self): t = create_storage({'a': 1, 'b': 2, 'c': raw({'x': 3, 'y': 4}), 'd': {'x': 3, 'y': 4}}) diff --git a/treevalue/tree/common/storage.pxd b/treevalue/tree/common/storage.pxd index 4713bc650e6200e7665f479e6483b4c4dd37ff50..721dafc4ea6a56d2a48e967193a809b0a43db6b0 100644 --- a/treevalue/tree/common/storage.pxd +++ b/treevalue/tree/common/storage.pxd @@ -6,8 +6,6 @@ from libcpp cimport bool ctypedef unsigned char boolean ctypedef unsigned int uint -cdef void _key_validate(const char *key) except * - cdef class TreeStorage: cdef readonly dict map diff --git a/treevalue/tree/common/storage.pyx b/treevalue/tree/common/storage.pyx index ffd698db722c272af4ee25086d9599a93ee200c3..71cebea1f73b15d1f30e20f00003fd2c24f97793 100644 --- a/treevalue/tree/common/storage.pyx +++ b/treevalue/tree/common/storage.pyx @@ -12,19 +12,6 @@ from .delay cimport undelay cdef inline object _keep_object(object obj): return obj -cdef inline void _key_validate(const char *key) except *: - cdef int n = strlen(key) - if n < 1: - raise KeyError(f'Key {repr(key)} is too short, minimum length is 1 but {n} found.') - elif n > 256: - raise KeyError(f'Key {repr(key)} is too long, maximum length is 256 but {n} found.') - - cdef int i - for i in range(n): - if not (b'a' <= key[i] <= b'z' or b'A' <= key[i] <= b'Z' or key[i] == b'_' - or (i > 0 and b'0' <= key[i] <= b'9')): - raise KeyError(f'Invalid char {repr(key[i])} detected in position {repr(i)} of key {repr(key)}.') - cdef class TreeStorage: def __cinit__(self, dict map_): self.map = map_ @@ -33,7 +20,6 @@ cdef class TreeStorage: return ({},), {} cpdef public void set(self, str key, object value) except *: - _key_validate(key.encode()) self.map[key] = value cpdef public object get(self, str key): @@ -206,7 +192,6 @@ cpdef object create_storage(dict value): cdef str k cdef object v for k, v in value.items(): - _key_validate(k.encode()) if isinstance(v, dict): _map[k] = create_storage(v) else: