jolt 0.9.172__py3-none-any.whl → 0.9.435__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.
- jolt/__init__.py +80 -7
- jolt/__main__.py +9 -1
- jolt/bin/fstree-darwin-x86_64 +0 -0
- jolt/bin/fstree-linux-x86_64 +0 -0
- jolt/cache.py +596 -252
- jolt/chroot.py +36 -11
- jolt/cli.py +143 -130
- jolt/common_pb2.py +45 -45
- jolt/config.py +76 -40
- jolt/error.py +19 -4
- jolt/filesystem.py +2 -6
- jolt/graph.py +400 -82
- jolt/influence.py +110 -3
- jolt/loader.py +338 -174
- jolt/log.py +127 -31
- jolt/manifest.py +13 -46
- jolt/options.py +35 -11
- jolt/pkgs/abseil.py +42 -0
- jolt/pkgs/asio.py +25 -0
- jolt/pkgs/autoconf.py +41 -0
- jolt/pkgs/automake.py +41 -0
- jolt/pkgs/b2.py +31 -0
- jolt/pkgs/boost.py +111 -0
- jolt/pkgs/boringssl.py +32 -0
- jolt/pkgs/busybox.py +39 -0
- jolt/pkgs/bzip2.py +43 -0
- jolt/pkgs/cares.py +29 -0
- jolt/pkgs/catch2.py +36 -0
- jolt/pkgs/cbindgen.py +17 -0
- jolt/pkgs/cista.py +19 -0
- jolt/pkgs/clang.py +44 -0
- jolt/pkgs/cli11.py +24 -0
- jolt/pkgs/cmake.py +48 -0
- jolt/pkgs/cpython.py +196 -0
- jolt/pkgs/crun.py +29 -0
- jolt/pkgs/curl.py +38 -0
- jolt/pkgs/dbus.py +18 -0
- jolt/pkgs/double_conversion.py +24 -0
- jolt/pkgs/fastfloat.py +21 -0
- jolt/pkgs/ffmpeg.py +28 -0
- jolt/pkgs/flatbuffers.py +29 -0
- jolt/pkgs/fmt.py +27 -0
- jolt/pkgs/fstree.py +20 -0
- jolt/pkgs/gflags.py +18 -0
- jolt/pkgs/glib.py +18 -0
- jolt/pkgs/glog.py +25 -0
- jolt/pkgs/glslang.py +21 -0
- jolt/pkgs/golang.py +16 -11
- jolt/pkgs/googlebenchmark.py +18 -0
- jolt/pkgs/googletest.py +46 -0
- jolt/pkgs/gperf.py +15 -0
- jolt/pkgs/grpc.py +73 -0
- jolt/pkgs/hdf5.py +19 -0
- jolt/pkgs/help2man.py +14 -0
- jolt/pkgs/inja.py +28 -0
- jolt/pkgs/jsoncpp.py +31 -0
- jolt/pkgs/libarchive.py +43 -0
- jolt/pkgs/libcap.py +44 -0
- jolt/pkgs/libdrm.py +44 -0
- jolt/pkgs/libedit.py +42 -0
- jolt/pkgs/libevent.py +31 -0
- jolt/pkgs/libexpat.py +27 -0
- jolt/pkgs/libfastjson.py +21 -0
- jolt/pkgs/libffi.py +16 -0
- jolt/pkgs/libglvnd.py +30 -0
- jolt/pkgs/libogg.py +28 -0
- jolt/pkgs/libpciaccess.py +18 -0
- jolt/pkgs/libseccomp.py +21 -0
- jolt/pkgs/libtirpc.py +24 -0
- jolt/pkgs/libtool.py +42 -0
- jolt/pkgs/libunwind.py +35 -0
- jolt/pkgs/libva.py +18 -0
- jolt/pkgs/libvorbis.py +33 -0
- jolt/pkgs/libxml2.py +35 -0
- jolt/pkgs/libxslt.py +17 -0
- jolt/pkgs/libyajl.py +16 -0
- jolt/pkgs/llvm.py +81 -0
- jolt/pkgs/lua.py +54 -0
- jolt/pkgs/lz4.py +26 -0
- jolt/pkgs/m4.py +14 -0
- jolt/pkgs/make.py +17 -0
- jolt/pkgs/mesa.py +81 -0
- jolt/pkgs/meson.py +17 -0
- jolt/pkgs/mstch.py +28 -0
- jolt/pkgs/mysql.py +60 -0
- jolt/pkgs/nasm.py +49 -0
- jolt/pkgs/ncurses.py +30 -0
- jolt/pkgs/ng_log.py +25 -0
- jolt/pkgs/ninja.py +45 -0
- jolt/pkgs/nlohmann_json.py +25 -0
- jolt/pkgs/nodejs.py +19 -11
- jolt/pkgs/opencv.py +24 -0
- jolt/pkgs/openjdk.py +26 -0
- jolt/pkgs/openssl.py +103 -0
- jolt/pkgs/paho.py +76 -0
- jolt/pkgs/patchelf.py +16 -0
- jolt/pkgs/perl.py +42 -0
- jolt/pkgs/pkgconfig.py +64 -0
- jolt/pkgs/poco.py +39 -0
- jolt/pkgs/protobuf.py +77 -0
- jolt/pkgs/pugixml.py +27 -0
- jolt/pkgs/python.py +19 -0
- jolt/pkgs/qt.py +35 -0
- jolt/pkgs/rapidjson.py +26 -0
- jolt/pkgs/rapidyaml.py +28 -0
- jolt/pkgs/re2.py +30 -0
- jolt/pkgs/re2c.py +17 -0
- jolt/pkgs/readline.py +15 -0
- jolt/pkgs/rust.py +41 -0
- jolt/pkgs/sdl.py +28 -0
- jolt/pkgs/simdjson.py +27 -0
- jolt/pkgs/soci.py +46 -0
- jolt/pkgs/spdlog.py +29 -0
- jolt/pkgs/spirv_llvm.py +21 -0
- jolt/pkgs/spirv_tools.py +24 -0
- jolt/pkgs/sqlite.py +83 -0
- jolt/pkgs/ssl.py +12 -0
- jolt/pkgs/texinfo.py +15 -0
- jolt/pkgs/tomlplusplus.py +22 -0
- jolt/pkgs/wayland.py +26 -0
- jolt/pkgs/x11.py +58 -0
- jolt/pkgs/xerces_c.py +20 -0
- jolt/pkgs/xorg.py +360 -0
- jolt/pkgs/xz.py +29 -0
- jolt/pkgs/yamlcpp.py +30 -0
- jolt/pkgs/zeromq.py +47 -0
- jolt/pkgs/zlib.py +87 -0
- jolt/pkgs/zstd.py +33 -0
- jolt/plugins/alias.py +3 -0
- jolt/plugins/allure.py +2 -2
- jolt/plugins/autotools.py +66 -0
- jolt/plugins/cache.py +1 -1
- jolt/plugins/cmake.py +74 -6
- jolt/plugins/conan.py +238 -0
- jolt/plugins/cxxinfo.py +7 -0
- jolt/plugins/docker.py +76 -19
- jolt/plugins/email.xslt +141 -118
- jolt/plugins/environ.py +11 -0
- jolt/plugins/fetch.py +141 -0
- jolt/plugins/gdb.py +33 -14
- jolt/plugins/gerrit.py +0 -13
- jolt/plugins/git.py +248 -66
- jolt/plugins/googletest.py +1 -1
- jolt/plugins/http.py +1 -1
- jolt/plugins/libtool.py +63 -0
- jolt/plugins/linux.py +990 -0
- jolt/plugins/logstash.py +4 -4
- jolt/plugins/meson.py +61 -0
- jolt/plugins/ninja-compdb.py +96 -28
- jolt/plugins/ninja.py +424 -150
- jolt/plugins/paths.py +11 -1
- jolt/plugins/pkgconfig.py +219 -0
- jolt/plugins/podman.py +131 -87
- jolt/plugins/python.py +137 -0
- jolt/plugins/remote_execution/administration_pb2.py +27 -19
- jolt/plugins/remote_execution/log_pb2.py +12 -12
- jolt/plugins/remote_execution/scheduler_pb2.py +23 -23
- jolt/plugins/remote_execution/worker_pb2.py +19 -19
- jolt/plugins/report.py +7 -2
- jolt/plugins/rust.py +25 -0
- jolt/plugins/scheduler.py +135 -86
- jolt/plugins/selfdeploy/setup.py +6 -6
- jolt/plugins/selfdeploy.py +49 -31
- jolt/plugins/strings.py +35 -22
- jolt/plugins/symlinks.py +11 -4
- jolt/plugins/telemetry.py +1 -2
- jolt/plugins/timeline.py +13 -3
- jolt/scheduler.py +467 -165
- jolt/tasks.py +427 -111
- jolt/templates/timeline.html.template +44 -47
- jolt/timer.py +22 -0
- jolt/tools.py +527 -188
- jolt/utils.py +183 -3
- jolt/version.py +1 -1
- jolt/xmldom.py +12 -2
- {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/METADATA +97 -41
- jolt-0.9.435.dist-info/RECORD +207 -0
- {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/WHEEL +1 -1
- jolt/plugins/amqp.py +0 -855
- jolt/plugins/debian.py +0 -338
- jolt/plugins/repo.py +0 -253
- jolt/plugins/snap.py +0 -122
- jolt-0.9.172.dist-info/RECORD +0 -92
- {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/entry_points.txt +0 -0
- {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/top_level.txt +0 -0
jolt/plugins/strings.py
CHANGED
|
@@ -1,31 +1,50 @@
|
|
|
1
|
-
from jolt.cache import ArtifactAttributeSet
|
|
2
1
|
from jolt.cache import ArtifactAttributeSetProvider
|
|
3
|
-
from jolt.cache import ArtifactStringAttribute
|
|
4
2
|
|
|
5
3
|
|
|
6
|
-
class
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
self._old_value = None
|
|
4
|
+
class StringVariableSet(object):
|
|
5
|
+
"""
|
|
6
|
+
A set of string variables for an artifact.
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
pass
|
|
8
|
+
Example:
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
pass
|
|
10
|
+
.. code-block:: python
|
|
16
11
|
|
|
12
|
+
artifact.strings.foo = "bar"
|
|
13
|
+
print(artifact.strings.foo)
|
|
14
|
+
|
|
15
|
+
"""
|
|
17
16
|
|
|
18
|
-
class StringVariableSet(ArtifactAttributeSet):
|
|
19
17
|
def __init__(self, artifact):
|
|
20
|
-
super(StringVariableSet, self).
|
|
21
|
-
super(
|
|
18
|
+
super(StringVariableSet, self).__setattr__("_attributes", {})
|
|
19
|
+
super(StringVariableSet, self).__setattr__("_artifact", artifact)
|
|
20
|
+
|
|
21
|
+
def _get_attributes(self):
|
|
22
|
+
return self._attributes
|
|
23
|
+
|
|
24
|
+
def __getattr__(self, name):
|
|
25
|
+
attributes = self._get_attributes()
|
|
26
|
+
return attributes.get(name, None)
|
|
27
|
+
|
|
28
|
+
def __setattr__(self, name, value):
|
|
29
|
+
if not isinstance(value, str):
|
|
30
|
+
raise ValueError(f"Value assigned to artifact.strings.{name} must be a string, got {type(value)}")
|
|
31
|
+
attributes = self._get_attributes()
|
|
32
|
+
attributes[name] = self._artifact.tools.expand(value)
|
|
33
|
+
return value
|
|
22
34
|
|
|
23
|
-
def
|
|
24
|
-
return
|
|
35
|
+
def __dict__(self):
|
|
36
|
+
return {key: str(value) for key, value in self.items()}
|
|
37
|
+
|
|
38
|
+
def items(self):
|
|
39
|
+
return self._get_attributes().items()
|
|
25
40
|
|
|
26
41
|
|
|
27
42
|
@ArtifactAttributeSetProvider.Register
|
|
28
43
|
class StringVariableSetProvider(ArtifactAttributeSetProvider):
|
|
44
|
+
"""
|
|
45
|
+
A provider of string variable sets.
|
|
46
|
+
"""
|
|
47
|
+
|
|
29
48
|
def create(self, artifact):
|
|
30
49
|
setattr(artifact, "strings", StringVariableSet(artifact))
|
|
31
50
|
|
|
@@ -34,7 +53,7 @@ class StringVariableSetProvider(ArtifactAttributeSetProvider):
|
|
|
34
53
|
return
|
|
35
54
|
|
|
36
55
|
for key, value in content["strings"].items():
|
|
37
|
-
|
|
56
|
+
setattr(artifact.strings, key, value)
|
|
38
57
|
|
|
39
58
|
def format(self, artifact, content):
|
|
40
59
|
if "strings" not in content:
|
|
@@ -42,9 +61,3 @@ class StringVariableSetProvider(ArtifactAttributeSetProvider):
|
|
|
42
61
|
|
|
43
62
|
for key, value in artifact.strings.items():
|
|
44
63
|
content["strings"][key] = str(value)
|
|
45
|
-
|
|
46
|
-
def apply(self, task, artifact):
|
|
47
|
-
artifact.strings.apply(task, artifact)
|
|
48
|
-
|
|
49
|
-
def unapply(self, task, artifact):
|
|
50
|
-
artifact.strings.unapply(task, artifact)
|
jolt/plugins/symlinks.py
CHANGED
|
@@ -18,6 +18,15 @@ class SymlinkTaskHooks(TaskHook):
|
|
|
18
18
|
self._path = config.get("symlinks", "path", "artifacts")
|
|
19
19
|
raise_error_if(not self._path, "symlinks.path not configured")
|
|
20
20
|
|
|
21
|
+
@property
|
|
22
|
+
def rootpath(self):
|
|
23
|
+
return fs.path.normpath(
|
|
24
|
+
fs.path.join(
|
|
25
|
+
fs.path.dirname(loader.JoltLoader.get().build_path),
|
|
26
|
+
self._path
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
|
|
21
30
|
def task_finished(self, task):
|
|
22
31
|
if not task.has_artifact():
|
|
23
32
|
return
|
|
@@ -26,14 +35,12 @@ class SymlinkTaskHooks(TaskHook):
|
|
|
26
35
|
srcpath = artifact.final_path
|
|
27
36
|
if artifact.name == "main":
|
|
28
37
|
destpath = fs.path.join(
|
|
29
|
-
|
|
30
|
-
self._path,
|
|
38
|
+
self.rootpath,
|
|
31
39
|
utils.canonical(task.short_qualified_name),
|
|
32
40
|
)
|
|
33
41
|
else:
|
|
34
42
|
destpath = fs.path.join(
|
|
35
|
-
|
|
36
|
-
self._path,
|
|
43
|
+
self.rootpath,
|
|
37
44
|
artifact.name + "@" + utils.canonical(task.short_qualified_name),
|
|
38
45
|
)
|
|
39
46
|
|
jolt/plugins/telemetry.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from socket import gethostname
|
|
2
1
|
from requests.exceptions import RequestException
|
|
3
2
|
from requests.api import post
|
|
4
3
|
|
|
@@ -38,7 +37,7 @@ class TelemetryHooks(TaskHook):
|
|
|
38
37
|
"name": task.short_qualified_name,
|
|
39
38
|
"identity": task.identity,
|
|
40
39
|
"instance": task.task._instance.value,
|
|
41
|
-
"hostname":
|
|
40
|
+
"hostname": utils.hostname(),
|
|
42
41
|
"role": "client" if client else "worker",
|
|
43
42
|
"event": event,
|
|
44
43
|
"routing_key": getattr(task.task, "routing_key", "default")
|
jolt/plugins/timeline.py
CHANGED
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
import os
|
|
3
3
|
|
|
4
|
+
from jolt import log
|
|
5
|
+
from jolt import tools
|
|
4
6
|
from jolt import utils
|
|
5
7
|
from jolt.hooks import TaskHook, TaskHookFactory
|
|
6
|
-
from jolt
|
|
8
|
+
from jolt import config
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
NAME_LOG = "Timeline"
|
|
7
12
|
|
|
8
13
|
|
|
9
14
|
class TimelineHooks(TaskHook):
|
|
10
15
|
def __init__(self):
|
|
16
|
+
self.path = os.path.join(
|
|
17
|
+
config.get_workdir(),
|
|
18
|
+
config.get("timeline", "path", "timeline.html")
|
|
19
|
+
)
|
|
11
20
|
self.tasks = []
|
|
12
21
|
self.task_ids = {}
|
|
22
|
+
self.tools = tools.Tools()
|
|
13
23
|
|
|
14
24
|
def started(self, task):
|
|
15
25
|
task._timeline_started = datetime.now().isoformat()
|
|
@@ -27,8 +37,7 @@ class TimelineHooks(TaskHook):
|
|
|
27
37
|
enumerate=enumerate,
|
|
28
38
|
tasks=self.tasks)
|
|
29
39
|
|
|
30
|
-
|
|
31
|
-
f.write(timeline)
|
|
40
|
+
self.tools.write_file(self.path, timeline, expand=False)
|
|
32
41
|
|
|
33
42
|
def deps(self, task):
|
|
34
43
|
ids = []
|
|
@@ -59,4 +68,5 @@ class TimelineHooks(TaskHook):
|
|
|
59
68
|
@TaskHookFactory.register
|
|
60
69
|
class TimelineFactory(TaskHookFactory):
|
|
61
70
|
def create(self, env):
|
|
71
|
+
log.verbose(NAME_LOG + " Loaded")
|
|
62
72
|
return TimelineHooks()
|