88orm
Advanced tools
| Metadata-Version: 2.1 | ||
| Name: 88orm | ||
| Version: 0.1.8 | ||
| Version: 0.1.8.1 | ||
| Summary: ORM Service Connector | ||
@@ -5,0 +5,0 @@ Home-page: http://pypi.python.org/pypi/88orm/ |
+18
-3
@@ -62,2 +62,3 @@ # -*- coding: utf-8 -*- | ||
| self._CHUNK_SIZE = 20 | ||
| self._prefetch_done = False | ||
| self.model_info = get_model(model, app_label) | ||
@@ -105,3 +106,3 @@ | ||
| result_cache = self._result_cache.get('result') | ||
| if result_cache: | ||
| if result_cache or self._prefetch_done: | ||
| return result_cache[item] | ||
@@ -326,3 +327,3 @@ if isinstance(item, slice): | ||
| elif response.status_code == 404: | ||
| raise ObjectDoesNotExist( | ||
| raise self.DoesNotExist( | ||
| "%s matching query does not exist." % self._model_name.capitalize()) | ||
@@ -463,3 +464,3 @@ try: | ||
| return self.get(*args, **kwargs), False | ||
| except ObjectDoesNotExist: | ||
| except self.DoesNotExist: | ||
| return self.create(**kwargs), True | ||
@@ -470,2 +471,13 @@ | ||
| def filter_offline(self, **kwargs): | ||
| def _filter(item): | ||
| if isinstance(item, VirtualModel): | ||
| ret = [] | ||
| for key, value in kwargs.items(): | ||
| ret.append(getattr(item, key) == value) | ||
| return all(ret) | ||
| return False | ||
| return list(filter(_filter, self._result_cache.get('result', []))) | ||
| @classmethod | ||
@@ -497,1 +509,4 @@ def execute_many(cls, payloads: List): | ||
| ) | ||
| class DoesNotExist(ObjectDoesNotExist): | ||
| pass |
+9
-1
@@ -96,4 +96,12 @@ import json | ||
| elif isinstance(_value, list): | ||
| attr_value = create_reverse_many_to_one(model, {})() | ||
| attr_value = create_reverse_many_to_one(model, { | ||
| 'filter': { | ||
| 'args': [], | ||
| 'kwargs': { | ||
| related_field: self.id | ||
| } | ||
| } | ||
| })() | ||
| attr_value._bind(data=_value) | ||
| attr_value._prefetch_done = True | ||
| elif isinstance(_value, dict): | ||
@@ -100,0 +108,0 @@ attr_value = self.__class__(model, self._payload, value=_value) |
@@ -13,3 +13,3 @@ def create_reverse_many_to_one(model, payload): | ||
| def all(self): | ||
| if self._result_cache: | ||
| if self._prefetch_done: | ||
| return self | ||
@@ -16,0 +16,0 @@ return super(RelatedManyToOneDescriptors, self).all() |
+1
-1
| Metadata-Version: 2.1 | ||
| Name: 88orm | ||
| Version: 0.1.8 | ||
| Version: 0.1.8.1 | ||
| Summary: ORM Service Connector | ||
@@ -5,0 +5,0 @@ Home-page: http://pypi.python.org/pypi/88orm/ |
+1
-1
@@ -8,3 +8,3 @@ import setuptools | ||
| name="88orm", | ||
| version="0.1.8", | ||
| version="0.1.8.1", | ||
| author="Rimba Prayoga", | ||
@@ -11,0 +11,0 @@ author_email="rimba47prayoga@gmail.com", |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
28524
2.79%733
2.81%