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.
@@ -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
@@ -407,25 +407,25 @@ def validate_guard_overhead(
407
407
  else None
408
408
  )
409
409
 
410
- bare_final = None
411
- guarded_final = None
410
+ bare_ppl = None
411
+ guarded_ppl = None
412
412
  if isinstance(bare_pm, dict):
413
- bare_final = bare_pm.get("final")
413
+ bare_ppl = bare_pm.get("final")
414
414
  if isinstance(guarded_pm, dict):
415
- guarded_final = guarded_pm.get("final")
415
+ guarded_ppl = guarded_pm.get("final")
416
416
 
417
417
  if (
418
- isinstance(bare_final, (int | float))
419
- and bare_final > 0
420
- and isinstance(guarded_final, (int | float))
418
+ isinstance(bare_ppl, (int | float))
419
+ and bare_ppl > 0
420
+ and isinstance(guarded_ppl, (int | float))
421
421
  ):
422
- overhead_ratio = float(guarded_final) / float(bare_final)
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["bare_final"] = float(bare_final)
428
- metrics["guarded_final"] = float(guarded_final)
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.2
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.2 (pre‑1.0). Until 1.0, **minor** releases may be
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
  [![CI](https://img.shields.io/github/actions/workflow/status/invarlock/invarlock/ci.yml?branch=main&logo=github&label=CI)](https://github.com/invarlock/invarlock/actions/workflows/ci.yml)
@@ -1,4 +1,4 @@
1
- invarlock/__init__.py,sha256=AqBlkMDd1RwHMQQgIPAwCa7-Oyh8YCBQ8sM7yY0pEcM,1268
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=XWENU5hi66AtMPlQDRuINk1SGW1Kym8Tot-2jXGFGcQ,7643
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=DkUXCile7ALlHVZvMkNLAl_YrhHpdmQmomzNyIAPBEo,35547
19
- invarlock/adapters/hf_gpt2.py,sha256=zuNapMDj4kdzlpGJY11tMOr9dh0V1C0qkOTRwi1xCnQ,14814
20
- invarlock/adapters/hf_llama.py,sha256=TbE9wII1GAQG7gbtiZCZ4S92rKoWRM7VH5vCnqEHc-4,19102
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=rhm0MbjzoHtEAl54tmW3T7tf1C_VxTtcPSdQ7mQ0CIU,18279
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=2SpDKPyERrrkTWXcDJDo0J5NNjFLePuC965e1zy2tus,4738
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=i_qShwyc9GiWya8VcWffcMOEI-rVJzep43aCayx5SL4,12930
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=oW6nc4WaE5tmECZE0M53TUfrk6_djCzFdhBV0JEONho,7702
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=9C9AzA5NZqN0KOZRekWwGMo6m45t7JAwJfpzDusXvjg,181622
54
- invarlock/cli/commands/verify.py,sha256=k7_H8vfjYUz7pzoEvRZe2xTSnTy4-HnbiAAsgBZXSOU,45883
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=Z7gtiVsOHTnrhy62W3870ZWbxPofmrFYn7gBUBAaJHk,6695
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=IWp6cL21IzP_7k26AqcCFHg772f3XHO_PK2PB_-DS0s,81448
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=-92lJbx2BP4utGIsIyahNQtouz56ghuuTEvj1yCaEoY,456
79
- invarlock/eval/bootstrap.py,sha256=hE1-CCc6b7ogk8Tuob7IhmOVhOI7DVlG6So0PL-Rlvo,1671
80
- invarlock/eval/data.py,sha256=nKx1XIkwmVKQyDP7aa40SFWk5GLVNxHI5gpmUWID3bE,75126
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=VDeDFuLnsmYpL8JoauabmE99CGDw-kSAe5NaxmcEQqw,28031
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=f_fZEKZyp_xJcmc7wAMNSrzs702JCztfq3zcK4CSJgk,78710
98
- invarlock/guards/spectral.py,sha256=xuUVwF2a3v4WzbwtsjrM7NU0mKK0gsv0WvnkjkN-05U,58613
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=3OYprEvWKRfq5UYSH82AJrp163gEtGyCoUIgL3wotls,133255
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=vgmLWLq1epkChmawOgGRwEBqtuK80rmrRkQo8HXYdzY,136891
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=7PN3OmczVmsSSFoWXz8wb6F4r46q1luI_Od9Ld3h2wg,8011
126
- invarlock/reporting/policy_utils.py,sha256=pRuOrz7NB1CYMxB4Cy0L240vwSDdUJbtqFAv04payhA,23136
127
- invarlock/reporting/primary_metric_utils.py,sha256=K6DVoGHibrFdcpI0LwroHlffTcgBRVejekUK0vriWP4,11406
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=396Fe4SPII4zaD1adGtH2hsl5asQOCDqDL4W3YixEXU,22453
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.2.dist-info/licenses/LICENSE,sha256=uFddaXYY02nEFdPpS7bam_bnm0st41BibzD0jHULPXw,10413
136
- invarlock-0.3.2.dist-info/METADATA,sha256=Ic7I45Qn8rk2ac9IzwswJZMcr5daDbleaOiBEN8xbmA,21845
137
- invarlock-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
138
- invarlock-0.3.2.dist-info/entry_points.txt,sha256=i0e4ZzmJNMBGG-69lbgP-muEcn1je2TUIWwl9SJERm0,670
139
- invarlock-0.3.2.dist-info/top_level.txt,sha256=GXfftc_YDHHcQC2vQgYbZ5cTO82YuWY3HusHMT3DuKs,10
140
- invarlock-0.3.2.dist-info/RECORD,,
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,,