Status: | Merged |
---|---|
Approved by: | Soren Hansen |
Approved revision: | 15 |
Merged at revision: | 16 |
Proposed branch: | lp:~soren/riakalchemy/pep8 |
Merge into: | lp:riakalchemy |
Diff against target: |
265 lines (+43/-18) 7 files modified
riakalchemy/__init__.py (+1/-0) riakalchemy/exceptions.py (+2/-1) riakalchemy/meta.py (+0/-1) riakalchemy/model.py (+25/-11) riakalchemy/tests/test_basic.py (+7/-3) riakalchemy/types.py (+6/-0) setup.py (+2/-2) |
To merge this branch: | bzr merge lp:~soren/riakalchemy/pep8 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Soren Hansen | Pending | ||
Review via email: mp+83452@code.launchpad.net |
Commit message
pep8
Description of the change
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'riakalchemy/__init__.py' | |||
2 | --- riakalchemy/__init__.py 2011-11-19 23:31:19 +0000 | |||
3 | +++ riakalchemy/__init__.py 2011-11-25 22:37:23 +0000 | |||
4 | @@ -6,6 +6,7 @@ | |||
5 | 6 | global RiakObject | 6 | global RiakObject |
6 | 7 | global connect | 7 | global connect |
7 | 8 | 8 | ||
8 | 9 | |||
9 | 9 | def use_real_backend(): | 10 | def use_real_backend(): |
10 | 10 | global RiakObject | 11 | global RiakObject |
11 | 11 | global connect | 12 | global connect |
12 | 12 | 13 | ||
13 | === modified file 'riakalchemy/exceptions.py' | |||
14 | --- riakalchemy/exceptions.py 2011-10-24 08:09:20 +0000 | |||
15 | +++ riakalchemy/exceptions.py 2011-11-25 22:37:23 +0000 | |||
16 | @@ -1,9 +1,10 @@ | |||
17 | 1 | class RiakAlchemyError(Exception): | 1 | class RiakAlchemyError(Exception): |
18 | 2 | pass | 2 | pass |
19 | 3 | 3 | ||
20 | 4 | |||
21 | 4 | class ValidationError(RiakAlchemyError): | 5 | class ValidationError(RiakAlchemyError): |
22 | 5 | pass | 6 | pass |
23 | 6 | 7 | ||
24 | 8 | |||
25 | 7 | class NoSuchObjectError(RiakAlchemyError): | 9 | class NoSuchObjectError(RiakAlchemyError): |
26 | 8 | pass | 10 | pass |
27 | 9 | |||
28 | 10 | 11 | ||
29 | === removed file 'riakalchemy/meta.py' | |||
30 | --- riakalchemy/meta.py 2011-10-20 09:41:48 +0000 | |||
31 | +++ riakalchemy/meta.py 1970-01-01 00:00:00 +0000 | |||
32 | @@ -1,1 +0,0 @@ | |||
33 | 1 | |||
34 | 2 | 0 | ||
35 | === modified file 'riakalchemy/model.py' | |||
36 | --- riakalchemy/model.py 2011-11-19 23:29:44 +0000 | |||
37 | +++ riakalchemy/model.py 2011-11-25 22:37:23 +0000 | |||
38 | @@ -5,6 +5,7 @@ | |||
39 | 5 | from riakalchemy.exceptions import ValidationError, NoSuchObjectError | 5 | from riakalchemy.exceptions import ValidationError, NoSuchObjectError |
40 | 6 | from riakalchemy.types import RiakType | 6 | from riakalchemy.types import RiakType |
41 | 7 | 7 | ||
42 | 8 | |||
43 | 8 | class RiakModelRegistry(object): | 9 | class RiakModelRegistry(object): |
44 | 9 | def __init__(self): | 10 | def __init__(self): |
45 | 10 | self._registry = [] | 11 | self._registry = [] |
46 | @@ -21,6 +22,7 @@ | |||
47 | 21 | 22 | ||
48 | 22 | _registry = RiakModelRegistry() | 23 | _registry = RiakModelRegistry() |
49 | 23 | 24 | ||
50 | 25 | |||
51 | 24 | class RiakObjectMeta(type): | 26 | class RiakObjectMeta(type): |
52 | 25 | def __new__(cls, name, bases, attrs): | 27 | def __new__(cls, name, bases, attrs): |
53 | 26 | super_new = super(RiakObjectMeta, cls).__new__ | 28 | super_new = super(RiakObjectMeta, cls).__new__ |
54 | @@ -39,7 +41,6 @@ | |||
55 | 39 | return new_class | 41 | return new_class |
56 | 40 | 42 | ||
57 | 41 | 43 | ||
58 | 42 | |||
59 | 43 | class RiakObject(object): | 44 | class RiakObject(object): |
60 | 44 | __metaclass__ = RiakObjectMeta | 45 | __metaclass__ = RiakObjectMeta |
61 | 45 | searchable = False | 46 | searchable = False |
62 | @@ -87,8 +88,8 @@ | |||
63 | 87 | value = getattr(self, field, []) | 88 | value = getattr(self, field, []) |
64 | 88 | for rel in value: | 89 | for rel in value: |
65 | 89 | if not isinstance(rel, RiakObject): | 90 | if not isinstance(rel, RiakObject): |
68 | 90 | raise ValidationError('%s attribute of %s must be another ' | 91 | raise ValidationError('%s attribute of %s must be ' |
69 | 91 | 'RiakObject' % | 92 | 'another RiakObject' % |
70 | 92 | (field, self.__class__.__name__)) | 93 | (field, self.__class__.__name__)) |
71 | 93 | 94 | ||
72 | 94 | for link in self._links: | 95 | for link in self._links: |
73 | @@ -97,7 +98,8 @@ | |||
74 | 97 | self._links.remove(link) | 98 | self._links.remove(link) |
75 | 98 | 99 | ||
76 | 99 | for link in value: | 100 | for link in value: |
78 | 100 | self._links += [RiakLink(link.bucket_name, link.key, tag=field)] | 101 | self._links += [RiakLink(link.bucket_name, |
79 | 102 | link.key, tag=field)] | ||
80 | 101 | else: | 103 | else: |
81 | 102 | if hasattr(self, field): | 104 | if hasattr(self, field): |
82 | 103 | value = self._meta[field].clean(getattr(self, field)) | 105 | value = self._meta[field].clean(getattr(self, field)) |
83 | @@ -118,9 +120,13 @@ | |||
84 | 118 | if len(kwargs) == 1: | 120 | if len(kwargs) == 1: |
85 | 119 | field = kwargs.keys()[0] | 121 | field = kwargs.keys()[0] |
86 | 120 | if cls._meta[field].link_type and cls._meta[field].backref: | 122 | if cls._meta[field].link_type and cls._meta[field].backref: |
90 | 121 | bucket = client.bucket(cls.bucket_name) | 123 | bucket = client.bucket(cls.bucket_name) |
91 | 122 | index_query = client.index(cls.bucket_name, '%s_bin' % (field,), '%s/%s' % (kwargs[field].bucket_name, kwargs[field].key)) | 124 | _2i_key = '%s_bin' % (field,) |
92 | 123 | return RiakObjectQuery(index_query, cls, True) | 125 | _2i_value = ('%s/%s' % (kwargs[field].bucket_name, |
93 | 126 | kwargs[field].key)) | ||
94 | 127 | index_query = client.index(cls.bucket_name, | ||
95 | 128 | _2i_key, _2i_value) | ||
96 | 129 | return RiakObjectQuery(index_query, cls, True) | ||
97 | 124 | elif cls.searchable and kwargs: | 130 | elif cls.searchable and kwargs: |
98 | 125 | return cls.get_search(**kwargs) | 131 | return cls.get_search(**kwargs) |
99 | 126 | else: | 132 | else: |
100 | @@ -128,14 +134,16 @@ | |||
101 | 128 | 134 | ||
102 | 129 | @classmethod | 135 | @classmethod |
103 | 130 | def get_search(cls, **kwargs): | 136 | def get_search(cls, **kwargs): |
105 | 131 | terms = ' AND '.join(['%s:"%s"' % (k,v) for k,v in kwargs.iteritems()]) | 137 | terms = ' AND '.join(['%s:"%s"' % (k, v) |
106 | 138 | for k, v in kwargs.iteritems()]) | ||
107 | 132 | query = client.search(cls.bucket_name, terms) | 139 | query = client.search(cls.bucket_name, terms) |
108 | 133 | return RiakObjectQuery(query, cls, True) | 140 | return RiakObjectQuery(query, cls, True) |
109 | 134 | 141 | ||
110 | 135 | @classmethod | 142 | @classmethod |
111 | 136 | def get_mr(cls, **kwargs): | 143 | def get_mr(cls, **kwargs): |
112 | 137 | query = client.add(cls.bucket_name) | 144 | query = client.add(cls.bucket_name) |
114 | 138 | terms = ' && '.join(['true'] + ['data.%s=="%s"' % (k,v) for k,v in kwargs.iteritems()]) | 145 | terms = (' && '.join(['true'] + |
115 | 146 | ['data.%s=="%s"' % (k, v) for k, v in kwargs.iteritems()])) | ||
116 | 139 | map_func = """function(v) { | 147 | map_func = """function(v) { |
117 | 140 | var data = JSON.parse(v.values[0].data); | 148 | var data = JSON.parse(v.values[0].data); |
118 | 141 | if(%s) { | 149 | if(%s) { |
119 | @@ -175,7 +183,8 @@ | |||
120 | 175 | bucket.enable_search() | 183 | bucket.enable_search() |
121 | 176 | 184 | ||
122 | 177 | data_dict = dict((k, getattr(self, k)) for k in self._meta | 185 | data_dict = dict((k, getattr(self, k)) for k in self._meta |
124 | 178 | if not self._meta[k].link_type and hasattr(self, k)) | 186 | if not self._meta[k].link_type |
125 | 187 | and hasattr(self, k)) | ||
126 | 179 | if self._riak_obj: | 188 | if self._riak_obj: |
127 | 180 | self._riak_obj.set_data(data_dict) | 189 | self._riak_obj.set_data(data_dict) |
128 | 181 | else: | 190 | else: |
129 | @@ -193,7 +202,9 @@ | |||
130 | 193 | if self._meta[field].link_type and self._meta[field].backref: | 202 | if self._meta[field].link_type and self._meta[field].backref: |
131 | 194 | value = getattr(self, field) | 203 | value = getattr(self, field) |
132 | 195 | for link in value: | 204 | for link in value: |
134 | 196 | self._riak_obj.add_index('%s_bin' % (field,), '%s/%s' % (link.bucket_name, link.key)) | 205 | self._riak_obj.add_index('%s_bin' % (field,), |
135 | 206 | '%s/%s' % (link.bucket_name, | ||
136 | 207 | link.key)) | ||
137 | 197 | 208 | ||
138 | 198 | self._riak_obj.store() | 209 | self._riak_obj.store() |
139 | 199 | self.key = self._riak_obj.get_key() | 210 | self.key = self._riak_obj.get_key() |
140 | @@ -217,10 +228,12 @@ | |||
141 | 217 | client = None | 228 | client = None |
142 | 218 | _test_server = None | 229 | _test_server = None |
143 | 219 | 230 | ||
144 | 231 | |||
145 | 220 | def reset_registry(): | 232 | def reset_registry(): |
146 | 221 | global _registry | 233 | global _registry |
147 | 222 | _registry = RiakModelRegistry() | 234 | _registry = RiakModelRegistry() |
148 | 223 | 235 | ||
149 | 236 | |||
150 | 224 | def connect(host='127.0.0.1', port=8098, test_server=False): | 237 | def connect(host='127.0.0.1', port=8098, test_server=False): |
151 | 225 | global client | 238 | global client |
152 | 226 | if test_server: | 239 | if test_server: |
153 | @@ -237,6 +250,7 @@ | |||
154 | 237 | 250 | ||
155 | 238 | client = riak.RiakClient(host=host, port=port) | 251 | client = riak.RiakClient(host=host, port=port) |
156 | 239 | 252 | ||
157 | 253 | |||
158 | 240 | def _clear_test_connection(): | 254 | def _clear_test_connection(): |
159 | 241 | global _test_server | 255 | global _test_server |
160 | 242 | _test_server.recycle() | 256 | _test_server.recycle() |
161 | 243 | 257 | ||
162 | === modified file 'riakalchemy/tests/test_basic.py' | |||
163 | --- riakalchemy/tests/test_basic.py 2011-11-16 21:40:07 +0000 | |||
164 | +++ riakalchemy/tests/test_basic.py 2011-11-25 22:37:23 +0000 | |||
165 | @@ -17,9 +17,11 @@ | |||
166 | 17 | supports_indexes = False | 17 | supports_indexes = False |
167 | 18 | riak_port = 10229 | 18 | riak_port = 10229 |
168 | 19 | 19 | ||
169 | 20 | |||
170 | 20 | class _BasicTests(unittest.TestCase): | 21 | class _BasicTests(unittest.TestCase): |
171 | 21 | def _create_class(self, searchable=False, last_name_required=False): | 22 | def _create_class(self, searchable=False, last_name_required=False): |
172 | 22 | _searchable = searchable | 23 | _searchable = searchable |
173 | 24 | |||
174 | 23 | class Person(RiakObject): | 25 | class Person(RiakObject): |
175 | 24 | searchable = _searchable | 26 | searchable = _searchable |
176 | 25 | bucket_name = 'users1' | 27 | bucket_name = 'users1' |
177 | @@ -43,7 +45,7 @@ | |||
178 | 43 | 45 | ||
179 | 44 | def _incomplete_value_set(self): | 46 | def _incomplete_value_set(self): |
180 | 45 | return {'first_name': 'soren', | 47 | return {'first_name': 'soren', |
182 | 46 | 'age': 31 } | 48 | 'age': 31} |
183 | 47 | 49 | ||
184 | 48 | def _set_values_on_init(self, values, searchable=False, | 50 | def _set_values_on_init(self, values, searchable=False, |
185 | 49 | last_name_required=False): | 51 | last_name_required=False): |
186 | @@ -58,7 +60,7 @@ | |||
187 | 58 | 60 | ||
188 | 59 | def _object_create_and_setattr(self, values): | 61 | def _object_create_and_setattr(self, values): |
189 | 60 | cls, obj = self._create_object() | 62 | cls, obj = self._create_object() |
191 | 61 | for k,v in values.iteritems(): | 63 | for k, v in values.iteritems(): |
192 | 62 | setattr(obj, k, v) | 64 | setattr(obj, k, v) |
193 | 63 | return cls, obj | 65 | return cls, obj |
194 | 64 | 66 | ||
195 | @@ -135,7 +137,8 @@ | |||
196 | 135 | 137 | ||
197 | 136 | def _test_retrieve_by_values(self, searchable): | 138 | def _test_retrieve_by_values(self, searchable): |
198 | 137 | values = self._incomplete_value_set() | 139 | values = self._incomplete_value_set() |
200 | 138 | cls, obj = self._set_values_on_init(searchable=searchable, values=values) | 140 | cls, obj = self._set_values_on_init(searchable=searchable, |
201 | 141 | values=values) | ||
202 | 139 | obj.save() | 142 | obj.save() |
203 | 140 | self.addCleanup(obj.delete) | 143 | self.addCleanup(obj.delete) |
204 | 141 | 144 | ||
205 | @@ -258,6 +261,7 @@ | |||
206 | 258 | self.assertIn(persons[1].first_name, [persons[0].first_name, | 261 | self.assertIn(persons[1].first_name, [persons[0].first_name, |
207 | 259 | persons[1].first_name]) | 262 | persons[1].first_name]) |
208 | 260 | 263 | ||
209 | 264 | |||
210 | 261 | class RiakBackedTests(_BasicTests): | 265 | class RiakBackedTests(_BasicTests): |
211 | 262 | test_server_started = False | 266 | test_server_started = False |
212 | 263 | 267 | ||
213 | 264 | 268 | ||
214 | === modified file 'riakalchemy/types.py' | |||
215 | --- riakalchemy/types.py 2011-11-05 20:03:19 +0000 | |||
216 | +++ riakalchemy/types.py 2011-11-25 22:37:23 +0000 | |||
217 | @@ -1,5 +1,6 @@ | |||
218 | 1 | from riakalchemy.exceptions import ValidationError | 1 | from riakalchemy.exceptions import ValidationError |
219 | 2 | 2 | ||
220 | 3 | |||
221 | 3 | class RiakType(object): | 4 | class RiakType(object): |
222 | 4 | link_type = False | 5 | link_type = False |
223 | 5 | 6 | ||
224 | @@ -12,12 +13,15 @@ | |||
225 | 12 | def validate(self, value): | 13 | def validate(self, value): |
226 | 13 | return True | 14 | return True |
227 | 14 | 15 | ||
228 | 16 | |||
229 | 15 | class Dict(RiakType): | 17 | class Dict(RiakType): |
230 | 16 | pass | 18 | pass |
231 | 17 | 19 | ||
232 | 20 | |||
233 | 18 | class String(RiakType): | 21 | class String(RiakType): |
234 | 19 | pass | 22 | pass |
235 | 20 | 23 | ||
236 | 24 | |||
237 | 21 | class Integer(RiakType): | 25 | class Integer(RiakType): |
238 | 22 | def clean(self, value): | 26 | def clean(self, value): |
239 | 23 | try: | 27 | try: |
240 | @@ -25,8 +29,10 @@ | |||
241 | 25 | except ValueError: | 29 | except ValueError: |
242 | 26 | raise ValidationError("%r could not be cast to integer" % (value,)) | 30 | raise ValidationError("%r could not be cast to integer" % (value,)) |
243 | 27 | 31 | ||
244 | 32 | |||
245 | 28 | class RelatedObjects(RiakType): | 33 | class RelatedObjects(RiakType): |
246 | 29 | link_type = True | 34 | link_type = True |
247 | 35 | |||
248 | 30 | def __init__(self, backref=False, **kwargs): | 36 | def __init__(self, backref=False, **kwargs): |
249 | 31 | super(RelatedObjects, self).__init__(**kwargs) | 37 | super(RelatedObjects, self).__init__(**kwargs) |
250 | 32 | self.backref = backref | 38 | self.backref = backref |
251 | 33 | 39 | ||
252 | === modified file 'setup.py' | |||
253 | --- setup.py 2011-11-19 23:31:19 +0000 | |||
254 | +++ setup.py 2011-11-25 22:37:23 +0000 | |||
255 | @@ -13,8 +13,8 @@ | |||
256 | 13 | url='https://launchpad.net/riakalchemy', | 13 | url='https://launchpad.net/riakalchemy', |
257 | 14 | packages=['riakalchemy'], | 14 | packages=['riakalchemy'], |
258 | 15 | install_requires=['riak'], | 15 | install_requires=['riak'], |
261 | 16 | test_suite = 'nose.collector', | 16 | test_suite='nose.collector', |
262 | 17 | classifiers = [ | 17 | classifiers=[ |
263 | 18 | 'Development Status :: 1 - Planning', | 18 | 'Development Status :: 1 - Planning', |
264 | 19 | 'Intended Audience :: Developers', | 19 | 'Intended Audience :: Developers', |
265 | 20 | 'License :: OSI Approved :: ' | 20 | 'License :: OSI Approved :: ' |