autonomous-app 0.3.3__tar.gz → 0.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/PKG-INFO +1 -1
  2. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/__init__.py +1 -1
  3. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/base/fields.py +6 -6
  4. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/dereference.py +8 -4
  5. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/fields.py +10 -10
  6. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/queryset/base.py +1 -1
  7. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/model/autoattr.py +2 -27
  8. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/model/automodel.py +4 -3
  9. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous_app.egg-info/PKG-INFO +1 -1
  10. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/LICENSE +0 -0
  11. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/README.md +0 -0
  12. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/pyproject.toml +0 -0
  13. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/requirements.txt +0 -0
  14. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/setup.cfg +0 -0
  15. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/setup.py +0 -0
  16. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/__init__.py +0 -0
  17. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/audioagent.py +0 -0
  18. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/imageagent.py +0 -0
  19. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/jsonagent.py +0 -0
  20. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/models/__init__.py +0 -0
  21. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/models/openai.py +0 -0
  22. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/oaiagent.py +0 -0
  23. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/ai/textagent.py +0 -0
  24. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
  25. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
  26. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/apis/version_control/GHRepo.py +0 -0
  27. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
  28. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/apis/version_control/__init__.py +0 -0
  29. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/auth/__init__.py +0 -0
  30. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/auth/autoauth.py +0 -0
  31. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/auth/github.py +0 -0
  32. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/auth/google.py +0 -0
  33. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/auth/user.py +0 -0
  34. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/cli.py +0 -0
  35. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/__init__.py +0 -0
  36. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/base/__init__.py +0 -0
  37. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/base/common.py +0 -0
  38. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/base/datastructures.py +0 -0
  39. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/base/document.py +0 -0
  40. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/base/metaclasses.py +0 -0
  41. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/base/utils.py +0 -0
  42. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/common.py +0 -0
  43. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/connection.py +0 -0
  44. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/context_managers.py +0 -0
  45. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/document.py +0 -0
  46. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/errors.py +0 -0
  47. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/mongodb_support.py +0 -0
  48. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/pymongo_support.py +0 -0
  49. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/queryset/__init__.py +0 -0
  50. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/queryset/field_list.py +0 -0
  51. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/queryset/manager.py +0 -0
  52. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/queryset/queryset.py +0 -0
  53. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/queryset/transform.py +0 -0
  54. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/queryset/visitor.py +0 -0
  55. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/db/signals.py +0 -0
  56. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/logger.py +0 -0
  57. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/model/__init__.py +0 -0
  58. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/storage/__init__.py +0 -0
  59. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/storage/imagestorage.py +0 -0
  60. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/storage/localstorage.py +0 -0
  61. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/tasks/__init__.py +0 -0
  62. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/tasks/autotask.py +0 -0
  63. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous/utils/markdown.py +0 -0
  64. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous_app.egg-info/SOURCES.txt +0 -0
  65. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
  66. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous_app.egg-info/requires.txt +0 -0
  67. {autonomous_app-0.3.3 → autonomous_app-0.3.4}/src/autonomous_app.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autonomous-app
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Containerized application framework built on Flask with additional libraries and tools for rapid development of web applications.
5
5
  Author-email: Steven A Moore <samoore@binghamton.edu>
6
6
  License: MIT License
@@ -1,4 +1,4 @@
1
- __version__ = "0.3.3"
1
+ __version__ = "0.3.4"
2
2
 
3
3
  from dotenv import load_dotenv
4
4
 
@@ -338,12 +338,15 @@ class ComplexBaseField(BaseField):
338
338
  @staticmethod
339
339
  def _lazy_load_refs(instance, name, ref_values, *, max_depth):
340
340
  _dereference = _import_class("DeReference")()
341
+ # log("_lazy_load_refs", _dereference)
342
+ # MARK: PROBLEM
341
343
  documents = _dereference(
342
344
  ref_values,
343
345
  max_depth=max_depth,
344
346
  instance=instance,
345
347
  name=name,
346
348
  )
349
+
347
350
  return documents
348
351
 
349
352
  def __set__(self, instance, value):
@@ -365,14 +368,14 @@ class ComplexBaseField(BaseField):
365
368
  # Document class being used rather than a document object
366
369
  return self
367
370
 
368
- ReferenceField = _import_class("ReferenceField")
371
+ # ReferenceField = _import_class("ReferenceField")
369
372
  GenericReferenceField = _import_class("GenericReferenceField")
370
373
  # EmbeddedDocumentListField = _import_class("EmbeddedDocumentListField")
371
374
 
372
375
  auto_dereference = instance._fields[self.name]._auto_dereference
373
376
  dereference = auto_dereference and (
374
- self.field is None
375
- or isinstance(self.field, (GenericReferenceField, ReferenceField))
377
+ self.field is None or isinstance(self.field, GenericReferenceField)
378
+ # or isinstance(self.field, (GenericReferenceField, ReferenceField))
376
379
  )
377
380
 
378
381
  if (
@@ -382,11 +385,9 @@ class ComplexBaseField(BaseField):
382
385
  and not getattr(instance._data[self.name], "_dereferenced", False)
383
386
  ):
384
387
  ref_values = instance._data.get(self.name)
385
- # log(f"Lazy loading refs for {self.name}: {ref_values}")
386
388
  instance._data[self.name] = self._lazy_load_refs(
387
389
  ref_values=ref_values, instance=instance, name=self.name, max_depth=1
388
390
  )
389
- # log(f"Lazy loading results: {instance._data[self.name]}")
390
391
  if hasattr(instance._data[self.name], "_dereferenced"):
391
392
  instance._data[self.name]._dereferenced = True
392
393
  value = super().__get__(instance, owner)
@@ -416,7 +417,6 @@ class ComplexBaseField(BaseField):
416
417
  )
417
418
  value._dereferenced = True
418
419
  instance._data[self.name] = value
419
- # log(f"Value: {value}")
420
420
  return value
421
421
 
422
422
  def to_python(self, value):
@@ -13,7 +13,7 @@ from autonomous.db.connection import get_db
13
13
  from autonomous.db.document import Document, EmbeddedDocument
14
14
  from autonomous.db.fields import (
15
15
  DictField,
16
- GenericReferenceField,
16
+ # GenericReferenceField,
17
17
  ListField,
18
18
  MapField,
19
19
  ReferenceField,
@@ -180,7 +180,6 @@ class DeReference:
180
180
  refs = [
181
181
  dbref for dbref in dbrefs if (collection, dbref) not in object_map
182
182
  ]
183
- # log(doc_type)
184
183
  if isinstance(doc_type, Document):
185
184
  references = doc_type._get_db()[collection].find(
186
185
  {"_id": {"$in": refs}}
@@ -225,9 +224,14 @@ class DeReference:
225
224
 
226
225
  if isinstance(items, (dict, SON)):
227
226
  if "_ref" in items:
228
- return self.object_map.get(
229
- (items["_ref"].collection, items["_ref"].id), items
227
+ # MARK: Changed this to remove deleted references
228
+ # result = self.object_map.get(
229
+ # (items["_ref"].collection, items["_ref"].id), items
230
+ # )
231
+ result = self.object_map.get(
232
+ (items["_ref"].collection, items["_ref"].id)
230
233
  )
234
+ return result
231
235
  elif "_cls" in items:
232
236
  doc = get_document(items["_cls"])._from_son(items)
233
237
  _cls = doc._data.pop("_cls", None)
@@ -36,7 +36,8 @@ from autonomous.db.base import (
36
36
  get_document,
37
37
  )
38
38
  from autonomous.db.base.utils import LazyRegexCompiler
39
- from autonomous.db.common import _import_class
39
+
40
+ # from autonomous.db.common import _import_class
40
41
  from autonomous.db.connection import DEFAULT_CONNECTION_NAME, get_db
41
42
  from autonomous.db.document import Document, EmbeddedDocument
42
43
  from autonomous.db.errors import (
@@ -927,15 +928,14 @@ class ListField(ComplexBaseField):
927
928
  if instance is None:
928
929
  # Document class being used rather than a document object
929
930
  return self
930
- value = instance._data.get(self.name)
931
- LazyReferenceField = _import_class("LazyReferenceField")
932
- GenericLazyReferenceField = _import_class("GenericLazyReferenceField")
933
- if (
934
- isinstance(self.field, (LazyReferenceField, GenericLazyReferenceField))
935
- and value
936
- ):
937
- instance._data[self.name] = [self.field.build_lazyref(x) for x in value]
938
-
931
+ # value = instance._data.get(self.name)
932
+ # LazyReferenceField = _import_class("LazyReferenceField")
933
+ # GenericLazyReferenceField = _import_class("GenericLazyReferenceField")
934
+ # if (
935
+ # isinstance(self.field, (LazyReferenceField, GenericLazyReferenceField))
936
+ # and value
937
+ # ):
938
+ # instance._data[self.name] = [self.field.build_lazyref(x) for x in value]
939
939
  return super().__get__(instance, owner)
940
940
 
941
941
  def validate(self, value):
@@ -12,6 +12,7 @@ from pymongo.collection import ReturnDocument
12
12
  from pymongo.common import validate_read_preference
13
13
  from pymongo.read_concern import ReadConcern
14
14
 
15
+ from autonomous import log
15
16
  from autonomous.db import signals
16
17
  from autonomous.db.base import get_document
17
18
  from autonomous.db.common import _import_class
@@ -785,7 +786,6 @@ class BaseQuerySet:
785
786
  doc,
786
787
  _auto_dereference=self._auto_dereference,
787
788
  )
788
-
789
789
  return doc_map
790
790
 
791
791
  def none(self):
@@ -8,7 +8,6 @@ from autonomous.db.fields import (
8
8
  EnumField,
9
9
  FileField,
10
10
  FloatField,
11
- GenericLazyReferenceField,
12
11
  GenericReferenceField,
13
12
  ImageField,
14
13
  IntField,
@@ -59,51 +58,27 @@ class ReferenceAttr(GenericReferenceField):
59
58
  return result
60
59
 
61
60
 
62
- # class ReferenceAttr(GenericLazyReferenceField):
63
- # def __get__(self, instance, owner):
64
- # try:
65
- # result = super().__get__(instance, owner)
66
- # except DoesNotExist as e:
67
- # log(f"ReferenceAttr Error: {e}")
68
- # return None
69
- # return result.fetch() if result and result.pk else result
70
-
71
- # except DoesNotExist:
72
- # If the document doesn't exist, return None
73
- # return None
74
-
75
- # def validate(self, value):
76
- # if value is not None and not self.required:
77
- # super().validate(value)
78
-
79
-
80
61
  class ListAttr(ListField):
81
- # pass
82
62
  def __get__(self, instance, owner):
83
- # log(instance, owner)
84
63
  results = super().__get__(instance, owner) or []
85
- # print(self.name, self.field, owner, results)
86
64
  if isinstance(self.field, ReferenceAttr):
87
65
  i = 0
88
66
  while i < len(results):
89
67
  try:
90
68
  if not results[i]:
91
- log(f"Removing Object: {results[i]}")
69
+ # log(f"Removing Object: {results[i]}")
92
70
  results.pop(i)
93
71
  else:
94
72
  i += 1
95
73
  except DoesNotExist:
96
74
  results.pop(i)
97
- log(f"Object Not Found: {results[i]}")
98
- # log(results)
75
+ # log(f"Object Not Found: {results[i]}")
99
76
  return results
100
77
 
101
78
 
102
79
  class DictAttr(DictField):
103
80
  def __get__(self, instance, owner):
104
- # log(instance, owner)
105
81
  results = super().__get__(instance, owner) or {}
106
- # log(self.name, self.field, owner, results)
107
82
  for key, lazy_obj in results.items():
108
83
  try:
109
84
  if hasattr(lazy_obj, "fetch"):
@@ -54,15 +54,16 @@ class AutoModel(Document):
54
54
  def _auto_post_init(cls, sender, document, **kwargs):
55
55
  sender.auto_post_init(sender, document, **kwargs)
56
56
 
57
- @classmethod
58
- def model_name(cls, qualified=False):
57
+ def model_name(self, qualified=False):
59
58
  """
60
59
  Get the fully qualified name of this model.
61
60
 
62
61
  Returns:
63
62
  str: The fully qualified name of this model.
64
63
  """
65
- return f"{cls.__module__}.{cls.__name__}" if qualified else cls.__name__
64
+ return (
65
+ f"{self.__module__}.{self._class_name}" if qualified else self._class_name
66
+ )
66
67
 
67
68
  @classmethod
68
69
  def load_model(cls, model):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autonomous-app
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Containerized application framework built on Flask with additional libraries and tools for rapid development of web applications.
5
5
  Author-email: Steven A Moore <samoore@binghamton.edu>
6
6
  License: MIT License
File without changes
File without changes
File without changes
File without changes