jaseci 1.4.2.6__py3-none-any.whl → 2.0.0__py3-none-any.whl
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.
Potentially problematic release.
This version of jaseci might be problematic. Click here for more details.
- jaseci/__init__.py +3 -37
- jaseci-2.0.0.dist-info/METADATA +65 -0
- jaseci-2.0.0.dist-info/RECORD +4 -0
- {jaseci-1.4.2.6.dist-info → jaseci-2.0.0.dist-info}/WHEEL +1 -2
- jaseci/VERSION +0 -1
- jaseci/cli_tools/__init__.py +0 -0
- jaseci/cli_tools/book_tools.py +0 -457
- jaseci/cli_tools/jsctl.py +0 -500
- jaseci/cli_tools/tests/__init__.py +0 -0
- jaseci/cli_tools/tests/test_jsctl.py +0 -556
- jaseci/extens/__init__.py +0 -0
- jaseci/extens/act_lib/__init__.py +0 -0
- jaseci/extens/act_lib/date.py +0 -118
- jaseci/extens/act_lib/elastic.py +0 -87
- jaseci/extens/act_lib/file.py +0 -77
- jaseci/extens/act_lib/file_handler.py +0 -190
- jaseci/extens/act_lib/internal.py +0 -19
- jaseci/extens/act_lib/jaseci.py +0 -62
- jaseci/extens/act_lib/mail.py +0 -10
- jaseci/extens/act_lib/maths.py +0 -168
- jaseci/extens/act_lib/net.py +0 -192
- jaseci/extens/act_lib/rand.py +0 -83
- jaseci/extens/act_lib/regex.py +0 -85
- jaseci/extens/act_lib/request.py +0 -170
- jaseci/extens/act_lib/std.py +0 -236
- jaseci/extens/act_lib/storage.py +0 -53
- jaseci/extens/act_lib/stripe.py +0 -338
- jaseci/extens/act_lib/task.py +0 -14
- jaseci/extens/act_lib/tests/__init__.py +0 -0
- jaseci/extens/act_lib/tests/std_test_code.py +0 -37
- jaseci/extens/act_lib/tests/test_date.py +0 -26
- jaseci/extens/act_lib/tests/test_elastic.py +0 -159
- jaseci/extens/act_lib/tests/test_file.py +0 -116
- jaseci/extens/act_lib/tests/test_file_lib.py +0 -40
- jaseci/extens/act_lib/tests/test_mail_lib.py +0 -33
- jaseci/extens/act_lib/tests/test_maths.py +0 -147
- jaseci/extens/act_lib/tests/test_net_lib.py +0 -62
- jaseci/extens/act_lib/tests/test_regex.py +0 -61
- jaseci/extens/act_lib/tests/test_std.py +0 -51
- jaseci/extens/act_lib/tests/test_std_lib.py +0 -36
- jaseci/extens/act_lib/tests/test_url.py +0 -32
- jaseci/extens/act_lib/tests/test_vector.py +0 -36
- jaseci/extens/act_lib/tests/test_webtool.py +0 -44
- jaseci/extens/act_lib/tests/test_zlib.py +0 -24
- jaseci/extens/act_lib/url.py +0 -80
- jaseci/extens/act_lib/vector.py +0 -158
- jaseci/extens/act_lib/webtool.py +0 -29
- jaseci/extens/act_lib/zip.py +0 -34
- jaseci/extens/api/__init__.py +0 -0
- jaseci/extens/api/actions_api.py +0 -171
- jaseci/extens/api/alias_api.py +0 -140
- jaseci/extens/api/architype_api.py +0 -197
- jaseci/extens/api/config_api.py +0 -129
- jaseci/extens/api/global_api.py +0 -85
- jaseci/extens/api/graph_api.py +0 -168
- jaseci/extens/api/health_api.py +0 -21
- jaseci/extens/api/interface.py +0 -269
- jaseci/extens/api/jac_api.py +0 -172
- jaseci/extens/api/jsorc_api.py +0 -317
- jaseci/extens/api/logger_api.py +0 -90
- jaseci/extens/api/master_api.py +0 -134
- jaseci/extens/api/object_api.py +0 -102
- jaseci/extens/api/prometheus_api.py +0 -75
- jaseci/extens/api/queue_api.py +0 -141
- jaseci/extens/api/sentinel_api.py +0 -271
- jaseci/extens/api/share_api.py +0 -64
- jaseci/extens/api/super_api.py +0 -65
- jaseci/extens/api/tests/__init__.py +0 -0
- jaseci/extens/api/tests/test_architype_api.py +0 -66
- jaseci/extens/api/tests/test_global_api.py +0 -179
- jaseci/extens/api/tests/test_graph_api.py +0 -64
- jaseci/extens/api/tests/test_logger_api.py +0 -43
- jaseci/extens/api/tests/test_object_api.py +0 -20
- jaseci/extens/api/tests/test_sentinel_api.py +0 -66
- jaseci/extens/api/tests/test_uncommon.py +0 -107
- jaseci/extens/api/tests/test_user_api.py +0 -32
- jaseci/extens/api/tests/test_walker_api.py +0 -316
- jaseci/extens/api/user_api.py +0 -166
- jaseci/extens/api/walker_api.py +0 -299
- jaseci/extens/api/webhook_api.py +0 -77
- jaseci/extens/svc/__init__.py +0 -0
- jaseci/extens/svc/elastic_svc.py +0 -366
- jaseci/extens/svc/kube_svc.py +0 -432
- jaseci/extens/svc/mail_svc.py +0 -156
- jaseci/extens/svc/prome_svc.py +0 -378
- jaseci/extens/svc/redis_svc.py +0 -63
- jaseci/extens/svc/storage_svc.py +0 -193
- jaseci/extens/svc/stripe_svc.py +0 -51
- jaseci/extens/svc/task_svc.py +0 -155
- jaseci/extens/svc/tasks.py +0 -302
- jaseci/jac/__init__.py +0 -0
- jaseci/jac/interpreter/__init__.py +0 -0
- jaseci/jac/interpreter/architype_interp.py +0 -219
- jaseci/jac/interpreter/interp.py +0 -1784
- jaseci/jac/interpreter/sentinel_interp.py +0 -260
- jaseci/jac/interpreter/tests/__init__.py +0 -0
- jaseci/jac/interpreter/tests/test_interp.py +0 -42
- jaseci/jac/interpreter/walker_interp.py +0 -249
- jaseci/jac/ir/__init__.py +0 -0
- jaseci/jac/ir/ast.py +0 -73
- jaseci/jac/ir/ast_builder.py +0 -249
- jaseci/jac/ir/jac_code.py +0 -151
- jaseci/jac/ir/passes/__init__.py +0 -6
- jaseci/jac/ir/passes/ast_prune_pass.py +0 -9
- jaseci/jac/ir/passes/codegen_pass.py +0 -244
- jaseci/jac/ir/passes/ir_pass.py +0 -29
- jaseci/jac/ir/passes/printer_pass.py +0 -23
- jaseci/jac/ir/passes/pt_prune_pass.py +0 -29
- jaseci/jac/ir/passes/schedule.py +0 -23
- jaseci/jac/ir/passes/stats_pass.py +0 -16
- jaseci/jac/jac.g4 +0 -450
- jaseci/jac/jac_parse/__init__.py +0 -0
- jaseci/jac/jac_parse/jacLexer.py +0 -809
- jaseci/jac/jac_parse/jacListener.py +0 -853
- jaseci/jac/jac_parse/jacParser.py +0 -9192
- jaseci/jac/jac_set.py +0 -120
- jaseci/jac/jsci_vm/__init__.py +0 -0
- jaseci/jac/jsci_vm/disasm.py +0 -94
- jaseci/jac/jsci_vm/inst_ptr.py +0 -31
- jaseci/jac/jsci_vm/machine.py +0 -188
- jaseci/jac/jsci_vm/op_codes.py +0 -82
- jaseci/jac/jsci_vm/tests/__init__.py +0 -0
- jaseci/jac/jsci_vm/tests/test_codegen.py +0 -31
- jaseci/jac/machine/__init__.py +0 -0
- jaseci/jac/machine/jac_scope.py +0 -86
- jaseci/jac/machine/jac_value.py +0 -227
- jaseci/jac/machine/machine_state.py +0 -386
- jaseci/jac/tests/__init__.py +0 -0
- jaseci/jac/tests/book_code.py +0 -624
- jaseci/jac/tests/test_book.py +0 -380
- jaseci/jac/tests/test_lang_14.py +0 -49
- jaseci/jsorc/__init__.py +0 -7
- jaseci/jsorc/jsorc.py +0 -642
- jaseci/jsorc/jsorc_settings.py +0 -211
- jaseci/jsorc/jsorc_utils.py +0 -298
- jaseci/jsorc/live_actions.py +0 -365
- jaseci/jsorc/manifests/__init__.py +0 -0
- jaseci/jsorc/manifests/database.yaml +0 -109
- jaseci/jsorc/manifests/elastic.yaml +0 -6029
- jaseci/jsorc/manifests/prometheus.yaml +0 -1383
- jaseci/jsorc/manifests/redis.yaml +0 -64
- jaseci/jsorc/memory.py +0 -258
- jaseci/jsorc/redis.py +0 -140
- jaseci/jsorc/remote_actions.py +0 -158
- jaseci/jsorc/tests/__init__.py +0 -0
- jaseci/jsorc/tests/test_actions.py +0 -542
- jaseci/jsorc/tests/test_jsorc.py +0 -112
- jaseci/prim/__init__.py +0 -0
- jaseci/prim/ability.py +0 -94
- jaseci/prim/architype.py +0 -90
- jaseci/prim/edge.py +0 -173
- jaseci/prim/element.py +0 -233
- jaseci/prim/graph.py +0 -27
- jaseci/prim/master.py +0 -67
- jaseci/prim/node.py +0 -533
- jaseci/prim/obj_mixins.py +0 -238
- jaseci/prim/sentinel.py +0 -282
- jaseci/prim/super_master.py +0 -31
- jaseci/prim/walker.py +0 -261
- jaseci/svc/__init__.py +0 -0
- jaseci/tests/__init__.py +0 -0
- jaseci/tests/infer.py +0 -39
- jaseci/tests/jac_test_code.py +0 -1293
- jaseci/tests/jac_test_progs.py +0 -774
- jaseci/tests/test_core.py +0 -153
- jaseci/tests/test_jac.py +0 -824
- jaseci/tests/test_node.py +0 -89
- jaseci/tests/test_progs.py +0 -702
- jaseci/tests/test_stack.py +0 -220
- jaseci/tests/test_stripe.py +0 -225
- jaseci/utils/__init__.py +0 -0
- jaseci/utils/actions/__init__.py +0 -0
- jaseci/utils/actions/actions_manager.py +0 -254
- jaseci/utils/actions/actions_optimizer.py +0 -517
- jaseci/utils/actions/actions_state.py +0 -95
- jaseci/utils/file_handler.py +0 -171
- jaseci/utils/gprof2dot.py +0 -3786
- jaseci/utils/id_list.py +0 -169
- jaseci/utils/json_handler.py +0 -70
- jaseci/utils/log_utils.py +0 -57
- jaseci/utils/test_core.py +0 -62
- jaseci/utils/utils.py +0 -387
- jaseci-1.4.2.6.dist-info/LICENSE +0 -21
- jaseci-1.4.2.6.dist-info/METADATA +0 -39
- jaseci-1.4.2.6.dist-info/RECORD +0 -185
- jaseci-1.4.2.6.dist-info/entry_points.txt +0 -3
- jaseci-1.4.2.6.dist-info/top_level.txt +0 -1
jaseci/utils/file_handler.py
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
import mimetypes
|
|
3
|
-
from os import unlink
|
|
4
|
-
from io import BytesIO
|
|
5
|
-
from uuid import uuid4
|
|
6
|
-
from base64 import b64encode
|
|
7
|
-
from tempfile import _TemporaryFileWrapper
|
|
8
|
-
from os.path import basename, exists
|
|
9
|
-
from json import load, dump
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
filename_from_disposition = re.compile(r"filename=(['\"])(.*?)\1")
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class FileHandler:
|
|
16
|
-
###################################################
|
|
17
|
-
# BUILDER #
|
|
18
|
-
###################################################
|
|
19
|
-
|
|
20
|
-
def __init__(
|
|
21
|
-
self,
|
|
22
|
-
name: str = None,
|
|
23
|
-
content_type: str = None,
|
|
24
|
-
field: str = None,
|
|
25
|
-
persist: bool = False,
|
|
26
|
-
):
|
|
27
|
-
self.id = str(uuid4())
|
|
28
|
-
self.name = name
|
|
29
|
-
self.content_type = content_type or mimetypes.guess_type(name)[0]
|
|
30
|
-
self.field = field
|
|
31
|
-
self.absolute_name = f"{self.id}-{name}"
|
|
32
|
-
self.absolute_path = f"/tmp/{self.absolute_name}"
|
|
33
|
-
self.persist = persist
|
|
34
|
-
self.buffer = None
|
|
35
|
-
|
|
36
|
-
@classmethod
|
|
37
|
-
def fromTemporaryFileWrapper(
|
|
38
|
-
cls,
|
|
39
|
-
file: _TemporaryFileWrapper,
|
|
40
|
-
name: str,
|
|
41
|
-
content_type: str,
|
|
42
|
-
field: str = None,
|
|
43
|
-
):
|
|
44
|
-
file_handler = cls(name, content_type, field)
|
|
45
|
-
file_handler.absolute_path = file.name
|
|
46
|
-
|
|
47
|
-
file._closer.delete = False
|
|
48
|
-
file.close()
|
|
49
|
-
|
|
50
|
-
return file_handler
|
|
51
|
-
|
|
52
|
-
@classmethod
|
|
53
|
-
def fromBytesIO(
|
|
54
|
-
cls, file: BytesIO, name: str, content_type: str, field: str = None
|
|
55
|
-
):
|
|
56
|
-
file_handler = cls(name, content_type, field)
|
|
57
|
-
|
|
58
|
-
with open(file_handler.absolute_path, "wb") as f:
|
|
59
|
-
f.write(file.getbuffer())
|
|
60
|
-
file.close()
|
|
61
|
-
|
|
62
|
-
return file_handler
|
|
63
|
-
|
|
64
|
-
@classmethod
|
|
65
|
-
def fromRequest(cls, content: bytes, content_disposition: str):
|
|
66
|
-
name = "tmp"
|
|
67
|
-
searcher = filename_from_disposition.search(content_disposition)
|
|
68
|
-
if len(searcher.groups()):
|
|
69
|
-
name = searcher.group(2)
|
|
70
|
-
|
|
71
|
-
file_handler = cls(name)
|
|
72
|
-
|
|
73
|
-
with open(file_handler.absolute_path, "wb") as f:
|
|
74
|
-
f.write(content)
|
|
75
|
-
|
|
76
|
-
return file_handler
|
|
77
|
-
|
|
78
|
-
@classmethod
|
|
79
|
-
def fromPath(cls, path: str):
|
|
80
|
-
name = basename(path)
|
|
81
|
-
|
|
82
|
-
file_handler = cls(name, persist=True)
|
|
83
|
-
file_handler.absolute_name = name
|
|
84
|
-
file_handler.absolute_path = path
|
|
85
|
-
|
|
86
|
-
return file_handler
|
|
87
|
-
|
|
88
|
-
###################################################
|
|
89
|
-
# CONTROL #
|
|
90
|
-
###################################################
|
|
91
|
-
|
|
92
|
-
def read(self, offset: int = None, mode: str = "r", encoding: str = None) -> str:
|
|
93
|
-
if self.buffer:
|
|
94
|
-
if offset != None:
|
|
95
|
-
self.buffer.seek(offset)
|
|
96
|
-
content = self.buffer.read()
|
|
97
|
-
else:
|
|
98
|
-
self.open(mode, encoding)
|
|
99
|
-
content = self.buffer.read()
|
|
100
|
-
self.close()
|
|
101
|
-
|
|
102
|
-
return content
|
|
103
|
-
|
|
104
|
-
def open(
|
|
105
|
-
self, mode: str = "r", encoding: str = None, detached: bool = False, **kwargs
|
|
106
|
-
):
|
|
107
|
-
if detached:
|
|
108
|
-
return open(self.absolute_path, mode, encoding=encoding, **kwargs)
|
|
109
|
-
|
|
110
|
-
if not self.buffer:
|
|
111
|
-
self.buffer = open(self.absolute_path, mode, encoding=encoding, **kwargs)
|
|
112
|
-
|
|
113
|
-
def write(self, content: str):
|
|
114
|
-
if self.buffer:
|
|
115
|
-
self.buffer.write(content)
|
|
116
|
-
|
|
117
|
-
def seek(self, offset: int, whence: int = 0):
|
|
118
|
-
if self.buffer:
|
|
119
|
-
self.buffer.seek(offset, whence)
|
|
120
|
-
|
|
121
|
-
def flush(self):
|
|
122
|
-
if self.buffer:
|
|
123
|
-
self.buffer.flush()
|
|
124
|
-
|
|
125
|
-
def close(self):
|
|
126
|
-
if self.buffer:
|
|
127
|
-
self.buffer.close()
|
|
128
|
-
self.buffer = None
|
|
129
|
-
|
|
130
|
-
def delete(self):
|
|
131
|
-
self.close()
|
|
132
|
-
try:
|
|
133
|
-
unlink(self.absolute_path)
|
|
134
|
-
except Exception:
|
|
135
|
-
pass
|
|
136
|
-
|
|
137
|
-
def is_open(self) -> bool:
|
|
138
|
-
return self.buffer != None
|
|
139
|
-
|
|
140
|
-
def exists(self) -> bool:
|
|
141
|
-
return exists(self.absolute_path)
|
|
142
|
-
|
|
143
|
-
def attr(self) -> dict:
|
|
144
|
-
return {
|
|
145
|
-
"id": self.id,
|
|
146
|
-
"name": self.name,
|
|
147
|
-
"content_type": self.content_type,
|
|
148
|
-
"field": self.field,
|
|
149
|
-
"absolute_name": self.absolute_name,
|
|
150
|
-
"absolute_path": self.absolute_path,
|
|
151
|
-
"persist": self.persist,
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
###################################################
|
|
155
|
-
# UTILITY #
|
|
156
|
-
###################################################
|
|
157
|
-
|
|
158
|
-
def to_bytes(self):
|
|
159
|
-
with self.open("rb", detached=True) as buffer:
|
|
160
|
-
return buffer.read()
|
|
161
|
-
|
|
162
|
-
def to_base64(self):
|
|
163
|
-
return b64encode(self.to_bytes()).decode()
|
|
164
|
-
|
|
165
|
-
def to_json(self):
|
|
166
|
-
with self.open(detached=True) as buffer:
|
|
167
|
-
return load(buffer)
|
|
168
|
-
|
|
169
|
-
def dump_json(self, json, indent: int = None):
|
|
170
|
-
with self.open("w", detached=True) as buffer:
|
|
171
|
-
dump(json, buffer, indent=indent)
|