invarlock 0.3.2__py3-none-any.whl → 0.3.4__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.
- invarlock/__init__.py +1 -1
- invarlock/adapters/auto.py +4 -4
- invarlock/adapters/hf_bert.py +6 -5
- invarlock/adapters/hf_gpt2.py +5 -4
- invarlock/adapters/hf_llama.py +4 -2
- invarlock/adapters/hf_mixin.py +88 -9
- invarlock/adapters/hf_t5.py +5 -3
- invarlock/cli/commands/run.py +566 -141
- invarlock/cli/commands/verify.py +12 -0
- invarlock/cli/config.py +11 -1
- invarlock/cli/determinism.py +16 -1
- invarlock/core/bootstrap.py +137 -5
- invarlock/core/runner.py +345 -50
- invarlock/eval/bench_regression.py +1 -1
- invarlock/eval/bootstrap.py +3 -1
- invarlock/eval/data.py +11 -0
- invarlock/eval/primary_metric.py +20 -5
- invarlock/guards/rmt.py +536 -46
- invarlock/guards/spectral.py +1 -1
- invarlock/guards/variance.py +122 -43
- invarlock/reporting/certificate.py +258 -12
- invarlock/reporting/normalizer.py +3 -0
- invarlock/reporting/policy_utils.py +1 -3
- invarlock/reporting/primary_metric_utils.py +17 -0
- invarlock/reporting/validate.py +10 -10
- {invarlock-0.3.2.dist-info → invarlock-0.3.4.dist-info}/METADATA +2 -2
- {invarlock-0.3.2.dist-info → invarlock-0.3.4.dist-info}/RECORD +31 -31
- {invarlock-0.3.2.dist-info → invarlock-0.3.4.dist-info}/WHEEL +0 -0
- {invarlock-0.3.2.dist-info → invarlock-0.3.4.dist-info}/entry_points.txt +0 -0
- {invarlock-0.3.2.dist-info → invarlock-0.3.4.dist-info}/licenses/LICENSE +0 -0
- {invarlock-0.3.2.dist-info → invarlock-0.3.4.dist-info}/top_level.txt +0 -0
|
@@ -102,6 +102,23 @@ def attach_primary_metric(
|
|
|
102
102
|
and float(base_final) > 0
|
|
103
103
|
):
|
|
104
104
|
pm_copy["ratio_vs_baseline"] = float(fin) / float(base_final)
|
|
105
|
+
# Ensure display_ci aligns with log-space CI for ppl-like metrics
|
|
106
|
+
try:
|
|
107
|
+
kind = str(pm_copy.get("kind", "")).lower()
|
|
108
|
+
except Exception:
|
|
109
|
+
kind = ""
|
|
110
|
+
ci = pm_copy.get("ci")
|
|
111
|
+
if (
|
|
112
|
+
kind.startswith("ppl")
|
|
113
|
+
and isinstance(ci, list | tuple)
|
|
114
|
+
and len(ci) == 2
|
|
115
|
+
):
|
|
116
|
+
try:
|
|
117
|
+
lo, hi = float(ci[0]), float(ci[1])
|
|
118
|
+
if math.isfinite(lo) and math.isfinite(hi):
|
|
119
|
+
pm_copy["display_ci"] = [math.exp(lo), math.exp(hi)]
|
|
120
|
+
except Exception:
|
|
121
|
+
pass
|
|
105
122
|
# Provide a degenerate display CI if missing
|
|
106
123
|
if not isinstance(
|
|
107
124
|
pm_copy.get("display_ci"), list | tuple
|
invarlock/reporting/validate.py
CHANGED
|
@@ -407,25 +407,25 @@ def validate_guard_overhead(
|
|
|
407
407
|
else None
|
|
408
408
|
)
|
|
409
409
|
|
|
410
|
-
|
|
411
|
-
|
|
410
|
+
bare_ppl = None
|
|
411
|
+
guarded_ppl = None
|
|
412
412
|
if isinstance(bare_pm, dict):
|
|
413
|
-
|
|
413
|
+
bare_ppl = bare_pm.get("final")
|
|
414
414
|
if isinstance(guarded_pm, dict):
|
|
415
|
-
|
|
415
|
+
guarded_ppl = guarded_pm.get("final")
|
|
416
416
|
|
|
417
417
|
if (
|
|
418
|
-
isinstance(
|
|
419
|
-
and
|
|
420
|
-
and isinstance(
|
|
418
|
+
isinstance(bare_ppl, (int | float))
|
|
419
|
+
and bare_ppl > 0
|
|
420
|
+
and isinstance(guarded_ppl, (int | float))
|
|
421
421
|
):
|
|
422
|
-
overhead_ratio = float(
|
|
422
|
+
overhead_ratio = float(guarded_ppl) / float(bare_ppl)
|
|
423
423
|
overhead_percent = (overhead_ratio - 1.0) * 100
|
|
424
424
|
|
|
425
425
|
metrics["overhead_ratio"] = overhead_ratio
|
|
426
426
|
metrics["overhead_percent"] = overhead_percent
|
|
427
|
-
metrics["
|
|
428
|
-
metrics["
|
|
427
|
+
metrics["bare_ppl"] = float(bare_ppl)
|
|
428
|
+
metrics["guarded_ppl"] = float(guarded_ppl)
|
|
429
429
|
|
|
430
430
|
# Apply overhead gate
|
|
431
431
|
checks["guard_overhead"] = overhead_ratio <= (1.0 + overhead_threshold)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: invarlock
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Summary: Edit‑agnostic robustness certificates for weight edits (InvarLock framework)
|
|
5
5
|
Author-email: InvarLock Team <oss@invarlock.dev>
|
|
6
6
|
Maintainer-email: InvarLock Maintainers <support@invarlock.dev>
|
|
@@ -112,7 +112,7 @@ they don’t, roll back safely.
|
|
|
112
112
|
Technical: edit‑agnostic guard pipeline (invariants → spectral → RMT →
|
|
113
113
|
variance) producing a machine‑readable Safety Certificate.
|
|
114
114
|
|
|
115
|
-
> **Status:** 0.3.
|
|
115
|
+
> **Status:** 0.3.4 (pre‑1.0). Until 1.0, **minor** releases may be
|
|
116
116
|
> breaking. See CLI help and the CHANGELOG for updates.
|
|
117
117
|
|
|
118
118
|
[](https://github.com/invarlock/invarlock/actions/workflows/ci.yml)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
invarlock/__init__.py,sha256=
|
|
1
|
+
invarlock/__init__.py,sha256=pTrxNy6MaRsu31Wvc1_V2TIENrSBVyVlk3AFDqggHxg,1268
|
|
2
2
|
invarlock/__main__.py,sha256=ffhoKctw89j-henmQXThbHDIdlvK9fBfsy8LpjhOEXc,146
|
|
3
3
|
invarlock/config.py,sha256=7BUOl7EW258YnsgRipjOx6lmWou5jNDzimREd35ewsQ,1725
|
|
4
4
|
invarlock/model_profile.py,sha256=sFHpK-1Q-1DjiZTWMolQBG4Dw9feLJgk3GnaD3ixgd8,12809
|
|
@@ -11,17 +11,17 @@ invarlock/_data/runtime/profiles/ci_cpu.yaml,sha256=FE5vxeemAFWW7oRxPvp_8hIcCO8q
|
|
|
11
11
|
invarlock/_data/runtime/profiles/release.yaml,sha256=xF0Qb0OTm904U6L3wK674JMTcDPegYvpKgwUB9pfq_w,482
|
|
12
12
|
invarlock/adapters/__init__.py,sha256=Bwj8aKjhFxCzvcdxTIl-nG7IXyIE4L3Nd_fsIghbZxA,3418
|
|
13
13
|
invarlock/adapters/_capabilities.py,sha256=FmzUR5BHsxWe92Z9W1As-G5_5wG1PvqF2sUpjZ2_CdY,1483
|
|
14
|
-
invarlock/adapters/auto.py,sha256=
|
|
14
|
+
invarlock/adapters/auto.py,sha256=4F3I63PRW604v_NtaTY7aGvUJVjGSjejVKFff-X_1t4,7693
|
|
15
15
|
invarlock/adapters/base.py,sha256=szSh1bECeDSDGQSr5oIWhs5RlI587gE4gzdt5cnOJ1s,16100
|
|
16
16
|
invarlock/adapters/base_types.py,sha256=3IuHt63_RjGZqoTOdkMpfGPiZTGqcvXXDq1KU-8QemQ,1612
|
|
17
17
|
invarlock/adapters/capabilities.py,sha256=oAK_zgCzAFmss8qAU2zgc8kcahtadGtbPTYR7StXiCo,15360
|
|
18
|
-
invarlock/adapters/hf_bert.py,sha256=
|
|
19
|
-
invarlock/adapters/hf_gpt2.py,sha256=
|
|
20
|
-
invarlock/adapters/hf_llama.py,sha256=
|
|
18
|
+
invarlock/adapters/hf_bert.py,sha256=KTEk2HRSPlH57bfdVjV6imn_-aYqXAlbnWfEFlRm8h4,35555
|
|
19
|
+
invarlock/adapters/hf_gpt2.py,sha256=TBn1cd_yZDSyVF5aJ-YNEwZzbVYI-m1c8U0CJl_74CM,14808
|
|
20
|
+
invarlock/adapters/hf_llama.py,sha256=P3T7m9j61EmHtzzhemIfM2I2e5nbl4RwXSdoaVsueGc,19141
|
|
21
21
|
invarlock/adapters/hf_loading.py,sha256=6hdSFRz_JMtBzQfHcwvyDlIVP2y-KwLwhDorg73DZ6c,2742
|
|
22
|
-
invarlock/adapters/hf_mixin.py,sha256=
|
|
22
|
+
invarlock/adapters/hf_mixin.py,sha256=3YGoamAG6OCubsbJ9S583yYiQEy2fZOsBJeBiLZTEbk,22307
|
|
23
23
|
invarlock/adapters/hf_onnx.py,sha256=kEqgQEEdGUeaXDF0EgaMHOQQMhc1xIvur0bQvdky-AY,4446
|
|
24
|
-
invarlock/adapters/hf_t5.py,sha256=
|
|
24
|
+
invarlock/adapters/hf_t5.py,sha256=sqHmi8io7oKlr7GrAk8tGo72zb-hmHGmXplCQSZgrA8,4774
|
|
25
25
|
invarlock/adapters/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
|
|
26
26
|
invarlock/assurance/__init__.py,sha256=SFDT2klaUaKZejulL5cfBTW29ehJxyW5srE-LuqP7z0,1388
|
|
27
27
|
invarlock/calibration/__init__.py,sha256=M5lbkNQtLBuQjQJGeRzHovkpYI87fEWIm7a0b23jSp4,110
|
|
@@ -33,9 +33,9 @@ invarlock/cli/_evidence.py,sha256=38QMfFlPUT_qIRAZmpDROkwSIpHGiNKRWDyXfZ9xI_U,76
|
|
|
33
33
|
invarlock/cli/_json.py,sha256=AKrRNFza76tH3GBVHO8gSA3klUVQ9XpDo_aYh8l-7j8,2367
|
|
34
34
|
invarlock/cli/adapter_auto.py,sha256=Qwh4hJXm_vGexCXPt3iP70rQPC7ozwlEzSTYay0svQ8,5284
|
|
35
35
|
invarlock/cli/app.py,sha256=iWO4tTwglZTH2CGEW_SXIQ95MyFTw6NYxlBujhpZQRg,9179
|
|
36
|
-
invarlock/cli/config.py,sha256=
|
|
36
|
+
invarlock/cli/config.py,sha256=d9uar3l9VuqeF_AMtan85V71Vc2L6HVjwLwE6SM2e0M,13464
|
|
37
37
|
invarlock/cli/constants.py,sha256=RuXxG82pukfBnEuJB2CVF5dyu4lEi-l8eAxkR314yuk,2107
|
|
38
|
-
invarlock/cli/determinism.py,sha256=
|
|
38
|
+
invarlock/cli/determinism.py,sha256=ux3AODjZbSdYE29uSrHXvY2qrEPxeAJd04QLT52lnec,8346
|
|
39
39
|
invarlock/cli/device.py,sha256=5X0j2yiZbSKX9-SlDaAbSeHCoWhfEQ74YWPTb8WRk8k,3165
|
|
40
40
|
invarlock/cli/doctor_helpers.py,sha256=e3A6rWYAcs1Q1WVFWt3OOGgqd5iMsKASD34TzI98wqA,2542
|
|
41
41
|
invarlock/cli/errors.py,sha256=IzFikxe5gthlZ27wrRYUiM_SJsd2Sa5onUUhjm8e2kA,189
|
|
@@ -50,13 +50,13 @@ invarlock/cli/commands/explain_gates.py,sha256=CajKcu6rNi57yBsM_EUhi8rlmTl-ymT1k
|
|
|
50
50
|
invarlock/cli/commands/export_html.py,sha256=oUGtt6EpKhjlywdtz_0FqYqcmA219H4eSjPuSMDShgY,3095
|
|
51
51
|
invarlock/cli/commands/plugins.py,sha256=u5E6ThcWE5RUs2YKH-m6x7n-5K1jt2IudkF9kl9T5xg,53486
|
|
52
52
|
invarlock/cli/commands/report.py,sha256=I-B11k6cLLNUIaNiKlsWrGgZ2cTQQJsarN3oNf9Dt84,12988
|
|
53
|
-
invarlock/cli/commands/run.py,sha256=
|
|
54
|
-
invarlock/cli/commands/verify.py,sha256=
|
|
53
|
+
invarlock/cli/commands/run.py,sha256=nf9Y_BcgxQyaCjwQmGUt8ZojDXBDPSeEk4Ut4_uRggM,200772
|
|
54
|
+
invarlock/cli/commands/verify.py,sha256=WAgIzV_CAZSkzRJIxVFV5llZAL3n3-biTMXLm6YL_qs,46408
|
|
55
55
|
invarlock/core/__init__.py,sha256=4wb83Xv7NE5M1FgvaFUviiNtVSTVATiPH3gqavNmp2w,1490
|
|
56
56
|
invarlock/core/abi.py,sha256=gmU1F7LDd2HTcF4kcznn8vgG4zj9UCHSqhBk9jyu05k,484
|
|
57
57
|
invarlock/core/api.py,sha256=dg76wZaULo-T-_nZtq6rmDtWwSNLCSYXiQKVYySV6Fg,7545
|
|
58
58
|
invarlock/core/auto_tuning.py,sha256=ulk_bLAokQJFHgttj5x9QmkwSx7IPVhX2J1GBPWS6PA,17383
|
|
59
|
-
invarlock/core/bootstrap.py,sha256=
|
|
59
|
+
invarlock/core/bootstrap.py,sha256=0mA_x1Ipz4eTwJqoz4-F4H0O2AqvlmQGA9BVJpTNqXs,10655
|
|
60
60
|
invarlock/core/checkpoint.py,sha256=a78L-mZd3j2kC1az2eTScRxTHjrULuYs-UPfWUcDgqM,6933
|
|
61
61
|
invarlock/core/contracts.py,sha256=9j55WVwMrEsUqxWlzAdMsHtkzgfkSftdizhcLiJBauw,2165
|
|
62
62
|
invarlock/core/error_utils.py,sha256=T23-p5ONQ-SeVuMR4Ts0cWyupsSa-0DAgsejRTfxeCg,1782
|
|
@@ -64,7 +64,7 @@ invarlock/core/events.py,sha256=8XBAi-9A7ys7QJQwqlz8PVlfxF0TM_TvLqjcPtDwZm4,9428
|
|
|
64
64
|
invarlock/core/exceptions.py,sha256=b4OszJ0Fd0Ezy8s99AzprS7lAkqdZYGXaSj9fYaln4E,2077
|
|
65
65
|
invarlock/core/registry.py,sha256=a5hYHXl74MLnaPFbmpwJ-1OsJgY3SSe2Jisbzfr2rLM,19137
|
|
66
66
|
invarlock/core/retry.py,sha256=KTVkrTnWs60jwATOZDHinERH56GnOGjsKR0lmohagEo,4503
|
|
67
|
-
invarlock/core/runner.py,sha256=
|
|
67
|
+
invarlock/core/runner.py,sha256=Tep0CDT75PbE8bpGapR8J00-MXZ-T0JB4C6tsqOMs68,93567
|
|
68
68
|
invarlock/core/types.py,sha256=nVLMP4yqlxwhE1moQU7FWVeGJqTuud-cvTZiutdBGKk,3585
|
|
69
69
|
invarlock/edits/__init__.py,sha256=5CJTX6oJTLj79Vmks2_8mXRGFQH0oyKaZOrBLTlRtV0,277
|
|
70
70
|
invarlock/edits/_edit_utils.py,sha256=VGl32JAt7XsovxJbX1YvW9DJvtG-K2EKu-TjBFTQmDY,6329
|
|
@@ -75,11 +75,11 @@ invarlock/edits/quant_rtn.py,sha256=8rseGbF_-EFuL8MWCuzgGXYfzp9LsONhV72-OK56mlk,
|
|
|
75
75
|
invarlock/edits/registry.py,sha256=MmUfJhhvc3WxB03wQkPxFMS6nkT7YcXFPQqhbksfOUc,4523
|
|
76
76
|
invarlock/eval/__init__.py,sha256=GsKoszCysh3TT_UHiuJcqeoiXT7AUNZoqMuBmefnWtY,755
|
|
77
77
|
invarlock/eval/bench.py,sha256=85tGywzAeJSVlZ1Qsebk8FwIGUYhq9g6TxOW5XnL5X8,56335
|
|
78
|
-
invarlock/eval/bench_regression.py,sha256
|
|
79
|
-
invarlock/eval/bootstrap.py,sha256=
|
|
80
|
-
invarlock/eval/data.py,sha256=
|
|
78
|
+
invarlock/eval/bench_regression.py,sha256=GDphmdcH7NI8P_afSkQAPMChEgW15J0gqTZ4Kj3kxgw,456
|
|
79
|
+
invarlock/eval/bootstrap.py,sha256=CNn7W_MY716Wa_wn6cYRmbTYB9lT2X0yLOAIHCRw29k,1766
|
|
80
|
+
invarlock/eval/data.py,sha256=QVGOIiakm89jEy9-rVMlFJ6WYHq_keSrSNUOjRsVwCA,75736
|
|
81
81
|
invarlock/eval/metrics.py,sha256=3ay3mqsFTa0V5a66gKdk7BOOJjKWXlub5lrTpcex9DQ,73946
|
|
82
|
-
invarlock/eval/primary_metric.py,sha256=
|
|
82
|
+
invarlock/eval/primary_metric.py,sha256=ay8gB7xGjWahXpJP-o4OcZFNRNZKcUIHjKmSeOUWJNk,28701
|
|
83
83
|
invarlock/eval/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
|
|
84
84
|
invarlock/eval/probes/__init__.py,sha256=KocOJmEWrD90c2HbDW3wDsdsibRyidskpI4rNNfLbZ0,593
|
|
85
85
|
invarlock/eval/probes/fft.py,sha256=iuZauzOaNPbXN4t74vMiNQAjg6ZmwPNPUuUBj4L1ick,4106
|
|
@@ -94,10 +94,10 @@ invarlock/guards/_contracts.py,sha256=WPhg3iWpHGkKfPvlPPQ-umzOakpy3s289DKkYQ0e64
|
|
|
94
94
|
invarlock/guards/invariants.py,sha256=2mD5WSJMCksjO-DodAac5pvZN0nl29NKHhqwqH_gyCQ,22379
|
|
95
95
|
invarlock/guards/policies.py,sha256=sbZkddUSnkx3ZsFm4vV4DfSU81QUh9R8S4vuAtPF11I,25466
|
|
96
96
|
invarlock/guards/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
|
|
97
|
-
invarlock/guards/rmt.py,sha256=
|
|
98
|
-
invarlock/guards/spectral.py,sha256=
|
|
97
|
+
invarlock/guards/rmt.py,sha256=U3_JTZKsOIgnH-TdZxKMLL9p_3EbfYJKlIqB1gtvQLw,97928
|
|
98
|
+
invarlock/guards/spectral.py,sha256=lmnq4x1-MwoXAK6awaUeb_6xvCya-Tg_zqECDdYvMOA,58618
|
|
99
99
|
invarlock/guards/tier_config.py,sha256=_WJIQ4qvIOc8EI1ygBhpBqbZPt072RT6H6Oh9-LqNWY,10706
|
|
100
|
-
invarlock/guards/variance.py,sha256=
|
|
100
|
+
invarlock/guards/variance.py,sha256=lcTNb_uSufB7D8cLkoY1S_IQWHUjIfCucsu5y8MpfPs,136794
|
|
101
101
|
invarlock/guards_ref/__init__.py,sha256=jLnyFqdqQaheG1qQMlU4Gx7R118rkkQHPqFVF3_1ih0,366
|
|
102
102
|
invarlock/guards_ref/rmt_ref.py,sha256=md-aSzLCxPL3OXmrA5NtI9wK7cVSyd2xw8WtSodcGQY,1246
|
|
103
103
|
invarlock/guards_ref/spectral_ref.py,sha256=FdwFfrs5hxEEUIfBV3CvAJvTX78gAM00mKLEXyZ0zJo,4386
|
|
@@ -117,24 +117,24 @@ invarlock/plugins/hf_bnb_adapter.py,sha256=g0ysWEi8dQzLtJy8iCszfTsYCOACuZMFYnTLM
|
|
|
117
117
|
invarlock/plugins/hf_gptq_adapter.py,sha256=ysugAcnjLqF5sqpijSNiim1xUpRmoIgBrG053X3S2hE,3743
|
|
118
118
|
invarlock/plugins/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
|
|
119
119
|
invarlock/reporting/__init__.py,sha256=A0541EqxcdTpslNbZEWIO4q-LCqzCQcadev2IBKEBbM,232
|
|
120
|
-
invarlock/reporting/certificate.py,sha256=
|
|
120
|
+
invarlock/reporting/certificate.py,sha256=yoMfALyXYGK6BBHJfsrCFDxb07o-9J0KQqui35RHkhM,146382
|
|
121
121
|
invarlock/reporting/certificate_schema.py,sha256=ft58LrF4lfdXT08P0jjtiNvRPVs6TdgPU_cp9K4TMPw,8939
|
|
122
122
|
invarlock/reporting/dataset_hashing.py,sha256=b9LM2rtOtD0-1gQq_oJ0yI6oLleempwKinQtLupajwI,8680
|
|
123
123
|
invarlock/reporting/guards_analysis.py,sha256=7TTlF-OwgT7wGQ8zZ8oHHPuMdUMvKw7836WvO0J1GUc,42465
|
|
124
124
|
invarlock/reporting/html.py,sha256=d3LQ_brDGYW7GLR_Kj4rimIfGZsAgVE9XQtIjqsJ1rw,1029
|
|
125
|
-
invarlock/reporting/normalizer.py,sha256=
|
|
126
|
-
invarlock/reporting/policy_utils.py,sha256=
|
|
127
|
-
invarlock/reporting/primary_metric_utils.py,sha256=
|
|
125
|
+
invarlock/reporting/normalizer.py,sha256=hSfNMyUusWZ1OIJ5lVxzKrk8Le1rRqbwOkPY83gCcHM,8078
|
|
126
|
+
invarlock/reporting/policy_utils.py,sha256=Yu0zAtjnf0-w9t03NvH7LJ0lxe98o-E1tD8TpXtzsfo,23080
|
|
127
|
+
invarlock/reporting/primary_metric_utils.py,sha256=F9H8xpEIgbYfj6VS5-QA5aNLL5OwPegdQVKwvdoVVMM,12150
|
|
128
128
|
invarlock/reporting/render.py,sha256=zukCOm6Qm81nDkpOur50TKrlgRpnt7Q53TEU7eYFivg,59976
|
|
129
129
|
invarlock/reporting/report.py,sha256=kyoqTiqtYUQfgpwm6RApV-LbHHIyryfiIPIRhy-z47Q,32293
|
|
130
130
|
invarlock/reporting/report_types.py,sha256=IoCLoPdoB71hW6-UatZXSjG7itTn4dKp7jPRndXxugA,8736
|
|
131
131
|
invarlock/reporting/utils.py,sha256=1aLYgSUR4XvgmhDvU9YK9ICd7W5sjft1qdsZC9JJSRY,5540
|
|
132
|
-
invarlock/reporting/validate.py,sha256=
|
|
132
|
+
invarlock/reporting/validate.py,sha256=oh7w8VrLM2EYZSJ2ySDNi7WKKmF1SgS81VkOrcHMzaE,22427
|
|
133
133
|
invarlock/utils/__init__.py,sha256=DR2pBrgddLH2PW-6ninOE8CM7DNvlvgyYsCkckozbPU,4276
|
|
134
134
|
invarlock/utils/digest.py,sha256=sfnqGFRiRf7l950MjSIrWO1XbUfXlcEfNLeWFbBUr8I,1290
|
|
135
|
-
invarlock-0.3.
|
|
136
|
-
invarlock-0.3.
|
|
137
|
-
invarlock-0.3.
|
|
138
|
-
invarlock-0.3.
|
|
139
|
-
invarlock-0.3.
|
|
140
|
-
invarlock-0.3.
|
|
135
|
+
invarlock-0.3.4.dist-info/licenses/LICENSE,sha256=uFddaXYY02nEFdPpS7bam_bnm0st41BibzD0jHULPXw,10413
|
|
136
|
+
invarlock-0.3.4.dist-info/METADATA,sha256=RycW7PQJeWJgfX-e3KbqUi_zjXxDPzLkchaTVoS_SCA,21845
|
|
137
|
+
invarlock-0.3.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
138
|
+
invarlock-0.3.4.dist-info/entry_points.txt,sha256=i0e4ZzmJNMBGG-69lbgP-muEcn1je2TUIWwl9SJERm0,670
|
|
139
|
+
invarlock-0.3.4.dist-info/top_level.txt,sha256=GXfftc_YDHHcQC2vQgYbZ5cTO82YuWY3HusHMT3DuKs,10
|
|
140
|
+
invarlock-0.3.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|