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.
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/PKG-INFO +1 -1
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/__init__.py +1 -1
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/db_sync.py +4 -5
- autonomous_app-0.3.33/src/autonomous/taskrunner/__init__.py +1 -0
- autonomous_app-0.3.31/src/autonomous/tasks/autotask.py → autonomous_app-0.3.33/src/autonomous/taskrunner/autotasks.py +26 -13
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/PKG-INFO +1 -1
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/SOURCES.txt +3 -3
- autonomous_app-0.3.31/src/autonomous/tasks/__init__.py +0 -1
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/README.md +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/pyproject.toml +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/requirements.txt +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/setup.cfg +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/setup.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/audioagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/baseagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/imageagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/jsonagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/aws.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/deepseek.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/gemini.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/local_model.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/models/openai.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/ai/textagent.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHRepo.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/autoauth.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/github.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/google.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/auth/user.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/cli.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/common.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/datastructures.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/document.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/fields.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/metaclasses.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/base/utils.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/common.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/connection.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/context_managers.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/dereference.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/document.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/errors.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/fields.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/mongodb_support.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/pymongo_support.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/base.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/field_list.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/manager.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/queryset.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/transform.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/queryset/visitor.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/db/signals.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/logger.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/model/autoattr.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/model/automodel.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/storage/__init__.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/storage/imagestorage.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/storage/localstorage.py +0 -0
- {autonomous_app-0.3.31/src/autonomous/tasks → autonomous_app-0.3.33/src/autonomous/taskrunner}/task_router.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/utils/markdown.py +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
- {autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/requires.txt +0 -0
- {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.
|
|
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
|
|
@@ -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
|
|
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
|
|
@@ -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
|
|
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.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/
|
|
62
|
-
src/autonomous/
|
|
63
|
-
src/autonomous/
|
|
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
|
|
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.33}/src/autonomous/apis/version_control/GHCallbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous/apis/version_control/GHRepo.py
RENAMED
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.31 → autonomous_app-0.3.33}/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
|
{autonomous_app-0.3.31 → autonomous_app-0.3.33}/src/autonomous_app.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|