autonomous-app 0.3.47__tar.gz → 0.3.49__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.47 → autonomous_app-0.3.49}/PKG-INFO +1 -1
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/__init__.py +1 -1
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/models/local_model.py +74 -52
- autonomous_app-0.3.49/src/autonomous/ai/models/mock_model.py +78 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous_app.egg-info/PKG-INFO +1 -1
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous_app.egg-info/SOURCES.txt +1 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/README.md +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/pyproject.toml +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/requirements.txt +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/setup.cfg +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/setup.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/audioagent.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/baseagent.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/imageagent.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/jsonagent.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/models/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/models/gemini.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/ai/textagent.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/apis/version_control/GHCallbacks.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/apis/version_control/GHOrganization.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/apis/version_control/GHRepo.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/apis/version_control/GHVersionControl.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/apis/version_control/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/auth/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/auth/autoauth.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/auth/github.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/auth/google.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/auth/user.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/cli.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/base/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/base/common.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/base/datastructures.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/base/document.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/base/fields.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/base/metaclasses.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/base/utils.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/common.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/connection.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/context_managers.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/db_sync.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/dereference.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/document.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/errors.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/fields.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/mongodb_support.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/pymongo_support.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/queryset/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/queryset/base.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/queryset/field_list.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/queryset/manager.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/queryset/queryset.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/queryset/transform.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/queryset/visitor.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/db/signals.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/logger.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/model/autoattr.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/model/automodel.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/storage/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/storage/imagestorage.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/storage/localstorage.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/taskrunner/__init__.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/taskrunner/autotasks.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/taskrunner/task_router.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/utils/markdown.py +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous_app.egg-info/dependency_links.txt +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous_app.egg-info/requires.txt +0 -0
- {autonomous_app-0.3.47 → autonomous_app-0.3.49}/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.49
|
|
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
|
|
@@ -4,6 +4,7 @@ import os
|
|
|
4
4
|
import random
|
|
5
5
|
|
|
6
6
|
import requests
|
|
7
|
+
from PIL import Image
|
|
7
8
|
from pydub import AudioSegment
|
|
8
9
|
|
|
9
10
|
from autonomous import log
|
|
@@ -119,7 +120,7 @@ class LocalAIModel(AutoModel):
|
|
|
119
120
|
},
|
|
120
121
|
}
|
|
121
122
|
|
|
122
|
-
|
|
123
|
+
log("==== LocalAI JSON Payload ====", payload, _print=True)
|
|
123
124
|
|
|
124
125
|
result_text = ""
|
|
125
126
|
try:
|
|
@@ -139,7 +140,7 @@ class LocalAIModel(AutoModel):
|
|
|
139
140
|
):
|
|
140
141
|
params = result_dict.pop("parameters")
|
|
141
142
|
result_dict.update(params)
|
|
142
|
-
|
|
143
|
+
log("==== LocalAI JSON Result ====", result_dict, _print=True)
|
|
143
144
|
return result_dict
|
|
144
145
|
|
|
145
146
|
except Exception as e:
|
|
@@ -242,64 +243,60 @@ class LocalAIModel(AutoModel):
|
|
|
242
243
|
log(f"TTS Error: {e}", _print=True)
|
|
243
244
|
return None
|
|
244
245
|
|
|
245
|
-
# ... inside LocalAIModel class ...
|
|
246
|
-
|
|
247
246
|
def _get_dimensions(self, aspect_ratio):
|
|
248
247
|
"""
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
Returns a tuple: ((base_w, base_h), (target_w, target_h))
|
|
249
|
+
|
|
250
|
+
1. base_*: The resolution sent to SDXL (approx 1024x1024).
|
|
251
|
+
2. target_*: The final resolution to resize/upscale to.
|
|
251
252
|
"""
|
|
252
|
-
|
|
253
|
+
# Standard SDXL buckets (approx 1MP)
|
|
254
|
+
# We use these for the initial generation to ensure good composition.
|
|
255
|
+
sdxl_base = {
|
|
253
256
|
"1:1": (1024, 1024),
|
|
254
|
-
"
|
|
255
|
-
"
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
"
|
|
263
|
-
"
|
|
264
|
-
"3
|
|
265
|
-
|
|
257
|
+
"Portrait": (896, 1152), # 3:4
|
|
258
|
+
"Landscape": (1216, 832), # 3:2 or 16:9 approx
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
# The Logic: Define the target, map it to the closest SDXL base
|
|
262
|
+
# Format: "Key": ((Base_W, Base_H), (Target_W, Target_H))
|
|
263
|
+
resolutions = {
|
|
264
|
+
# Standard
|
|
265
|
+
"1:1": ((832, 832), (1024, 1024)),
|
|
266
|
+
"3:4": ((832, 1152), (1664, 2304)),
|
|
267
|
+
"4:3": ((1152, 832), (2304, 1664)),
|
|
268
|
+
# High Res (The logic changes here)
|
|
269
|
+
"16:9": ((1216, 832), (2048, 1152)),
|
|
270
|
+
"9:16": ((832, 1216), (1152, 2048)),
|
|
271
|
+
# 2K Tier
|
|
272
|
+
"2K": ((1216, 832), (2048, 1152)), # Base is 1216x832 -> Upscale to 2K
|
|
273
|
+
"2KPortrait": ((832, 1216), (1152, 2048)),
|
|
274
|
+
# 4K Tier (The generated image will be upscaled ~3x)
|
|
275
|
+
"4K": ((1216, 832), (3840, 2160)),
|
|
276
|
+
"4KPortrait": ((832, 1216), (2160, 3840)),
|
|
266
277
|
}
|
|
267
|
-
|
|
268
|
-
|
|
278
|
+
|
|
279
|
+
# Default to 1:1 if unknown
|
|
280
|
+
return resolutions.get(aspect_ratio, ((832, 832), (1024, 1024)))
|
|
269
281
|
|
|
270
282
|
def generate_image(
|
|
271
283
|
self, prompt, negative_prompt="", files=None, aspect_ratio="2KPortrait"
|
|
272
284
|
):
|
|
273
|
-
#
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
#
|
|
277
|
-
#
|
|
278
|
-
# "Keep visual elements and style. Under 50 words."
|
|
279
|
-
# )
|
|
280
|
-
# new_prompt = self.generate_text(
|
|
281
|
-
# message=prompt, additional_instructions=summary_instruction, context={}
|
|
282
|
-
# )
|
|
283
|
-
# if new_prompt and len(new_prompt) > 10:
|
|
284
|
-
# prompt = new_prompt
|
|
285
|
-
|
|
286
|
-
# 2. Resolution Calculation
|
|
287
|
-
width, height = self._get_dimensions(aspect_ratio)
|
|
288
|
-
|
|
289
|
-
# 3. Construct Payload
|
|
290
|
-
# We send both the abstract params (for logging/metadata)
|
|
291
|
-
# and the concrete pixels (for the engine).
|
|
285
|
+
# 1. Resolution Calculation
|
|
286
|
+
(base_w, base_h), (target_w, target_h) = self._get_dimensions(aspect_ratio)
|
|
287
|
+
|
|
288
|
+
# 2. Construct Base Generation Payload
|
|
289
|
+
# We tell the AI to generate the smaller, stable size first.
|
|
292
290
|
data = {
|
|
293
291
|
"prompt": prompt,
|
|
294
292
|
"negative_prompt": negative_prompt,
|
|
295
293
|
"aspect_ratio": aspect_ratio,
|
|
296
|
-
"width":
|
|
297
|
-
"height":
|
|
294
|
+
"width": base_w,
|
|
295
|
+
"height": base_h,
|
|
298
296
|
}
|
|
299
297
|
|
|
300
298
|
try:
|
|
301
|
-
# Handle Files (
|
|
302
|
-
# requests.post expects a list of tuples for multiple files with same key
|
|
299
|
+
# Handle Input Files (for Img2Img)
|
|
303
300
|
files_list = []
|
|
304
301
|
if files and isinstance(files, dict):
|
|
305
302
|
for fn, f_bytes in files.items():
|
|
@@ -307,20 +304,45 @@ class LocalAIModel(AutoModel):
|
|
|
307
304
|
file_obj = io.BytesIO(f_bytes)
|
|
308
305
|
else:
|
|
309
306
|
file_obj = f_bytes
|
|
310
|
-
# Appending to list instead of overwriting dict key
|
|
311
307
|
files_list.append(("files", (fn, file_obj, "image/png")))
|
|
312
308
|
|
|
313
|
-
#
|
|
309
|
+
# 3. Step 1: Generate Base Image
|
|
310
|
+
url = f"{self._media_url}/generate-image"
|
|
314
311
|
if files_list:
|
|
315
|
-
response = requests.post(
|
|
316
|
-
f"{self._media_url}/generate-image", data=data, files=files_list
|
|
317
|
-
)
|
|
312
|
+
response = requests.post(url, data=data, files=files_list)
|
|
318
313
|
else:
|
|
319
|
-
response = requests.post(
|
|
314
|
+
response = requests.post(url, data=data)
|
|
320
315
|
|
|
321
316
|
response.raise_for_status()
|
|
322
|
-
|
|
323
|
-
|
|
317
|
+
image_content = response.content
|
|
318
|
+
|
|
319
|
+
# 4. Step 2: Upscale (If necessary)
|
|
320
|
+
if (base_w, base_h) != (target_w, target_h):
|
|
321
|
+
log(
|
|
322
|
+
f"Requesting AI Upscale: {base_w}x{base_h} -> {target_w}x{target_h}...",
|
|
323
|
+
_print=True,
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
# Prepare payload for the /upscale route
|
|
327
|
+
upscale_data = {
|
|
328
|
+
"prompt": prompt, # Reuse prompt to guide texture generation
|
|
329
|
+
"width": target_w, # Explicitly tell server the target size
|
|
330
|
+
"height": target_h,
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
# Send the image we just generated back to the server as a file
|
|
334
|
+
upscale_files = {
|
|
335
|
+
"file": ("generated.png", io.BytesIO(image_content), "image/png")
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
upscale_response = requests.post(
|
|
339
|
+
f"{self._media_url}/upscale", data=upscale_data, files=upscale_files
|
|
340
|
+
)
|
|
341
|
+
upscale_response.raise_for_status()
|
|
342
|
+
image_content = upscale_response.content
|
|
343
|
+
|
|
344
|
+
log("==== LocalAI Image Generation Complete ====", data, _print=True)
|
|
345
|
+
return image_content
|
|
324
346
|
|
|
325
347
|
except Exception as e:
|
|
326
348
|
log(f"Image Gen Error: {e}", _print=True)
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import base64
|
|
2
|
+
import io
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
from autonomous import log
|
|
6
|
+
from autonomous.model.autoattr import ListAttr, StringAttr
|
|
7
|
+
from autonomous.model.automodel import AutoModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class MockAIModel(AutoModel):
|
|
11
|
+
"""
|
|
12
|
+
A Offline Mock Model for development.
|
|
13
|
+
Returns valid, structure-compliant dummy data instantly.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
messages = ListAttr(StringAttr(default=[]))
|
|
17
|
+
name = StringAttr(default="mock_agent")
|
|
18
|
+
instructions = StringAttr(default="You are a Mock AI.")
|
|
19
|
+
description = StringAttr(default="Offline Mock Provider for testing.")
|
|
20
|
+
|
|
21
|
+
# A 1x1 Red Pixel PNG (Base64 decoded to bytes)
|
|
22
|
+
# This ensures PIL/Frontend code receives valid image data.
|
|
23
|
+
_MOCK_IMAGE_BYTES = base64.b64decode(
|
|
24
|
+
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg=="
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
# A 1-second silent WAV file (Base64 decoded to bytes)
|
|
28
|
+
_MOCK_AUDIO_BYTES = base64.b64decode(
|
|
29
|
+
"UklGRigAAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQAAAAEA"
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
def generate_json(self, message, system_prompt=None, uri="", context={}):
|
|
33
|
+
"""
|
|
34
|
+
Returns a rich dummy JSON object.
|
|
35
|
+
It attempts to guess the context based on keys found in the prompt,
|
|
36
|
+
otherwise returns a safe default TTRPG object.
|
|
37
|
+
"""
|
|
38
|
+
log(f"⚡ [MOCK] Generating JSON for prompt: {message[:50]}...", _print=True)
|
|
39
|
+
|
|
40
|
+
# 1. Default Mock Object
|
|
41
|
+
mock_response = {}
|
|
42
|
+
|
|
43
|
+
# 2. Heuristic: If the user provided a context with 'name', use it.
|
|
44
|
+
# This makes the mock feel slightly responsive.
|
|
45
|
+
if context:
|
|
46
|
+
if "name" in context:
|
|
47
|
+
mock_response["name"] = f"Mock {context['name']}"
|
|
48
|
+
if "title" in context:
|
|
49
|
+
mock_response["name"] = f"Mock {context['title']}"
|
|
50
|
+
|
|
51
|
+
return mock_response
|
|
52
|
+
|
|
53
|
+
def generate_text(self, message, additional_instructions="", uri="", context={}):
|
|
54
|
+
log(f"⚡ [MOCK] Generating Text...", _print=True)
|
|
55
|
+
return (
|
|
56
|
+
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
|
|
57
|
+
"This is MOCK TEXT generated because you are currently offline. "
|
|
58
|
+
"The quick brown fox jumps over the lazy dog."
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
def summarize_text(self, text, primer=""):
|
|
62
|
+
log(f"⚡ [MOCK] Summarizing {len(text)} chars...", _print=True)
|
|
63
|
+
return "This is a mock summary of the provided text. It is concise and offline."
|
|
64
|
+
|
|
65
|
+
def generate_transcription(self, audio_file, prompt=""):
|
|
66
|
+
log(f"⚡ [MOCK] Transcribing Audio...", _print=True)
|
|
67
|
+
return "This is a mock transcription of the audio file."
|
|
68
|
+
|
|
69
|
+
def generate_audio(self, prompt, voice=None):
|
|
70
|
+
log(f"⚡ [MOCK] Generating Audio...", _print=True)
|
|
71
|
+
return self._MOCK_AUDIO_BYTES
|
|
72
|
+
|
|
73
|
+
def generate_image(
|
|
74
|
+
self, prompt, negative_prompt="", files=None, aspect_ratio="2KPortrait"
|
|
75
|
+
):
|
|
76
|
+
log(f"⚡ [MOCK] Generating Image ({aspect_ratio})...", _print=True)
|
|
77
|
+
# Returns a valid 1x1 pixel PNG so your UI displays something red instead of crashing
|
|
78
|
+
return self._MOCK_IMAGE_BYTES
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autonomous-app
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.49
|
|
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
|
|
@@ -14,6 +14,7 @@ src/autonomous/ai/textagent.py
|
|
|
14
14
|
src/autonomous/ai/models/__init__.py
|
|
15
15
|
src/autonomous/ai/models/gemini.py
|
|
16
16
|
src/autonomous/ai/models/local_model.py
|
|
17
|
+
src/autonomous/ai/models/mock_model.py
|
|
17
18
|
src/autonomous/apis/version_control/GHCallbacks.py
|
|
18
19
|
src/autonomous/apis/version_control/GHOrganization.py
|
|
19
20
|
src/autonomous/apis/version_control/GHRepo.py
|
|
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.47 → autonomous_app-0.3.49}/src/autonomous/apis/version_control/GHCallbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous/apis/version_control/GHRepo.py
RENAMED
|
File without changes
|
|
File without changes
|
{autonomous_app-0.3.47 → autonomous_app-0.3.49}/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
|
|
File without changes
|
{autonomous_app-0.3.47 → autonomous_app-0.3.49}/src/autonomous_app.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|