Skip to content

Commit 36042c2

Browse files
committed
Moving FlatStore to it's own module.
1 parent 2513868 commit 36042c2

File tree

4 files changed

+37
-37
lines changed

4 files changed

+37
-37
lines changed

intercom/__init__.py

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,7 @@
1-
import numbers
21
from datetime import datetime
32
from .errors import ArgumentError
43

54

6-
class FlatStore(dict):
7-
8-
def __init__(self, *args, **kwargs):
9-
self.update(*args, **kwargs)
10-
11-
def __setitem__(self, key, value):
12-
# print "SETTING ITEM [%s]=[%s]" % (key, value)
13-
if not (
14-
isinstance(value, numbers.Real) or
15-
isinstance(value, basestring)
16-
):
17-
raise ValueError(
18-
"custom data only allows string and real number values")
19-
if not isinstance(key, basestring):
20-
raise ValueError("custom data only allows string keys")
21-
super(FlatStore, self).__setitem__(key, value)
22-
23-
def update(self, *args, **kwargs):
24-
if args:
25-
if len(args) > 1:
26-
raise TypeError("update expected at most 1 arguments, "
27-
"got %d" % len(args))
28-
other = dict(args[0])
29-
for key in other:
30-
self[key] = other[key]
31-
for key in kwargs:
32-
self[key] = kwargs[key]
33-
34-
def setdefault(self, key, value=None):
35-
if key not in self:
36-
self[key] = value
37-
return self[key]
38-
39-
405
class SetterProperty(object):
416

427
def __init__(self, func, doc=None):

intercom/lib/flat_store.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import numbers
2+
3+
4+
class FlatStore(dict):
5+
6+
def __init__(self, *args, **kwargs):
7+
self.update(*args, **kwargs)
8+
9+
def __setitem__(self, key, value):
10+
# print "SETTING ITEM [%s]=[%s]" % (key, value)
11+
if not (
12+
isinstance(value, numbers.Real) or
13+
isinstance(value, basestring)
14+
):
15+
raise ValueError(
16+
"custom data only allows string and real number values")
17+
if not isinstance(key, basestring):
18+
raise ValueError("custom data only allows string keys")
19+
super(FlatStore, self).__setitem__(key, value)
20+
21+
def update(self, *args, **kwargs):
22+
if args:
23+
if len(args) > 1:
24+
raise TypeError("update expected at most 1 arguments, "
25+
"got %d" % len(args))
26+
other = dict(args[0])
27+
for key in other:
28+
self[key] = other[key]
29+
for key in kwargs:
30+
self[key] = kwargs[key]
31+
32+
def setdefault(self, key, value=None):
33+
if key not in self:
34+
self[key] = value
35+
return self[key]

intercom/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77

88
import datetime
99
import time
10-
from intercom import FlatStore
1110
from intercom.api_operations.all import All
1211
from intercom.api_operations.count import Count
1312
from intercom.api_operations.delete import Delete
1413
from intercom.api_operations.find import Find
1514
from intercom.api_operations.find_all import FindAll
1615
from intercom.api_operations.save import Save
16+
from intercom.lib.flat_store import FlatStore
1717
from intercom.lib.typed_json_deserializer import JsonDeserializer
1818

1919

tests/unit/user_spec.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def it_presents_a_complete_user_record_correctly(self):
6666
expect(1393613864) == time.mktime(user.remote_created_at.timetuple())
6767
expect(1401970114) == time.mktime(user.updated_at.timetuple())
6868

69-
from intercom import FlatStore
69+
from intercom.lib.flat_store import FlatStore
7070
from intercom.user import create_class_instance
7171
Avatar = create_class_instance('Avatar')
7272
Company = create_class_instance('Company')

0 commit comments

Comments
 (0)