autonomous-app 0.3.31__tar.gz → 0.3.32__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 (71) hide show
  1. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/PKG-INFO +1 -1
  2. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/__init__.py +1 -1
  3. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/db_sync.py +3 -2
  4. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/tasks/autotask.py +26 -13
  5. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/PKG-INFO +1 -1
  6. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/README.md +0 -0
  7. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/pyproject.toml +0 -0
  8. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/requirements.txt +0 -0
  9. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/setup.cfg +0 -0
  10. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/setup.py +0 -0
  11. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/__init__.py +0 -0
  12. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/audioagent.py +0 -0
  13. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/baseagent.py +0 -0
  14. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/imageagent.py +0 -0
  15. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/jsonagent.py +0 -0
  16. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/__init__.py +0 -0
  17. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/aws.py +0 -0
  18. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/deepseek.py +0 -0
  19. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/gemini.py +0 -0
  20. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/local_model.py +0 -0
  21. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/openai.py +0 -0
  22. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/textagent.py +0 -0
  23. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
  24. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
  25. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHRepo.py +0 -0
  26. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
  27. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/__init__.py +0 -0
  28. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/__init__.py +0 -0
  29. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/autoauth.py +0 -0
  30. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/github.py +0 -0
  31. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/google.py +0 -0
  32. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/user.py +0 -0
  33. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/cli.py +0 -0
  34. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/__init__.py +0 -0
  35. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/__init__.py +0 -0
  36. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/common.py +0 -0
  37. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/datastructures.py +0 -0
  38. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/document.py +0 -0
  39. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/fields.py +0 -0
  40. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/metaclasses.py +0 -0
  41. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/utils.py +0 -0
  42. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/common.py +0 -0
  43. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/connection.py +0 -0
  44. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/context_managers.py +0 -0
  45. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/dereference.py +0 -0
  46. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/document.py +0 -0
  47. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/errors.py +0 -0
  48. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/fields.py +0 -0
  49. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/mongodb_support.py +0 -0
  50. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/pymongo_support.py +0 -0
  51. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/__init__.py +0 -0
  52. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/base.py +0 -0
  53. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/field_list.py +0 -0
  54. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/manager.py +0 -0
  55. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/queryset.py +0 -0
  56. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/transform.py +0 -0
  57. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/visitor.py +0 -0
  58. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/signals.py +0 -0
  59. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/logger.py +0 -0
  60. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/model/autoattr.py +0 -0
  61. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/model/automodel.py +0 -0
  62. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/storage/__init__.py +0 -0
  63. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/storage/imagestorage.py +0 -0
  64. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/storage/localstorage.py +0 -0
  65. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/tasks/__init__.py +0 -0
  66. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/tasks/task_router.py +0 -0
  67. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/utils/markdown.py +0 -0
  68. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/SOURCES.txt +0 -0
  69. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
  70. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/requires.txt +0 -0
  71. {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autonomous-app
3
- Version: 0.3.31
3
+ Version: 0.3.32
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
  Project-URL: homepage, https://github.com/Sallenmoore/autonomous
@@ -1,4 +1,4 @@
1
- __version__ = "0.3.31"
1
+ __version__ = "0.3.32"
2
2
 
3
3
  from dotenv import load_dotenv
4
4
 
@@ -46,8 +46,8 @@ def process_single_object_sync(object_id, collection_name, token):
46
46
  token_key = f"sync_token:{collection_name}:{str_id}"
47
47
 
48
48
  # 1. THE DEBOUNCE WAIT (Happens in background)
49
- print(f"Debouncing {str_id} for 5 seconds...")
50
- time.sleep(5)
49
+ print(f"Debouncing {str_id} for 2 seconds...")
50
+ time.sleep(2)
51
51
 
52
52
  # 2. THE VERIFICATION
53
53
  # Check if a newer save happened while we slept
@@ -133,6 +133,7 @@ def request_indexing(object_id, collection_name):
133
133
  object_id=str_id,
134
134
  collection_name=collection_name,
135
135
  token=current_token,
136
+ priority=TaskPriority.LOW
136
137
  )
137
138
  return True
138
139
  except Exception as e:
@@ -1,8 +1,15 @@
1
1
  import os
2
+ from enum import Enum
2
3
  from redis import Redis
3
4
  from rq import Queue
4
5
  from rq.job import Job
5
6
 
7
+ # 1. Define Priorities clearly
8
+ class TaskPriority(Enum):
9
+ HIGH = "high"
10
+ DEFAULT = "default"
11
+ LOW = "low"
12
+
6
13
  class AutoTask:
7
14
  def __init__(self, job):
8
15
  self.job = job
@@ -17,7 +24,6 @@ class AutoTask:
17
24
 
18
25
  @property
19
26
  def result(self):
20
- # Simplified result fetching
21
27
  return {
22
28
  "id": self.id,
23
29
  "return_value": self.job.result,
@@ -27,9 +33,8 @@ class AutoTask:
27
33
 
28
34
  class AutoTasks:
29
35
  _connection = None
30
- queue = None
36
+ # We remove the single 'queue' class attribute because we now have multiple
31
37
 
32
- # Config stays the same
33
38
  config = {
34
39
  "host": os.environ.get("REDIS_HOST", "cachedb"),
35
40
  "port": os.environ.get("REDIS_PORT", 6379),
@@ -38,32 +43,40 @@ class AutoTasks:
38
43
  "db": os.environ.get("REDIS_DB", 0),
39
44
  }
40
45
 
41
- def __init__(self, queue_name="default"):
46
+ def __init__(self):
47
+ # Establish connection once (Singleton pattern logic)
42
48
  if not AutoTasks._connection:
43
49
  options = {}
44
50
  if AutoTasks.config.get("password"):
45
51
  options["password"] = AutoTasks.config.get("password")
46
52
 
47
- # Create Redis Connection
48
53
  AutoTasks._connection = Redis(
49
54
  host=AutoTasks.config.get("host"),
50
55
  port=AutoTasks.config.get("port"),
51
- decode_responses=False, # RQ requires bytes, not strings
56
+ decode_responses=False,
52
57
  **options,
53
58
  )
54
59
 
55
- # Initialize Queue
56
- AutoTasks.queue = Queue(queue_name, connection=AutoTasks._connection)
60
+ def _get_queue(self, priority_name):
61
+ """Helper to get or create the queue object for a specific priority"""
62
+ return Queue(priority_name, connection=AutoTasks._connection)
57
63
 
58
64
  def task(self, func, *args, **kwargs):
59
65
  """
60
- Enqueues a job to Redis. Does NOT start a worker.
66
+ Enqueues a job.
67
+ kwarg 'priority' determines the queue (default: 'default').
61
68
  """
62
69
  job_timeout = kwargs.pop("_task_job_timeout", 3600)
63
70
 
64
- # Enqueue the job
65
- # func can be a string path or the function object itself
66
- job = AutoTasks.queue.enqueue(
71
+ # 2. Extract Priority (support Enum or string)
72
+ priority = kwargs.pop("priority", TaskPriority.DEFAULT)
73
+ queue_name = priority.value if isinstance(priority, TaskPriority) else priority
74
+
75
+ # 3. Get the specific queue
76
+ q = self._get_queue(queue_name)
77
+
78
+ # 4. Enqueue
79
+ job = q.enqueue(
67
80
  func,
68
81
  args=args,
69
82
  kwargs=kwargs,
@@ -77,4 +90,4 @@ class AutoTasks:
77
90
  job = Job.fetch(job_id, connection=AutoTasks._connection)
78
91
  return AutoTask(job)
79
92
  except Exception:
80
- return None
93
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autonomous-app
3
- Version: 0.3.31
3
+ Version: 0.3.32
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
  Project-URL: homepage, https://github.com/Sallenmoore/autonomous