certora-cli-alpha-master 20251012.10.16.14285__py3-none-macosx_10_9_universal2.whl → 20251012.20.20.862738__py3-none-macosx_10_9_universal2.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.
@@ -179,9 +179,12 @@ class CertoraBuildCacheManager:
179
179
  trg = trg_path_with_additional_included_files / post_autofinder_dir.name
180
180
  if post_autofinder_dir != trg:
181
181
  if post_autofinder_dir.is_dir():
182
- if trg.exists():
183
- shutil.rmtree(trg)
184
- Util.safe_copy_folder(post_autofinder_dir, trg, shutil.ignore_patterns())
182
+ # if we match on the cache, and we run a few certoraRun-s in parallel,
183
+ # it could be this folder already exists. But the exact contents do not matter and are likely to
184
+ # agree with the exception of spec files. So let's merge the folders so that the
185
+ # sources are in any case runnable
186
+ if not trg.exists():
187
+ Util.safe_merge_folder(post_autofinder_dir, trg, shutil.ignore_patterns())
185
188
  else:
186
189
  # highly unlikely .post_autofinder.[digit] will be a file and not a directory,
187
190
  # but would rather not crash and future-proof instead
@@ -514,6 +514,18 @@ def safe_copy_folder(source: Path, dest: Path, ignore_patterns: Callable[[str, L
514
514
  shutil.rmtree(copy_temp, ignore_errors=True)
515
515
 
516
516
 
517
+ def safe_merge_folder(source: Path, dest: Path, ignore_patterns: Callable[[str, List[str]], Iterable[str]]) -> None:
518
+ """
519
+ Safely merge source to dest. dest may exist. Will overwrite existing files
520
+ On certain OS/kernels/FS, copying a folder f into a subdirectory of f will
521
+ send copy tree into an infinite loop. This sidesteps the problem by first copying through a temporary folder.
522
+ """
523
+ copy_temp = tempfile.mkdtemp()
524
+ shutil.copytree(source, copy_temp, ignore=ignore_patterns, dirs_exist_ok=True)
525
+ shutil.copytree(copy_temp, dest, dirs_exist_ok=True)
526
+ shutil.rmtree(copy_temp, ignore_errors=True)
527
+
528
+
517
529
  def as_posix(path: str) -> str:
518
530
  """
519
531
  Converts path from windows to unix
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: certora-cli-alpha-master
3
- Version: 20251012.10.16.14285
3
+ Version: 20251012.20.20.862738
4
4
  Summary: Runner for the Certora Prover
5
5
  Home-page: https://pypi.org/project/certora-cli-alpha-master
6
6
  Author: Certora
@@ -39,4 +39,4 @@ Dynamic: requires-dist
39
39
  Dynamic: requires-python
40
40
  Dynamic: summary
41
41
 
42
- Commit bc7cfe4. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
42
+ Commit 67b032d. Build and Run scripts for executing the Certora Prover on Solidity smart contracts.
@@ -14,7 +14,7 @@ certora_cli/rustMutator.py,sha256=6AvOGU8Ijz89zW_ZJCWlfXkeobJsk7EsqZhK7Eqwn-Y,14
14
14
  certora_cli/CertoraProver/__init__.py,sha256=QHNr-PJQAoyuPgTkO7gg23GRchiWSXglWNG7yLSQZvs,849
15
15
  certora_cli/CertoraProver/certoraApp.py,sha256=RKJ2Krb_CzbRUvczbdE6FhUDrFcvrR8j0JS8MNWXX7s,1469
16
16
  certora_cli/CertoraProver/certoraBuild.py,sha256=4fDUL8cOEsJcy3gysZymc35QKl7Ht28DeZaGgDvIRvc,225385
17
- certora_cli/CertoraProver/certoraBuildCacheManager.py,sha256=YnZmBZ_gCIbLwExgK5oxFlVDQGe4_YuGIpDLMy589E0,13318
17
+ certora_cli/CertoraProver/certoraBuildCacheManager.py,sha256=DnVd7w92xjmg0DIrMgoJnCvaU0yCz7ySy0M4RiHEXEM,13648
18
18
  certora_cli/CertoraProver/certoraBuildDataClasses.py,sha256=hO0w3YK9V9gZsTbh4gxxlnEAaOiubUwfzNEw6uL1HaE,14841
19
19
  certora_cli/CertoraProver/certoraBuildRust.py,sha256=ZPbNp4ttRmzcKhFsgHSiHDRExNPaLOzgxTRqu23o1D0,6061
20
20
  certora_cli/CertoraProver/certoraBuildSui.py,sha256=zMXD2XnC4oqRDzPcBvSZmVquL3UG5paBZkfUT3JPbYY,4180
@@ -65,16 +65,16 @@ certora_cli/Shared/ExpectedComparator.py,sha256=eyRR-jni4WJoa6j2TK2lnZ89Tyb8U99w
65
65
  certora_cli/Shared/__init__.py,sha256=s0dhvolFtsS4sRNzPVhC_rlw8mm194rCZ0WhOxInY40,1025
66
66
  certora_cli/Shared/certoraAttrUtil.py,sha256=Nw8ban5Axp6c6dT-KJfCD9i9tKnGk1DbvRDDNH3--DU,8574
67
67
  certora_cli/Shared/certoraLogging.py,sha256=cV2UQMhQ5j8crGXgeq9CEamI-Lk4HgdiA3HCrP-kSR4,14013
68
- certora_cli/Shared/certoraUtils.py,sha256=g7jdTQ-Ek9WOGybPV2x-I1n8XYVCu_RBWqIuFGUsOpw,58694
68
+ certora_cli/Shared/certoraUtils.py,sha256=GeA4o74TxKeW206je_H8B6wzDFuPIz0j6EyQo5sJeyU,59325
69
69
  certora_cli/Shared/certoraValidateFuncs.py,sha256=mYguICGfUwVZ9qPBFajss1xqHPDR-KRtskgERLum4AM,43225
70
70
  certora_cli/Shared/proverCommon.py,sha256=uZkl9PDLPj81kKRnBnlPUmvhMZovNP25_74No_7jaQ4,11215
71
- certora_jars/ASTExtraction.jar,sha256=f3v0SeoJjAxk8ib1kvmWxvgV_3xIPrqq3ZTrQ2Yf6F4,20968739
72
- certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=YjIryFBRPwVI0YdZ7waeopdR60h0Gbn7eljc_7Xszow,170
73
- certora_jars/Typechecker.jar,sha256=dhX9aYhd--gIwf7lb7crZzZ3f8I_K9noqCenbBI91XM,20930898
71
+ certora_jars/ASTExtraction.jar,sha256=13O4etpraDNmYn1-EP1mndH1rA_Re9Lja3rnoqsENCw,20968739
72
+ certora_jars/CERTORA-CLI-VERSION-METADATA.json,sha256=98ug5HZLVWkSyS6AHGqlIU9PyQqfzhCeQpzFHiANNFs,170
73
+ certora_jars/Typechecker.jar,sha256=z_ncJOQXPOrO2u2Ge_JmQqMuXTb_lC3QetTYcZIe4-0,20930898
74
74
  certora_jars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- certora_cli_alpha_master-20251012.10.16.14285.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
76
- certora_cli_alpha_master-20251012.10.16.14285.dist-info/METADATA,sha256=ke_-Dnxre_uicjBaUJgHe2JigGJYAlLYqTJxQqYHsXM,1303
77
- certora_cli_alpha_master-20251012.10.16.14285.dist-info/WHEEL,sha256=9Ig2YBzm5cpS_YWKLeuYxVAxcKv_uDQsCzy9XJbRZ_g,110
78
- certora_cli_alpha_master-20251012.10.16.14285.dist-info/entry_points.txt,sha256=ClZiFkCYDdK25_ufxZvnE2Rx_kNk1_4vj7KpgYUKxGM,509
79
- certora_cli_alpha_master-20251012.10.16.14285.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
80
- certora_cli_alpha_master-20251012.10.16.14285.dist-info/RECORD,,
75
+ certora_cli_alpha_master-20251012.20.20.862738.dist-info/LICENSE,sha256=UGKSKIJSetF8m906JLKqNLkUS2CL60XfQdNvxBvpQXo,620
76
+ certora_cli_alpha_master-20251012.20.20.862738.dist-info/METADATA,sha256=lzTwxe2GyAlETa58QbgMSu3KJpjS2XXnTSexuUwFtnA,1304
77
+ certora_cli_alpha_master-20251012.20.20.862738.dist-info/WHEEL,sha256=9Ig2YBzm5cpS_YWKLeuYxVAxcKv_uDQsCzy9XJbRZ_g,110
78
+ certora_cli_alpha_master-20251012.20.20.862738.dist-info/entry_points.txt,sha256=ClZiFkCYDdK25_ufxZvnE2Rx_kNk1_4vj7KpgYUKxGM,509
79
+ certora_cli_alpha_master-20251012.20.20.862738.dist-info/top_level.txt,sha256=8C77w3JLanY0-NW45vpJsjRssyCqVP-qmPiN9FjWiX4,38
80
+ certora_cli_alpha_master-20251012.20.20.862738.dist-info/RECORD,,
Binary file
@@ -1 +1 @@
1
- {"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "bc7cfe4", "timestamp": "20251012.10.16.014285", "version": "20251012.10.16.014285+bc7cfe4"}
1
+ {"name": "certora-cli-alpha-master", "tag": "", "branch": "master", "commit": "67b032d", "timestamp": "20251012.20.20.862738", "version": "20251012.20.20.862738+67b032d"}
Binary file