appier 1.33.5__tar.gz → 1.34.1__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.
- {appier-1.33.5/src/appier.egg-info → appier-1.34.1}/PKG-INFO +1 -1
- {appier-1.33.5 → appier-1.34.1}/setup.py +1 -1
- {appier-1.33.5 → appier-1.34.1}/src/appier/base.py +1 -1
- appier-1.34.1/src/appier/part.pyi +3 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/scheduler.py +12 -1
- {appier-1.33.5 → appier-1.34.1}/src/appier/typesf.py +22 -0
- {appier-1.33.5 → appier-1.34.1/src/appier.egg-info}/PKG-INFO +1 -1
- appier-1.33.5/src/appier/part.pyi +0 -1
- {appier-1.33.5 → appier-1.34.1}/MANIFEST.in +0 -0
- {appier-1.33.5 → appier-1.34.1}/README.rst +0 -0
- {appier-1.33.5 → appier-1.34.1}/setup.cfg +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/__init__.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/amqp.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/api.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/asgi.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/async_neo.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/async_old.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/asynchronous.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/asynchronous.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/base.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/bus.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/bus.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/cache.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/cache.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/common.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/component.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/component.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/compress.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/config.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/controller.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/crypt.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/data.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/data.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/defines.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/exceptions.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/execution.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/export.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/extra.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/extra_neo.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/extra_old.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/geo.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/git.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/graph.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/http.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/legacy.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/log.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/meta.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/mock.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/model.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/model.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/model_a.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/mongo.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/observer.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/part.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/preferences.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/preferences.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/queuing.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/redisdb.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/request.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/res/static/css/base.css +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/res/static/images/favicon.ico +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/res/static/js/base.js +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/res/templates/error.html.tpl +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/res/templates/holder.html.tpl +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/res/templates/layout.html.tpl +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/scheduler.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/serialize.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/session.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/session.pyi +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/settings.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/smtp.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/storage.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/structures.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/__init__.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/base.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/cache.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/config.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/crypt.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/data.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/exceptions.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/export.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/graph.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/http.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/legacy.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/log.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/mock.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/model.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/part.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/preferences.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/queuing.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/request.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/scheduler.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/serialize.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/session.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/smtp.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/structures.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/typesf.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/util.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/test/validation.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/util.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier/validation.py +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier.egg-info/SOURCES.txt +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier.egg-info/dependency_links.txt +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier.egg-info/not-zip-safe +0 -0
- {appier-1.33.5 → appier-1.34.1}/src/appier.egg-info/top_level.txt +0 -0
|
@@ -94,7 +94,7 @@ NAME = "appier"
|
|
|
94
94
|
""" The name to be used to describe the framework while working
|
|
95
95
|
on its own environment, this is just a descriptive value """
|
|
96
96
|
|
|
97
|
-
VERSION = "1.
|
|
97
|
+
VERSION = "1.34.1"
|
|
98
98
|
""" The version of the framework that is currently installed
|
|
99
99
|
this value may be used for debugging/diagnostic purposes """
|
|
100
100
|
|
|
@@ -30,7 +30,6 @@ __license__ = "Apache License, Version 2.0"
|
|
|
30
30
|
|
|
31
31
|
import time
|
|
32
32
|
import heapq
|
|
33
|
-
import calendar
|
|
34
33
|
import datetime
|
|
35
34
|
import logging
|
|
36
35
|
import threading
|
|
@@ -187,6 +186,12 @@ class SchedulerTask(object):
|
|
|
187
186
|
self.date = SchedulerDate.from_cron(cron)
|
|
188
187
|
self._enabled = True
|
|
189
188
|
|
|
189
|
+
def __repr__(self):
|
|
190
|
+
return "<SchedulerTask: %s, %s>" % (self.job, self.date)
|
|
191
|
+
|
|
192
|
+
def __str__(self):
|
|
193
|
+
return "<SchedulerTask: %s, %s>" % (self.job, self.date)
|
|
194
|
+
|
|
190
195
|
def __eq__(self, other):
|
|
191
196
|
if isinstance(other, self.__class__):
|
|
192
197
|
return True
|
|
@@ -223,6 +228,12 @@ class SchedulerDate(object):
|
|
|
223
228
|
self.months = self._parse_field(months, 1, 12)
|
|
224
229
|
self.days_of_week = self._parse_field(days_of_week, 0, 6)
|
|
225
230
|
|
|
231
|
+
def __repr__(self):
|
|
232
|
+
return "<SchedulerDate: %s>" % self.next_run()
|
|
233
|
+
|
|
234
|
+
def __str__(self):
|
|
235
|
+
return "<SchedulerDate: %s>" % self.next_run()
|
|
236
|
+
|
|
226
237
|
@classmethod
|
|
227
238
|
def from_cron(cls, cron):
|
|
228
239
|
if isinstance(cron, cls):
|
|
@@ -28,9 +28,11 @@ __copyright__ = "Copyright (c) 2008-2024 Hive Solutions Lda."
|
|
|
28
28
|
__license__ = "Apache License, Version 2.0"
|
|
29
29
|
""" The license for the module """
|
|
30
30
|
|
|
31
|
+
import os
|
|
31
32
|
import uuid
|
|
32
33
|
import base64
|
|
33
34
|
import hashlib
|
|
35
|
+
import mimetypes
|
|
34
36
|
|
|
35
37
|
from . import util
|
|
36
38
|
from . import crypt
|
|
@@ -85,6 +87,17 @@ class File(AbstractType):
|
|
|
85
87
|
def __len__(self):
|
|
86
88
|
return self.size
|
|
87
89
|
|
|
90
|
+
@classmethod
|
|
91
|
+
def open(cls, path):
|
|
92
|
+
name = os.path.basename(path)
|
|
93
|
+
content_type, _encoding = mimetypes.guess_type(name)
|
|
94
|
+
file = open(path, "rb")
|
|
95
|
+
try:
|
|
96
|
+
data = file.read()
|
|
97
|
+
finally:
|
|
98
|
+
file.close()
|
|
99
|
+
return cls((name, content_type, data))
|
|
100
|
+
|
|
88
101
|
def build_d(self, file_d, name="default"):
|
|
89
102
|
self.build_t((name, None, file_d))
|
|
90
103
|
|
|
@@ -192,6 +205,15 @@ class File(AbstractType):
|
|
|
192
205
|
engine = self._engine()
|
|
193
206
|
return engine.cleanup(self)
|
|
194
207
|
|
|
208
|
+
def save(self, path=None):
|
|
209
|
+
path = path or self.file_name
|
|
210
|
+
data = self.read()
|
|
211
|
+
file = open(path, "wb")
|
|
212
|
+
try:
|
|
213
|
+
file.write(data)
|
|
214
|
+
finally:
|
|
215
|
+
file.close()
|
|
216
|
+
|
|
195
217
|
def json_v(self, *args, **kwargs):
|
|
196
218
|
if not self.is_valid():
|
|
197
219
|
return None
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
class Part: ...
|
|
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
|
|
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
|
|
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
|