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.
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/PKG-INFO +1 -1
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/__init__.py +1 -1
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/db_sync.py +3 -2
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/tasks/autotask.py +26 -13
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/PKG-INFO +1 -1
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/README.md +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/pyproject.toml +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/requirements.txt +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/setup.cfg +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/setup.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/audioagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/baseagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/imageagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/jsonagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/aws.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/deepseek.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/gemini.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/local_model.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/models/openai.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/ai/textagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHRepo.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/autoauth.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/github.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/google.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/auth/user.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/cli.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/common.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/datastructures.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/document.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/fields.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/metaclasses.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/base/utils.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/common.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/connection.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/context_managers.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/dereference.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/document.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/errors.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/fields.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/mongodb_support.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/pymongo_support.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/base.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/field_list.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/manager.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/queryset.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/transform.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/queryset/visitor.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/db/signals.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/logger.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/model/autoattr.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/model/automodel.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/storage/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/storage/imagestorage.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/storage/localstorage.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/tasks/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/tasks/task_router.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/utils/markdown.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/SOURCES.txt +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/requires.txt +0 -0
- {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.
|
|
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
|
|
@@ -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
|
|
50
|
-
time.sleep(
|
|
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
|
|
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
|
|
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,
|
|
56
|
+
decode_responses=False,
|
|
52
57
|
**options,
|
|
53
58
|
)
|
|
54
59
|
|
|
55
|
-
|
|
56
|
-
|
|
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
|
|
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
|
-
#
|
|
65
|
-
|
|
66
|
-
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHCallbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/GHRepo.py
RENAMED
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous/apis/version_control/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.31 → autonomous_app-0.3.32}/src/autonomous_app.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|