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/influence.py
CHANGED
|
@@ -3,7 +3,7 @@ import hashlib
|
|
|
3
3
|
import os
|
|
4
4
|
from pathlib import Path, PurePath
|
|
5
5
|
|
|
6
|
-
from jolt import config
|
|
6
|
+
from jolt import config as jolt_config
|
|
7
7
|
from jolt import inspection
|
|
8
8
|
from jolt import utils
|
|
9
9
|
from jolt import filesystem as fs
|
|
@@ -202,6 +202,71 @@ def source(name, obj=None):
|
|
|
202
202
|
return _decorate
|
|
203
203
|
|
|
204
204
|
|
|
205
|
+
class ConfigInfluence(HashInfluenceProvider):
|
|
206
|
+
name = "Config"
|
|
207
|
+
|
|
208
|
+
def __init__(self, section, key):
|
|
209
|
+
self.section = section
|
|
210
|
+
self.key = key
|
|
211
|
+
|
|
212
|
+
def get_influence(self, task):
|
|
213
|
+
value = jolt_config.get(self.section, self.key)
|
|
214
|
+
if value is None:
|
|
215
|
+
value = "<unset>"
|
|
216
|
+
return "{}.{}: {}".format(self.section, self.key, value)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
def config(section, key):
|
|
220
|
+
""" Add configuration value as hash influence.
|
|
221
|
+
|
|
222
|
+
Note that the configuration value is read at the time
|
|
223
|
+
when the task is prepared, not when it is executed.
|
|
224
|
+
This means that if the configuration value changes after
|
|
225
|
+
influence has been calculated, the task will not be re-executed.
|
|
226
|
+
This is true also in distributed mode, where the task
|
|
227
|
+
is prepared locally and executed remotely on a worker
|
|
228
|
+
where the configuration value may be different.
|
|
229
|
+
|
|
230
|
+
Args:
|
|
231
|
+
section (str): Name of the configuration section.
|
|
232
|
+
key (str): Name of the configuration key.
|
|
233
|
+
|
|
234
|
+
Example:
|
|
235
|
+
.. code-block:: python
|
|
236
|
+
|
|
237
|
+
from jolt import influence
|
|
238
|
+
|
|
239
|
+
@influence.config("jolt", "task_timeout")
|
|
240
|
+
class Example(Task):
|
|
241
|
+
|
|
242
|
+
"""
|
|
243
|
+
def _decorate(cls):
|
|
244
|
+
_old_influence = cls._influence
|
|
245
|
+
|
|
246
|
+
def _influence(self, *args, **kwargs):
|
|
247
|
+
influence = _old_influence(self, *args, **kwargs)
|
|
248
|
+
influence.append(ConfigInfluence(section, key))
|
|
249
|
+
return influence
|
|
250
|
+
|
|
251
|
+
cls._influence = _influence
|
|
252
|
+
return cls
|
|
253
|
+
|
|
254
|
+
return _decorate
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
def global_config(section, key):
|
|
258
|
+
""" Register a configuration influence globally.
|
|
259
|
+
|
|
260
|
+
See :py:func:`config` for more information.
|
|
261
|
+
|
|
262
|
+
Args:
|
|
263
|
+
section (str): Name of the configuration section.
|
|
264
|
+
key (str): Name of the configuration key.
|
|
265
|
+
"""
|
|
266
|
+
|
|
267
|
+
HashInfluenceRegistry.get().register(ConfigInfluence(section, key))
|
|
268
|
+
|
|
269
|
+
|
|
205
270
|
class TaskClassSourceInfluence(HashInfluenceProvider):
|
|
206
271
|
name = "Source"
|
|
207
272
|
|
|
@@ -223,6 +288,18 @@ class TaskClassSourceInfluence(HashInfluenceProvider):
|
|
|
223
288
|
return result
|
|
224
289
|
|
|
225
290
|
|
|
291
|
+
class CallbackInfluence(HashInfluenceProvider):
|
|
292
|
+
def __init__(self, desc, fn, *args, **kwargs):
|
|
293
|
+
self.name = "Callback"
|
|
294
|
+
self.desc = desc
|
|
295
|
+
self.fn = fn
|
|
296
|
+
self.args = args
|
|
297
|
+
self.kwargs = kwargs
|
|
298
|
+
|
|
299
|
+
def get_influence(self, task):
|
|
300
|
+
return self.desc + ": " + str(self.fn(*self.args, **self.kwargs))
|
|
301
|
+
|
|
302
|
+
|
|
226
303
|
class TaskRequirementInfluence(HashInfluenceProvider):
|
|
227
304
|
name = "Requirement"
|
|
228
305
|
|
|
@@ -234,12 +311,11 @@ class TaskRequirementInfluence(HashInfluenceProvider):
|
|
|
234
311
|
return "{}: {}".format(self._identity, self._name)
|
|
235
312
|
|
|
236
313
|
|
|
237
|
-
@HashInfluenceRegistry.Register
|
|
238
314
|
class CacheLocationInfluence(HashInfluenceProvider):
|
|
239
315
|
name = "Cache"
|
|
240
316
|
|
|
241
317
|
def get_influence(self, task):
|
|
242
|
-
return
|
|
318
|
+
return jolt_config.get_cachedir()
|
|
243
319
|
|
|
244
320
|
|
|
245
321
|
@HashInfluenceRegistry.Register
|
|
@@ -609,6 +685,37 @@ class StringInfluence(HashInfluenceProvider):
|
|
|
609
685
|
return self.value
|
|
610
686
|
|
|
611
687
|
|
|
688
|
+
def string(string, selfdeploy=False):
|
|
689
|
+
""" Add string hash influence.
|
|
690
|
+
|
|
691
|
+
Args:
|
|
692
|
+
string (str): A string that will influence the hash of the task.
|
|
693
|
+
|
|
694
|
+
Example:
|
|
695
|
+
|
|
696
|
+
.. code-block:: python
|
|
697
|
+
|
|
698
|
+
from jolt import influence
|
|
699
|
+
|
|
700
|
+
@influence.string("example")
|
|
701
|
+
class Example(Task):
|
|
702
|
+
|
|
703
|
+
"""
|
|
704
|
+
|
|
705
|
+
def _decorate(cls):
|
|
706
|
+
_old_influence = cls._influence
|
|
707
|
+
|
|
708
|
+
def _influence(self, *args, **kwargs):
|
|
709
|
+
influence = _old_influence(self, *args, **kwargs)
|
|
710
|
+
influence.append(StringInfluence(string, selfdeploy=selfdeploy))
|
|
711
|
+
return influence
|
|
712
|
+
|
|
713
|
+
cls._influence = _influence
|
|
714
|
+
return cls
|
|
715
|
+
|
|
716
|
+
return _decorate
|
|
717
|
+
|
|
718
|
+
|
|
612
719
|
def global_string(string, selfdeploy=False):
|
|
613
720
|
HashInfluenceRegistry.get().register(StringInfluence(string, selfdeploy=selfdeploy))
|
|
614
721
|
|