autonomous-app 0.2.20__tar.gz → 0.2.22__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 (43) hide show
  1. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/PKG-INFO +1 -1
  2. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/__init__.py +1 -1
  3. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/model/automodel.py +0 -3
  4. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/model/serializer.py +1 -1
  5. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/imagestorage.py +37 -2
  6. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous_app.egg-info/PKG-INFO +1 -1
  7. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/LICENSE +0 -0
  8. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/README.md +0 -0
  9. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/pyproject.toml +0 -0
  10. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/requirements.txt +0 -0
  11. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/setup.cfg +0 -0
  12. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/setup.py +0 -0
  13. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/ai/__init__.py +0 -0
  14. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/ai/oaiagent.py +0 -0
  15. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/auth/__init__.py +0 -0
  16. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/auth/autoauth.py +0 -0
  17. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/auth/github.py +0 -0
  18. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/auth/google.py +0 -0
  19. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/auth/user.py +0 -0
  20. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/cli.py +0 -0
  21. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/db/__init__.py +0 -0
  22. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/db/autodb.py +0 -0
  23. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/db/table.py +0 -0
  24. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/errors/__init__.py +0 -0
  25. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/errors/danglingreferenceerror.py +0 -0
  26. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/logger.py +0 -0
  27. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/model/__init__.py +0 -0
  28. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/model/autoattribute.py +0 -0
  29. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/model/orm.py +0 -0
  30. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/__init__.py +0 -0
  31. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/localstorage.py +0 -0
  32. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/markdown.py +0 -0
  33. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/version_control/GHCallbacks.py +0 -0
  34. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/version_control/GHOrganization.py +0 -0
  35. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/version_control/GHRepo.py +0 -0
  36. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/version_control/GHVersionControl.py +0 -0
  37. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/storage/version_control/__init__.py +0 -0
  38. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/tasks/__init__.py +0 -0
  39. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous/tasks/autotask.py +0 -0
  40. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous_app.egg-info/SOURCES.txt +0 -0
  41. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
  42. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/src/autonomous_app.egg-info/requires.txt +0 -0
  43. {autonomous_app-0.2.20 → autonomous_app-0.2.22}/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.2.20
3
+ Version: 0.2.22
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.2.20"
1
+ __version__ = "0.2.22"
2
2
 
3
3
  from .logger import log
4
4
  from .model.automodel import AutoModel
@@ -141,7 +141,6 @@ class AutoModel(ABC):
141
141
  except DanglingReferenceError as e:
142
142
  log(e)
143
143
  super().__setattr__(name, None)
144
- self.save()
145
144
  return None
146
145
  else:
147
146
  super().__setattr__(name, result)
@@ -161,7 +160,6 @@ class AutoModel(ABC):
161
160
  if scrubbed:
162
161
  super().__setattr__(name, results)
163
162
  obj = results
164
- self.save()
165
163
 
166
164
  elif isinstance(obj, dict):
167
165
  results = {}
@@ -178,7 +176,6 @@ class AutoModel(ABC):
178
176
  if scrubbed:
179
177
  super().__setattr__(name, results)
180
178
  obj = results
181
- self.save()
182
179
  return obj
183
180
 
184
181
  def __str__(self) -> str:
@@ -52,7 +52,7 @@ class AutoEncoder:
52
52
  o,
53
53
  "The above object was not been saved. You must save subobjects if you want them to persist.",
54
54
  )
55
- raise ValueError("Cannot encode unsaved AutoModel")
55
+ raise ValueError(f"Cannot encode unsaved {o.model_name(qualified=True)}")
56
56
 
57
57
 
58
58
  class AutoDecoder:
@@ -1,3 +1,4 @@
1
+ import glob
1
2
  import io
2
3
  import os
3
4
  import shutil
@@ -130,6 +131,40 @@ class ImageStorage:
130
131
  def remove(self, asset_id):
131
132
  file_path = self.get_path(asset_id)
132
133
  if os.path.isdir(file_path):
133
- shutil.rmtree(file_path)
134
- return True
134
+ os.rmdir(file_path)
135
+ return False
136
+
137
+ def clear_cached(self, asset_id):
138
+ file_path = self.get_path(asset_id)
139
+ if os.path.isdir(file_path):
140
+ for file in glob.glob(os.path.join(file_path, "*")):
141
+ if os.path.basename(file) != "orig.webp":
142
+ os.remove(file)
143
+ return False
144
+
145
+ def rotate(self, asset_id, amount=-90):
146
+ file_path = self.get_path(asset_id)
147
+ log(asset_id)
148
+ with Image.open(f"{file_path}/orig.webp") as img:
149
+ # Rotate the image 90 degrees
150
+ rotated_img = img.rotate(amount, expand=True)
151
+ # Save the rotated image
152
+ log(img, rotated_img)
153
+ # img = img.copy()
154
+ # img_byte_arr = io.BytesIO()
155
+ # img.save(img_byte_arr, )
156
+ self.clear_cached(asset_id)
157
+ rotated_img.save(f"{file_path}/orig.webp", format="WEBP")
158
+ return False
159
+
160
+ def flip(self, asset_id, flipx=True, flipy=True):
161
+ file_path = self.get_path(asset_id)
162
+ with Image.open(f"{file_path}/orig.webp") as img:
163
+ if flipx:
164
+ rotated_img = img.transpose(Image.FLIP_LEFT_RIGHT)
165
+ if flipy:
166
+ rotated_img = img.transpose(Image.FLIP_TOP_BOTTOM)
167
+ # Save the rotated image
168
+ rotated_img.save(f"{file_path}/orig.webp", format="WEBP")
169
+ self.clear_cached(asset_id)
135
170
  return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autonomous-app
3
- Version: 0.2.20
3
+ Version: 0.2.22
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