py-rattler 0.8.2__tar.gz → 0.9.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.

Potentially problematic release.


This version of py-rattler might be problematic. Click here for more details.

Files changed (680) hide show
  1. py_rattler-0.9.0/Cargo.toml +162 -0
  2. {py_rattler-0.8.2 → py_rattler-0.9.0}/PKG-INFO +2 -2
  3. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/file_url/CHANGELOG.md +6 -0
  4. py_rattler-0.9.0/crates/file_url/Cargo.toml +19 -0
  5. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/file_url/src/lib.rs +26 -10
  6. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/CHANGELOG.md +37 -0
  7. py_rattler-0.9.0/crates/rattler/Cargo.toml +66 -0
  8. py_rattler-0.9.0/crates/rattler/README.md +123 -0
  9. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/mod.rs +17 -9
  10. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/transaction.rs +5 -0
  11. py_rattler-0.9.0/crates/rattler/src/install/unlink.rs +534 -0
  12. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/lib.rs +1 -1
  13. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_cache/CHANGELOG.md +35 -0
  14. py_rattler-0.9.0/crates/rattler_cache/Cargo.toml +44 -0
  15. py_rattler-0.9.0/crates/rattler_cache/README.md +123 -0
  16. py_rattler-0.9.0/crates/rattler_cache/src/lib.rs +28 -0
  17. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_cache/src/package_cache/mod.rs +20 -3
  18. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/CHANGELOG.md +31 -0
  19. py_rattler-0.9.0/crates/rattler_conda_types/Cargo.toml +62 -0
  20. py_rattler-0.9.0/crates/rattler_conda_types/README.md +123 -0
  21. py_rattler-0.9.0/crates/rattler_conda_types/src/channel/channel_url.rs +78 -0
  22. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/channel/mod.rs +54 -63
  23. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/lib.rs +1 -1
  24. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/mod.rs +1 -1
  25. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/parse.rs +2 -2
  26. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string_Lenient.snap +13 -13
  27. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string_Strict.snap +13 -13
  28. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/platform.rs +1 -1
  29. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/mod.rs +6 -6
  30. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data_record.rs +2 -1
  31. py_rattler-0.9.0/crates/rattler_conda_types/src/utils/mod.rs +6 -0
  32. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/utils/url.rs +0 -14
  33. py_rattler-0.9.0/crates/rattler_conda_types/src/utils/url_with_trailing_slash.rs +79 -0
  34. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version/bump.rs +107 -33
  35. py_rattler-0.9.0/crates/rattler_digest/Cargo.toml +32 -0
  36. py_rattler-0.9.0/crates/rattler_digest/README.md +123 -0
  37. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_index/CHANGELOG.md +29 -0
  38. py_rattler-0.9.0/crates/rattler_index/Cargo.toml +24 -0
  39. py_rattler-0.9.0/crates/rattler_index/README.md +123 -0
  40. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/CHANGELOG.md +23 -0
  41. py_rattler-0.9.0/crates/rattler_lock/Cargo.toml +35 -0
  42. py_rattler-0.9.0/crates/rattler_lock/README.md +123 -0
  43. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/builder.rs +223 -19
  44. py_rattler-0.9.0/crates/rattler_lock/src/conda.rs +367 -0
  45. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/file_format_version.rs +5 -1
  46. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/lib.rs +221 -321
  47. py_rattler-0.9.0/crates/rattler_lock/src/parse/deserialize.rs +361 -0
  48. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/parse/mod.rs +32 -10
  49. py_rattler-0.9.0/crates/rattler_lock/src/parse/models/mod.rs +4 -0
  50. py_rattler-0.8.2/local_dependencies/rattler_lock/src/utils/serde/raw_conda_package_data.rs → py_rattler-0.9.0/crates/rattler_lock/src/parse/models/v5/conda_package_data.rs +42 -84
  51. py_rattler-0.9.0/crates/rattler_lock/src/parse/models/v5/mod.rs +5 -0
  52. py_rattler-0.9.0/crates/rattler_lock/src/parse/models/v5/pypi_package_data.rs +59 -0
  53. py_rattler-0.9.0/crates/rattler_lock/src/parse/models/v6/conda_package_data.rs +306 -0
  54. py_rattler-0.9.0/crates/rattler_lock/src/parse/models/v6/mod.rs +5 -0
  55. py_rattler-0.9.0/crates/rattler_lock/src/parse/models/v6/pypi_package_data.rs +77 -0
  56. py_rattler-0.9.0/crates/rattler_lock/src/parse/serialize.rs +452 -0
  57. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/parse/v3.rs +69 -23
  58. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/pypi.rs +4 -17
  59. py_rattler-0.9.0/crates/rattler_lock/src/snapshots/rattler_lock__builder__test__merge_records_and_purls.snap +23 -0
  60. py_rattler-0.9.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v0__numpy-conda-lock.yml.snap +5266 -0
  61. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v0__pypi-matplotlib-conda-lock.yml.snap +73 -413
  62. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v0__python-conda-lock.yml.snap +97 -752
  63. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v3__robostack-turtlesim-conda-lock.yml.snap +8754 -25523
  64. py_rattler-0.9.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__absolute-path-lock.yml.snap +18 -0
  65. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v4__numpy-lock.yml.snap +2813 -5393
  66. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v4__path-based-lock.yml.snap +34 -136
  67. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v4__pypi-matplotlib-lock.yml.snap +155 -380
  68. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v4__python-lock.yml.snap +276 -648
  69. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v4__turtlesim-lock.yml.snap +8754 -25523
  70. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__v5__flat-index-lock.yml.snap +19 -96
  71. py_rattler-0.9.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v5__similar-with-and-without-purl.yml.snap +20 -0
  72. py_rattler-0.9.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__conda-path-lock.yml.snap +61 -0
  73. py_rattler-0.9.0/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__derived-channel-lock.yml.snap +31 -0
  74. py_rattler-0.9.0/crates/rattler_lock/src/snapshots/rattler_lock__url_or_path__test__order.snap +12 -0
  75. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/url_or_path.rs +117 -37
  76. py_rattler-0.9.0/crates/rattler_lock/src/utils/derived_fields.rs +336 -0
  77. py_rattler-0.9.0/crates/rattler_lock/src/utils/mod.rs +2 -0
  78. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/utils/serde/mod.rs +0 -3
  79. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/utils/serde/url_or_path.rs +4 -4
  80. py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-1.snap +24 -0
  81. py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-2.snap +24 -0
  82. py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-3.snap +24 -0
  83. py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-4.snap +20 -0
  84. py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-5.snap +20 -0
  85. py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-6.snap +12 -0
  86. py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-7.snap +12 -0
  87. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/Cargo.toml +11 -9
  88. py_rattler-0.9.0/crates/rattler_macros/README.md +123 -0
  89. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/CHANGELOG.md +18 -0
  90. py_rattler-0.9.0/crates/rattler_networking/Cargo.toml +52 -0
  91. py_rattler-0.9.0/crates/rattler_networking/README.md +123 -0
  92. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/gcs_middleware.rs +48 -10
  93. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/oci_middleware.rs +11 -8
  94. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/CHANGELOG.md +35 -0
  95. py_rattler-0.9.0/crates/rattler_package_streaming/Cargo.toml +50 -0
  96. py_rattler-0.9.0/crates/rattler_package_streaming/README.md +123 -0
  97. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/reqwest/tokio.rs +17 -2
  98. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/tests/extract.rs +3 -2
  99. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_redaction/CHANGELOG.md +6 -0
  100. py_rattler-0.9.0/crates/rattler_redaction/Cargo.toml +16 -0
  101. py_rattler-0.9.0/crates/rattler_redaction/README.md +123 -0
  102. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/CHANGELOG.md +35 -0
  103. py_rattler-0.9.0/crates/rattler_repodata_gateway/Cargo.toml +88 -0
  104. py_rattler-0.9.0/crates/rattler_repodata_gateway/README.md +123 -0
  105. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/fetch/jlap/mod.rs +2 -2
  106. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/fetch/mod.rs +3 -2
  107. py_rattler-0.9.0/crates/rattler_repodata_gateway/src/gateway/channel_config.rs +74 -0
  108. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/direct_url_query.rs +2 -4
  109. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/error.rs +3 -0
  110. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/mod.rs +10 -78
  111. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/query.rs +10 -0
  112. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/sharded_subdir/index.rs +101 -82
  113. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/sharded_subdir/mod.rs +48 -42
  114. py_rattler-0.9.0/crates/rattler_repodata_gateway/src/gateway/subdir_builder.rs +158 -0
  115. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/sparse/mod.rs +5 -3
  116. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/utils/mod.rs +3 -2
  117. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/CHANGELOG.md +23 -0
  118. py_rattler-0.9.0/crates/rattler_shell/Cargo.toml +28 -0
  119. py_rattler-0.9.0/crates/rattler_shell/README.md +123 -0
  120. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/activation.rs +1 -1
  121. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/run/mod.rs +1 -1
  122. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/CHANGELOG.md +23 -0
  123. py_rattler-0.9.0/crates/rattler_solve/Cargo.toml +56 -0
  124. py_rattler-0.9.0/crates/rattler_solve/README.md +123 -0
  125. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/mod.rs +28 -25
  126. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/resolvo/mod.rs +28 -15
  127. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/backends.rs +9 -6
  128. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_virtual_packages/CHANGELOG.md +23 -0
  129. py_rattler-0.9.0/crates/rattler_virtual_packages/Cargo.toml +25 -0
  130. py_rattler-0.9.0/crates/rattler_virtual_packages/README.md +123 -0
  131. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/simple_spawn_blocking/Cargo.toml +5 -6
  132. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/Cargo.lock +79 -30
  133. py_rattler-0.9.0/py-rattler/Cargo.toml +78 -0
  134. py_rattler-0.9.0/py-rattler/README.md +123 -0
  135. py_rattler-0.9.0/py-rattler/docs/conda_locked_binary_package.md +3 -0
  136. py_rattler-0.9.0/py-rattler/docs/conda_locked_package.md +3 -0
  137. py_rattler-0.9.0/py-rattler/docs/conda_locked_source_package.md +3 -0
  138. py_rattler-0.9.0/py-rattler/docs/pypi_locked_package.md +3 -0
  139. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/mkdocs.yml +4 -2
  140. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/pixi.lock +1249 -700
  141. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/pixi.toml +7 -1
  142. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/__init__.py +8 -4
  143. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/lock/__init__.py +11 -4
  144. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/lock/environment.py +11 -26
  145. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/lock/lock_file.py +4 -2
  146. py_rattler-0.9.0/py-rattler/rattler/lock/package.py +302 -0
  147. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/networking/__init__.py +2 -2
  148. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/networking/client.py +5 -2
  149. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/networking/middleware.py +54 -1
  150. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/package/about_json.py +63 -0
  151. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/package/index_json.py +90 -0
  152. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/package/paths_json.py +172 -7
  153. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/package/run_exports_json.py +80 -2
  154. py_rattler-0.9.0/py-rattler/rattler/package_streaming/__init__.py +26 -0
  155. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/repo_data/gateway.py +13 -2
  156. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/repo_data/package_record.py +1 -0
  157. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/about_json.rs +45 -0
  158. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/index_json.rs +83 -5
  159. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/lib.rs +10 -1
  160. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/lock/mod.rs +214 -122
  161. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/networking/client.rs +7 -5
  162. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/networking/middleware.rs +44 -3
  163. py_rattler-0.9.0/py-rattler/src/package_streaming/mod.rs +82 -0
  164. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/paths_json.rs +116 -1
  165. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/record.rs +15 -6
  166. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/repo_data/gateway.rs +17 -4
  167. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/run_exports_json.rs +49 -0
  168. py_rattler-0.9.0/py-rattler/tests/__init__.py +0 -0
  169. py_rattler-0.9.0/py-rattler/tests/unit/__init__.py +0 -0
  170. py_rattler-0.9.0/py-rattler/tests/unit/test_package_streaming.py +69 -0
  171. {py_rattler-0.8.2 → py_rattler-0.9.0}/pyproject.toml +2 -1
  172. py_rattler-0.9.0/rattler/__init__.py +97 -0
  173. py_rattler-0.9.0/rattler/channel/__init__.py +5 -0
  174. py_rattler-0.9.0/rattler/channel/channel.py +94 -0
  175. py_rattler-0.9.0/rattler/channel/channel_config.py +43 -0
  176. py_rattler-0.9.0/rattler/channel/channel_priority.py +14 -0
  177. py_rattler-0.9.0/rattler/exceptions.py +115 -0
  178. py_rattler-0.9.0/rattler/explicit_environment/__init__.py +3 -0
  179. py_rattler-0.9.0/rattler/explicit_environment/environment.py +69 -0
  180. py_rattler-0.9.0/rattler/index/__init__.py +3 -0
  181. py_rattler-0.9.0/rattler/index/index.py +28 -0
  182. py_rattler-0.9.0/rattler/install/__init__.py +3 -0
  183. py_rattler-0.9.0/rattler/install/installer.py +83 -0
  184. py_rattler-0.9.0/rattler/lock/__init__.py +23 -0
  185. py_rattler-0.9.0/rattler/lock/channel.py +52 -0
  186. py_rattler-0.9.0/rattler/lock/environment.py +207 -0
  187. py_rattler-0.9.0/rattler/lock/hash.py +33 -0
  188. py_rattler-0.9.0/rattler/lock/lock_file.py +118 -0
  189. py_rattler-0.9.0/rattler/lock/package.py +302 -0
  190. py_rattler-0.9.0/rattler/match_spec/__init__.py +4 -0
  191. py_rattler-0.9.0/rattler/match_spec/match_spec.py +240 -0
  192. py_rattler-0.9.0/rattler/match_spec/nameless_match_spec.py +164 -0
  193. py_rattler-0.9.0/rattler/networking/__init__.py +5 -0
  194. py_rattler-0.9.0/rattler/networking/client.py +55 -0
  195. py_rattler-0.9.0/rattler/networking/fetch_repo_data.py +47 -0
  196. py_rattler-0.9.0/rattler/networking/middleware.py +116 -0
  197. py_rattler-0.9.0/rattler/package/__init__.py +23 -0
  198. py_rattler-0.9.0/rattler/package/about_json.py +329 -0
  199. py_rattler-0.9.0/rattler/package/index_json.py +437 -0
  200. py_rattler-0.9.0/rattler/package/no_arch_type.py +142 -0
  201. py_rattler-0.9.0/rattler/package/package_name.py +159 -0
  202. py_rattler-0.9.0/rattler/package/paths_json.py +696 -0
  203. py_rattler-0.9.0/rattler/package/run_exports_json.py +268 -0
  204. py_rattler-0.9.0/rattler/package_streaming/__init__.py +26 -0
  205. py_rattler-0.9.0/rattler/platform/__init__.py +4 -0
  206. py_rattler-0.9.0/rattler/platform/arch.py +58 -0
  207. py_rattler-0.9.0/rattler/platform/platform.py +191 -0
  208. py_rattler-0.9.0/rattler/prefix/__init__.py +4 -0
  209. py_rattler-0.9.0/rattler/prefix/prefix_paths.py +442 -0
  210. py_rattler-0.9.0/rattler/prefix/prefix_record.py +192 -0
  211. py_rattler-0.9.0/rattler/py.typed +0 -0
  212. py_rattler-0.9.0/rattler/repo_data/__init__.py +16 -0
  213. py_rattler-0.9.0/rattler/repo_data/gateway.py +267 -0
  214. py_rattler-0.9.0/rattler/repo_data/package_record.py +931 -0
  215. py_rattler-0.9.0/rattler/repo_data/patch_instructions.py +22 -0
  216. py_rattler-0.9.0/rattler/repo_data/record.py +164 -0
  217. py_rattler-0.9.0/rattler/repo_data/repo_data.py +74 -0
  218. py_rattler-0.9.0/rattler/repo_data/sparse.py +171 -0
  219. py_rattler-0.9.0/rattler/shell/__init__.py +3 -0
  220. py_rattler-0.9.0/rattler/shell/shell.py +132 -0
  221. py_rattler-0.9.0/rattler/solver/__init__.py +3 -0
  222. py_rattler-0.9.0/rattler/solver/solver.py +205 -0
  223. py_rattler-0.9.0/rattler/utils/rattler_version.py +19 -0
  224. py_rattler-0.9.0/rattler/version/__init__.py +4 -0
  225. py_rattler-0.9.0/rattler/version/version.py +592 -0
  226. py_rattler-0.9.0/rattler/version/with_source.py +80 -0
  227. py_rattler-0.9.0/rattler/virtual_package/__init__.py +4 -0
  228. py_rattler-0.9.0/rattler/virtual_package/generic.py +136 -0
  229. py_rattler-0.9.0/rattler/virtual_package/virtual_package.py +199 -0
  230. py_rattler-0.8.2/Cargo.toml +0 -66
  231. py_rattler-0.8.2/docs/pypi_package_data.md +0 -3
  232. py_rattler-0.8.2/docs/pypi_package_environment_data.md +0 -3
  233. py_rattler-0.8.2/local_dependencies/file_url/Cargo.toml +0 -17
  234. py_rattler-0.8.2/local_dependencies/rattler/Cargo.toml +0 -59
  235. py_rattler-0.8.2/local_dependencies/rattler/src/install/unlink.rs +0 -300
  236. py_rattler-0.8.2/local_dependencies/rattler_cache/Cargo.toml +0 -33
  237. py_rattler-0.8.2/local_dependencies/rattler_cache/src/lib.rs +0 -15
  238. py_rattler-0.8.2/local_dependencies/rattler_conda_types/Cargo.toml +0 -59
  239. py_rattler-0.8.2/local_dependencies/rattler_conda_types/src/utils/mod.rs +0 -3
  240. py_rattler-0.8.2/local_dependencies/rattler_digest/Cargo.toml +0 -27
  241. py_rattler-0.8.2/local_dependencies/rattler_index/Cargo.toml +0 -21
  242. py_rattler-0.8.2/local_dependencies/rattler_libsolv_c/CHANGELOG.md +0 -55
  243. py_rattler-0.8.2/local_dependencies/rattler_libsolv_c/Cargo.toml +0 -28
  244. py_rattler-0.8.2/local_dependencies/rattler_libsolv_c/build.rs +0 -47
  245. py_rattler-0.8.2/local_dependencies/rattler_libsolv_c/src/lib.rs +0 -2754
  246. py_rattler-0.8.2/local_dependencies/rattler_lock/Cargo.toml +0 -33
  247. py_rattler-0.8.2/local_dependencies/rattler_lock/src/conda.rs +0 -178
  248. py_rattler-0.8.2/local_dependencies/rattler_lock/src/parse/deserialize.rs +0 -165
  249. py_rattler-0.8.2/local_dependencies/rattler_lock/src/parse/serialize.rs +0 -293
  250. py_rattler-0.8.2/local_dependencies/rattler_lock/src/snapshots/rattler_lock__test__v0__numpy-conda-lock.yml.snap +0 -12194
  251. py_rattler-0.8.2/local_dependencies/rattler_lock/src/snapshots/rattler_lock__test__v6__always-record-purls.yml.snap +0 -4788
  252. py_rattler-0.8.2/local_dependencies/rattler_lock/src/utils/mod.rs +0 -1
  253. py_rattler-0.8.2/local_dependencies/rattler_networking/Cargo.toml +0 -47
  254. py_rattler-0.8.2/local_dependencies/rattler_package_streaming/Cargo.toml +0 -45
  255. py_rattler-0.8.2/local_dependencies/rattler_redaction/Cargo.toml +0 -17
  256. py_rattler-0.8.2/local_dependencies/rattler_repodata_gateway/Cargo.toml +0 -84
  257. py_rattler-0.8.2/local_dependencies/rattler_repodata_gateway/src/gateway/channel_config.rs +0 -51
  258. py_rattler-0.8.2/local_dependencies/rattler_repodata_gateway/src/gateway/sharded_subdir/token.rs +0 -166
  259. py_rattler-0.8.2/local_dependencies/rattler_shell/Cargo.toml +0 -24
  260. py_rattler-0.8.2/local_dependencies/rattler_solve/Cargo.toml +0 -47
  261. py_rattler-0.8.2/local_dependencies/rattler_virtual_packages/Cargo.toml +0 -26
  262. py_rattler-0.8.2/rattler/lock/package.py +0 -169
  263. py_rattler-0.8.2/rattler/lock/pypi.py +0 -227
  264. {py_rattler-0.8.2 → py_rattler-0.9.0}/README.md +0 -0
  265. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/file_url/.gitignore +0 -0
  266. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/.gitignore +0 -0
  267. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/resources/launcher64.exe +0 -0
  268. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/resources/versions.txt +0 -0
  269. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/cli/auth.rs +0 -0
  270. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/cli/mod.rs +0 -0
  271. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/apple_codesign.rs +0 -0
  272. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/clobber_registry.rs +0 -0
  273. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/driver.rs +0 -0
  274. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/entry_point.rs +0 -0
  275. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/installer/error.rs +0 -0
  276. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/installer/indicatif.rs +0 -0
  277. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/installer/mod.rs +0 -0
  278. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/installer/reporter.rs +0 -0
  279. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/link.rs +0 -0
  280. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/link_script.rs +0 -0
  281. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/python.rs +0 -0
  282. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-2.snap +0 -0
  283. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-3.snap +0 -0
  284. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-4.snap +0 -0
  285. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-5.snap +0 -0
  286. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-6.snap +0 -0
  287. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-7.snap +0 -0
  288. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber.snap +0 -0
  289. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__entry_point__test__entry_point_script.snap +0 -0
  290. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__entry_point__test__windows.snap +0 -0
  291. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__link__test__replace_long_prefix_in_text_file.snap +0 -0
  292. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__link__test__replace_python_shebang-2.snap +0 -0
  293. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__link__test__replace_python_shebang.snap +0 -0
  294. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/snapshots/rattler__install__test__prefix_paths.snap +0 -0
  295. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/install/test_utils.rs +0 -0
  296. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler/src/range.rs +0 -0
  297. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_cache/src/consts.rs +0 -0
  298. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_cache/src/package_cache/cache_key.rs +0 -0
  299. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_cache/src/package_cache/cache_lock.rs +0 -0
  300. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_cache/src/package_cache/reporter.rs +0 -0
  301. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_cache/src/validation.rs +0 -0
  302. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/benches/parse.rs +0 -0
  303. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/benches/prefix_record_from_path.rs +0 -0
  304. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/build_spec/mod.rs +0 -0
  305. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/build_spec/parse.rs +0 -0
  306. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/channel_data.rs +0 -0
  307. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/environment_yaml.rs +0 -0
  308. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/explicit_environment_spec.rs +0 -0
  309. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/generic_virtual_package.rs +0 -0
  310. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/matcher.rs +0 -0
  311. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__matchspec_to_string.snap +0 -0
  312. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string.snap +0 -0
  313. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_nameless_from_string_Lenient.snap +0 -0
  314. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_nameless_from_string_Strict.snap +0 -0
  315. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__tests__serialize_matchspec.snap +0 -0
  316. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/no_arch_type.rs +0 -0
  317. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/about.rs +0 -0
  318. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/archive_identifier.rs +0 -0
  319. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/archive_type.rs +0 -0
  320. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/entry_point.rs +0 -0
  321. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/files.rs +0 -0
  322. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/has_prefix.rs +0 -0
  323. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/index.rs +0 -0
  324. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/link.rs +0 -0
  325. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/mod.rs +0 -0
  326. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/no_link.rs +0 -0
  327. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/no_softlink.rs +0 -0
  328. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/package_metadata.rs +0 -0
  329. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/paths.rs +0 -0
  330. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/run_exports.rs +0 -0
  331. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__extra_field_is_recorded_when_present.snap +0 -0
  332. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__extra_field_is_skipped.snap +0 -0
  333. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__reconstruct_about_json.snap +0 -0
  334. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__reconstruct_about_json_mamba.snap +0 -0
  335. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__entry_point__test__entry_point.snap +0 -0
  336. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__index__test__reconstruct_index_json.snap +0 -0
  337. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__index__test__reconstruct_index_json_with_symlinks.snap +0 -0
  338. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__jupyterlab-link.json.snap +0 -0
  339. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__setuptools-link.json.snap +0 -0
  340. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__tzdata-link.json.snap +0 -0
  341. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__paths_sorted.snap +0 -0
  342. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__reconstruct_paths_json.snap +0 -0
  343. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__reconstruct_paths_json_with_symlinks.snap +0 -0
  344. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__roundtrip_paths_json.snap +0 -0
  345. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__run_exports__test__reconstruct_run_exports_json_with_symlinks.snap +0 -0
  346. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/package_name.rs +0 -0
  347. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/parse_mode.rs +0 -0
  348. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/prefix_record.rs +0 -0
  349. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/patches.rs +0 -0
  350. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/sharded.rs +0 -0
  351. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__null_values.snap +0 -0
  352. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__patch_purl.snap +0 -0
  353. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__patching.snap +0 -0
  354. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__removing_1.snap +0 -0
  355. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__removing_2.snap +0 -0
  356. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__base_url_packages.snap +0 -0
  357. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__deserialize_no_packages_conda.snap +0 -0
  358. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize.snap +0 -0
  359. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize_packages-2.snap +0 -0
  360. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize_packages.snap +0 -0
  361. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/repo_data/topological_sort.rs +0 -0
  362. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/run_export.rs +0 -0
  363. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@asymmetric_vqgan.environment.yaml.snap +0 -0
  364. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@channel_inversion.environment.yaml.snap +0 -0
  365. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@conda_lock_dev.environment.yaml.snap +0 -0
  366. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@mamba_dev_extra.environment.yaml.snap +0 -0
  367. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@variables.environment.yaml.snap +0 -0
  368. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__pip_section.snap +0 -0
  369. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__ros-noetic_linux-64.txt.snap +0 -0
  370. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__vs2015_runtime_win-64.txt.snap +0 -0
  371. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__xtensor_linux-64.txt.snap +0 -0
  372. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__libsqlite-3_40_0-hcfcfb64_0_json.snap +0 -0
  373. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__menuinst-1_4_19-py311h1ea47a8_1_json.snap +0 -0
  374. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__pip-23_0-pyhd8ed1ab_0_json.snap +0 -0
  375. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__pysocks-1_7_1-pyh0701188_6_json.snap +0 -0
  376. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__requests-2_28_2-pyhd8ed1ab_0_json.snap +0 -0
  377. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__tk-8_6_12-h8ffe710_0_json.snap +0 -0
  378. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__urllib3-1_26_14-pyhd8ed1ab_0_json.snap +0 -0
  379. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__vc-14_3-hb6edc58_10_json.snap +0 -0
  380. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__wheel-0_38_4-pyhd8ed1ab_0_json.snap +0 -0
  381. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__xz-5_2_6-h8d14728_0_json.snap +0 -0
  382. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/utils/path.rs +0 -0
  383. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/utils/serde.rs +0 -0
  384. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version/flags.rs +0 -0
  385. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version/mod.rs +0 -0
  386. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version/parse.rs +0 -0
  387. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version/segment.rs +0 -0
  388. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version/snapshots/rattler_conda_types__version__parse__test__parse.snap +0 -0
  389. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version/with_source.rs +0 -0
  390. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version_spec/constraint.rs +0 -0
  391. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version_spec/mod.rs +0 -0
  392. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version_spec/parse.rs +0 -0
  393. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_conda_types/src/version_spec/version_tree.rs +0 -0
  394. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_digest/CHANGELOG.md +0 -0
  395. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_digest/src/lib.rs +0 -0
  396. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_digest/src/serde.rs +0 -0
  397. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_digest/src/tokio.rs +0 -0
  398. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_index/src/lib.rs +0 -0
  399. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_index/tests/test_index.rs +0 -0
  400. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/channel.rs +0 -0
  401. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/hash.rs +0 -0
  402. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/pypi_indexes.rs +0 -0
  403. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__packages_for_platform-2.snap +0 -0
  404. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/snapshots/rattler_lock__test__packages_for_platform.snap +0 -0
  405. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/utils/serde/match_spec_map_or_vec.rs +0 -0
  406. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/utils/serde/ordered.rs +0 -0
  407. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/utils/serde/pep440_map_or_vec.rs +0 -0
  408. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_lock/src/utils/serde/timestamp.rs +0 -0
  409. /py_rattler-0.8.2/rattler/py.typed → /py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__file +0 -0
  410. /py_rattler-0.8.2/tests/__init__.py → /py_rattler-0.9.0/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__https +0 -0
  411. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/CHANGELOG.md +0 -0
  412. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/src/lib.rs +0 -0
  413. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/tests/01-sorted-enum.rs +0 -0
  414. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/tests/02-sorted-struct.rs +0 -0
  415. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/tests/03-out-of-order-enum.rs +0 -0
  416. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/tests/03-out-of-order-enum.stderr +0 -0
  417. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/tests/04-out-of-order-struct.rs +0 -0
  418. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/tests/04-out-of-order-struct.stderr +0 -0
  419. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_macros/tests/tests.rs +0 -0
  420. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_middleware.rs +0 -0
  421. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/authentication.rs +0 -0
  422. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/backends/file.rs +0 -0
  423. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/backends/keyring.rs +0 -0
  424. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/backends/mod.rs +0 -0
  425. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/backends/netrc.rs +0 -0
  426. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/backends/snapshots/rattler_networking__authentication_storage__backends__file__tests__file_storage.snap +0 -0
  427. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/mod.rs +0 -0
  428. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/authentication_storage/storage.rs +0 -0
  429. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/lib.rs +0 -0
  430. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/mirror_middleware.rs +0 -0
  431. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_networking/src/retry_policies.rs +0 -0
  432. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/fs.rs +0 -0
  433. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/lib.rs +0 -0
  434. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/read.rs +0 -0
  435. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/reqwest/mod.rs +0 -0
  436. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/seek.rs +0 -0
  437. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/tokio/async_read.rs +0 -0
  438. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/tokio/fs.rs +0 -0
  439. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/tokio/mod.rs +0 -0
  440. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/src/write.rs +0 -0
  441. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/tests/resources/ca-certificates-2024.7.4-hbcca054_0.conda +0 -0
  442. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_package_streaming/tests/write.rs +0 -0
  443. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_redaction/src/lib.rs +0 -0
  444. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/fetch/cache/cache_headers.rs +0 -0
  445. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/fetch/cache/mod.rs +0 -0
  446. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state.snap +0 -0
  447. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state_one.snap +0 -0
  448. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state_two.snap +0 -0
  449. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/barrier_cell.rs +0 -0
  450. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/builder.rs +0 -0
  451. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/local_subdir.rs +0 -0
  452. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/remote_subdir.rs +0 -0
  453. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/repo_data.rs +0 -0
  454. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/gateway/subdir.rs +0 -0
  455. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/lib.rs +0 -0
  456. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/reporter.rs +0 -0
  457. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/utils/body.rs +0 -0
  458. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/utils/encoding.rs +0 -0
  459. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/utils/flock.rs +0 -0
  460. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_repodata_gateway/src/utils/simple_channel_server.rs +0 -0
  461. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/lib.rs +0 -0
  462. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/shell/mod.rs +0 -0
  463. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__bash.snap +0 -0
  464. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__fish.snap +0 -0
  465. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__xonsh_bash.snap +0 -0
  466. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__xonsh_xsh.snap +0 -0
  467. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_bash.snap +0 -0
  468. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_cmd.snap +0 -0
  469. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_fish.snap +0 -0
  470. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_powershell.snap +0 -0
  471. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_xonsh.snap +0 -0
  472. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_zsh.snap +0 -0
  473. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__after_activation.snap +0 -0
  474. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_append.snap +0 -0
  475. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_prepend.snap +0 -0
  476. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_replace.snap +0 -0
  477. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_append.snap +0 -0
  478. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_prepend.snap +0 -0
  479. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_replace.snap +0 -0
  480. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_append.snap +0 -0
  481. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_prepend.snap +0 -0
  482. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_replace.snap +0 -0
  483. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/benches/bench.rs +0 -0
  484. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/benches/sorting_bench.rs +0 -0
  485. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/lib.rs +0 -0
  486. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/input.rs +0 -0
  487. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/libc_byte_slice.rs +0 -0
  488. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/output.rs +0 -0
  489. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/flags.rs +0 -0
  490. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/keys.rs +0 -0
  491. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/mod.rs +0 -0
  492. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/pool.rs +0 -0
  493. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/queue.rs +0 -0
  494. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/repo.rs +0 -0
  495. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/repodata.rs +0 -0
  496. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/solvable.rs +0 -0
  497. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/solve_goal.rs +0 -0
  498. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/solve_problem.rs +0 -0
  499. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/solver.rs +0 -0
  500. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/libsolv_c/wrapper/transaction.rs +0 -0
  501. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/src/resolvo/conda_sorting.rs +0 -0
  502. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_dummy_repo_install_non_existent.snap +0 -0
  503. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_python.snap +0 -0
  504. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_python_numpy.snap +0 -0
  505. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_quetz.snap +0 -0
  506. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_tensorboard.snap +0 -0
  507. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_tensorflow.snap +0 -0
  508. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_with_error.snap +0 -0
  509. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__solve_xtensor_xsimd.snap +0 -0
  510. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__libsolv_c__virtual_package_constrains.snap +0 -0
  511. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__exclude_newer_error.snap +0 -0
  512. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__issue_717.snap +0 -0
  513. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__panic_on_constraint.snap +0 -0
  514. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_dummy_repo_install_non_existent.snap +0 -0
  515. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_locked.snap +0 -0
  516. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_python.snap +0 -0
  517. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_python_numpy.snap +0 -0
  518. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_quetz.snap +0 -0
  519. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_tensorboard.snap +0 -0
  520. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_tensorflow.snap +0 -0
  521. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_with_error.snap +0 -0
  522. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__solve_xtensor_xsimd.snap +0 -0
  523. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/backends__resolvo__virtual_package_constrains.snap +0 -0
  524. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_abess_highest.snap +0 -0
  525. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_certifi_highest.snap +0 -0
  526. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_libgcc-ng_highest.snap +0 -0
  527. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_libuuid_highest.snap +0 -0
  528. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_python_highest.snap +0 -0
  529. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_highest.snap +0 -0
  530. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_lowest.snap +0 -0
  531. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_lowest_direct.snap +0 -0
  532. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_solve/tests/sorting.rs +0 -0
  533. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_virtual_packages/src/cuda.rs +0 -0
  534. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_virtual_packages/src/lib.rs +0 -0
  535. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_virtual_packages/src/libc.rs +0 -0
  536. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_virtual_packages/src/linux.rs +0 -0
  537. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/rattler_virtual_packages/src/osx.rs +0 -0
  538. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/simple_spawn_blocking/src/lib.rs +0 -0
  539. {py_rattler-0.8.2/local_dependencies → py_rattler-0.9.0/crates}/simple_spawn_blocking/src/tokio.rs +0 -0
  540. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/.gitignore +0 -0
  541. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/LICENSE +0 -0
  542. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/build.rs +0 -0
  543. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/about_json.md +0 -0
  544. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/activate.md +0 -0
  545. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/activation_error.md +0 -0
  546. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/activation_result.md +0 -0
  547. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/activation_variables.md +0 -0
  548. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/arch.md +0 -0
  549. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/cache_dir_error.md +0 -0
  550. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/channel.md +0 -0
  551. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/channel_config.md +0 -0
  552. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/client.md +0 -0
  553. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/detect_virtual_package_error.md +0 -0
  554. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/environment.md +0 -0
  555. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/environment_creation_error.md +0 -0
  556. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/fetch_repo_data.md +0 -0
  557. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/fetch_repo_data_error.md +0 -0
  558. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/file_mode.md +0 -0
  559. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/gateway.md +0 -0
  560. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/generic_virtual_package.md +0 -0
  561. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/index.md +0 -0
  562. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/index_json.md +0 -0
  563. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/installer.md +0 -0
  564. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/invalid_channel_error.md +0 -0
  565. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/invalid_match_spec_error.md +0 -0
  566. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/invalid_package_name_error.md +0 -0
  567. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/invalid_url_error.md +0 -0
  568. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/invalid_version_error.md +0 -0
  569. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/io_error.md +0 -0
  570. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/link_error.md +0 -0
  571. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/lock_file.md +0 -0
  572. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/locked_package.md +0 -0
  573. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/match_spec.md +0 -0
  574. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/nameless_match_spec.md +0 -0
  575. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/package_hashes.md +0 -0
  576. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/package_name.md +0 -0
  577. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/package_record.md +0 -0
  578. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/parse_arch_error.md +0 -0
  579. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/parse_platform_error.md +0 -0
  580. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/patch_instructions.md +0 -0
  581. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/path_modification_behavior.md +0 -0
  582. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/path_type.md +0 -0
  583. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/paths_entry.md +0 -0
  584. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/paths_json.md +0 -0
  585. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/platform.md +0 -0
  586. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/prefix_paths.md +0 -0
  587. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/prefix_placeholder.md +0 -0
  588. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/prefix_record.md +0 -0
  589. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/repo_data.md +0 -0
  590. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/repo_data_record.md +0 -0
  591. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/run_exports_json.md +0 -0
  592. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/shell.md +0 -0
  593. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/solver.md +0 -0
  594. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/solver_error.md +0 -0
  595. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/sparse_repo_data.md +0 -0
  596. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/stylesheets/extra.css +0 -0
  597. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/transaction_error.md +0 -0
  598. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/version.md +0 -0
  599. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/version_with_source.md +0 -0
  600. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/docs/virtual_package.md +0 -0
  601. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/examples/install_to_prefix.py +0 -0
  602. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/examples/solve_and_install.py +0 -0
  603. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/channel/__init__.py +0 -0
  604. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/channel/channel.py +0 -0
  605. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/channel/channel_config.py +0 -0
  606. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/channel/channel_priority.py +0 -0
  607. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/exceptions.py +0 -0
  608. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/explicit_environment/__init__.py +0 -0
  609. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/explicit_environment/environment.py +0 -0
  610. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/index/__init__.py +0 -0
  611. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/index/index.py +0 -0
  612. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/install/__init__.py +0 -0
  613. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/install/installer.py +0 -0
  614. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/lock/channel.py +0 -0
  615. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/lock/hash.py +0 -0
  616. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/match_spec/__init__.py +0 -0
  617. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/match_spec/match_spec.py +0 -0
  618. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/match_spec/nameless_match_spec.py +0 -0
  619. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/networking/fetch_repo_data.py +0 -0
  620. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/package/__init__.py +0 -0
  621. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/package/no_arch_type.py +0 -0
  622. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/package/package_name.py +0 -0
  623. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/platform/__init__.py +0 -0
  624. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/platform/arch.py +0 -0
  625. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/platform/platform.py +0 -0
  626. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/prefix/__init__.py +0 -0
  627. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/prefix/prefix_paths.py +0 -0
  628. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/prefix/prefix_record.py +0 -0
  629. /py_rattler-0.8.2/tests/unit/__init__.py → /py_rattler-0.9.0/py-rattler/rattler/py.typed +0 -0
  630. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/repo_data/__init__.py +0 -0
  631. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/repo_data/patch_instructions.py +0 -0
  632. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/repo_data/record.py +0 -0
  633. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/repo_data/repo_data.py +0 -0
  634. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/repo_data/sparse.py +0 -0
  635. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/shell/__init__.py +0 -0
  636. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/shell/shell.py +0 -0
  637. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/solver/__init__.py +0 -0
  638. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/solver/solver.py +0 -0
  639. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/utils/rattler_version.py +0 -0
  640. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/version/__init__.py +0 -0
  641. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/version/version.py +0 -0
  642. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/version/with_source.py +0 -0
  643. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/virtual_package/__init__.py +0 -0
  644. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/virtual_package/generic.py +0 -0
  645. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/rattler/virtual_package/virtual_package.py +0 -0
  646. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/channel/mod.rs +0 -0
  647. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/error.rs +0 -0
  648. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/explicit_environment_spec.rs +0 -0
  649. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/generic_virtual_package.rs +0 -0
  650. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/index.rs +0 -0
  651. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/installer.rs +0 -0
  652. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/match_spec.rs +0 -0
  653. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/meta.rs +0 -0
  654. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/nameless_match_spec.rs +0 -0
  655. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/networking/cached_repo_data.rs +0 -0
  656. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/networking/mod.rs +0 -0
  657. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/no_arch_type.rs +0 -0
  658. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/package_name.rs +0 -0
  659. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/platform.rs +0 -0
  660. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/prefix_paths.rs +0 -0
  661. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/repo_data/mod.rs +0 -0
  662. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/repo_data/patch_instructions.rs +0 -0
  663. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/repo_data/sparse.rs +0 -0
  664. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/shell.rs +0 -0
  665. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/solver.rs +0 -0
  666. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/utils.rs +0 -0
  667. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/version/component.rs +0 -0
  668. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/version/mod.rs +0 -0
  669. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/src/virtual_package.rs +0 -0
  670. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/conftest.py +0 -0
  671. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_explicit_environment.py +0 -0
  672. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_fetch_repo_data.py +0 -0
  673. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_gateway.py +0 -0
  674. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_index.py +0 -0
  675. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_install.py +0 -0
  676. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_matchspec.py +0 -0
  677. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_override.py +0 -0
  678. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_prefix_record.py +0 -0
  679. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_solver.py +0 -0
  680. {py_rattler-0.8.2 → py_rattler-0.9.0/py-rattler}/tests/unit/test_version.py +0 -0
@@ -0,0 +1,162 @@
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
+ anyhow = "1.0.92"
27
+ archspec = "0.1.3"
28
+ assert_matches = "1.5.0"
29
+ async-compression = { version = "0.4.17", features = [
30
+ "gzip",
31
+ "tokio",
32
+ "bzip2",
33
+ "zstd",
34
+ ] }
35
+ async-fd-lock = "0.2.0"
36
+ fs4 = "0.11.0"
37
+ async-trait = "0.1.83"
38
+ axum = { version = "0.7.7", default-features = false, features = [
39
+ "tokio",
40
+ "http1",
41
+ ] }
42
+ base64 = "0.22.1"
43
+ bindgen = "0.69.5"
44
+ blake2 = "0.10.6"
45
+ bytes = "1.8.0"
46
+ bzip2 = "0.4.4"
47
+ cache_control = "0.2.0"
48
+ cfg-if = "1.0"
49
+ chrono = { version = "0.4.38", default-features = false, features = [
50
+ "std",
51
+ "serde",
52
+ "alloc",
53
+ ] }
54
+ clap = { version = "4.5.20", features = ["derive"] }
55
+ cmake = "0.1.51"
56
+ console = { version = "0.15.8", features = ["windows-console-colors"] }
57
+ criterion = "0.5"
58
+ dashmap = "6.1.0"
59
+ difference = "2.0.0"
60
+ digest = "0.10.7"
61
+ dirs = "5.0.1"
62
+ dunce = "1.0.5"
63
+ enum_dispatch = "0.3.13"
64
+ fs-err = { version = "3.0.0", features = ["tokio"] }
65
+ fslock = "0.2.1"
66
+ futures = "0.3.31"
67
+ futures-util = "0.3.31"
68
+ fxhash = "0.2.1"
69
+ # lots of other crates are still stuck on older version
70
+ generic-array = "0.14.7"
71
+ getrandom = { version = "0.2.15", default-features = false }
72
+ glob = "0.3.1"
73
+ google-cloud-auth = { version = "0.17.1", default-features = false }
74
+ google-cloud-token = "0.1.2"
75
+ hex = "0.4.3"
76
+ hex-literal = "0.4.1"
77
+ http = "1.1"
78
+ http-cache-semantics = "2.1.0"
79
+ humansize = "2.1.3"
80
+ humantime = "2.1.0"
81
+ indexmap = "2.6.0"
82
+ indicatif = "0.17.8"
83
+ insta = { version = "1.41.1" }
84
+ itertools = "0.13.0"
85
+ json-patch = "3.0.1"
86
+ keyring = "3.6.1"
87
+ lazy-regex = "3.3.0"
88
+ lazy_static = "1.5.0"
89
+ libc = { version = "0.2" }
90
+ libloading = "0.8.5"
91
+ libz-sys = { version = "1.1.20", default-features = false }
92
+ md-5 = "0.10.6"
93
+ memchr = "2.7.4"
94
+ memmap2 = "0.9.5"
95
+ netrc-rs = "0.1.2"
96
+ nom = "7.1.3"
97
+ num_cpus = "1.16.0"
98
+ once_cell = "1.20.2"
99
+ ouroboros = "0.18.4"
100
+ parking_lot = "0.12.3"
101
+ pathdiff = "0.2.2"
102
+ pep440_rs = { version = "0.7.2" }
103
+ pep508_rs = { version = "0.9.1" }
104
+ percent-encoding = "2.3.1"
105
+ pin-project-lite = "0.2.15"
106
+ plist = "1"
107
+ purl = { version = "0.1.3", features = ["serde"] }
108
+ quote = "1.0.37"
109
+ rand = "0.8.5"
110
+ reflink-copy = "0.1.20"
111
+ regex = "1.11.1"
112
+ reqwest = { version = "0.12.9", default-features = false }
113
+ reqwest-middleware = "0.4.0"
114
+ reqwest-retry = "0.7.0"
115
+ resolvo = { version = "0.8.4" }
116
+ retry-policies = { version = "0.4.0", default-features = false }
117
+ rmp-serde = { version = "1.3.0" }
118
+ rstest = { version = "0.23.0" }
119
+ rstest_reuse = "0.7.0"
120
+ simd-json = { version = "0.14.2", features = ["serde_impl"] }
121
+ serde = { version = "1.0.214" }
122
+ serde_json = { version = "1.0.132" }
123
+ serde_repr = "0.1"
124
+ serde-value = "0.7.0"
125
+ serde_with = "3.11.0"
126
+ serde_yaml = "0.9.34"
127
+ serde-untagged = "0.1.6"
128
+ sha2 = "0.10.8"
129
+ shlex = "1.3.0"
130
+ similar-asserts = "1.6.0"
131
+ smallvec = { version = "1.13.2", features = [
132
+ "serde",
133
+ "const_new",
134
+ "const_generics",
135
+ "union",
136
+ ] }
137
+ strum = { version = "0.26.3", features = ["derive"] }
138
+ superslice = "1.0.0"
139
+ syn = "2.0.86"
140
+ sysinfo = "0.32.0"
141
+ tar = "0.4.42"
142
+ tempdir = "0.3.7"
143
+ tempfile = "3.13.0"
144
+ temp-env = "0.3.6"
145
+ test-log = "0.2.16"
146
+ thiserror = "1.0"
147
+ tokio = { version = "1.41.0", default-features = false }
148
+ tokio-stream = "0.1.16"
149
+ tokio-util = "0.7.12"
150
+ tower = { version = "0.5.1", default-features = false }
151
+ tower-http = { version = "0.6.1", default-features = false }
152
+ tracing = "0.1.40"
153
+ tracing-subscriber = { version = "0.3.18", default-features = false }
154
+ tracing-test = { version = "0.2.5" }
155
+ trybuild = { version = "1.0.101" }
156
+ typed-path = { version = "0.9.3" }
157
+ url = { version = "2.5.2" }
158
+ uuid = { version = "1.11.0", default-features = false }
159
+ walkdir = "2.5.0"
160
+ windows-sys = { version = "0.59.0", default-features = false }
161
+ zip = { version = "2.2.0", default-features = false }
162
+ zstd = { version = "0.13.2", default-features = false }
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: py-rattler
3
- Version: 0.8.2
3
+ Version: 0.9.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: BSD License
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.0](https://github.com/conda/rattler/compare/file_url-v0.1.7...file_url-v0.2.0) - 2024-11-30
10
+
11
+ ### Added
12
+
13
+ - merge pixi-build branch ([#950](https://github.com/conda/rattler/pull/950))
14
+
9
15
  ## [0.1.7](https://github.com/conda/rattler/compare/file_url-v0.1.6...file_url-v0.1.7) - 2024-11-04
10
16
 
11
17
  ### Other
@@ -0,0 +1,19 @@
1
+ [package]
2
+ name = "file_url"
3
+ version = "0.2.0"
4
+ edition.workspace = true
5
+ authors = ["Bas Zalmstra <zalmstra.bas@gmail.com>"]
6
+ description = "Helper functions to work with file:// urls"
7
+ categories.workspace = true
8
+ repository.workspace = true
9
+ license.workspace = true
10
+
11
+ [dependencies]
12
+ url = { workspace = true }
13
+ percent-encoding = { workspace = true }
14
+ itertools = { workspace = true }
15
+ typed-path = { workspace = true }
16
+ thiserror = "1.0.66"
17
+
18
+ [dev-dependencies]
19
+ rstest = { workspace = true }
@@ -9,7 +9,8 @@ use std::path::PathBuf;
9
9
  use std::str::FromStr;
10
10
  use thiserror::Error;
11
11
  use typed_path::{
12
- Utf8TypedComponent, Utf8TypedPath, Utf8UnixComponent, Utf8WindowsComponent, Utf8WindowsPrefix,
12
+ Utf8TypedComponent, Utf8TypedPath, Utf8TypedPathBuf, Utf8UnixComponent, Utf8WindowsComponent,
13
+ Utf8WindowsPrefix,
13
14
  };
14
15
  use url::{Host, Url};
15
16
 
@@ -33,14 +34,7 @@ fn is_windows_drive_letter_segment(segment: &str) -> Option<String> {
33
34
  None
34
35
  }
35
36
 
36
- /// Tries to convert a `file://` based URL to a path.
37
- ///
38
- /// We assume that any passed URL that represents a path is an absolute path.
39
- ///
40
- /// [`Url::to_file_path`] has a different code path for Windows and other operating systems, this
41
- /// can cause URLs to parse perfectly fine on Windows, but fail to parse on Linux. This function
42
- /// tries to parse the URL as a path on all operating systems.
43
- pub fn url_to_path(url: &Url) -> Option<PathBuf> {
37
+ fn url_to_path_inner<T: From<String>>(url: &Url) -> Option<T> {
44
38
  if url.scheme() != "file" {
45
39
  return None;
46
40
  }
@@ -77,7 +71,29 @@ pub fn url_to_path(url: &Url) -> Option<PathBuf> {
77
71
  }
78
72
  }
79
73
 
80
- Some(PathBuf::from(path))
74
+ Some(T::from(path))
75
+ }
76
+
77
+ /// Tries to convert a `file://` based URL to a path.
78
+ ///
79
+ /// We assume that any passed URL that represents a path is an absolute path.
80
+ ///
81
+ /// [`Url::to_file_path`] has a different code path for Windows and other operating systems, this
82
+ /// can cause URLs to parse perfectly fine on Windows, but fail to parse on Linux. This function
83
+ /// tries to parse the URL as a path on all operating systems.
84
+ pub fn url_to_path(url: &Url) -> Option<PathBuf> {
85
+ url_to_path_inner(url)
86
+ }
87
+
88
+ /// Tries to convert a `file://` based URL to a path.
89
+ ///
90
+ /// We assume that any passed URL that represents a path is an absolute path.
91
+ ///
92
+ /// [`Url::to_file_path`] has a different code path for Windows and other operating systems, this
93
+ /// can cause URLs to parse perfectly fine on Windows, but fail to parse on Linux. This function
94
+ /// tries to parse the URL as a path on all operating systems.
95
+ pub fn url_to_typed_path(url: &Url) -> Option<Utf8TypedPathBuf> {
96
+ url_to_path_inner(url)
81
97
  }
82
98
 
83
99
  const FRAGMENT: &AsciiSet = &CONTROLS.add(b' ').add(b'"').add(b'<').add(b'>').add(b'`');
@@ -6,6 +6,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.28.6](https://github.com/conda/rattler/compare/rattler-v0.28.5...rattler-v0.28.6) - 2024-12-12
10
+
11
+ ### Other
12
+ - updated the following local packages: rattler_cache, rattler_conda_types
13
+
14
+ ## [0.28.5](https://github.com/conda/rattler/compare/rattler-v0.28.4...rattler-v0.28.5) - 2024-12-05
15
+
16
+ ### Other
17
+
18
+ - updated the following local packages: rattler_networking
19
+
20
+ ## [0.28.4](https://github.com/conda/rattler/compare/rattler-v0.28.3...rattler-v0.28.4) - 2024-11-30
21
+
22
+ ### Added
23
+
24
+ - use `fs-err` also for tokio ([#958](https://github.com/conda/rattler/pull/958))
25
+ - Move files to .trash folder if they are in use ([#953](https://github.com/conda/rattler/pull/953))
26
+ - merge pixi-build branch ([#950](https://github.com/conda/rattler/pull/950))
27
+
28
+ ## [0.28.3](https://github.com/conda/rattler/compare/rattler-v0.28.2...rattler-v0.28.3) - 2024-11-18
29
+
30
+ ### Other
31
+
32
+ - updated the following local packages: rattler_networking
33
+
34
+ ## [0.28.2](https://github.com/conda/rattler/compare/rattler-v0.28.1...rattler-v0.28.2) - 2024-11-18
35
+
36
+ ### Other
37
+
38
+ - updated the following local packages: rattler_conda_types
39
+
40
+ ## [0.28.1](https://github.com/conda/rattler/compare/rattler-v0.28.0...rattler-v0.28.1) - 2024-11-14
41
+
42
+ ### Other
43
+
44
+ - updated the following local packages: rattler_cache, rattler_conda_types, rattler_package_streaming
45
+
9
46
  ## [0.28.0](https://github.com/conda/rattler/compare/rattler-v0.27.16...rattler-v0.28.0) - 2024-11-04
10
47
 
11
48
  ### Added
@@ -0,0 +1,66 @@
1
+ [package]
2
+ name = "rattler"
3
+ version = "0.28.6"
4
+ edition.workspace = true
5
+ authors = ["Bas Zalmstra <zalmstra.bas@gmail.com>"]
6
+ description = "Rust library to install conda environments"
7
+ categories.workspace = true
8
+ homepage.workspace = true
9
+ repository.workspace = true
10
+ license.workspace = true
11
+ readme = "README.md"
12
+
13
+ [features]
14
+ default = ['native-tls']
15
+ native-tls = ['reqwest/native-tls', 'rattler_package_streaming/native-tls']
16
+ rustls-tls = ['reqwest/rustls-tls', 'rattler_package_streaming/rustls-tls']
17
+ cli-tools = ['dep:clap']
18
+ indicatif = ['dep:indicatif', 'dep:console']
19
+
20
+ [dependencies]
21
+ anyhow = { workspace = true }
22
+ clap = { workspace = true, optional = true }
23
+ digest = { workspace = true }
24
+ dirs = { workspace = true }
25
+ fs-err = { workspace = true }
26
+ futures = { workspace = true }
27
+ humantime = { workspace = true }
28
+ indexmap = { workspace = true }
29
+ indicatif = { workspace = true, optional = true }
30
+ itertools = { workspace = true }
31
+ memchr = { workspace = true }
32
+ memmap2 = { workspace = true }
33
+ once_cell = { workspace = true }
34
+ parking_lot = { workspace = true }
35
+ rattler_cache = { path = "../rattler_cache", version = "0.2.14", default-features = false }
36
+ rattler_conda_types = { path = "../rattler_conda_types", version = "0.29.4", default-features = false }
37
+ rattler_digest = { path = "../rattler_digest", version = "1.0.3", default-features = false }
38
+ rattler_networking = { path = "../rattler_networking", version = "0.21.8", default-features = false }
39
+ rattler_shell = { path = "../rattler_shell", version = "0.22.9", default-features = false }
40
+ rattler_package_streaming = { path = "../rattler_package_streaming", version = "0.22.17", default-features = false, features = ["reqwest"] }
41
+ reflink-copy = { workspace = true }
42
+ regex = { workspace = true }
43
+ reqwest = { workspace = true, features = ["stream", "json", "gzip"] }
44
+ reqwest-middleware = { workspace = true }
45
+ smallvec = { workspace = true }
46
+ simple_spawn_blocking = { path = "../simple_spawn_blocking", version = "1.0", default-features = false, features = ["tokio"] }
47
+ tempfile = { workspace = true }
48
+ thiserror = { workspace = true }
49
+ tokio = { workspace = true, features = ["rt", "io-util", "macros"] }
50
+ tracing = { workspace = true }
51
+ url = { workspace = true, features = ["serde"] }
52
+ uuid = { workspace = true, features = ["v4", "fast-rng"] }
53
+ console = { workspace = true, optional = true }
54
+
55
+ [dev-dependencies]
56
+ assert_matches = { workspace = true }
57
+ rand = { workspace = true }
58
+ rstest = { workspace = true }
59
+ tracing-test = { workspace = true }
60
+ insta = { workspace = true, features = ["yaml"] }
61
+ rattler_lock = { path = "../rattler_lock" }
62
+ tools = { path="../tools" }
63
+ tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
64
+ axum = { workspace = true }
65
+ tower-http = { workspace = true, features = ["fs"] }
66
+ tower = { workspace = true, features = ["util"] }
@@ -0,0 +1,123 @@
1
+ <a href="https://github.com/conda/rattler/">
2
+ <picture>
3
+ <source srcset="https://github.com/user-attachments/assets/6f3f05bc-6363-4974-9517-fe5c0fcffd1a" type="image/jpeg">
4
+ <source srcset="https://github.com/user-attachments/assets/dc30403d-6392-460a-b923-986c2164ef79" type="image/webp">
5
+ <source srcset="https://github.com/user-attachments/assets/bfd64756-061d-49f5-af4e-388743bdb855" type="image/png">
6
+ <img src="https://github.com/user-attachments/assets/bfd64756-061d-49f5-af4e-388743bdb855" alt="banner">
7
+ </picture>
8
+ </a>
9
+
10
+ # Rattler: Rust crates for fast handling of conda packages
11
+
12
+ ![License][license-badge]
13
+ [![Build Status][build-badge]][build]
14
+ [![Project Chat][chat-badge]][chat-url]
15
+ [![Pixi Badge][pixi-badge]][pixi-url]
16
+ [![docs main][docs-main-badge]][docs-main]
17
+ [![python docs main][py-docs-main-badge]][py-docs-main]
18
+
19
+ [license-badge]: https://img.shields.io/badge/license-BSD--3--Clause-blue?style=flat-square
20
+ [build-badge]: https://img.shields.io/github/actions/workflow/status/conda/rattler/rust-compile.yml?style=flat-square&branch=main
21
+ [build]: https://github.com/conda/rattler/actions
22
+ [chat-badge]: https://img.shields.io/discord/1082332781146800168.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2&style=flat-square
23
+ [chat-url]: https://discord.gg/kKV8ZxyzY4
24
+ [docs-main-badge]: https://img.shields.io/badge/rust_docs-main-yellow.svg?style=flat-square
25
+ [docs-main]: https://conda.github.io/rattler
26
+ [py-docs-main-badge]: https://img.shields.io/badge/python_docs-main-yellow.svg?style=flat-square
27
+ [py-docs-main]: https://conda.github.io/rattler/py-rattler
28
+ [pixi-badge]:https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/prefix-dev/pixi/main/assets/badge/v0.json
29
+ [pixi-url]: https://pixi.sh
30
+
31
+ Rattler is a library that provides common functionality used within the conda ecosystem ([what is conda & conda-forge?](#what-is-conda--conda-forge)).
32
+ The goal of the library is to enable programs and other libraries to easily interact with the conda ecosystem without being dependent on Python.
33
+ Its primary use case is as a library that you can use to provide conda related workflows in your own tools.
34
+
35
+ Rattler is written in Rust and tries to provide a clean API to its functionalities (see: [Components](#components)).
36
+ 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.
37
+
38
+ 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.
39
+
40
+ ## Showcase
41
+
42
+ This repository also contains a binary (use `cargo run` to try) that shows some of the capabilities of the library.
43
+ This is an example of installing an environment containing `cowpy` and all its dependencies _from scratch_ (including Python!):
44
+
45
+ ![Installing an environment](https://github.com/conda/rattler/assets/4995967/c7946f6e-28a9-41ef-8836-ef4b4c94d273)
46
+
47
+ ## Give it a try!
48
+
49
+ Before you begin, make sure you have the following prerequisites:
50
+ - A recent version of [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
51
+ - A recent version of [pixi](https://github.com/prefix-dev/pixi)
52
+
53
+ Follow these steps to clone, compile, and run the rattler project:
54
+ ```shell
55
+ # Clone the rattler repository along with its submodules:
56
+ git clone --recursive https://github.com/conda/rattler.git
57
+ cd rattler
58
+
59
+ # Compile and execute rattler to create a JupyterLab instance:
60
+ pixi run rattler create jupyterlab
61
+ ```
62
+
63
+ The above command will execute the `rattler` executable in release mode.
64
+ 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`)
65
+
66
+ Run the following command to start jupyterlab:
67
+
68
+ ```shell
69
+ # on windows
70
+ .\.prefix\Scripts\jupyter-lab.exe
71
+
72
+ # on linux or macOS
73
+ ./.prefix/bin/jupyter-lab
74
+ ```
75
+
76
+ Voila!
77
+ You have a working installation of jupyterlab installed on your system!
78
+ You can of course install any package you want this way.
79
+ Try it!
80
+
81
+ ## Contributing 😍
82
+
83
+ We would love to have you contribute!
84
+ See the CONTRIBUTION.md for more info. For questions, requests or a casual chat, we are very active on our discord server.
85
+ You can [join our discord server via this link][chat-url].
86
+
87
+
88
+ ## Components
89
+
90
+ Rattler consists of several crates that provide different functionalities.
91
+
92
+ * **rattler_conda_types**: foundational types for all datastructures used within the conda eco-system.
93
+ * **rattler_package_streaming**: provides functionality to download, extract and create conda package archives.
94
+ * **rattler_repodata_gateway**: downloads, reads and processes information about existing conda packages from an index.
95
+ * **rattler_shell**: code to activate an existing environment and run programs in it.
96
+ * **rattler_solve**: a backend agnostic library to solve the package satisfiability problem.
97
+ * **rattler_virtual_packages**: a crate to detect system capabilities.
98
+ * **rattler_index**: create local conda channels from local packages.
99
+ * **rattler**: functionality to create complete environments from scratch using the crates above.
100
+ * **rattler-lock**: a library to create and parse lockfiles for conda environments.
101
+ * **rattler-networking**: common functionality for networking, like authentication, mirroring and more.
102
+ * **rattler-bin**: an example of a package manager using all the crates above (see: [showcase](#showcase))
103
+
104
+ You can find these crates in the `crates` folder.
105
+
106
+ Additionally, we provide Python bindings for most of the functionalities provided by the above crates.
107
+ 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/).
108
+ Documentation for the python bindings can be found [here](https://conda.github.io/rattler/py-rattler).
109
+
110
+ ## What is conda & conda-forge?
111
+
112
+ The conda ecosystem provides **cross-platform**, **binary** packages that you can use with **any programming language**.
113
+ `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.
114
+ `conda` is written in Python.
115
+ The aim of Rattler is to provide all functionality required to work with the conda ecosystem from Rust.
116
+ Rattler is not a reimplementation of `conda`.
117
+ `conda` is a package management tool.
118
+ Rattler is a _library_ to work with the conda ecosystem from different languages and applications.
119
+ For example, it powers the backend of https://prefix.dev.
120
+
121
+ `conda-forge` is a community-driven effort to bring new and existing software into the conda ecosystem.
122
+ It provides _tens-of-thousands of up-to-date_ packages that are maintained by a community of contributors.
123
+ For an overview of available packages see https://prefix.dev.
@@ -41,6 +41,7 @@ use std::{
41
41
 
42
42
  pub use apple_codesign::AppleCodeSignBehavior;
43
43
  pub use driver::InstallDriver;
44
+ use fs_err::tokio as tokio_fs;
44
45
  use futures::{stream::FuturesUnordered, FutureExt, StreamExt};
45
46
  #[cfg(feature = "indicatif")]
46
47
  pub use installer::{
@@ -60,7 +61,7 @@ use simple_spawn_blocking::Cancelled;
60
61
  use tokio::task::JoinError;
61
62
  use tracing::instrument;
62
63
  pub use transaction::{Transaction, TransactionError, TransactionOperation};
63
- pub use unlink::unlink_package;
64
+ pub use unlink::{empty_trash, unlink_package};
64
65
 
65
66
  use crate::install::entry_point::{
66
67
  create_unix_python_entry_point, create_windows_python_entry_point,
@@ -265,7 +266,7 @@ pub async fn link_package(
265
266
  .to_owned();
266
267
 
267
268
  // Ensure target directory exists
268
- tokio::fs::create_dir_all(&target_dir)
269
+ tokio_fs::create_dir_all(&target_dir)
269
270
  .await
270
271
  .map_err(InstallError::FailedToCreateTargetDirectory)?;
271
272
 
@@ -299,9 +300,16 @@ pub async fn link_package(
299
300
  match options.allow_hard_links {
300
301
  Some(value) => ready(value).left_future(),
301
302
  None => can_create_hardlinks(target_dir, package_dir).right_future(),
302
- }
303
+ },
303
304
  );
304
- let allow_ref_links = options.allow_ref_links.unwrap_or(allow_hard_links);
305
+ let allow_ref_links = options.allow_ref_links.unwrap_or_else(|| {
306
+ match reflink_copy::check_reflink_support(package_dir, target_dir) {
307
+ Ok(reflink_copy::ReflinkSupport::Supported) => true,
308
+ Ok(reflink_copy::ReflinkSupport::NotSupported) => false,
309
+ Ok(reflink_copy::ReflinkSupport::Unknown) => allow_hard_links,
310
+ Err(_) => false,
311
+ }
312
+ });
305
313
 
306
314
  // Determine the platform to use
307
315
  let platform = options.platform.unwrap_or(Platform::current());
@@ -661,12 +669,12 @@ async fn can_create_symlinks(target_dir: &Path) -> bool {
661
669
  let uuid = uuid::Uuid::new_v4();
662
670
  let symlink_path = target_dir.join(format!("symtest_{uuid}"));
663
671
  #[cfg(windows)]
664
- let result = tokio::fs::symlink_file("./", &symlink_path).await;
672
+ let result = tokio_fs::symlink_file("./", &symlink_path).await;
665
673
  #[cfg(unix)]
666
- let result = tokio::fs::symlink("./", &symlink_path).await;
674
+ let result = tokio_fs::symlink("./", &symlink_path).await;
667
675
  match result {
668
676
  Ok(_) => {
669
- if let Err(e) = tokio::fs::remove_file(&symlink_path).await {
677
+ if let Err(e) = tokio_fs::remove_file(&symlink_path).await {
670
678
  tracing::warn!(
671
679
  "failed to delete temporary file '{}': {e}",
672
680
  symlink_path.display()
@@ -693,7 +701,7 @@ async fn can_create_hardlinks(target_dir: &Path, package_dir: &Path) -> bool {
693
701
  #[cfg(unix)]
694
702
  async fn paths_have_same_filesystem(a: &Path, b: &Path) -> bool {
695
703
  use std::os::unix::fs::MetadataExt;
696
- match tokio::join!(tokio::fs::metadata(a), tokio::fs::metadata(b)) {
704
+ match tokio::join!(tokio_fs::metadata(a), tokio_fs::metadata(b)) {
697
705
  (Ok(a), Ok(b)) => a.dev() == b.dev(),
698
706
  _ => false,
699
707
  }
@@ -762,7 +770,7 @@ mod test {
762
770
  };
763
771
 
764
772
  test_install_python(
765
- packages.filter_map(|p| Some(p.as_conda()?.url().clone())),
773
+ packages.filter_map(|p| p.as_conda()?.location().as_url().cloned()),
766
774
  "conda-lock",
767
775
  current_platform,
768
776
  )
@@ -219,6 +219,11 @@ fn is_python_record(record: &PackageRecord) -> bool {
219
219
 
220
220
  /// Returns true if the `from` and `to` describe the same package content
221
221
  fn describe_same_content(from: &PackageRecord, to: &PackageRecord) -> bool {
222
+ // If one hash is set and the other is not, the packages are different
223
+ if from.sha256.is_some() != to.sha256.is_some() || from.md5.is_some() != to.md5.is_some() {
224
+ return false;
225
+ }
226
+
222
227
  // If the hashes of the packages match we consider them to be equal
223
228
  if let (Some(a), Some(b)) = (from.sha256.as_ref(), to.sha256.as_ref()) {
224
229
  return a == b;