autonomous-app 0.3.31__tar.gz → 0.3.33__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 (72) hide show
  1. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/PKG-INFO +1 -1
  2. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/__init__.py +1 -1
  3. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/db_sync.py +4 -5
  4. autonomous_app-0.3.33/src/autonomous/taskrunner/__init__.py +1 -0
  5. autonomous_app-0.3.31/src/autonomous/tasks/autotask.py → autonomous_app-0.3.33/src/autonomous/taskrunner/autotasks.py +26 -13
  6. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/PKG-INFO +1 -1
  7. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/SOURCES.txt +3 -3
  8. autonomous_app-0.3.31/src/autonomous/tasks/__init__.py +0 -1
  9. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/README.md +0 -0
  10. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/pyproject.toml +0 -0
  11. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/requirements.txt +0 -0
  12. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/setup.cfg +0 -0
  13. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/setup.py +0 -0
  14. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/__init__.py +0 -0
  15. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/audioagent.py +0 -0
  16. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/baseagent.py +0 -0
  17. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/imageagent.py +0 -0
  18. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/jsonagent.py +0 -0
  19. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/__init__.py +0 -0
  20. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/aws.py +0 -0
  21. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/deepseek.py +0 -0
  22. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/gemini.py +0 -0
  23. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/local_model.py +0 -0
  24. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/openai.py +0 -0
  25. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/textagent.py +0 -0
  26. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
  27. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
  28. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHRepo.py +0 -0
  29. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
  30. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/__init__.py +0 -0
  31. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/__init__.py +0 -0
  32. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/autoauth.py +0 -0
  33. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/github.py +0 -0
  34. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/google.py +0 -0
  35. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/user.py +0 -0
  36. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/cli.py +0 -0
  37. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/__init__.py +0 -0
  38. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/__init__.py +0 -0
  39. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/common.py +0 -0
  40. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/datastructures.py +0 -0
  41. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/document.py +0 -0
  42. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/fields.py +0 -0
  43. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/metaclasses.py +0 -0
  44. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/utils.py +0 -0
  45. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/common.py +0 -0
  46. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/connection.py +0 -0
  47. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/context_managers.py +0 -0
  48. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/dereference.py +0 -0
  49. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/document.py +0 -0
  50. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/errors.py +0 -0
  51. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/fields.py +0 -0
  52. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/mongodb_support.py +0 -0
  53. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/pymongo_support.py +0 -0
  54. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/__init__.py +0 -0
  55. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/base.py +0 -0
  56. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/field_list.py +0 -0
  57. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/manager.py +0 -0
  58. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/queryset.py +0 -0
  59. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/transform.py +0 -0
  60. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/visitor.py +0 -0
  61. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/signals.py +0 -0
  62. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/logger.py +0 -0
  63. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/model/autoattr.py +0 -0
  64. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/model/automodel.py +0 -0
  65. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/storage/__init__.py +0 -0
  66. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/storage/imagestorage.py +0 -0
  67. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/storage/localstorage.py +0 -0
  68. {autonomous_app-0.3.31/src/autonomous/tasks → autonomous_app-0.3.33/src/autonomous/taskrunner}/task_router.py +0 -0
  69. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/utils/markdown.py +0 -0
  70. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
  71. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/requires.txt +0 -0
  72. {autonomous_app-0.3.31 → autonomous_app-0.3.33}/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.33
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.33"
2
2
 
3
3
  from dotenv import load_dotenv
4
4
 
@@ -8,7 +8,7 @@ import numpy as np
8
8
  import pymongo
9
9
  import redis
10
10
  import requests
11
-
11
+ from autonomous.taskrunner.autotasks import AutoTasks, TaskPriority
12
12
  # CONFIGURATION
13
13
  db_host = os.getenv("DB_HOST", "db")
14
14
  db_port = os.getenv("DB_PORT", 27017)
@@ -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
@@ -111,8 +111,6 @@ def request_indexing(object_id, collection_name):
111
111
  MUST BE FAST. NO SLEEPING HERE.
112
112
  """
113
113
  print("Requesting Indexing...")
114
- # Import your Queue Wrapper
115
- from autonomous.tasks.autotask import AutoTasks
116
114
 
117
115
  # Initialize the Task Runner
118
116
  task_runner = AutoTasks()
@@ -133,6 +131,7 @@ def request_indexing(object_id, collection_name):
133
131
  object_id=str_id,
134
132
  collection_name=collection_name,
135
133
  token=current_token,
134
+ priority=TaskPriority.LOW
136
135
  )
137
136
  return True
138
137
  except Exception as e:
@@ -0,0 +1 @@
1
+ from .autotasks import AutoTasks, TaskPriority
@@ -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.33
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
@@ -58,9 +58,9 @@ src/autonomous/model/automodel.py
58
58
  src/autonomous/storage/__init__.py
59
59
  src/autonomous/storage/imagestorage.py
60
60
  src/autonomous/storage/localstorage.py
61
- src/autonomous/tasks/__init__.py
62
- src/autonomous/tasks/autotask.py
63
- src/autonomous/tasks/task_router.py
61
+ src/autonomous/taskrunner/__init__.py
62
+ src/autonomous/taskrunner/autotasks.py
63
+ src/autonomous/taskrunner/task_router.py
64
64
  src/autonomous/utils/markdown.py
65
65
  src/autonomous_app.egg-info/PKG-INFO
66
66
  src/autonomous_app.egg-info/SOURCES.txt
@@ -1 +0,0 @@
1
- from .autotask import AutoTasks