py-rattler 0.21.0__tar.gz

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.
Files changed (885) hide show
  1. py_rattler-0.21.0/Cargo.toml +212 -0
  2. py_rattler-0.21.0/PKG-INFO +208 -0
  3. py_rattler-0.21.0/README.md +187 -0
  4. py_rattler-0.21.0/crates/coalesced_map/CHANGELOG.md +26 -0
  5. py_rattler-0.21.0/crates/coalesced_map/Cargo.toml +18 -0
  6. py_rattler-0.21.0/crates/coalesced_map/README.md +10 -0
  7. py_rattler-0.21.0/crates/coalesced_map/src/lib.rs +750 -0
  8. py_rattler-0.21.0/crates/file_url/.gitignore +1 -0
  9. py_rattler-0.21.0/crates/file_url/CHANGELOG.md +95 -0
  10. py_rattler-0.21.0/crates/file_url/Cargo.toml +19 -0
  11. py_rattler-0.21.0/crates/file_url/src/lib.rs +244 -0
  12. py_rattler-0.21.0/crates/path_resolver/CHANGELOG.md +56 -0
  13. py_rattler-0.21.0/crates/path_resolver/Cargo.toml +26 -0
  14. py_rattler-0.21.0/crates/path_resolver/README.md +187 -0
  15. py_rattler-0.21.0/crates/path_resolver/benches/path_resolver_bench.rs +149 -0
  16. py_rattler-0.21.0/crates/path_resolver/src/lib.rs +1191 -0
  17. py_rattler-0.21.0/crates/rattler/.gitignore +1 -0
  18. py_rattler-0.21.0/crates/rattler/CHANGELOG.md +744 -0
  19. py_rattler-0.21.0/crates/rattler/Cargo.toml +78 -0
  20. py_rattler-0.21.0/crates/rattler/README.md +187 -0
  21. py_rattler-0.21.0/crates/rattler/resources/launcher64.exe +0 -0
  22. py_rattler-0.21.0/crates/rattler/resources/versions.txt +12297 -0
  23. py_rattler-0.21.0/crates/rattler/src/cli/auth.rs +522 -0
  24. py_rattler-0.21.0/crates/rattler/src/cli/mod.rs +3 -0
  25. py_rattler-0.21.0/crates/rattler/src/install/apple_codesign.rs +42 -0
  26. py_rattler-0.21.0/crates/rattler/src/install/clobber_registry.rs +1491 -0
  27. py_rattler-0.21.0/crates/rattler/src/install/driver.rs +317 -0
  28. py_rattler-0.21.0/crates/rattler/src/install/entry_point.rs +235 -0
  29. py_rattler-0.21.0/crates/rattler/src/install/installer/error.rs +83 -0
  30. py_rattler-0.21.0/crates/rattler/src/install/installer/indicatif.rs +847 -0
  31. py_rattler-0.21.0/crates/rattler/src/install/installer/mod.rs +1469 -0
  32. py_rattler-0.21.0/crates/rattler/src/install/installer/reporter.rs +130 -0
  33. py_rattler-0.21.0/crates/rattler/src/install/installer/result_record.rs +371 -0
  34. py_rattler-0.21.0/crates/rattler/src/install/link.rs +1097 -0
  35. py_rattler-0.21.0/crates/rattler/src/install/link_script.rs +340 -0
  36. py_rattler-0.21.0/crates/rattler/src/install/mod.rs +1362 -0
  37. py_rattler-0.21.0/crates/rattler/src/install/python.rs +136 -0
  38. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-2.snap +14 -0
  39. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-3.snap +6 -0
  40. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-4.snap +16 -0
  41. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-5.snap +6 -0
  42. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-6.snap +14 -0
  43. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-7.snap +16 -0
  44. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber.snap +6 -0
  45. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__entry_point__test__entry_point_script.snap +14 -0
  46. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__entry_point__test__windows.snap +14 -0
  47. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__link__test__replace_long_prefix_in_text_file.snap +12 -0
  48. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__link__test__replace_python_shebang-2.snap +6 -0
  49. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__link__test__replace_python_shebang.snap +6 -0
  50. py_rattler-0.21.0/crates/rattler/src/install/snapshots/rattler__install__test__prefix_paths.snap +60 -0
  51. py_rattler-0.21.0/crates/rattler/src/install/test_utils.rs +194 -0
  52. py_rattler-0.21.0/crates/rattler/src/install/transaction.rs +538 -0
  53. py_rattler-0.21.0/crates/rattler/src/install/unlink.rs +507 -0
  54. py_rattler-0.21.0/crates/rattler/src/lib.rs +84 -0
  55. py_rattler-0.21.0/crates/rattler/src/range.rs +662 -0
  56. py_rattler-0.21.0/crates/rattler_cache/CHANGELOG.md +512 -0
  57. py_rattler-0.21.0/crates/rattler_cache/Cargo.toml +55 -0
  58. py_rattler-0.21.0/crates/rattler_cache/README.md +187 -0
  59. py_rattler-0.21.0/crates/rattler_cache/src/consts.rs +5 -0
  60. py_rattler-0.21.0/crates/rattler_cache/src/lib.rs +34 -0
  61. py_rattler-0.21.0/crates/rattler_cache/src/package_cache/cache_key.rs +110 -0
  62. py_rattler-0.21.0/crates/rattler_cache/src/package_cache/cache_lock.rs +331 -0
  63. py_rattler-0.21.0/crates/rattler_cache/src/package_cache/mod.rs +1463 -0
  64. py_rattler-0.21.0/crates/rattler_cache/src/package_cache/reporter.rs +14 -0
  65. py_rattler-0.21.0/crates/rattler_cache/src/run_exports_cache/cache_key.rs +86 -0
  66. py_rattler-0.21.0/crates/rattler_cache/src/run_exports_cache/download.rs +66 -0
  67. py_rattler-0.21.0/crates/rattler_cache/src/run_exports_cache/mod.rs +730 -0
  68. py_rattler-0.21.0/crates/rattler_cache/src/validation.rs +419 -0
  69. py_rattler-0.21.0/crates/rattler_conda_types/CHANGELOG.md +707 -0
  70. py_rattler-0.21.0/crates/rattler_conda_types/Cargo.toml +91 -0
  71. py_rattler-0.21.0/crates/rattler_conda_types/README.md +187 -0
  72. py_rattler-0.21.0/crates/rattler_conda_types/benches/parse.rs +27 -0
  73. py_rattler-0.21.0/crates/rattler_conda_types/benches/prefix_record_from_path.rs +210 -0
  74. py_rattler-0.21.0/crates/rattler_conda_types/src/build_spec/mod.rs +120 -0
  75. py_rattler-0.21.0/crates/rattler_conda_types/src/build_spec/parse.rs +195 -0
  76. py_rattler-0.21.0/crates/rattler_conda_types/src/channel/channel_url.rs +78 -0
  77. py_rattler-0.21.0/crates/rattler_conda_types/src/channel/mod.rs +840 -0
  78. py_rattler-0.21.0/crates/rattler_conda_types/src/channel_data.rs +123 -0
  79. py_rattler-0.21.0/crates/rattler_conda_types/src/compression_level.rs +56 -0
  80. py_rattler-0.21.0/crates/rattler_conda_types/src/environment_yaml.rs +202 -0
  81. py_rattler-0.21.0/crates/rattler_conda_types/src/explicit_environment_spec.rs +380 -0
  82. py_rattler-0.21.0/crates/rattler_conda_types/src/generic_virtual_package.rs +92 -0
  83. py_rattler-0.21.0/crates/rattler_conda_types/src/lib.rs +82 -0
  84. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/condition.rs +265 -0
  85. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/matcher.rs +266 -0
  86. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/mod.rs +1147 -0
  87. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/package_name_matcher.rs +239 -0
  88. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/parse.rs +1725 -0
  89. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__condition__tests__complex_and_with_parens.snap +14 -0
  90. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__condition__tests__condition_parsing_snapshots.snap +146 -0
  91. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__condition__tests__no_condition.snap +6 -0
  92. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__condition__tests__precedence_test.snap +17 -0
  93. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__condition__tests__simple_or.snap +11 -0
  94. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__matchspec_to_string.snap +8 -0
  95. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string.snap +37 -0
  96. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string_Lenient.snap +142 -0
  97. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string_Strict.snap +109 -0
  98. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_nameless_from_string_Lenient.snap +57 -0
  99. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_nameless_from_string_Strict.snap +53 -0
  100. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__tests__serialize_json_matchspec.snap +10 -0
  101. py_rattler-0.21.0/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__tests__serialize_matchspec.snap +10 -0
  102. py_rattler-0.21.0/crates/rattler_conda_types/src/menuinst/mod.rs +137 -0
  103. py_rattler-0.21.0/crates/rattler_conda_types/src/minimal_prefix_record.rs +869 -0
  104. py_rattler-0.21.0/crates/rattler_conda_types/src/no_arch_type.rs +177 -0
  105. py_rattler-0.21.0/crates/rattler_conda_types/src/package/about.rs +185 -0
  106. py_rattler-0.21.0/crates/rattler_conda_types/src/package/archive_identifier.rs +244 -0
  107. py_rattler-0.21.0/crates/rattler_conda_types/src/package/archive_type.rs +287 -0
  108. py_rattler-0.21.0/crates/rattler_conda_types/src/package/entry_point.rs +95 -0
  109. py_rattler-0.21.0/crates/rattler_conda_types/src/package/files.rs +46 -0
  110. py_rattler-0.21.0/crates/rattler_conda_types/src/package/has_prefix.rs +204 -0
  111. py_rattler-0.21.0/crates/rattler_conda_types/src/package/index.rs +146 -0
  112. py_rattler-0.21.0/crates/rattler_conda_types/src/package/link.rs +65 -0
  113. py_rattler-0.21.0/crates/rattler_conda_types/src/package/mod.rs +85 -0
  114. py_rattler-0.21.0/crates/rattler_conda_types/src/package/no_link.rs +47 -0
  115. py_rattler-0.21.0/crates/rattler_conda_types/src/package/no_softlink.rs +47 -0
  116. py_rattler-0.21.0/crates/rattler_conda_types/src/package/package_metadata.rs +17 -0
  117. py_rattler-0.21.0/crates/rattler_conda_types/src/package/paths.rs +348 -0
  118. py_rattler-0.21.0/crates/rattler_conda_types/src/package/run_exports.rs +86 -0
  119. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__extra_field_is_recorded_when_present.snap +5 -0
  120. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__extra_field_is_skipped.snap +5 -0
  121. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__reconstruct_about_json.snap +28 -0
  122. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__reconstruct_about_json_mamba.snap +25 -0
  123. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__entry_point__test__entry_point.snap +5 -0
  124. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__index__test__reconstruct_index_json.snap +15 -0
  125. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__index__test__reconstruct_index_json_with_symlinks.snap +14 -0
  126. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__jupyterlab-link.json.snap +12 -0
  127. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__setuptools-link.json.snap +7 -0
  128. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__tzdata-link.json.snap +7 -0
  129. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__paths_sorted.snap +51 -0
  130. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__reconstruct_paths_json.snap +26 -0
  131. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__reconstruct_paths_json_with_symlinks.snap +23 -0
  132. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__roundtrip_paths_json.snap +154 -0
  133. py_rattler-0.21.0/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__run_exports__test__reconstruct_run_exports_json_with_symlinks.snap +7 -0
  134. py_rattler-0.21.0/crates/rattler_conda_types/src/package_name.rs +344 -0
  135. py_rattler-0.21.0/crates/rattler_conda_types/src/parse_mode.rs +138 -0
  136. py_rattler-0.21.0/crates/rattler_conda_types/src/platform.rs +580 -0
  137. py_rattler-0.21.0/crates/rattler_conda_types/src/prefix.rs +85 -0
  138. py_rattler-0.21.0/crates/rattler_conda_types/src/prefix_record.rs +510 -0
  139. py_rattler-0.21.0/crates/rattler_conda_types/src/record_traits.rs +72 -0
  140. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/mod.rs +1015 -0
  141. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/patches.rs +404 -0
  142. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/sharded.rs +67 -0
  143. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__null_values.snap +10 -0
  144. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__patch_purl.snap +83 -0
  145. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__patch_tracked_features.snap +26 -0
  146. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__patching.snap +80 -0
  147. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__removing_1.snap +33 -0
  148. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__removing_2.snap +62 -0
  149. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__base_url_packages.snap +33 -0
  150. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__deserialize_no_noarch_empty_str.snap +35 -0
  151. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__deserialize_no_packages_conda.snap +184 -0
  152. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize.snap +17 -0
  153. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize_packages-2.snap +448 -0
  154. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize_packages.snap +404 -0
  155. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data/topological_sort.rs +2006 -0
  156. py_rattler-0.21.0/crates/rattler_conda_types/src/repo_data_record.rs +81 -0
  157. py_rattler-0.21.0/crates/rattler_conda_types/src/run_export.rs +14 -0
  158. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@asymmetric_vqgan.environment.yaml.snap +35 -0
  159. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@channel_inversion.environment.yaml.snap +12 -0
  160. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@conda_lock_dev.environment.yaml.snap +44 -0
  161. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@mamba_dev_extra.environment.yaml.snap +22 -0
  162. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@variables.environment.yaml.snap +12 -0
  163. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__pip_section.snap +27 -0
  164. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__ros-noetic_linux-64.txt.snap +574 -0
  165. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__vs2015_runtime_win-64.txt.snap +8 -0
  166. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__xtensor_linux-64.txt.snap +13 -0
  167. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__libsqlite-3_40_0-hcfcfb64_0_json.snap +58 -0
  168. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__menuinst-1_4_19-py311h1ea47a8_1_json.snap +230 -0
  169. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__pip-23_0-pyhd8ed1ab_0_json.snap +4555 -0
  170. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__pysocks-1_7_1-pyh0701188_6_json.snap +99 -0
  171. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__requests-2_28_2-pyhd8ed1ab_0_json.snap +246 -0
  172. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__tk-8_6_12-h8ffe710_0_json.snap +6634 -0
  173. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__urllib3-1_26_14-pyhd8ed1ab_0_json.snap +423 -0
  174. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__vc-14_3-hb6edc58_10_json.snap +34 -0
  175. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__wheel-0_38_4-pyhd8ed1ab_0_json.snap +233 -0
  176. py_rattler-0.21.0/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__xz-5_2_6-h8d14728_0_json.snap +159 -0
  177. py_rattler-0.21.0/crates/rattler_conda_types/src/utils/mod.rs +9 -0
  178. py_rattler-0.21.0/crates/rattler_conda_types/src/utils/path.rs +75 -0
  179. py_rattler-0.21.0/crates/rattler_conda_types/src/utils/serde.rs +398 -0
  180. py_rattler-0.21.0/crates/rattler_conda_types/src/utils/url.rs +24 -0
  181. py_rattler-0.21.0/crates/rattler_conda_types/src/utils/url_with_trailing_slash.rs +83 -0
  182. py_rattler-0.21.0/crates/rattler_conda_types/src/version/bump.rs +411 -0
  183. py_rattler-0.21.0/crates/rattler_conda_types/src/version/flags.rs +117 -0
  184. py_rattler-0.21.0/crates/rattler_conda_types/src/version/mod.rs +1584 -0
  185. py_rattler-0.21.0/crates/rattler_conda_types/src/version/parse.rs +540 -0
  186. py_rattler-0.21.0/crates/rattler_conda_types/src/version/segment.rs +200 -0
  187. py_rattler-0.21.0/crates/rattler_conda_types/src/version/snapshots/rattler_conda_types__version__parse__test__parse.snap +105 -0
  188. py_rattler-0.21.0/crates/rattler_conda_types/src/version/with_source.rs +174 -0
  189. py_rattler-0.21.0/crates/rattler_conda_types/src/version_spec/constraint.rs +305 -0
  190. py_rattler-0.21.0/crates/rattler_conda_types/src/version_spec/mod.rs +622 -0
  191. py_rattler-0.21.0/crates/rattler_conda_types/src/version_spec/parse.rs +561 -0
  192. py_rattler-0.21.0/crates/rattler_conda_types/src/version_spec/snapshots/rattler_conda_types__version_spec__parse__test__exact_strict.snap +5 -0
  193. py_rattler-0.21.0/crates/rattler_conda_types/src/version_spec/version_tree.rs +473 -0
  194. py_rattler-0.21.0/crates/rattler_config/CHANGELOG.md +206 -0
  195. py_rattler-0.21.0/crates/rattler_config/Cargo.toml +34 -0
  196. py_rattler-0.21.0/crates/rattler_config/README.md +187 -0
  197. py_rattler-0.21.0/crates/rattler_config/src/config/build.rs +133 -0
  198. py_rattler-0.21.0/crates/rattler_config/src/config/channel_config.rs +7 -0
  199. py_rattler-0.21.0/crates/rattler_config/src/config/concurrency.rs +133 -0
  200. py_rattler-0.21.0/crates/rattler_config/src/config/proxy.rs +174 -0
  201. py_rattler-0.21.0/crates/rattler_config/src/config/repodata_config.rs +178 -0
  202. py_rattler-0.21.0/crates/rattler_config/src/config/run_post_link_scripts.rs +20 -0
  203. py_rattler-0.21.0/crates/rattler_config/src/config/s3.rs +123 -0
  204. py_rattler-0.21.0/crates/rattler_config/src/config.rs +328 -0
  205. py_rattler-0.21.0/crates/rattler_config/src/edit.rs +174 -0
  206. py_rattler-0.21.0/crates/rattler_config/src/lib.rs +838 -0
  207. py_rattler-0.21.0/crates/rattler_config/src/snapshots/rattler_config__tests__basic_config_edit.snap +24 -0
  208. py_rattler-0.21.0/crates/rattler_config/src/snapshots/rattler_config__tests__comprehensive_config_edit.snap +44 -0
  209. py_rattler-0.21.0/crates/rattler_config/src/snapshots/rattler_config__tests__config_save_roundtrip.snap +22 -0
  210. py_rattler-0.21.0/crates/rattler_config/src/snapshots/rattler_config__tests__proxy_config_edit.snap +17 -0
  211. py_rattler-0.21.0/crates/rattler_config/src/snapshots/rattler_config__tests__repodata_config_edit.snap +14 -0
  212. py_rattler-0.21.0/crates/rattler_config/src/snapshots/rattler_config__tests__s3_config_edit.snap +18 -0
  213. py_rattler-0.21.0/crates/rattler_config/test-data/config.toml +61 -0
  214. py_rattler-0.21.0/crates/rattler_digest/CHANGELOG.md +155 -0
  215. py_rattler-0.21.0/crates/rattler_digest/Cargo.toml +39 -0
  216. py_rattler-0.21.0/crates/rattler_digest/README.md +187 -0
  217. py_rattler-0.21.0/crates/rattler_digest/src/lib.rs +250 -0
  218. py_rattler-0.21.0/crates/rattler_digest/src/serde.rs +321 -0
  219. py_rattler-0.21.0/crates/rattler_digest/src/tokio.rs +74 -0
  220. py_rattler-0.21.0/crates/rattler_index/CHANGELOG.md +642 -0
  221. py_rattler-0.21.0/crates/rattler_index/Cargo.toml +80 -0
  222. py_rattler-0.21.0/crates/rattler_index/README.md +187 -0
  223. py_rattler-0.21.0/crates/rattler_index/pixi.lock +8 -0
  224. py_rattler-0.21.0/crates/rattler_index/pixi.toml +10 -0
  225. py_rattler-0.21.0/crates/rattler_index/src/cache.rs +273 -0
  226. py_rattler-0.21.0/crates/rattler_index/src/error.rs +35 -0
  227. py_rattler-0.21.0/crates/rattler_index/src/lib.rs +1347 -0
  228. py_rattler-0.21.0/crates/rattler_index/src/main.rs +209 -0
  229. py_rattler-0.21.0/crates/rattler_index/src/utils.rs +101 -0
  230. py_rattler-0.21.0/crates/rattler_index/tests/integration/basic_indexing.rs +149 -0
  231. py_rattler-0.21.0/crates/rattler_index/tests/integration/cache_tests.rs +91 -0
  232. py_rattler-0.21.0/crates/rattler_index/tests/integration/concurrent_indexing.rs +174 -0
  233. py_rattler-0.21.0/crates/rattler_index/tests/integration/etag_memory_backend.rs +671 -0
  234. py_rattler-0.21.0/crates/rattler_index/tests/integration/mod.rs +5 -0
  235. py_rattler-0.21.0/crates/rattler_index/tests/test_index.rs +2 -0
  236. py_rattler-0.21.0/crates/rattler_lock/CHANGELOG.md +567 -0
  237. py_rattler-0.21.0/crates/rattler_lock/Cargo.toml +37 -0
  238. py_rattler-0.21.0/crates/rattler_lock/README.md +187 -0
  239. py_rattler-0.21.0/crates/rattler_lock/src/builder.rs +603 -0
  240. py_rattler-0.21.0/crates/rattler_lock/src/channel.rs +32 -0
  241. py_rattler-0.21.0/crates/rattler_lock/src/conda.rs +504 -0
  242. py_rattler-0.21.0/crates/rattler_lock/src/file_format_version.rs +78 -0
  243. py_rattler-0.21.0/crates/rattler_lock/src/hash.rs +161 -0
  244. py_rattler-0.21.0/crates/rattler_lock/src/lib.rs +742 -0
  245. py_rattler-0.21.0/crates/rattler_lock/src/options.rs +49 -0
  246. py_rattler-0.21.0/crates/rattler_lock/src/parse/deserialize.rs +357 -0
  247. py_rattler-0.21.0/crates/rattler_lock/src/parse/mod.rs +131 -0
  248. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/mod.rs +4 -0
  249. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/v5/conda_package_data.rs +153 -0
  250. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/v5/mod.rs +5 -0
  251. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/v5/pypi_package_data.rs +39 -0
  252. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/v6/conda_package_data.rs +333 -0
  253. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/v6/mod.rs +6 -0
  254. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/v6/pypi_package_data.rs +77 -0
  255. py_rattler-0.21.0/crates/rattler_lock/src/parse/models/v6/source_data.rs +393 -0
  256. py_rattler-0.21.0/crates/rattler_lock/src/parse/serialize.rs +455 -0
  257. py_rattler-0.21.0/crates/rattler_lock/src/parse/v3.rs +286 -0
  258. py_rattler-0.21.0/crates/rattler_lock/src/pypi.rs +145 -0
  259. py_rattler-0.21.0/crates/rattler_lock/src/pypi_indexes.rs +51 -0
  260. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__builder__test__merge_records_and_purls.snap +21 -0
  261. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__builder__test__pypi_prerelease_mode.snap +16 -0
  262. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__packages_for_platform-2.snap +184 -0
  263. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__packages_for_platform.snap +258 -0
  264. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v0__numpy-conda-lock.yml.snap +5266 -0
  265. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v0__pypi-matplotlib-conda-lock.yml.snap +521 -0
  266. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v0__python-conda-lock.yml.snap +636 -0
  267. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v3__robostack-turtlesim-conda-lock.yml.snap +34269 -0
  268. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__absolute-path-lock.yml.snap +18 -0
  269. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__numpy-lock.yml.snap +9614 -0
  270. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__path-based-lock.yml.snap +356 -0
  271. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__pypi-matplotlib-lock.yml.snap +636 -0
  272. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__python-lock.yml.snap +919 -0
  273. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__turtlesim-lock.yml.snap +34269 -0
  274. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v5__flat-index-lock.yml.snap +184 -0
  275. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v5__similar-with-and-without-purl.yml.snap +20 -0
  276. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__conda-path-lock.yml.snap +61 -0
  277. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__derived-channel-lock.yml.snap +31 -0
  278. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__multiple-source-packages-with-variants-lock.yml.snap +34 -0
  279. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__options-lock.yml.snap +31 -0
  280. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__pixi-build-git-rev-only-source-lock.yml.snap +21 -0
  281. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__pixi-build-git-tag-source-lock.yml.snap +22 -0
  282. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__pixi-build-pinned-source-lock.yml.snap +22 -0
  283. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__pixi-build-url-source-lock.yml.snap +21 -0
  284. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__source-package-with-variants-lock.yml.snap +22 -0
  285. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__sources-lock.yml.snap +39 -0
  286. py_rattler-0.21.0/crates/rattler_lock/src/snapshots/rattler_lock__url_or_path__test__order.snap +12 -0
  287. py_rattler-0.21.0/crates/rattler_lock/src/source.rs +65 -0
  288. py_rattler-0.21.0/crates/rattler_lock/src/url_or_path.rs +318 -0
  289. py_rattler-0.21.0/crates/rattler_lock/src/utils/derived_fields.rs +336 -0
  290. py_rattler-0.21.0/crates/rattler_lock/src/utils/mod.rs +2 -0
  291. py_rattler-0.21.0/crates/rattler_lock/src/utils/serde/match_spec_map_or_vec.rs +60 -0
  292. py_rattler-0.21.0/crates/rattler_lock/src/utils/serde/mod.rs +15 -0
  293. py_rattler-0.21.0/crates/rattler_lock/src/utils/serde/ordered.rs +62 -0
  294. py_rattler-0.21.0/crates/rattler_lock/src/utils/serde/pep440_map_or_vec.rs +48 -0
  295. py_rattler-0.21.0/crates/rattler_lock/src/utils/serde/timestamp.rs +46 -0
  296. py_rattler-0.21.0/crates/rattler_lock/src/utils/serde/url_or_path.rs +51 -0
  297. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__file +0 -0
  298. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__https +0 -0
  299. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-1.snap +33 -0
  300. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-2.snap +33 -0
  301. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-3.snap +33 -0
  302. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-4.snap +29 -0
  303. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-5.snap +29 -0
  304. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-6.snap +12 -0
  305. py_rattler-0.21.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-7.snap +12 -0
  306. py_rattler-0.21.0/crates/rattler_macros/CHANGELOG.md +105 -0
  307. py_rattler-0.21.0/crates/rattler_macros/Cargo.toml +26 -0
  308. py_rattler-0.21.0/crates/rattler_macros/README.md +187 -0
  309. py_rattler-0.21.0/crates/rattler_macros/src/lib.rs +76 -0
  310. py_rattler-0.21.0/crates/rattler_macros/tests/01-sorted-enum.rs +12 -0
  311. py_rattler-0.21.0/crates/rattler_macros/tests/02-sorted-struct.rs +12 -0
  312. py_rattler-0.21.0/crates/rattler_macros/tests/03-out-of-order-enum.rs +12 -0
  313. py_rattler-0.21.0/crates/rattler_macros/tests/03-out-of-order-enum.stderr +5 -0
  314. py_rattler-0.21.0/crates/rattler_macros/tests/04-out-of-order-struct.rs +12 -0
  315. py_rattler-0.21.0/crates/rattler_macros/tests/04-out-of-order-struct.stderr +5 -0
  316. py_rattler-0.21.0/crates/rattler_macros/tests/tests.rs +8 -0
  317. py_rattler-0.21.0/crates/rattler_menuinst/CHANGELOG.md +337 -0
  318. py_rattler-0.21.0/crates/rattler_menuinst/Cargo.toml +51 -0
  319. py_rattler-0.21.0/crates/rattler_menuinst/README.md +187 -0
  320. py_rattler-0.21.0/crates/rattler_menuinst/data/appkit_launcher_arm64 +0 -0
  321. py_rattler-0.21.0/crates/rattler_menuinst/data/appkit_launcher_x86_64 +0 -0
  322. py_rattler-0.21.0/crates/rattler_menuinst/data/osx_launcher_arm64 +0 -0
  323. py_rattler-0.21.0/crates/rattler_menuinst/data/osx_launcher_x86_64 +0 -0
  324. py_rattler-0.21.0/crates/rattler_menuinst/src/lib.rs +232 -0
  325. py_rattler-0.21.0/crates/rattler_menuinst/src/linux/mime_config.rs +298 -0
  326. py_rattler-0.21.0/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps-2.snap +33 -0
  327. py_rattler-0.21.0/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps-3.snap +13 -0
  328. py_rattler-0.21.0/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps-4.snap +22 -0
  329. py_rattler-0.21.0/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps.snap +25 -0
  330. py_rattler-0.21.0/crates/rattler_menuinst/src/linux.rs +986 -0
  331. py_rattler-0.21.0/crates/rattler_menuinst/src/macos.rs +1042 -0
  332. py_rattler-0.21.0/crates/rattler_menuinst/src/render.rs +116 -0
  333. py_rattler-0.21.0/crates/rattler_menuinst/src/schema.rs +681 -0
  334. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__linux__tests__installation-2.snap +8 -0
  335. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__linux__tests__installation-3.snap +11 -0
  336. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__linux__tests__installation.snap +15 -0
  337. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__macos__tests__macos_menu_installation.snap +145 -0
  338. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__render__test__render_gnuradio.snap +639 -0
  339. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_defaults.snap +136 -0
  340. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_gnuradio.snap +68 -0
  341. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_grx.snap +135 -0
  342. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_mne.snap +854 -0
  343. py_rattler-0.21.0/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_spyder.snap +564 -0
  344. py_rattler-0.21.0/crates/rattler_menuinst/src/utils/mod.rs +7 -0
  345. py_rattler-0.21.0/crates/rattler_menuinst/src/utils/slugify.rs +61 -0
  346. py_rattler-0.21.0/crates/rattler_menuinst/src/utils/terminal.rs +47 -0
  347. py_rattler-0.21.0/crates/rattler_menuinst/src/windows/create_shortcut.rs +178 -0
  348. py_rattler-0.21.0/crates/rattler_menuinst/src/windows/knownfolders.rs +129 -0
  349. py_rattler-0.21.0/crates/rattler_menuinst/src/windows/lex.rs +75 -0
  350. py_rattler-0.21.0/crates/rattler_menuinst/src/windows/registry.rs +574 -0
  351. py_rattler-0.21.0/crates/rattler_menuinst/src/windows/terminal.rs +429 -0
  352. py_rattler-0.21.0/crates/rattler_menuinst/src/windows.rs +620 -0
  353. py_rattler-0.21.0/crates/rattler_menuinst/test-data/defaults/defaults.json +69 -0
  354. py_rattler-0.21.0/crates/rattler_menuinst/test-data/gnuradio/gnuradio-grc.json +21 -0
  355. py_rattler-0.21.0/crates/rattler_menuinst/test-data/gnuradio/grc.ico +0 -0
  356. py_rattler-0.21.0/crates/rattler_menuinst/test-data/gqrx/gqrx-menu.json +38 -0
  357. py_rattler-0.21.0/crates/rattler_menuinst/test-data/linux-menu/example.menu +12 -0
  358. py_rattler-0.21.0/crates/rattler_menuinst/test-data/linux-menu/mimeapps.list +6 -0
  359. py_rattler-0.21.0/crates/rattler_menuinst/test-data/mne/menu.json +168 -0
  360. py_rattler-0.21.0/crates/rattler_menuinst/test-data/spyder/menu.json +168 -0
  361. py_rattler-0.21.0/crates/rattler_networking/CHANGELOG.md +465 -0
  362. py_rattler-0.21.0/crates/rattler_networking/Cargo.toml +76 -0
  363. py_rattler-0.21.0/crates/rattler_networking/README.md +187 -0
  364. py_rattler-0.21.0/crates/rattler_networking/src/authentication_middleware.rs +459 -0
  365. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/authentication.rs +61 -0
  366. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/backends/file.rs +208 -0
  367. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/backends/keyring.rs +104 -0
  368. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/backends/memory.rs +108 -0
  369. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/backends/mod.rs +8 -0
  370. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/backends/netrc.rs +181 -0
  371. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/backends/snapshots/rattler_networking__authentication_storage__backends__file__tests__file_storage.snap +5 -0
  372. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/mod.rs +43 -0
  373. py_rattler-0.21.0/crates/rattler_networking/src/authentication_storage/storage.rs +253 -0
  374. py_rattler-0.21.0/crates/rattler_networking/src/gcs_middleware.rs +106 -0
  375. py_rattler-0.21.0/crates/rattler_networking/src/lazy_client.rs +54 -0
  376. py_rattler-0.21.0/crates/rattler_networking/src/lib.rs +26 -0
  377. py_rattler-0.21.0/crates/rattler_networking/src/mirror_middleware.rs +313 -0
  378. py_rattler-0.21.0/crates/rattler_networking/src/oci_middleware.rs +344 -0
  379. py_rattler-0.21.0/crates/rattler_networking/src/retry_policies.rs +25 -0
  380. py_rattler-0.21.0/crates/rattler_networking/src/s3_middleware.rs +489 -0
  381. py_rattler-0.21.0/crates/rattler_networking/tests/s3_integration_test.rs +166 -0
  382. py_rattler-0.21.0/crates/rattler_package_streaming/CHANGELOG.md +577 -0
  383. py_rattler-0.21.0/crates/rattler_package_streaming/Cargo.toml +79 -0
  384. py_rattler-0.21.0/crates/rattler_package_streaming/README.md +187 -0
  385. py_rattler-0.21.0/crates/rattler_package_streaming/benches/extraction_benchmark.rs +277 -0
  386. py_rattler-0.21.0/crates/rattler_package_streaming/src/fs.rs +54 -0
  387. py_rattler-0.21.0/crates/rattler_package_streaming/src/lib.rs +111 -0
  388. py_rattler-0.21.0/crates/rattler_package_streaming/src/read.rs +191 -0
  389. py_rattler-0.21.0/crates/rattler_package_streaming/src/reqwest/mod.rs +2 -0
  390. py_rattler-0.21.0/crates/rattler_package_streaming/src/reqwest/tokio.rs +235 -0
  391. py_rattler-0.21.0/crates/rattler_package_streaming/src/seek.rs +151 -0
  392. py_rattler-0.21.0/crates/rattler_package_streaming/src/tokio/async_read.rs +209 -0
  393. py_rattler-0.21.0/crates/rattler_package_streaming/src/tokio/fs.rs +88 -0
  394. py_rattler-0.21.0/crates/rattler_package_streaming/src/tokio/mod.rs +4 -0
  395. py_rattler-0.21.0/crates/rattler_package_streaming/src/write.rs +375 -0
  396. py_rattler-0.21.0/crates/rattler_package_streaming/tests/extract.rs +335 -0
  397. py_rattler-0.21.0/crates/rattler_package_streaming/tests/resources/ca-certificates-2024.7.4-hbcca054_0.conda +0 -0
  398. py_rattler-0.21.0/crates/rattler_package_streaming/tests/write.rs +241 -0
  399. py_rattler-0.21.0/crates/rattler_pty/CHANGELOG.md +80 -0
  400. py_rattler-0.21.0/crates/rattler_pty/Cargo.toml +18 -0
  401. py_rattler-0.21.0/crates/rattler_pty/README.md +187 -0
  402. py_rattler-0.21.0/crates/rattler_pty/src/lib.rs +2 -0
  403. py_rattler-0.21.0/crates/rattler_pty/src/unix/mod.rs +6 -0
  404. py_rattler-0.21.0/crates/rattler_pty/src/unix/pty_process.rs +341 -0
  405. py_rattler-0.21.0/crates/rattler_pty/src/unix/pty_session.rs +229 -0
  406. py_rattler-0.21.0/crates/rattler_pty/tests/integration_test.rs +40 -0
  407. py_rattler-0.21.0/crates/rattler_redaction/CHANGELOG.md +89 -0
  408. py_rattler-0.21.0/crates/rattler_redaction/Cargo.toml +21 -0
  409. py_rattler-0.21.0/crates/rattler_redaction/README.md +187 -0
  410. py_rattler-0.21.0/crates/rattler_redaction/src/lib.rs +149 -0
  411. py_rattler-0.21.0/crates/rattler_repodata_gateway/CHANGELOG.md +667 -0
  412. py_rattler-0.21.0/crates/rattler_repodata_gateway/Cargo.toml +103 -0
  413. py_rattler-0.21.0/crates/rattler_repodata_gateway/README.md +187 -0
  414. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/cache/cache_headers.rs +80 -0
  415. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/cache/mod.rs +232 -0
  416. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state.snap +16 -0
  417. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state_one.snap +16 -0
  418. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state_two.snap +19 -0
  419. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/jlap/mod.rs +973 -0
  420. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/mod.rs +157 -0
  421. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/no_cache.rs +327 -0
  422. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/fetch/with_cache.rs +1589 -0
  423. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/barrier_cell.rs +131 -0
  424. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/builder.rs +178 -0
  425. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/channel_config.rs +114 -0
  426. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/direct_url_query.rs +349 -0
  427. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/error.rs +128 -0
  428. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/indicatif.rs +191 -0
  429. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/local_subdir.rs +99 -0
  430. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/mod.rs +1200 -0
  431. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/query.rs +438 -0
  432. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/remote_subdir/mod.rs +30 -0
  433. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/remote_subdir/tokio.rs +116 -0
  434. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/remote_subdir/wasm.rs +61 -0
  435. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/repo_data.rs +104 -0
  436. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/run_exports_extractor.rs +418 -0
  437. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/mod.rs +85 -0
  438. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/tokio/index.rs +541 -0
  439. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/tokio/mod.rs +321 -0
  440. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/wasm/index.rs +81 -0
  441. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/wasm/mod.rs +169 -0
  442. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/subdir.rs +88 -0
  443. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/gateway/subdir_builder.rs +167 -0
  444. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/lib.rs +82 -0
  445. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/reporter.rs +134 -0
  446. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/sparse/mod.rs +1324 -0
  447. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@both.snap +11 -0
  448. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@only-conda.snap +6 -0
  449. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@only-tar-bz2.snap +9 -0
  450. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@prefer-conda-with-whl.snap +9 -0
  451. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@prefer-conda.snap +9 -0
  452. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/utils/body.rs +77 -0
  453. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/utils/encoding.rs +83 -0
  454. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/utils/flock.rs +423 -0
  455. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/utils/mod.rs +66 -0
  456. py_rattler-0.21.0/crates/rattler_repodata_gateway/src/utils/simple_channel_server.rs +72 -0
  457. py_rattler-0.21.0/crates/rattler_s3/CHANGELOG.md +128 -0
  458. py_rattler-0.21.0/crates/rattler_s3/Cargo.toml +38 -0
  459. py_rattler-0.21.0/crates/rattler_s3/README.md +187 -0
  460. py_rattler-0.21.0/crates/rattler_s3/src/clap.rs +88 -0
  461. py_rattler-0.21.0/crates/rattler_s3/src/lib.rs +199 -0
  462. py_rattler-0.21.0/crates/rattler_shell/CHANGELOG.md +528 -0
  463. py_rattler-0.21.0/crates/rattler_shell/Cargo.toml +30 -0
  464. py_rattler-0.21.0/crates/rattler_shell/README.md +187 -0
  465. py_rattler-0.21.0/crates/rattler_shell/src/activation.rs +1400 -0
  466. py_rattler-0.21.0/crates/rattler_shell/src/lib.rs +7 -0
  467. py_rattler-0.21.0/crates/rattler_shell/src/run/mod.rs +79 -0
  468. py_rattler-0.21.0/crates/rattler_shell/src/shell/mod.rs +1293 -0
  469. py_rattler-0.21.0/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__bash.snap +14 -0
  470. py_rattler-0.21.0/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__fish.snap +7 -0
  471. py_rattler-0.21.0/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__xonsh_bash.snap +5 -0
  472. py_rattler-0.21.0/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__xonsh_xsh.snap +7 -0
  473. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_fish.snap +7 -0
  474. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_xonsh.snap +8 -0
  475. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_zsh.snap +8 -0
  476. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__after_activation.snap +9 -0
  477. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_append.snap +8 -0
  478. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_prepend.snap +8 -0
  479. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_replace.snap +8 -0
  480. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_append.snap +8 -0
  481. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_prepend.snap +8 -0
  482. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_replace.snap +8 -0
  483. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_append.snap +8 -0
  484. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_prepend.snap +8 -0
  485. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_replace.snap +8 -0
  486. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_bash.snap +10 -0
  487. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_cmd.snap +11 -0
  488. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_fish.snap +10 -0
  489. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_nushell.snap +10 -0
  490. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_powershell.snap +11 -0
  491. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_when_activatedbash.snap +23 -0
  492. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_when_activatedcmd.snap +24 -0
  493. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_when_activatedfish.snap +23 -0
  494. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_when_activatednushell.snap +23 -0
  495. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_when_activatedpowershell.snap +24 -0
  496. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_when_activatedxonsh.snap +20 -0
  497. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_when_activatedzsh.snap +23 -0
  498. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_xonsh.snap +10 -0
  499. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_deactivation_zsh.snap +10 -0
  500. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_first_roundbash.snap +9 -0
  501. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_first_roundcmd.snap +10 -0
  502. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_first_roundfish.snap +9 -0
  503. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_first_roundnushell.snap +9 -0
  504. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_first_roundpowershell.snap +10 -0
  505. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_first_roundxonsh.snap +9 -0
  506. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_first_roundzsh.snap +9 -0
  507. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_second_roundbash.snap +17 -0
  508. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_second_roundcmd.snap +18 -0
  509. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_second_roundfish.snap +17 -0
  510. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_second_roundnushell.snap +17 -0
  511. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_second_roundpowershell.snap +18 -0
  512. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_second_roundxonsh.snap +15 -0
  513. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_nested_deactivation_second_roundzsh.snap +17 -0
  514. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_reseting_conda_shlvlbash.snap +17 -0
  515. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_reseting_conda_shlvlcmd.snap +18 -0
  516. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_reseting_conda_shlvlfish.snap +17 -0
  517. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_reseting_conda_shlvlnushell.snap +17 -0
  518. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_reseting_conda_shlvlpowershell.snap +18 -0
  519. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_reseting_conda_shlvlxonsh.snap +15 -0
  520. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_reseting_conda_shlvlzsh.snap +17 -0
  521. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_resetting_conda_shlvlbash.snap +17 -0
  522. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_resetting_conda_shlvlcmd.snap +18 -0
  523. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_resetting_conda_shlvlfish.snap +17 -0
  524. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_resetting_conda_shlvlnushell.snap +17 -0
  525. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_resetting_conda_shlvlpowershell.snap +18 -0
  526. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_resetting_conda_shlvlxonsh.snap +15 -0
  527. py_rattler-0.21.0/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_resetting_conda_shlvlzsh.snap +17 -0
  528. py_rattler-0.21.0/crates/rattler_solve/CHANGELOG.md +598 -0
  529. py_rattler-0.21.0/crates/rattler_solve/Cargo.toml +56 -0
  530. py_rattler-0.21.0/crates/rattler_solve/README.md +187 -0
  531. py_rattler-0.21.0/crates/rattler_solve/benches/bench.rs +105 -0
  532. py_rattler-0.21.0/crates/rattler_solve/benches/sorting_bench.rs +81 -0
  533. py_rattler-0.21.0/crates/rattler_solve/src/lib.rs +374 -0
  534. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/input.rs +461 -0
  535. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/libc_byte_slice.rs +42 -0
  536. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/mod.rs +353 -0
  537. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/output.rs +121 -0
  538. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/flags.rs +24 -0
  539. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/keys.rs +21 -0
  540. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/mod.rs +26 -0
  541. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/pool.rs +374 -0
  542. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/queue.rs +94 -0
  543. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/repo.rs +172 -0
  544. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/repodata.rs +112 -0
  545. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/solvable.rs +53 -0
  546. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/solve_goal.rs +99 -0
  547. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/solve_problem.rs +108 -0
  548. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/solver.rs +152 -0
  549. py_rattler-0.21.0/crates/rattler_solve/src/libsolv_c/wrapper/transaction.rs +66 -0
  550. py_rattler-0.21.0/crates/rattler_solve/src/resolvo/conda_sorting.rs +401 -0
  551. py_rattler-0.21.0/crates/rattler_solve/src/resolvo/mod.rs +1158 -0
  552. py_rattler-0.21.0/crates/rattler_solve/tests/backends/conditional_tests.rs +366 -0
  553. py_rattler-0.21.0/crates/rattler_solve/tests/backends/extras_tests.rs +106 -0
  554. py_rattler-0.21.0/crates/rattler_solve/tests/backends/helpers/mod.rs +5 -0
  555. py_rattler-0.21.0/crates/rattler_solve/tests/backends/helpers/package_builder.rs +146 -0
  556. py_rattler-0.21.0/crates/rattler_solve/tests/backends/helpers/solver_case.rs +440 -0
  557. py_rattler-0.21.0/crates/rattler_solve/tests/backends/main.rs +1385 -0
  558. py_rattler-0.21.0/crates/rattler_solve/tests/backends/min_age_tests.rs +194 -0
  559. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__exclude_newer_error.snap +7 -0
  560. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__issue_717.snap +7 -0
  561. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__panic_on_constraint.snap +10 -0
  562. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_dummy_repo_install_non_existent.snap +9 -0
  563. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_locked.snap +9 -0
  564. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_python.snap +24 -0
  565. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_python_numpy.snap +34 -0
  566. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_quetz.snap +100 -0
  567. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_tensorboard.snap +82 -0
  568. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_tensorflow.snap +116 -0
  569. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_with_error.snap +14 -0
  570. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__solve_xtensor_xsimd.snap +12 -0
  571. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__backends__resolvo__virtual_package_constrains.snap +10 -0
  572. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_dummy_repo_install_non_existent.snap +9 -0
  573. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_python.snap +24 -0
  574. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_python_numpy.snap +34 -0
  575. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_quetz.snap +100 -0
  576. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_tensorboard.snap +82 -0
  577. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_tensorflow.snap +116 -0
  578. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_with_error.snap +5 -0
  579. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__solve_xtensor_xsimd.snap +12 -0
  580. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__libsolv_c__virtual_package_constrains.snap +5 -0
  581. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__exclude_newer_error.snap +7 -0
  582. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__issue_717.snap +7 -0
  583. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__panic_on_constraint.snap +10 -0
  584. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_dummy_repo_install_non_existent.snap +9 -0
  585. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_locked.snap +9 -0
  586. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_python.snap +24 -0
  587. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_python_numpy.snap +34 -0
  588. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_quetz.snap +100 -0
  589. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_tensorboard.snap +82 -0
  590. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_tensorflow.snap +116 -0
  591. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_with_error.snap +14 -0
  592. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__solve_xtensor_xsimd.snap +12 -0
  593. py_rattler-0.21.0/crates/rattler_solve/tests/backends/snapshots/backends__resolvo__virtual_package_constrains.snap +10 -0
  594. py_rattler-0.21.0/crates/rattler_solve/tests/backends/solver_case_tests.rs +203 -0
  595. py_rattler-0.21.0/crates/rattler_solve/tests/backends/strategy_tests.rs +62 -0
  596. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_abess_highest.snap +17 -0
  597. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_certifi_highest.snap +150 -0
  598. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_libgcc-ng_highest.snap +92 -0
  599. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_libuuid_highest.snap +6 -0
  600. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_python_highest.snap +30 -0
  601. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_highest.snap +68 -0
  602. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_lowest.snap +68 -0
  603. py_rattler-0.21.0/crates/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_lowest_direct.snap +68 -0
  604. py_rattler-0.21.0/crates/rattler_solve/tests/sorting.rs +102 -0
  605. py_rattler-0.21.0/crates/rattler_virtual_packages/CHANGELOG.md +526 -0
  606. py_rattler-0.21.0/crates/rattler_virtual_packages/Cargo.toml +28 -0
  607. py_rattler-0.21.0/crates/rattler_virtual_packages/README.md +187 -0
  608. py_rattler-0.21.0/crates/rattler_virtual_packages/src/cuda.rs +272 -0
  609. py_rattler-0.21.0/crates/rattler_virtual_packages/src/lib.rs +989 -0
  610. py_rattler-0.21.0/crates/rattler_virtual_packages/src/libc.rs +184 -0
  611. py_rattler-0.21.0/crates/rattler_virtual_packages/src/linux.rs +131 -0
  612. py_rattler-0.21.0/crates/rattler_virtual_packages/src/osx.rs +71 -0
  613. py_rattler-0.21.0/crates/rattler_virtual_packages/src/win.rs +40 -0
  614. py_rattler-0.21.0/crates/simple_spawn_blocking/CHANGELOG.md +14 -0
  615. py_rattler-0.21.0/crates/simple_spawn_blocking/Cargo.toml +13 -0
  616. py_rattler-0.21.0/crates/simple_spawn_blocking/src/lib.rs +8 -0
  617. py_rattler-0.21.0/crates/simple_spawn_blocking/src/tokio.rs +22 -0
  618. py_rattler-0.21.0/py-rattler/.gitignore +79 -0
  619. py_rattler-0.21.0/py-rattler/Cargo.lock +7063 -0
  620. py_rattler-0.21.0/py-rattler/Cargo.toml +88 -0
  621. py_rattler-0.21.0/py-rattler/README.md +187 -0
  622. py_rattler-0.21.0/py-rattler/build.rs +3 -0
  623. py_rattler-0.21.0/py-rattler/docs/about_json.md +3 -0
  624. py_rattler-0.21.0/py-rattler/docs/activate.md +3 -0
  625. py_rattler-0.21.0/py-rattler/docs/activation_error.md +3 -0
  626. py_rattler-0.21.0/py-rattler/docs/activation_result.md +3 -0
  627. py_rattler-0.21.0/py-rattler/docs/activation_variables.md +3 -0
  628. py_rattler-0.21.0/py-rattler/docs/arch.md +3 -0
  629. py_rattler-0.21.0/py-rattler/docs/assets/paxton-rattler.png +0 -0
  630. py_rattler-0.21.0/py-rattler/docs/assets/prefix-logo-white.png +0 -0
  631. py_rattler-0.21.0/py-rattler/docs/assets/prefix_logo_dark.svg +13 -0
  632. py_rattler-0.21.0/py-rattler/docs/assets/prefix_logo_light.svg +13 -0
  633. py_rattler-0.21.0/py-rattler/docs/assets/rattler-logo.svg +102 -0
  634. py_rattler-0.21.0/py-rattler/docs/cache_dir_error.md +3 -0
  635. py_rattler-0.21.0/py-rattler/docs/channel.md +3 -0
  636. py_rattler-0.21.0/py-rattler/docs/channel_config.md +3 -0
  637. py_rattler-0.21.0/py-rattler/docs/client.md +5 -0
  638. py_rattler-0.21.0/py-rattler/docs/conda_locked_binary_package.md +3 -0
  639. py_rattler-0.21.0/py-rattler/docs/conda_locked_package.md +3 -0
  640. py_rattler-0.21.0/py-rattler/docs/conda_locked_source_package.md +3 -0
  641. py_rattler-0.21.0/py-rattler/docs/detect_virtual_package_error.md +3 -0
  642. py_rattler-0.21.0/py-rattler/docs/environment.md +3 -0
  643. py_rattler-0.21.0/py-rattler/docs/environment_creation_error.md +3 -0
  644. py_rattler-0.21.0/py-rattler/docs/fetch_repo_data.md +3 -0
  645. py_rattler-0.21.0/py-rattler/docs/fetch_repo_data_error.md +3 -0
  646. py_rattler-0.21.0/py-rattler/docs/file_mode.md +3 -0
  647. py_rattler-0.21.0/py-rattler/docs/gateway.md +3 -0
  648. py_rattler-0.21.0/py-rattler/docs/generic_virtual_package.md +3 -0
  649. py_rattler-0.21.0/py-rattler/docs/index.md +83 -0
  650. py_rattler-0.21.0/py-rattler/docs/index_.md +3 -0
  651. py_rattler-0.21.0/py-rattler/docs/index_json.md +3 -0
  652. py_rattler-0.21.0/py-rattler/docs/installer.md +3 -0
  653. py_rattler-0.21.0/py-rattler/docs/invalid_channel_error.md +3 -0
  654. py_rattler-0.21.0/py-rattler/docs/invalid_match_spec_error.md +3 -0
  655. py_rattler-0.21.0/py-rattler/docs/invalid_package_name_error.md +3 -0
  656. py_rattler-0.21.0/py-rattler/docs/invalid_url_error.md +3 -0
  657. py_rattler-0.21.0/py-rattler/docs/invalid_version_error.md +3 -0
  658. py_rattler-0.21.0/py-rattler/docs/io_error.md +3 -0
  659. py_rattler-0.21.0/py-rattler/docs/layouts/custom.yml +68 -0
  660. py_rattler-0.21.0/py-rattler/docs/layouts/download-font-to-cache.sh +9 -0
  661. py_rattler-0.21.0/py-rattler/docs/link_error.md +3 -0
  662. py_rattler-0.21.0/py-rattler/docs/lock_file.md +3 -0
  663. py_rattler-0.21.0/py-rattler/docs/locked_package.md +3 -0
  664. py_rattler-0.21.0/py-rattler/docs/match_spec.md +3 -0
  665. py_rattler-0.21.0/py-rattler/docs/nameless_match_spec.md +3 -0
  666. py_rattler-0.21.0/py-rattler/docs/overrides/home.html +17 -0
  667. py_rattler-0.21.0/py-rattler/docs/overrides/partials/footer.html +111 -0
  668. py_rattler-0.21.0/py-rattler/docs/overrides/partials/mycontent.html +15 -0
  669. py_rattler-0.21.0/py-rattler/docs/package_hashes.md +3 -0
  670. py_rattler-0.21.0/py-rattler/docs/package_name.md +3 -0
  671. py_rattler-0.21.0/py-rattler/docs/package_record.md +3 -0
  672. py_rattler-0.21.0/py-rattler/docs/parse_arch_error.md +3 -0
  673. py_rattler-0.21.0/py-rattler/docs/parse_platform_error.md +3 -0
  674. py_rattler-0.21.0/py-rattler/docs/patch_instructions.md +3 -0
  675. py_rattler-0.21.0/py-rattler/docs/path_modification_behavior.md +3 -0
  676. py_rattler-0.21.0/py-rattler/docs/path_type.md +3 -0
  677. py_rattler-0.21.0/py-rattler/docs/paths_entry.md +3 -0
  678. py_rattler-0.21.0/py-rattler/docs/paths_json.md +4 -0
  679. py_rattler-0.21.0/py-rattler/docs/platform.md +3 -0
  680. py_rattler-0.21.0/py-rattler/docs/prefix_paths.md +3 -0
  681. py_rattler-0.21.0/py-rattler/docs/prefix_placeholder.md +3 -0
  682. py_rattler-0.21.0/py-rattler/docs/prefix_record.md +3 -0
  683. py_rattler-0.21.0/py-rattler/docs/pypi_locked_package.md +3 -0
  684. py_rattler-0.21.0/py-rattler/docs/repo_data.md +3 -0
  685. py_rattler-0.21.0/py-rattler/docs/repo_data_record.md +3 -0
  686. py_rattler-0.21.0/py-rattler/docs/run_exports_json.md +4 -0
  687. py_rattler-0.21.0/py-rattler/docs/shell.md +3 -0
  688. py_rattler-0.21.0/py-rattler/docs/solver.md +3 -0
  689. py_rattler-0.21.0/py-rattler/docs/solver_error.md +3 -0
  690. py_rattler-0.21.0/py-rattler/docs/sparse_repo_data.md +3 -0
  691. py_rattler-0.21.0/py-rattler/docs/stylesheets/extra.css +602 -0
  692. py_rattler-0.21.0/py-rattler/docs/stylesheets/fonts.css +36 -0
  693. py_rattler-0.21.0/py-rattler/docs/transaction_error.md +3 -0
  694. py_rattler-0.21.0/py-rattler/docs/version.md +3 -0
  695. py_rattler-0.21.0/py-rattler/docs/version_with_source.md +3 -0
  696. py_rattler-0.21.0/py-rattler/docs/virtual_package.md +3 -0
  697. py_rattler-0.21.0/py-rattler/examples/cli.py +76 -0
  698. py_rattler-0.21.0/py-rattler/examples/install_to_prefix.py +65 -0
  699. py_rattler-0.21.0/py-rattler/examples/solve_and_install.py +35 -0
  700. py_rattler-0.21.0/py-rattler/mkdocs.yml +201 -0
  701. py_rattler-0.21.0/py-rattler/pixi.lock +5813 -0
  702. py_rattler-0.21.0/py-rattler/pixi.toml +94 -0
  703. py_rattler-0.21.0/py-rattler/rattler/__init__.py +112 -0
  704. py_rattler-0.21.0/py-rattler/rattler/channel/__init__.py +5 -0
  705. py_rattler-0.21.0/py-rattler/rattler/channel/channel.py +94 -0
  706. py_rattler-0.21.0/py-rattler/rattler/channel/channel_config.py +43 -0
  707. py_rattler-0.21.0/py-rattler/rattler/channel/channel_priority.py +14 -0
  708. py_rattler-0.21.0/py-rattler/rattler/exceptions.py +120 -0
  709. py_rattler-0.21.0/py-rattler/rattler/explicit_environment/__init__.py +3 -0
  710. py_rattler-0.21.0/py-rattler/rattler/explicit_environment/environment.py +69 -0
  711. py_rattler-0.21.0/py-rattler/rattler/index/__init__.py +3 -0
  712. py_rattler-0.21.0/py-rattler/rattler/index/index.py +112 -0
  713. py_rattler-0.21.0/py-rattler/rattler/install/__init__.py +3 -0
  714. py_rattler-0.21.0/py-rattler/rattler/install/installer.py +96 -0
  715. py_rattler-0.21.0/py-rattler/rattler/lock/__init__.py +23 -0
  716. py_rattler-0.21.0/py-rattler/rattler/lock/channel.py +52 -0
  717. py_rattler-0.21.0/py-rattler/rattler/lock/environment.py +213 -0
  718. py_rattler-0.21.0/py-rattler/rattler/lock/hash.py +33 -0
  719. py_rattler-0.21.0/py-rattler/rattler/lock/lock_file.py +118 -0
  720. py_rattler-0.21.0/py-rattler/rattler/lock/package.py +302 -0
  721. py_rattler-0.21.0/py-rattler/rattler/match_spec/__init__.py +4 -0
  722. py_rattler-0.21.0/py-rattler/rattler/match_spec/match_spec.py +294 -0
  723. py_rattler-0.21.0/py-rattler/rattler/match_spec/nameless_match_spec.py +185 -0
  724. py_rattler-0.21.0/py-rattler/rattler/networking/__init__.py +19 -0
  725. py_rattler-0.21.0/py-rattler/rattler/networking/client.py +65 -0
  726. py_rattler-0.21.0/py-rattler/rattler/networking/fetch_repo_data.py +103 -0
  727. py_rattler-0.21.0/py-rattler/rattler/networking/middleware.py +191 -0
  728. py_rattler-0.21.0/py-rattler/rattler/package/__init__.py +26 -0
  729. py_rattler-0.21.0/py-rattler/rattler/package/about_json.py +329 -0
  730. py_rattler-0.21.0/py-rattler/rattler/package/index_json.py +437 -0
  731. py_rattler-0.21.0/py-rattler/rattler/package/no_arch_type.py +142 -0
  732. py_rattler-0.21.0/py-rattler/rattler/package/package_name.py +204 -0
  733. py_rattler-0.21.0/py-rattler/rattler/package/package_name_matcher.py +81 -0
  734. py_rattler-0.21.0/py-rattler/rattler/package/paths_json.py +696 -0
  735. py_rattler-0.21.0/py-rattler/rattler/package/run_exports_json.py +268 -0
  736. py_rattler-0.21.0/py-rattler/rattler/package_streaming/__init__.py +26 -0
  737. py_rattler-0.21.0/py-rattler/rattler/platform/__init__.py +4 -0
  738. py_rattler-0.21.0/py-rattler/rattler/platform/arch.py +59 -0
  739. py_rattler-0.21.0/py-rattler/rattler/platform/platform.py +217 -0
  740. py_rattler-0.21.0/py-rattler/rattler/prefix/__init__.py +4 -0
  741. py_rattler-0.21.0/py-rattler/rattler/prefix/prefix_paths.py +442 -0
  742. py_rattler-0.21.0/py-rattler/rattler/prefix/prefix_record.py +234 -0
  743. py_rattler-0.21.0/py-rattler/rattler/pty/__init__.py +25 -0
  744. py_rattler-0.21.0/py-rattler/rattler/pty/pty_process.py +391 -0
  745. py_rattler-0.21.0/py-rattler/rattler/pty/pty_session.py +241 -0
  746. py_rattler-0.21.0/py-rattler/rattler/py.typed +0 -0
  747. py_rattler-0.21.0/py-rattler/rattler/repo_data/__init__.py +17 -0
  748. py_rattler-0.21.0/py-rattler/rattler/repo_data/gateway.py +273 -0
  749. py_rattler-0.21.0/py-rattler/rattler/repo_data/package_record.py +938 -0
  750. py_rattler-0.21.0/py-rattler/rattler/repo_data/patch_instructions.py +22 -0
  751. py_rattler-0.21.0/py-rattler/rattler/repo_data/record.py +164 -0
  752. py_rattler-0.21.0/py-rattler/rattler/repo_data/repo_data.py +74 -0
  753. py_rattler-0.21.0/py-rattler/rattler/repo_data/sparse.py +356 -0
  754. py_rattler-0.21.0/py-rattler/rattler/shell/__init__.py +3 -0
  755. py_rattler-0.21.0/py-rattler/rattler/shell/shell.py +134 -0
  756. py_rattler-0.21.0/py-rattler/rattler/solver/__init__.py +3 -0
  757. py_rattler-0.21.0/py-rattler/rattler/solver/solver.py +218 -0
  758. py_rattler-0.21.0/py-rattler/rattler/utils/rattler_version.py +19 -0
  759. py_rattler-0.21.0/py-rattler/rattler/version/__init__.py +5 -0
  760. py_rattler-0.21.0/py-rattler/rattler/version/version.py +591 -0
  761. py_rattler-0.21.0/py-rattler/rattler/version/version_spec.py +184 -0
  762. py_rattler-0.21.0/py-rattler/rattler/version/with_source.py +80 -0
  763. py_rattler-0.21.0/py-rattler/rattler/virtual_package/__init__.py +4 -0
  764. py_rattler-0.21.0/py-rattler/rattler/virtual_package/generic.py +136 -0
  765. py_rattler-0.21.0/py-rattler/rattler/virtual_package/virtual_package.py +201 -0
  766. py_rattler-0.21.0/py-rattler/src/about_json.rs +218 -0
  767. py_rattler-0.21.0/py-rattler/src/channel/mod.rs +113 -0
  768. py_rattler-0.21.0/py-rattler/src/error.rs +244 -0
  769. py_rattler-0.21.0/py-rattler/src/explicit_environment_spec.rs +91 -0
  770. py_rattler-0.21.0/py-rattler/src/generic_virtual_package.rs +70 -0
  771. py_rattler-0.21.0/py-rattler/src/index.rs +102 -0
  772. py_rattler-0.21.0/py-rattler/src/index_json.rs +255 -0
  773. py_rattler-0.21.0/py-rattler/src/installer.rs +114 -0
  774. py_rattler-0.21.0/py-rattler/src/lib.rs +261 -0
  775. py_rattler-0.21.0/py-rattler/src/lock/mod.rs +628 -0
  776. py_rattler-0.21.0/py-rattler/src/match_spec.rs +178 -0
  777. py_rattler-0.21.0/py-rattler/src/meta.rs +7 -0
  778. py_rattler-0.21.0/py-rattler/src/nameless_match_spec.rs +150 -0
  779. py_rattler-0.21.0/py-rattler/src/networking/cached_repo_data.rs +33 -0
  780. py_rattler-0.21.0/py-rattler/src/networking/client.rs +93 -0
  781. py_rattler-0.21.0/py-rattler/src/networking/middleware.rs +174 -0
  782. py_rattler-0.21.0/py-rattler/src/networking/mod.rs +130 -0
  783. py_rattler-0.21.0/py-rattler/src/no_arch_type.rs +73 -0
  784. py_rattler-0.21.0/py-rattler/src/package_name.rs +89 -0
  785. py_rattler-0.21.0/py-rattler/src/package_name_matcher.rs +75 -0
  786. py_rattler-0.21.0/py-rattler/src/package_streaming/mod.rs +82 -0
  787. py_rattler-0.21.0/py-rattler/src/paths_json.rs +442 -0
  788. py_rattler-0.21.0/py-rattler/src/platform.rs +134 -0
  789. py_rattler-0.21.0/py-rattler/src/prefix_paths.rs +323 -0
  790. py_rattler-0.21.0/py-rattler/src/pty/mod.rs +19 -0
  791. py_rattler-0.21.0/py-rattler/src/pty/pty_process.rs +529 -0
  792. py_rattler-0.21.0/py-rattler/src/pty/pty_session.rs +221 -0
  793. py_rattler-0.21.0/py-rattler/src/record.rs +864 -0
  794. py_rattler-0.21.0/py-rattler/src/repo_data/gateway.rs +302 -0
  795. py_rattler-0.21.0/py-rattler/src/repo_data/mod.rs +66 -0
  796. py_rattler-0.21.0/py-rattler/src/repo_data/patch_instructions.rs +9 -0
  797. py_rattler-0.21.0/py-rattler/src/repo_data/sparse.rs +218 -0
  798. py_rattler-0.21.0/py-rattler/src/run_exports_json.rs +169 -0
  799. py_rattler-0.21.0/py-rattler/src/shell.rs +152 -0
  800. py_rattler-0.21.0/py-rattler/src/solver.rs +296 -0
  801. py_rattler-0.21.0/py-rattler/src/utils.rs +19 -0
  802. py_rattler-0.21.0/py-rattler/src/version/component.rs +32 -0
  803. py_rattler-0.21.0/py-rattler/src/version/mod.rs +214 -0
  804. py_rattler-0.21.0/py-rattler/src/version/version_spec.rs +76 -0
  805. py_rattler-0.21.0/py-rattler/src/virtual_package.rs +166 -0
  806. py_rattler-0.21.0/py-rattler/tests/__init__.py +0 -0
  807. py_rattler-0.21.0/py-rattler/tests/conftest.py +74 -0
  808. py_rattler-0.21.0/py-rattler/tests/unit/__init__.py +0 -0
  809. py_rattler-0.21.0/py-rattler/tests/unit/test_explicit_environment.py +62 -0
  810. py_rattler-0.21.0/py-rattler/tests/unit/test_fetch_repo_data.py +73 -0
  811. py_rattler-0.21.0/py-rattler/tests/unit/test_gateway.py +29 -0
  812. py_rattler-0.21.0/py-rattler/tests/unit/test_index.py +153 -0
  813. py_rattler-0.21.0/py-rattler/tests/unit/test_install.py +49 -0
  814. py_rattler-0.21.0/py-rattler/tests/unit/test_matchspec.py +178 -0
  815. py_rattler-0.21.0/py-rattler/tests/unit/test_override.py +30 -0
  816. py_rattler-0.21.0/py-rattler/tests/unit/test_package_record.py +49 -0
  817. py_rattler-0.21.0/py-rattler/tests/unit/test_package_streaming.py +69 -0
  818. py_rattler-0.21.0/py-rattler/tests/unit/test_prefix_record.py +131 -0
  819. py_rattler-0.21.0/py-rattler/tests/unit/test_pty.py +313 -0
  820. py_rattler-0.21.0/py-rattler/tests/unit/test_solver.py +352 -0
  821. py_rattler-0.21.0/py-rattler/tests/unit/test_version.py +118 -0
  822. py_rattler-0.21.0/pyproject.toml +58 -0
  823. py_rattler-0.21.0/rattler/__init__.py +112 -0
  824. py_rattler-0.21.0/rattler/channel/__init__.py +5 -0
  825. py_rattler-0.21.0/rattler/channel/channel.py +94 -0
  826. py_rattler-0.21.0/rattler/channel/channel_config.py +43 -0
  827. py_rattler-0.21.0/rattler/channel/channel_priority.py +14 -0
  828. py_rattler-0.21.0/rattler/exceptions.py +120 -0
  829. py_rattler-0.21.0/rattler/explicit_environment/__init__.py +3 -0
  830. py_rattler-0.21.0/rattler/explicit_environment/environment.py +69 -0
  831. py_rattler-0.21.0/rattler/index/__init__.py +3 -0
  832. py_rattler-0.21.0/rattler/index/index.py +112 -0
  833. py_rattler-0.21.0/rattler/install/__init__.py +3 -0
  834. py_rattler-0.21.0/rattler/install/installer.py +96 -0
  835. py_rattler-0.21.0/rattler/lock/__init__.py +23 -0
  836. py_rattler-0.21.0/rattler/lock/channel.py +52 -0
  837. py_rattler-0.21.0/rattler/lock/environment.py +213 -0
  838. py_rattler-0.21.0/rattler/lock/hash.py +33 -0
  839. py_rattler-0.21.0/rattler/lock/lock_file.py +118 -0
  840. py_rattler-0.21.0/rattler/lock/package.py +302 -0
  841. py_rattler-0.21.0/rattler/match_spec/__init__.py +4 -0
  842. py_rattler-0.21.0/rattler/match_spec/match_spec.py +294 -0
  843. py_rattler-0.21.0/rattler/match_spec/nameless_match_spec.py +185 -0
  844. py_rattler-0.21.0/rattler/networking/__init__.py +19 -0
  845. py_rattler-0.21.0/rattler/networking/client.py +65 -0
  846. py_rattler-0.21.0/rattler/networking/fetch_repo_data.py +103 -0
  847. py_rattler-0.21.0/rattler/networking/middleware.py +191 -0
  848. py_rattler-0.21.0/rattler/package/__init__.py +26 -0
  849. py_rattler-0.21.0/rattler/package/about_json.py +329 -0
  850. py_rattler-0.21.0/rattler/package/index_json.py +437 -0
  851. py_rattler-0.21.0/rattler/package/no_arch_type.py +142 -0
  852. py_rattler-0.21.0/rattler/package/package_name.py +204 -0
  853. py_rattler-0.21.0/rattler/package/package_name_matcher.py +81 -0
  854. py_rattler-0.21.0/rattler/package/paths_json.py +696 -0
  855. py_rattler-0.21.0/rattler/package/run_exports_json.py +268 -0
  856. py_rattler-0.21.0/rattler/package_streaming/__init__.py +26 -0
  857. py_rattler-0.21.0/rattler/platform/__init__.py +4 -0
  858. py_rattler-0.21.0/rattler/platform/arch.py +59 -0
  859. py_rattler-0.21.0/rattler/platform/platform.py +217 -0
  860. py_rattler-0.21.0/rattler/prefix/__init__.py +4 -0
  861. py_rattler-0.21.0/rattler/prefix/prefix_paths.py +442 -0
  862. py_rattler-0.21.0/rattler/prefix/prefix_record.py +234 -0
  863. py_rattler-0.21.0/rattler/pty/__init__.py +25 -0
  864. py_rattler-0.21.0/rattler/pty/pty_process.py +391 -0
  865. py_rattler-0.21.0/rattler/pty/pty_session.py +241 -0
  866. py_rattler-0.21.0/rattler/py.typed +0 -0
  867. py_rattler-0.21.0/rattler/repo_data/__init__.py +17 -0
  868. py_rattler-0.21.0/rattler/repo_data/gateway.py +273 -0
  869. py_rattler-0.21.0/rattler/repo_data/package_record.py +938 -0
  870. py_rattler-0.21.0/rattler/repo_data/patch_instructions.py +22 -0
  871. py_rattler-0.21.0/rattler/repo_data/record.py +164 -0
  872. py_rattler-0.21.0/rattler/repo_data/repo_data.py +74 -0
  873. py_rattler-0.21.0/rattler/repo_data/sparse.py +356 -0
  874. py_rattler-0.21.0/rattler/shell/__init__.py +3 -0
  875. py_rattler-0.21.0/rattler/shell/shell.py +134 -0
  876. py_rattler-0.21.0/rattler/solver/__init__.py +3 -0
  877. py_rattler-0.21.0/rattler/solver/solver.py +218 -0
  878. py_rattler-0.21.0/rattler/utils/rattler_version.py +19 -0
  879. py_rattler-0.21.0/rattler/version/__init__.py +5 -0
  880. py_rattler-0.21.0/rattler/version/version.py +591 -0
  881. py_rattler-0.21.0/rattler/version/version_spec.py +184 -0
  882. py_rattler-0.21.0/rattler/version/with_source.py +80 -0
  883. py_rattler-0.21.0/rattler/virtual_package/__init__.py +4 -0
  884. py_rattler-0.21.0/rattler/virtual_package/generic.py +136 -0
  885. py_rattler-0.21.0/rattler/virtual_package/virtual_package.py +201 -0
@@ -0,0 +1,212 @@
1
+ [workspace]
2
+ members = ["crates/*", "tools/*"]
3
+ resolver = "2"
4
+
5
+ # See: https://docs.rs/insta/latest/insta/#optional-faster-runs
6
+ [profile.dev.package.insta]
7
+ opt-level = 3
8
+
9
+ [workspace.package]
10
+ categories = ["development-tools"]
11
+ homepage = "https://github.com/conda/rattler"
12
+ repository = "https://github.com/conda/rattler"
13
+ license = "BSD-3-Clause"
14
+ edition = "2021"
15
+ readme = "README.md"
16
+
17
+ [workspace.metadata.release]
18
+ allow-branch = ["main"]
19
+ consolidate-commits = true
20
+ tag-prefix = ""
21
+
22
+ [profile.bench]
23
+ lto = true
24
+
25
+ [workspace.dependencies]
26
+ ahash = "0.8.12"
27
+ anyhow = "1.0.98"
28
+ archspec = "0.1.3"
29
+ assert_matches = "1.5.0"
30
+ async-compression = { version = "0.4", features = [
31
+ "gzip",
32
+ "tokio",
33
+ "bzip2",
34
+ "zstd",
35
+ ] }
36
+ async-fd-lock = "0.2.0"
37
+ fs4 = "0.13.1"
38
+ async-once-cell = "0.5.4"
39
+ async-trait = "0.1.88"
40
+ axum = { version = "0.8.4", default-features = false, features = [
41
+ "tokio",
42
+ "http1",
43
+ ] }
44
+ base64 = "0.22.1"
45
+ bindgen = "0.72.0"
46
+ blake2 = "0.10.6"
47
+ bytes = "1.10.1"
48
+ bzip2 = "0.6.0"
49
+ cache_control = "0.2.0"
50
+ cfg-if = "1.0"
51
+ chrono = { version = "0.4.41", default-features = false, features = [
52
+ "std",
53
+ "serde",
54
+ "alloc",
55
+ ] }
56
+ clap = { version = "4.5.38", features = ["derive", "color", "suggestions", "error-context"] }
57
+ clap-verbosity-flag = "3.0.3"
58
+ cmake = "0.1.54"
59
+ console = { version = "0.16.0", features = ["windows-console-colors"] }
60
+ criterion = "0.8"
61
+ dashmap = "6.1.0"
62
+ difference = "2.0.0"
63
+ digest = "0.10.7"
64
+ dirs = "6.0.0"
65
+ dunce = "1.0.5"
66
+ enum_dispatch = "0.3.13"
67
+ fancy-regex = "0.16.0"
68
+ filetime = "0.2.26"
69
+ fs-err = { version = "3.1.0" }
70
+ fslock = "0.2.1"
71
+ futures = "0.3.31"
72
+ futures-util = "0.3.31"
73
+ # lots of other crates are still stuck on older version which breaks `deserialize`
74
+ # pinning to 0.14.7 because 0.14.8 introduces deprecation notices.
75
+ generic-array = "=0.14.7"
76
+ getrandom = { version = "0.3.3", default-features = false }
77
+ glob = "0.3.2"
78
+ google-cloud-auth = { version = "1.0.0", default-features = false }
79
+ aws-config = { version = "1.8.11", default-features = false }
80
+ aws-sdk-s3 = { version = "1.115.0", default-features = false }
81
+ aws-smithy-http-client = { version = "1.1.2", default-features = false }
82
+ aws-credential-types = { version = "1.2.10", default-features = false }
83
+ hex = "0.4.3"
84
+ hex-literal = "1.0.0"
85
+ http = "1.4"
86
+ http-cache-semantics = "2.1.0"
87
+ humansize = "2.1.3"
88
+ humantime = "2.2.0"
89
+ indexmap = "2.12.0"
90
+ indicatif = "0.18.0"
91
+ insta = { version = "1.44.3" }
92
+ itertools = "0.14.0"
93
+ json-patch = "4.0.0"
94
+ keyring = "3.6.2"
95
+ lazy-regex = "3.4.1"
96
+ libc = { version = "0.2" }
97
+ libloading = "0.9.0"
98
+ libz-sys = { version = "1.1.22", default-features = false }
99
+ md-5 = "0.10.6"
100
+ memchr = "2.7.4"
101
+ memmap2 = "0.9.5"
102
+ miette = "7.6.0"
103
+ netrc-rs = "0.1.2"
104
+ nom = "8.0.0"
105
+ nom-language = "0.1.0"
106
+ num_cpus = "1.16.0"
107
+ opendal = { version = "0.54.0", default-features = false }
108
+ once_cell = "1.21.3"
109
+ parking_lot = "0.12.4"
110
+ pathdiff = "0.2.3"
111
+ pep440_rs = { version = "0.7.3" }
112
+ pep508_rs = { version = "0.9.2" }
113
+ percent-encoding = "2.3.1"
114
+ pin-project-lite = "0.2.16"
115
+ plist = "1"
116
+ proptest = "1.7.0"
117
+ purl = { version = "0.1.6", default-features = false, features = ["serde"] }
118
+ quote = "1.0.40"
119
+ rand = "0.9.1"
120
+ rayon = "1.10.0"
121
+ reflink-copy = "0.1.26"
122
+ regex = "1.11.1"
123
+ reqwest = { version = "0.12.15", default-features = false }
124
+ reqwest-middleware = "0.4.2"
125
+ reqwest-retry = "0.8.0"
126
+ resolvo = { version = "0.10.0" }
127
+ # hold back at 0.4.0 until `reqwest-retry` is updated
128
+ retry-policies = { version = "0.5.0", default-features = false }
129
+ rmp = { version = "0.8.14" }
130
+ rmp-serde = { version = "1.3.0" }
131
+ rstest = { version = "0.26.1" }
132
+ rstest_reuse = "0.7.0"
133
+ simd-json = { version = "0.17.0", features = ["serde_impl"] }
134
+ self_cell = "1.2.0"
135
+ serde = { version = "1.0.219" }
136
+ serde_bytes = { version = "0.11.19" }
137
+ serde_json = { version = "1.0.140" }
138
+ serde_repr = "0.1"
139
+ serde-value = "0.7.0"
140
+ serde_with = "3.16.1"
141
+ serde_yaml = "0.9.34"
142
+ serde-untagged = "0.1.7"
143
+ sha2 = "0.10.9"
144
+ shlex = "1.3.0"
145
+ similar-asserts = "1.7.0"
146
+ smallvec = { version = "1.15.0", features = [
147
+ "serde",
148
+ "const_new",
149
+ "const_generics",
150
+ "union",
151
+ ] }
152
+ sigstore-sign = { version = "0.6.0" }
153
+ strum = { version = "0.27.1", features = ["derive"] }
154
+ superslice = "1.0.0"
155
+ syn = "2.0.101"
156
+ sysinfo = "0.37.2"
157
+ tar = "0.4.44"
158
+ astral-tokio-tar = "0.5.3"
159
+ tempfile = "3.20.0"
160
+ temp-env = { version = "0.3.6", features = ["async_closure"] }
161
+ test-log = "0.2.17"
162
+ thiserror = "2.0"
163
+ tokio = { version = "1.45.1", default-features = false }
164
+ tokio-stream = "0.1.17"
165
+ tokio-util = "0.7.15"
166
+ toml = "0.9.2"
167
+ tower = { version = "0.5.2", default-features = false }
168
+ tower-http = { version = "0.6.4", default-features = false }
169
+ tracing = "0.1.41"
170
+ tracing-subscriber = { version = "0.3.19", default-features = false }
171
+ tracing-test = { version = "0.2.5" }
172
+ trybuild = { version = "1.0.105" }
173
+ typed-path = { version = "0.12.0" }
174
+ url = { version = "2.5.4" }
175
+ unicode-normalization = "0.1.24"
176
+ uuid = { version = "1.17.0", default-features = false }
177
+ walkdir = "2.5.0"
178
+ wasmtimer = "0.4.1"
179
+ which = "8.0.0"
180
+ windows-sys = { version = "0.61.2", default-features = false }
181
+ winver = { version = "1.0.0" }
182
+ zip = { version = "6.0.0", default-features = false }
183
+ zstd = { version = "0.13.3", default-features = false }
184
+
185
+ # These are the all the crates defined in the workspace. We pin all of them together because they are always updated in tendem.
186
+ coalesced_map = { path = "crates/coalesced_map", version = "=0.1.2", default-features = false }
187
+ file_url = { path = "crates/file_url", version = "=0.2.7", default-features = false }
188
+ path_resolver = { path = "crates/path_resolver", version = "=0.2.4", default-features = false }
189
+ rattler = { path = "crates/rattler", version = "=0.39.9", default-features = false }
190
+ rattler_cache = { path = "crates/rattler_cache", version = "=0.6.8", default-features = false }
191
+ rattler_conda_types = { path = "crates/rattler_conda_types", version = "=0.43.0", default-features = false }
192
+ rattler_config = { path = "crates/rattler_config", version = "=0.2.24", default-features = false }
193
+ rattler_digest = { path = "crates/rattler_digest", version = "=1.2.2", default-features = false }
194
+ rattler_index = { path = "crates/rattler_index", version = "=0.27.10", default-features = false }
195
+ rattler_libsolv_c = { path = "crates/rattler_libsolv_c", version = "=1.3.1", default-features = false }
196
+ rattler_lock = { path = "crates/rattler_lock", version = "=0.26.11", default-features = false }
197
+ rattler_macros = { path = "crates/rattler_macros", version = "=1.0.12", default-features = false }
198
+ rattler_menuinst = { path = "crates/rattler_menuinst", version = "=0.2.44", default-features = false }
199
+ rattler_networking = { path = "crates/rattler_networking", version = "=0.25.31", default-features = false }
200
+ rattler_package_streaming = { path = "crates/rattler_package_streaming", version = "=0.23.23", default-features = false }
201
+ rattler_pty = { path = "crates/rattler_pty", version = "=0.2.9", default-features = false }
202
+ rattler_redaction = { path = "crates/rattler_redaction", version = "=0.1.13", default-features = false }
203
+ rattler_repodata_gateway = { path = "crates/rattler_repodata_gateway", version = "=0.25.9", default-features = false }
204
+ rattler_s3 = { path = "crates/rattler_s3", version = "=0.1.20", default-features = false }
205
+ rattler_sandbox = { path = "crates/rattler_sandbox", version = "=0.2.11", default-features = false }
206
+ rattler_shell = { path = "crates/rattler_shell", version = "=0.25.17", default-features = false }
207
+ rattler_solve = { path = "crates/rattler_solve", version = "=4.2.1", default-features = false }
208
+ rattler_upload = { path = "crates/rattler_upload", version = "=0.4.9", default-features = false }
209
+ rattler_virtual_packages = { path = "crates/rattler_virtual_packages", version = "=2.3.6", default-features = false }
210
+
211
+ # This is also a rattler crate, but we only pin it to minor version
212
+ simple_spawn_blocking = { path = "crates/simple_spawn_blocking", version = "1.1", default-features = false }
@@ -0,0 +1,208 @@
1
+ Metadata-Version: 2.4
2
+ Name: py-rattler
3
+ Version: 0.21.0
4
+ Classifier: Development Status :: 3 - Alpha
5
+ Classifier: Intended Audience :: Developers
6
+ Classifier: License :: OSI Approved :: BSD License
7
+ Classifier: Programming Language :: Rust
8
+ Classifier: Programming Language :: Python :: Implementation :: CPython
9
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
10
+ Classifier: Typing :: Typed
11
+ Summary: A blazing fast library to work with the conda ecosystem
12
+ Author-email: Bas Zalmstra <zalmstra.bas@gmail.com>, Tarun Pratap Singh <pratapsinghtarun9@gmail.com>
13
+ License-Expression: BSD-3-Clause
14
+ Requires-Python: >=3.8
15
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
16
+ Project-URL: Homepage, https://github.com/conda/rattler
17
+ Project-URL: Documentation, https://conda.github.io/rattler/py-rattler/
18
+ Project-URL: Repository, https://github.com/conda/rattler
19
+ Project-URL: Issues, https://github.com/conda/rattler/labels/python-bindings
20
+
21
+ <a href="https://prefix.dev/tools/rattler/">
22
+ <img src="https://github.com/user-attachments/assets/73dee0d8-b372-4462-bce1-f004c5f907b5" alt="banner">
23
+ </a>
24
+
25
+ # Rattler: Rust crates for fast handling of conda packages
26
+
27
+ ![License][license-badge]
28
+ [![Build Status][build-badge]][build]
29
+ [![Project Chat][chat-badge]][chat-url]
30
+ [![Pixi Badge][pixi-badge]][pixi-url]
31
+ [![docs main][docs-main-badge]][docs-main]
32
+ [![python docs main][py-docs-main-badge]][py-docs-main]
33
+
34
+ [license-badge]: https://img.shields.io/badge/license-BSD--3--Clause-blue?style=flat-square
35
+ [build-badge]: https://img.shields.io/github/actions/workflow/status/conda/rattler/rust-compile.yml?style=flat-square&branch=main
36
+ [build]: https://github.com/conda/rattler/actions
37
+ [chat-badge]: https://img.shields.io/discord/1082332781146800168.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2&style=flat-square
38
+ [chat-url]: https://discord.gg/kKV8ZxyzY4
39
+ [docs-main-badge]: https://img.shields.io/badge/rust_docs-main-yellow.svg?style=flat-square
40
+ [docs-main]: https://conda.github.io/rattler
41
+ [py-docs-main-badge]: https://img.shields.io/badge/python_docs-main-yellow.svg?style=flat-square
42
+ [py-docs-main]: https://conda.github.io/rattler/py-rattler
43
+ [pixi-badge]:https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/prefix-dev/pixi/main/assets/badge/v0.json&style=flat-square
44
+ [pixi-url]: https://pixi.sh
45
+
46
+ Rattler is a library that provides common functionality used within the conda ecosystem ([what is conda & conda-forge?](#what-is-conda--conda-forge)).
47
+ The goal of the library is to enable programs and other libraries to easily interact with the conda ecosystem without being dependent on Python.
48
+ Its primary use case is as a library that you can use to provide conda related workflows in your own tools.
49
+
50
+ Rattler is written in Rust and tries to provide a clean API to its functionalities (see: [Components](#components)).
51
+ With the primary goal in mind we aim to provide bindings to different languages to make it easy to integrate Rattler in non-rust projects.
52
+
53
+ Rattler is actively used by [pixi](https://github.com/prefix-dev/pixi), [rattler-build](https://github.com/prefix-dev/rattler-build), and the https://prefix.dev backend.
54
+
55
+ ## Showcase
56
+
57
+ This repository also contains a binary (use `cargo run` to try) that shows some of the capabilities of the library.
58
+ This is an example of installing an environment containing `cowpy` and all its dependencies _from scratch_ (including Python!):
59
+
60
+ ![Installing an environment](https://github.com/conda/rattler/assets/4995967/c7946f6e-28a9-41ef-8836-ef4b4c94d273)
61
+
62
+ ## Python and Javascript bindings
63
+
64
+ You can invoke `rattler` from Python or Javascript via our powerful bindings to solve, install and run commands in conda environments. Rattler offers you the fastest and cleanest Python bindings to the conda ecosystem.
65
+
66
+ ### Python
67
+
68
+ To install the Python bindings, you can use pip or conda:
69
+
70
+ ```bash
71
+ pip install py-rattler
72
+ # or
73
+ conda install -c conda-forge py-rattler
74
+ ```
75
+
76
+ You can find the extensive documentation for the Python bindings [here](https://conda.github.io/rattler/py-rattler/).
77
+
78
+ <details>
79
+ <summary>Example usage of rattler from Python</summary>
80
+ The Python bindings to rattler are designed to be used with `asyncio`. You can access the raw power of the rattler library to solve environments, install packages, and run commands in the installed environments.
81
+
82
+ ```python
83
+ import asyncio
84
+ import tempfile
85
+
86
+ from rattler import solve, install, VirtualPackage
87
+
88
+ async def main() -> None:
89
+ # Start by solving the environment.
90
+ #
91
+ # Solving is the process of going from specifications of package and their
92
+ # version requirements to a list of concrete packages.
93
+ print("started solving the environment")
94
+ solved_records = await solve(
95
+ # Channels to use for solving
96
+ channels=["conda-forge"],
97
+ # The specs to solve for
98
+ specs=["python ~=3.12.0", "pip", "requests 2.31.0"],
99
+ # Virtual packages define the specifications of the environment
100
+ virtual_packages=VirtualPackage.detect(),
101
+ )
102
+ print("solved required dependencies")
103
+
104
+ # Install the packages into a new environment (or updates it if it already
105
+ # existed).
106
+ env_path = tempfile.mkdtemp()
107
+ await install(
108
+ records=solved_records,
109
+ target_prefix=env_path,
110
+ )
111
+
112
+ print(f"created environment: {env_path}")
113
+
114
+
115
+ if __name__ == "__main__":
116
+ asyncio.run(main())
117
+ ```
118
+ </details>
119
+
120
+ ### Javascript
121
+
122
+ To use the Javascript bindings, you can install the `@conda-org/rattler` package via npm. rattler is compiled to WebAssembly and can be used in the browser or in Node.js.
123
+
124
+ ```bash
125
+ npm install @conda-org/rattler
126
+ ```
127
+
128
+ Using rattler from Javascript is useful to get access to the same version comparison functions as used throughout the conda ecosystem. It is also used as part of [`mambajs`](https://github.com/emscripten-forge/mambajs) which uses the rattler library to solve and install packages from the emscripten-forge channel _in the browser_.
129
+
130
+
131
+ ## Give it a try!
132
+
133
+ Before you begin, make sure you have the following prerequisites:
134
+ - A recent version of [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
135
+ - A recent version of [pixi](https://github.com/prefix-dev/pixi)
136
+
137
+ Follow these steps to clone, compile, and run the rattler project:
138
+ ```shell
139
+ # Clone the rattler repository along with its submodules:
140
+ git clone --recursive https://github.com/conda/rattler.git
141
+ cd rattler
142
+
143
+ # Compile and execute rattler to create a JupyterLab instance:
144
+ pixi run rattler create jupyterlab
145
+ ```
146
+
147
+ The above command will execute the `rattler` executable in release mode.
148
+ It will download and install an environment into the `.prefix` folder that contains [`jupyterlab`](https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html) and all the dependencies required to run it (like `python`)
149
+
150
+ Run the following command to start jupyterlab:
151
+
152
+ ```shell
153
+ # on windows
154
+ .\.prefix\Scripts\jupyter-lab.exe
155
+
156
+ # on linux or macOS
157
+ ./.prefix/bin/jupyter-lab
158
+ ```
159
+
160
+ Voila!
161
+ You have a working installation of jupyterlab installed on your system!
162
+ You can of course install any package you want this way.
163
+ Try it!
164
+
165
+ ## Contributing 😍
166
+
167
+ We would love to have you contribute!
168
+ See the CONTRIBUTION.md for more info. For questions, requests or a casual chat, we are very active on our discord server.
169
+ You can [join our discord server via this link][chat-url].
170
+
171
+
172
+ ## Components
173
+
174
+ Rattler consists of several crates that provide different functionalities.
175
+
176
+ * **rattler_conda_types**: foundational types for all datastructures used within the conda eco-system.
177
+ * **rattler_package_streaming**: provides functionality to download, extract and create conda package archives.
178
+ * **rattler_repodata_gateway**: downloads, reads and processes information about existing conda packages from an index.
179
+ * **rattler_shell**: code to activate an existing environment and run programs in it.
180
+ * **rattler_solve**: a backend agnostic library to solve the package satisfiability problem.
181
+ * **rattler_virtual_packages**: a crate to detect system capabilities.
182
+ * **rattler_index**: create local conda channels from local packages.
183
+ * **rattler**: functionality to create complete environments from scratch using the crates above.
184
+ * **rattler-lock**: a library to create and parse lockfiles for conda environments.
185
+ * **rattler-networking**: common functionality for networking, like authentication, mirroring and more.
186
+ * **rattler-bin**: an example of a package manager using all the crates above (see: [showcase](#showcase))
187
+
188
+ You can find these crates in the `crates` folder.
189
+
190
+ Additionally, we provide Python bindings for most of the functionalities provided by the above crates.
191
+ A python package `py-rattler` is available on [conda-forge](https://prefix.dev/channels/conda-forge/packages/py-rattler) and [PyPI](https://pypi.org/project/py-rattler/).
192
+ Documentation for the python bindings can be found [here](https://conda.github.io/rattler/py-rattler).
193
+
194
+ ## What is conda & conda-forge?
195
+
196
+ The conda ecosystem provides **cross-platform**, **binary** packages that you can use with **any programming language**.
197
+ `conda` is an open-source package management system and environment management system that can install and manage multiple versions of software packages and their dependencies.
198
+ `conda` is written in Python.
199
+ The aim of Rattler is to provide all functionality required to work with the conda ecosystem from Rust.
200
+ Rattler is not a reimplementation of `conda`.
201
+ `conda` is a package management tool.
202
+ Rattler is a _library_ to work with the conda ecosystem from different languages and applications.
203
+ For example, it powers the backend of https://prefix.dev.
204
+
205
+ `conda-forge` is a community-driven effort to bring new and existing software into the conda ecosystem.
206
+ It provides _tens-of-thousands of up-to-date_ packages that are maintained by a community of contributors.
207
+ For an overview of available packages see https://prefix.dev.
208
+
@@ -0,0 +1,187 @@
1
+ <a href="https://prefix.dev/tools/rattler/">
2
+ <img src="https://github.com/user-attachments/assets/73dee0d8-b372-4462-bce1-f004c5f907b5" alt="banner">
3
+ </a>
4
+
5
+ # Rattler: Rust crates for fast handling of conda packages
6
+
7
+ ![License][license-badge]
8
+ [![Build Status][build-badge]][build]
9
+ [![Project Chat][chat-badge]][chat-url]
10
+ [![Pixi Badge][pixi-badge]][pixi-url]
11
+ [![docs main][docs-main-badge]][docs-main]
12
+ [![python docs main][py-docs-main-badge]][py-docs-main]
13
+
14
+ [license-badge]: https://img.shields.io/badge/license-BSD--3--Clause-blue?style=flat-square
15
+ [build-badge]: https://img.shields.io/github/actions/workflow/status/conda/rattler/rust-compile.yml?style=flat-square&branch=main
16
+ [build]: https://github.com/conda/rattler/actions
17
+ [chat-badge]: https://img.shields.io/discord/1082332781146800168.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2&style=flat-square
18
+ [chat-url]: https://discord.gg/kKV8ZxyzY4
19
+ [docs-main-badge]: https://img.shields.io/badge/rust_docs-main-yellow.svg?style=flat-square
20
+ [docs-main]: https://conda.github.io/rattler
21
+ [py-docs-main-badge]: https://img.shields.io/badge/python_docs-main-yellow.svg?style=flat-square
22
+ [py-docs-main]: https://conda.github.io/rattler/py-rattler
23
+ [pixi-badge]:https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/prefix-dev/pixi/main/assets/badge/v0.json&style=flat-square
24
+ [pixi-url]: https://pixi.sh
25
+
26
+ Rattler is a library that provides common functionality used within the conda ecosystem ([what is conda & conda-forge?](#what-is-conda--conda-forge)).
27
+ The goal of the library is to enable programs and other libraries to easily interact with the conda ecosystem without being dependent on Python.
28
+ Its primary use case is as a library that you can use to provide conda related workflows in your own tools.
29
+
30
+ Rattler is written in Rust and tries to provide a clean API to its functionalities (see: [Components](#components)).
31
+ With the primary goal in mind we aim to provide bindings to different languages to make it easy to integrate Rattler in non-rust projects.
32
+
33
+ Rattler is actively used by [pixi](https://github.com/prefix-dev/pixi), [rattler-build](https://github.com/prefix-dev/rattler-build), and the https://prefix.dev backend.
34
+
35
+ ## Showcase
36
+
37
+ This repository also contains a binary (use `cargo run` to try) that shows some of the capabilities of the library.
38
+ This is an example of installing an environment containing `cowpy` and all its dependencies _from scratch_ (including Python!):
39
+
40
+ ![Installing an environment](https://github.com/conda/rattler/assets/4995967/c7946f6e-28a9-41ef-8836-ef4b4c94d273)
41
+
42
+ ## Python and Javascript bindings
43
+
44
+ You can invoke `rattler` from Python or Javascript via our powerful bindings to solve, install and run commands in conda environments. Rattler offers you the fastest and cleanest Python bindings to the conda ecosystem.
45
+
46
+ ### Python
47
+
48
+ To install the Python bindings, you can use pip or conda:
49
+
50
+ ```bash
51
+ pip install py-rattler
52
+ # or
53
+ conda install -c conda-forge py-rattler
54
+ ```
55
+
56
+ You can find the extensive documentation for the Python bindings [here](https://conda.github.io/rattler/py-rattler/).
57
+
58
+ <details>
59
+ <summary>Example usage of rattler from Python</summary>
60
+ The Python bindings to rattler are designed to be used with `asyncio`. You can access the raw power of the rattler library to solve environments, install packages, and run commands in the installed environments.
61
+
62
+ ```python
63
+ import asyncio
64
+ import tempfile
65
+
66
+ from rattler import solve, install, VirtualPackage
67
+
68
+ async def main() -> None:
69
+ # Start by solving the environment.
70
+ #
71
+ # Solving is the process of going from specifications of package and their
72
+ # version requirements to a list of concrete packages.
73
+ print("started solving the environment")
74
+ solved_records = await solve(
75
+ # Channels to use for solving
76
+ channels=["conda-forge"],
77
+ # The specs to solve for
78
+ specs=["python ~=3.12.0", "pip", "requests 2.31.0"],
79
+ # Virtual packages define the specifications of the environment
80
+ virtual_packages=VirtualPackage.detect(),
81
+ )
82
+ print("solved required dependencies")
83
+
84
+ # Install the packages into a new environment (or updates it if it already
85
+ # existed).
86
+ env_path = tempfile.mkdtemp()
87
+ await install(
88
+ records=solved_records,
89
+ target_prefix=env_path,
90
+ )
91
+
92
+ print(f"created environment: {env_path}")
93
+
94
+
95
+ if __name__ == "__main__":
96
+ asyncio.run(main())
97
+ ```
98
+ </details>
99
+
100
+ ### Javascript
101
+
102
+ To use the Javascript bindings, you can install the `@conda-org/rattler` package via npm. rattler is compiled to WebAssembly and can be used in the browser or in Node.js.
103
+
104
+ ```bash
105
+ npm install @conda-org/rattler
106
+ ```
107
+
108
+ Using rattler from Javascript is useful to get access to the same version comparison functions as used throughout the conda ecosystem. It is also used as part of [`mambajs`](https://github.com/emscripten-forge/mambajs) which uses the rattler library to solve and install packages from the emscripten-forge channel _in the browser_.
109
+
110
+
111
+ ## Give it a try!
112
+
113
+ Before you begin, make sure you have the following prerequisites:
114
+ - A recent version of [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
115
+ - A recent version of [pixi](https://github.com/prefix-dev/pixi)
116
+
117
+ Follow these steps to clone, compile, and run the rattler project:
118
+ ```shell
119
+ # Clone the rattler repository along with its submodules:
120
+ git clone --recursive https://github.com/conda/rattler.git
121
+ cd rattler
122
+
123
+ # Compile and execute rattler to create a JupyterLab instance:
124
+ pixi run rattler create jupyterlab
125
+ ```
126
+
127
+ The above command will execute the `rattler` executable in release mode.
128
+ It will download and install an environment into the `.prefix` folder that contains [`jupyterlab`](https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html) and all the dependencies required to run it (like `python`)
129
+
130
+ Run the following command to start jupyterlab:
131
+
132
+ ```shell
133
+ # on windows
134
+ .\.prefix\Scripts\jupyter-lab.exe
135
+
136
+ # on linux or macOS
137
+ ./.prefix/bin/jupyter-lab
138
+ ```
139
+
140
+ Voila!
141
+ You have a working installation of jupyterlab installed on your system!
142
+ You can of course install any package you want this way.
143
+ Try it!
144
+
145
+ ## Contributing 😍
146
+
147
+ We would love to have you contribute!
148
+ See the CONTRIBUTION.md for more info. For questions, requests or a casual chat, we are very active on our discord server.
149
+ You can [join our discord server via this link][chat-url].
150
+
151
+
152
+ ## Components
153
+
154
+ Rattler consists of several crates that provide different functionalities.
155
+
156
+ * **rattler_conda_types**: foundational types for all datastructures used within the conda eco-system.
157
+ * **rattler_package_streaming**: provides functionality to download, extract and create conda package archives.
158
+ * **rattler_repodata_gateway**: downloads, reads and processes information about existing conda packages from an index.
159
+ * **rattler_shell**: code to activate an existing environment and run programs in it.
160
+ * **rattler_solve**: a backend agnostic library to solve the package satisfiability problem.
161
+ * **rattler_virtual_packages**: a crate to detect system capabilities.
162
+ * **rattler_index**: create local conda channels from local packages.
163
+ * **rattler**: functionality to create complete environments from scratch using the crates above.
164
+ * **rattler-lock**: a library to create and parse lockfiles for conda environments.
165
+ * **rattler-networking**: common functionality for networking, like authentication, mirroring and more.
166
+ * **rattler-bin**: an example of a package manager using all the crates above (see: [showcase](#showcase))
167
+
168
+ You can find these crates in the `crates` folder.
169
+
170
+ Additionally, we provide Python bindings for most of the functionalities provided by the above crates.
171
+ A python package `py-rattler` is available on [conda-forge](https://prefix.dev/channels/conda-forge/packages/py-rattler) and [PyPI](https://pypi.org/project/py-rattler/).
172
+ Documentation for the python bindings can be found [here](https://conda.github.io/rattler/py-rattler).
173
+
174
+ ## What is conda & conda-forge?
175
+
176
+ The conda ecosystem provides **cross-platform**, **binary** packages that you can use with **any programming language**.
177
+ `conda` is an open-source package management system and environment management system that can install and manage multiple versions of software packages and their dependencies.
178
+ `conda` is written in Python.
179
+ The aim of Rattler is to provide all functionality required to work with the conda ecosystem from Rust.
180
+ Rattler is not a reimplementation of `conda`.
181
+ `conda` is a package management tool.
182
+ Rattler is a _library_ to work with the conda ecosystem from different languages and applications.
183
+ For example, it powers the backend of https://prefix.dev.
184
+
185
+ `conda-forge` is a community-driven effort to bring new and existing software into the conda ecosystem.
186
+ It provides _tens-of-thousands of up-to-date_ packages that are maintained by a community of contributors.
187
+ For an overview of available packages see https://prefix.dev.
@@ -0,0 +1,26 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.2](https://github.com/conda/rattler/compare/coalesced_map-v0.1.1...coalesced_map-v0.1.2) - 2025-09-05
11
+
12
+ ### Added
13
+
14
+ - add clear on coalesced_map ([#1659](https://github.com/conda/rattler/pull/1659))
15
+
16
+ ## [0.1.1](https://github.com/conda/rattler/compare/coalesced_map-v0.1.0...coalesced_map-v0.1.1) - 2025-08-15
17
+
18
+ ### Other
19
+
20
+ - release ([#1594](https://github.com/conda/rattler/pull/1594))
21
+
22
+ ## [0.1.0](https://github.com/conda/rattler/releases/tag/coalesced_map-v0.1.0) - 2025-08-12
23
+
24
+ ### Added
25
+
26
+ - *(gateway)* add method to ensure `run_exports.json` ([#1540](https://github.com/conda/rattler/pull/1540))
@@ -0,0 +1,18 @@
1
+ [package]
2
+ name = "coalesced_map"
3
+ version = "0.1.2"
4
+ edition.workspace = true
5
+ license.workspace = true
6
+ homepage.workspace = true
7
+ repository.workspace = true
8
+ categories.workspace = true
9
+ readme = "README.md"
10
+ description = "A thread-safe, deduplicating map that ensures expensive computations are executed only once per key"
11
+
12
+ [dependencies]
13
+ dashmap = { workspace = true }
14
+ tokio = { workspace = true, features = ["sync"] }
15
+
16
+ [dev-dependencies]
17
+ tokio = { workspace = true, features = ["rt", "macros"] }
18
+ futures = { workspace = true }
@@ -0,0 +1,10 @@
1
+ # coalesced_map
2
+
3
+ [![Crates.io](https://img.shields.io/crates/v/coalesced_map.svg)](https://crates.io/crates/coalesced_map)
4
+ [![Documentation](https://docs.rs/coalesced_map/badge.svg)](https://docs.rs/coalesced_map)
5
+ [![Build Status](https://github.com/conda/rattler/workflows/CI/badge.svg)](https://github.com/conda/rattler/actions)
6
+ [![License](https://img.shields.io/crates/l/coalesced_map.svg)](https://github.com/conda/rattler/blob/main/LICENSE)
7
+
8
+ A thread-safe, deduplicating map that ensures expensive computations are executed only once per key, even when multiple concurrent requests are made.
9
+
10
+ This map is designed for scenarios where multiple async tasks might request the same resource simultaneously. Instead of performing duplicate work, the `CoalescedMap` ensures that only the first request for a given key executes the initialization function, while subsequent concurrent requests wait for and receive the same result.