py-rattler 0.13.1__tar.gz → 0.14.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.
- {py_rattler-0.13.1 → py_rattler-0.14.0}/Cargo.toml +16 -16
- {py_rattler-0.13.1 → py_rattler-0.14.0}/PKG-INFO +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/CHANGELOG.md +13 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/sharded.rs +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_index/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_index/Cargo.toml +7 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_index/src/lib.rs +265 -49
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_index/src/main.rs +27 -15
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_index/tests/test_index.rs +27 -11
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/CHANGELOG.md +13 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/CHANGELOG.md +6 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/Cargo.toml +1 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/Cargo.lock +28 -22
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/Cargo.toml +2 -2
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/index/index.py +13 -1
- {py_rattler-0.13.1 → py_rattler-0.14.0/py-rattler}/rattler/repo_data/gateway.py +1 -4
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/index.rs +21 -12
- py_rattler-0.14.0/py-rattler/tests/unit/test_gateway.py +29 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/index/index.py +13 -1
- {py_rattler-0.13.1/py-rattler → py_rattler-0.14.0}/rattler/repo_data/gateway.py +1 -4
- py_rattler-0.13.1/py-rattler/tests/unit/test_gateway.py +0 -13
- {py_rattler-0.13.1 → py_rattler-0.14.0}/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/file_url/.gitignore +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/file_url/CHANGELOG.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/file_url/Cargo.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/file_url/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/.gitignore +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/resources/launcher64.exe +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/resources/versions.txt +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/cli/auth.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/cli/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/apple_codesign.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/clobber_registry.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/driver.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/entry_point.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/installer/error.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/installer/indicatif.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/installer/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/installer/reporter.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/link.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/link_script.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/python.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-3.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-4.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-5.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-6.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber-7.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__clobber_registry__tests__transaction_with_clobber.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__entry_point__test__entry_point_script.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__entry_point__test__windows.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__link__test__replace_long_prefix_in_text_file.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__link__test__replace_python_shebang-2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__link__test__replace_python_shebang.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/snapshots/rattler__install__test__prefix_paths.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/test_utils.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/transaction.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/install/unlink.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler/src/range.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/consts.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/package_cache/cache_key.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/package_cache/cache_lock.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/package_cache/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/package_cache/reporter.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/run_exports_cache/cache_key.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/run_exports_cache/download.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/run_exports_cache/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_cache/src/validation.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/benches/parse.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/benches/prefix_record_from_path.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/build_spec/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/build_spec/parse.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/channel/channel_url.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/channel/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/channel_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/environment_yaml.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/explicit_environment_spec.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/generic_virtual_package.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/matcher.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/parse.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__matchspec_to_string.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string_Lenient.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_from_string_Strict.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_nameless_from_string_Lenient.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__parse__tests__test_nameless_from_string_Strict.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__tests__serialize_json_matchspec.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/match_spec/snapshots/rattler_conda_types__match_spec__tests__serialize_matchspec.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/menuinst/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/no_arch_type.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/about.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/archive_identifier.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/archive_type.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/entry_point.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/files.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/has_prefix.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/index.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/link.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/no_link.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/no_softlink.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/package_metadata.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/paths.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/run_exports.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__extra_field_is_recorded_when_present.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__extra_field_is_skipped.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__reconstruct_about_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__about__test__reconstruct_about_json_mamba.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__entry_point__test__entry_point.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__index__test__reconstruct_index_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__index__test__reconstruct_index_json_with_symlinks.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__jupyterlab-link.json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__setuptools-link.json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__link__test__link-json__tzdata-link.json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__paths_sorted.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__reconstruct_paths_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__reconstruct_paths_json_with_symlinks.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__paths__test__roundtrip_paths_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package/snapshots/rattler_conda_types__package__run_exports__test__reconstruct_run_exports_json_with_symlinks.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/package_name.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/parse_mode.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/platform.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/prefix.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/prefix_record.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/patches.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__null_values.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__patch_purl.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__patching.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__removing_1.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__patches__test__removing_2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__base_url_packages.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__deserialize_no_packages_conda.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize_packages-2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/snapshots/rattler_conda_types__repo_data__test__serialize_packages.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data/topological_sort.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/repo_data_record.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/run_export.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@asymmetric_vqgan.environment.yaml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@channel_inversion.environment.yaml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@conda_lock_dev.environment.yaml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@mamba_dev_extra.environment.yaml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__deserialize_environment_yaml@variables.environment.yaml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__environment_yaml__tests__pip_section.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__ros-noetic_linux-64.txt.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__vs2015_runtime_win-64.txt.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__explicit_environment_spec__test__explicit-envs__xtensor_linux-64.txt.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__libsqlite-3_40_0-hcfcfb64_0_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__menuinst-1_4_19-py311h1ea47a8_1_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__pip-23_0-pyhd8ed1ab_0_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__pysocks-1_7_1-pyh0701188_6_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__requests-2_28_2-pyhd8ed1ab_0_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__tk-8_6_12-h8ffe710_0_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__urllib3-1_26_14-pyhd8ed1ab_0_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__vc-14_3-hb6edc58_10_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__wheel-0_38_4-pyhd8ed1ab_0_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/snapshots/rattler_conda_types__prefix_record__test__xz-5_2_6-h8d14728_0_json.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/utils/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/utils/path.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/utils/serde.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/utils/url.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/utils/url_with_trailing_slash.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version/bump.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version/flags.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version/parse.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version/segment.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version/snapshots/rattler_conda_types__version__parse__test__parse.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version/with_source.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version_spec/constraint.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version_spec/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version_spec/parse.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version_spec/snapshots/rattler_conda_types__version_spec__parse__test__exact_strict.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_conda_types/src/version_spec/version_tree.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_digest/CHANGELOG.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_digest/Cargo.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_digest/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_digest/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_digest/src/serde.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_digest/src/tokio.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_index/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/builder.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/channel.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/conda.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/file_format_version.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/hash.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/options.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/deserialize.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/v5/conda_package_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/v5/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/v5/pypi_package_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/v6/conda_package_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/v6/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/v6/pypi_package_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/models/v6/source_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/serialize.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/parse/v3.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/pypi.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/pypi_indexes.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__builder__test__merge_records_and_purls.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__packages_for_platform-2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__packages_for_platform.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v0__numpy-conda-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v0__pypi-matplotlib-conda-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v0__python-conda-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v3__robostack-turtlesim-conda-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__absolute-path-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__numpy-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__path-based-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__pypi-matplotlib-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__python-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v4__turtlesim-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v5__flat-index-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v5__similar-with-and-without-purl.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__conda-path-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__derived-channel-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__options-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__test__v6__sources-lock.yml.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/snapshots/rattler_lock__url_or_path__test__order.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/source.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/url_or_path.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/derived_fields.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/serde/match_spec_map_or_vec.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/serde/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/serde/ordered.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/serde/pep440_map_or_vec.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/serde/timestamp.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/serde/url_or_path.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__file +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__https +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-1.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-3.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-4.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-5.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-6.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_lock/src/utils/snapshots/rattler_lock__utils__derived_fields__test__location_derived_fields-7.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/CHANGELOG.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/Cargo.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/tests/01-sorted-enum.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/tests/02-sorted-struct.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/tests/03-out-of-order-enum.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/tests/03-out-of-order-enum.stderr +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/tests/04-out-of-order-struct.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/tests/04-out-of-order-struct.stderr +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_macros/tests/tests.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/data/appkit_launcher_arm64 +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/data/appkit_launcher_x86_64 +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/data/osx_launcher_arm64 +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/data/osx_launcher_x86_64 +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/linux/mime_config.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps-2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps-3.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps-4.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/linux/snapshots/rattler_menuinst__linux__mime_config__tests__existing_mimeapps.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/linux.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/macos.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/render.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/schema.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__linux__tests__installation-2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__linux__tests__installation-3.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__linux__tests__installation.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__macos__tests__macos_menu_installation.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__render__test__render_gnuradio.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_defaults.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_gnuradio.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_grx.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_mne.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/snapshots/rattler_menuinst__schema__test__deserialize_spyder.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/utils/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/utils/slugify.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/utils/terminal.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/windows/create_shortcut.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/windows/knownfolders.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/windows/lex.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/windows/registry.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/windows/terminal.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/src/windows.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/defaults/defaults.json +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/gnuradio/gnuradio-grc.json +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/gnuradio/grc.ico +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/gqrx/gqrx-menu.json +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/linux-menu/example.menu +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/linux-menu/mimeapps.list +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/mne/menu.json +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_menuinst/test-data/spyder/menu.json +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_middleware.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/authentication.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/backends/file.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/backends/keyring.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/backends/memory.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/backends/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/backends/netrc.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/backends/snapshots/rattler_networking__authentication_storage__backends__file__tests__file_storage.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/authentication_storage/storage.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/gcs_middleware.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/mirror_middleware.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/oci_middleware.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/retry_policies.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/src/s3_middleware.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_networking/tests/s3_integration_test.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/fs.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/read.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/reqwest/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/reqwest/tokio.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/seek.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/tokio/async_read.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/tokio/fs.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/tokio/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/src/write.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/tests/extract.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/tests/resources/ca-certificates-2024.7.4-hbcca054_0.conda +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_package_streaming/tests/write.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/CHANGELOG.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/Cargo.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/src/unix/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/src/unix/pty_process.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/src/unix/pty_session.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_pty/tests/integration_test.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_redaction/CHANGELOG.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_redaction/Cargo.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_redaction/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_redaction/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/cache/cache_headers.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/cache/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state_one.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/cache/snapshots/rattler_repodata_gateway__fetch__cache__test__parse_repo_data_state_two.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/jlap/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/no_cache.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/fetch/with_cache.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/barrier_cell.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/builder.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/channel_config.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/direct_url_query.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/error.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/local_subdir.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/query.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/remote_subdir/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/remote_subdir/tokio.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/remote_subdir/wasm.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/repo_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/tokio/index.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/tokio/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/wasm/index.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/sharded_subdir/wasm/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/subdir.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/gateway/subdir_builder.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/reporter.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/sparse/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@both.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@only-conda.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@only-tar-bz2.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/sparse/snapshots/rattler_repodata_gateway__sparse__test__package_format_selection@prefer-conda.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/utils/body.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/utils/encoding.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/utils/flock.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/utils/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_repodata_gateway/src/utils/simple_channel_server.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/activation.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/run/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/shell/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__bash.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__fish.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__xonsh_bash.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/shell/snapshots/rattler_shell__shell__tests__xonsh_xsh.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_bash.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_cmd.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_fish.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_powershell.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_xonsh.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__activation_script_zsh.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__after_activation.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_append.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_prepend.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_bash_replace.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_append.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_prepend.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_cmd_replace.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_append.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_prepend.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_shell/src/snapshots/rattler_shell__activation__tests__test_activation_script_powershell_replace.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/benches/bench.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/benches/sorting_bench.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/input.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/libc_byte_slice.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/output.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/flags.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/keys.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/pool.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/queue.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/repo.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/repodata.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/solvable.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/solve_goal.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/solve_problem.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/solver.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/libsolv_c/wrapper/transaction.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/resolvo/conda_sorting.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/src/resolvo/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/backends.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_dummy_repo_install_non_existent.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_python.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_python_numpy.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_quetz.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_tensorboard.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_tensorflow.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_with_error.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__solve_xtensor_xsimd.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__libsolv_c__virtual_package_constrains.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__exclude_newer_error.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__issue_717.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__panic_on_constraint.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_dummy_repo_extra_depends_conflict_resolvo.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_dummy_repo_extra_depends_feature_conflict.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_dummy_repo_extra_depends_recursive_feature.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_dummy_repo_install_non_existent.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_locked.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_python.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_python_numpy.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_quetz.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_tensorboard.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_tensorflow.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_with_error.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__solve_xtensor_xsimd.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/backends__resolvo__virtual_package_constrains.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_abess_highest.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_certifi_highest.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_libgcc-ng_highest.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_libuuid_highest.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_python_highest.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_highest.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_lowest.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/snapshots/sorting__test_ordering_pytorch_lowest_direct.snap +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_solve/tests/sorting.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/src/cuda.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/src/libc.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/src/linux.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/src/osx.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/rattler_virtual_packages/src/win.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/simple_spawn_blocking/CHANGELOG.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/simple_spawn_blocking/Cargo.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/simple_spawn_blocking/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/crates/simple_spawn_blocking/src/tokio.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/.gitignore +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/README.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/build.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/about_json.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/activate.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/activation_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/activation_result.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/activation_variables.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/arch.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/cache_dir_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/channel.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/channel_config.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/client.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/conda_locked_binary_package.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/conda_locked_package.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/conda_locked_source_package.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/detect_virtual_package_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/environment.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/environment_creation_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/fetch_repo_data.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/fetch_repo_data_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/file_mode.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/gateway.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/generic_virtual_package.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/index.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/index_.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/index_json.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/installer.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/invalid_channel_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/invalid_match_spec_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/invalid_package_name_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/invalid_url_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/invalid_version_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/io_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/link_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/lock_file.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/locked_package.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/match_spec.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/nameless_match_spec.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/package_hashes.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/package_name.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/package_record.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/parse_arch_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/parse_platform_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/patch_instructions.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/path_modification_behavior.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/path_type.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/paths_entry.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/paths_json.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/platform.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/prefix_paths.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/prefix_placeholder.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/prefix_record.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/pypi_locked_package.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/repo_data.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/repo_data_record.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/run_exports_json.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/shell.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/solver.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/solver_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/sparse_repo_data.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/stylesheets/extra.css +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/transaction_error.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/version.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/version_with_source.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/docs/virtual_package.md +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/examples/cli.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/examples/install_to_prefix.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/examples/solve_and_install.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/mkdocs.yml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/pixi.lock +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/pixi.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/channel/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/channel/channel.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/channel/channel_config.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/channel/channel_priority.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/exceptions.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/explicit_environment/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/explicit_environment/environment.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/index/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/install/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/install/installer.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/lock/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/lock/channel.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/lock/environment.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/lock/hash.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/lock/lock_file.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/lock/package.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/match_spec/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/match_spec/match_spec.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/match_spec/nameless_match_spec.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/networking/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/networking/client.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/networking/fetch_repo_data.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/networking/middleware.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package/about_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package/index_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package/no_arch_type.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package/package_name.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package/paths_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package/run_exports_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/package_streaming/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/platform/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/platform/arch.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/platform/platform.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/prefix/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/prefix/prefix_paths.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/prefix/prefix_record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/py.typed +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/repo_data/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/repo_data/package_record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/repo_data/patch_instructions.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/repo_data/record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/repo_data/repo_data.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/repo_data/sparse.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/shell/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/shell/shell.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/solver/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/solver/solver.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/utils/rattler_version.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/version/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/version/version.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/version/with_source.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/virtual_package/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/virtual_package/generic.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/rattler/virtual_package/virtual_package.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/about_json.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/channel/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/error.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/explicit_environment_spec.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/generic_virtual_package.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/index_json.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/installer.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/lib.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/lock/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/match_spec.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/meta.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/nameless_match_spec.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/networking/cached_repo_data.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/networking/client.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/networking/middleware.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/networking/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/no_arch_type.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/package_name.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/package_streaming/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/paths_json.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/platform.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/prefix_paths.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/record.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/repo_data/gateway.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/repo_data/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/repo_data/patch_instructions.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/repo_data/sparse.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/run_exports_json.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/shell.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/solver.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/utils.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/version/component.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/version/mod.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/src/virtual_package.rs +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/conftest.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_explicit_environment.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_fetch_repo_data.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_index.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_install.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_matchspec.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_override.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_package_record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_package_streaming.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_prefix_record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_solver.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/py-rattler/tests/unit/test_version.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/pyproject.toml +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/channel/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/channel/channel.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/channel/channel_config.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/channel/channel_priority.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/exceptions.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/explicit_environment/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/explicit_environment/environment.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/index/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/install/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/install/installer.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/lock/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/lock/channel.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/lock/environment.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/lock/hash.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/lock/lock_file.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/lock/package.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/match_spec/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/match_spec/match_spec.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/match_spec/nameless_match_spec.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/networking/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/networking/client.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/networking/fetch_repo_data.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/networking/middleware.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package/about_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package/index_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package/no_arch_type.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package/package_name.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package/paths_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package/run_exports_json.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/package_streaming/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/platform/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/platform/arch.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/platform/platform.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/prefix/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/prefix/prefix_paths.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/prefix/prefix_record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/py.typed +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/repo_data/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/repo_data/package_record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/repo_data/patch_instructions.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/repo_data/record.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/repo_data/repo_data.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/repo_data/sparse.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/shell/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/shell/shell.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/solver/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/solver/solver.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/utils/rattler_version.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/version/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/version/version.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/version/with_source.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/virtual_package/__init__.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/virtual_package/generic.py +0 -0
- {py_rattler-0.13.1 → py_rattler-0.14.0}/rattler/virtual_package/virtual_package.py +0 -0
|
@@ -52,7 +52,7 @@ chrono = { version = "0.4.41", default-features = false, features = [
|
|
|
52
52
|
"alloc",
|
|
53
53
|
] }
|
|
54
54
|
clap = { version = "4.5.38", features = ["derive"] }
|
|
55
|
-
clap-verbosity-flag = "3.0.
|
|
55
|
+
clap-verbosity-flag = "3.0.3"
|
|
56
56
|
cmake = "0.1.54"
|
|
57
57
|
console = { version = "0.15.11", features = ["windows-console-colors"] }
|
|
58
58
|
criterion = "0.5"
|
|
@@ -105,7 +105,7 @@ memmap2 = "0.9.5"
|
|
|
105
105
|
netrc-rs = "0.1.2"
|
|
106
106
|
nom = "7.1.3"
|
|
107
107
|
num_cpus = "1.16.0"
|
|
108
|
-
opendal = { version = "0.53.
|
|
108
|
+
opendal = { version = "0.53.3", default-features = false }
|
|
109
109
|
once_cell = "1.21.3"
|
|
110
110
|
parking_lot = "0.12.3"
|
|
111
111
|
pathdiff = "0.2.3"
|
|
@@ -157,7 +157,7 @@ tempfile = "3.20.0"
|
|
|
157
157
|
temp-env = { version = "0.3.6", features = ["async_closure"] }
|
|
158
158
|
test-log = "0.2.17"
|
|
159
159
|
thiserror = "2.0"
|
|
160
|
-
tokio = { version = "1.45.
|
|
160
|
+
tokio = { version = "1.45.1", default-features = false }
|
|
161
161
|
tokio-stream = "0.1.17"
|
|
162
162
|
tokio-util = "0.7.15"
|
|
163
163
|
tower = { version = "0.5.2", default-features = false }
|
|
@@ -169,7 +169,7 @@ trybuild = { version = "1.0.105" }
|
|
|
169
169
|
typed-path = { version = "0.11.0" }
|
|
170
170
|
url = { version = "2.5.4" }
|
|
171
171
|
unicode-normalization = "0.1.24"
|
|
172
|
-
uuid = { version = "1.
|
|
172
|
+
uuid = { version = "1.17.0", default-features = false }
|
|
173
173
|
walkdir = "2.5.0"
|
|
174
174
|
wasmtimer = "0.4.1"
|
|
175
175
|
which = "7.0.3"
|
|
@@ -180,24 +180,24 @@ zstd = { version = "0.13.3", default-features = false }
|
|
|
180
180
|
|
|
181
181
|
# These are the all the crates defined in the workspace. We pin all of them together because they are always updated in tendem.
|
|
182
182
|
file_url = { path = "crates/file_url", version = "=0.2.5", default-features = false }
|
|
183
|
-
rattler = { path = "crates/rattler", version = "=0.
|
|
184
|
-
rattler_cache = { path = "crates/rattler_cache", version = "=0.3.
|
|
185
|
-
rattler_conda_types = { path = "crates/rattler_conda_types", version = "=0.
|
|
183
|
+
rattler = { path = "crates/rattler", version = "=0.34.0", default-features = false }
|
|
184
|
+
rattler_cache = { path = "crates/rattler_cache", version = "=0.3.20", default-features = false }
|
|
185
|
+
rattler_conda_types = { path = "crates/rattler_conda_types", version = "=0.35.0", default-features = false }
|
|
186
186
|
rattler_digest = { path = "crates/rattler_digest", version = "=1.1.2", default-features = false }
|
|
187
|
-
rattler_index = { path = "crates/rattler_index", version = "=0.
|
|
187
|
+
rattler_index = { path = "crates/rattler_index", version = "=0.23.0", default-features = false }
|
|
188
188
|
rattler_libsolv_c = { path = "crates/rattler_libsolv_c", version = "=1.2.1", default-features = false }
|
|
189
|
-
rattler_lock = { path = "crates/rattler_lock", version = "=0.23.
|
|
189
|
+
rattler_lock = { path = "crates/rattler_lock", version = "=0.23.5", default-features = false }
|
|
190
190
|
rattler_macros = { path = "crates/rattler_macros", version = "=1.0.9", default-features = false }
|
|
191
|
-
rattler_menuinst = { path = "crates/rattler_menuinst", version = "=0.2.
|
|
192
|
-
rattler_networking = { path = "crates/rattler_networking", version = "=0.
|
|
191
|
+
rattler_menuinst = { path = "crates/rattler_menuinst", version = "=0.2.10", default-features = false }
|
|
192
|
+
rattler_networking = { path = "crates/rattler_networking", version = "=0.25.0", default-features = false }
|
|
193
193
|
rattler_pty = { path = "crates/rattler_pty", version = "=0.2.1", default-features = false }
|
|
194
194
|
rattler_redaction = { path = "crates/rattler_redaction", version = "=0.1.10", default-features = false }
|
|
195
|
-
rattler_package_streaming = { path = "crates/rattler_package_streaming", version = "=0.22.
|
|
196
|
-
rattler_repodata_gateway = { path = "crates/rattler_repodata_gateway", version = "=0.
|
|
195
|
+
rattler_package_streaming = { path = "crates/rattler_package_streaming", version = "=0.22.39", default-features = false }
|
|
196
|
+
rattler_repodata_gateway = { path = "crates/rattler_repodata_gateway", version = "=0.23.0", default-features = false }
|
|
197
197
|
rattler_sandbox = { path = "crates/rattler_sandbox", version = "=0.1.8", default-features = false }
|
|
198
|
-
rattler_shell = { path = "crates/rattler_shell", version = "=0.23.
|
|
199
|
-
rattler_solve = { path = "crates/rattler_solve", version = "=2.
|
|
200
|
-
rattler_virtual_packages = { path = "crates/rattler_virtual_packages", version = "=2.0.
|
|
198
|
+
rattler_shell = { path = "crates/rattler_shell", version = "=0.23.2", default-features = false }
|
|
199
|
+
rattler_solve = { path = "crates/rattler_solve", version = "=2.1.0", default-features = false }
|
|
200
|
+
rattler_virtual_packages = { path = "crates/rattler_virtual_packages", version = "=2.0.13", default-features = false }
|
|
201
201
|
|
|
202
202
|
# This is also a rattler crate, but we only pin it to minor version
|
|
203
203
|
simple_spawn_blocking = { path = "crates/simple_spawn_blocking", version = "1.1", default-features = false }
|
|
@@ -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.34.0](https://github.com/conda/rattler/compare/rattler-v0.33.7...rattler-v0.34.0) - 2025-05-23
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- consistent usage of rustls-tls / native-tls feature ([#1324](https://github.com/conda/rattler/pull/1324))
|
|
14
|
+
|
|
9
15
|
## [0.33.7](https://github.com/conda/rattler/compare/rattler-v0.33.6...rattler-v0.33.7) - 2025-05-16
|
|
10
16
|
|
|
11
17
|
### Other
|
|
@@ -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.3.20](https://github.com/conda/rattler/compare/rattler_cache-v0.3.19...rattler_cache-v0.3.20) - 2025-05-23
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- consistent usage of rustls-tls / native-tls feature ([#1324](https://github.com/conda/rattler/pull/1324))
|
|
14
|
+
|
|
9
15
|
## [0.3.19](https://github.com/conda/rattler/compare/rattler_cache-v0.3.18...rattler_cache-v0.3.19) - 2025-05-16
|
|
10
16
|
|
|
11
17
|
### Other
|
|
@@ -6,6 +6,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.35.0](https://github.com/conda/rattler/compare/rattler_conda_types-v0.34.0...rattler_conda_types-v0.35.0) - 2025-05-23
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Sharded repodata, zst, add purls and run_exports support ([#1312](https://github.com/conda/rattler/pull/1312))
|
|
14
|
+
- control over selection of .conda and .tar.bz2 ([#1344](https://github.com/conda/rattler/pull/1344))
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- *(py)* package count was incorrect for prefer-conda ([#1350](https://github.com/conda/rattler/pull/1350))
|
|
19
|
+
- add missing `created_at` in shards ([#1343](https://github.com/conda/rattler/pull/1343))
|
|
20
|
+
- properly dedup package names ([#1342](https://github.com/conda/rattler/pull/1342))
|
|
21
|
+
|
|
9
22
|
## [0.34.0](https://github.com/conda/rattler/compare/rattler_conda_types-v0.33.0...rattler_conda_types-v0.34.0) - 2025-05-16
|
|
10
23
|
|
|
11
24
|
### Added
|
|
@@ -44,7 +44,7 @@ pub struct ShardedSubdirInfo {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/// An individual shard that contains repodata for a single package name.
|
|
47
|
-
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
47
|
+
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
|
48
48
|
pub struct Shard {
|
|
49
49
|
/// The records for all `.tar.bz2` packages
|
|
50
50
|
pub packages: FxHashMap<String, PackageRecord>,
|
|
@@ -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.23.0](https://github.com/conda/rattler/compare/rattler_index-v0.22.7...rattler_index-v0.23.0) - 2025-05-23
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Sharded repodata, zst, add purls and run_exports support ([#1312](https://github.com/conda/rattler/pull/1312))
|
|
14
|
+
|
|
9
15
|
## [0.22.7](https://github.com/conda/rattler/compare/rattler_index-v0.22.6...rattler_index-v0.22.7) - 2025-05-16
|
|
10
16
|
|
|
11
17
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "rattler_index"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.23.0"
|
|
4
4
|
edition.workspace = true
|
|
5
5
|
authors = []
|
|
6
6
|
description = "A crate to index conda channels and create a repodata.json file."
|
|
@@ -33,6 +33,7 @@ path = "src/main.rs"
|
|
|
33
33
|
[dependencies]
|
|
34
34
|
anyhow = { workspace = true }
|
|
35
35
|
bytes = { workspace = true }
|
|
36
|
+
chrono = { workspace = true }
|
|
36
37
|
clap = { workspace = true, features = ["derive", "env"] }
|
|
37
38
|
clap-verbosity-flag = { workspace = true, features = ["tracing"] }
|
|
38
39
|
console = { workspace = true }
|
|
@@ -53,11 +54,16 @@ reqwest = { workspace = true, default-features = false, features = [
|
|
|
53
54
|
"macos-system-configuration",
|
|
54
55
|
"charset",
|
|
55
56
|
] }
|
|
57
|
+
rmp-serde = { workspace = true }
|
|
58
|
+
serde = { workspace = true }
|
|
56
59
|
serde_json = { workspace = true }
|
|
60
|
+
sha2 = { workspace = true }
|
|
61
|
+
tar = { workspace = true }
|
|
57
62
|
tokio = { workspace = true, features = ["full"] }
|
|
58
63
|
tracing = { workspace = true }
|
|
59
64
|
tracing-subscriber = { workspace = true, features = ["env-filter", "fmt"] }
|
|
60
65
|
url = { workspace = true }
|
|
66
|
+
zstd = { workspace = true }
|
|
61
67
|
|
|
62
68
|
[dev-dependencies]
|
|
63
69
|
tempfile = { workspace = true }
|
|
@@ -9,14 +9,18 @@ use futures::{stream::FuturesUnordered, StreamExt};
|
|
|
9
9
|
use fxhash::FxHashMap;
|
|
10
10
|
use indicatif::{MultiProgress, ProgressBar, ProgressStyle};
|
|
11
11
|
use rattler_conda_types::{
|
|
12
|
-
package::{ArchiveType, IndexJson, PackageFile},
|
|
13
|
-
ChannelInfo, PackageRecord, PatchInstructions, Platform, RepoData,
|
|
12
|
+
package::{ArchiveIdentifier, ArchiveType, IndexJson, PackageFile, RunExportsJson},
|
|
13
|
+
ChannelInfo, PackageRecord, PatchInstructions, Platform, RepoData, Shard, ShardedRepodata,
|
|
14
|
+
ShardedSubdirInfo,
|
|
14
15
|
};
|
|
16
|
+
use rattler_digest::Sha256Hash;
|
|
15
17
|
use rattler_networking::{Authentication, AuthenticationStorage};
|
|
16
18
|
use rattler_package_streaming::{
|
|
17
19
|
read,
|
|
18
20
|
seek::{self, stream_conda_content},
|
|
19
21
|
};
|
|
22
|
+
use serde::Serialize;
|
|
23
|
+
use sha2::{Digest, Sha256};
|
|
20
24
|
use std::{
|
|
21
25
|
collections::{HashMap, HashSet},
|
|
22
26
|
io::{Cursor, Read, Seek},
|
|
@@ -33,6 +37,11 @@ use opendal::{
|
|
|
33
37
|
Configurator, Operator,
|
|
34
38
|
};
|
|
35
39
|
|
|
40
|
+
const REPODATA_FROM_PACKAGES: &str = "repodata_from_packages.json";
|
|
41
|
+
const REPODATA: &str = "repodata.json";
|
|
42
|
+
const REPODATA_SHARDS: &str = "repodata_shards.msgpack.zst";
|
|
43
|
+
const ZSTD_REPODATA_COMPRESSION_LEVEL: i32 = 19;
|
|
44
|
+
|
|
36
45
|
/// Extract the package record from an `index.json` file.
|
|
37
46
|
pub fn package_record_from_index_json<T: Read>(
|
|
38
47
|
package_as_bytes: impl AsRef<[u8]>,
|
|
@@ -151,43 +160,61 @@ pub fn package_record_from_conda(file: &Path) -> std::io::Result<PackageRecord>
|
|
|
151
160
|
package_record_from_conda_reader(reader)
|
|
152
161
|
}
|
|
153
162
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
let
|
|
159
|
-
let
|
|
160
|
-
let mut archive = seek::stream_conda_info(reader).expect("Could not open conda file");
|
|
161
|
-
|
|
163
|
+
fn read_index_json_from_archive(
|
|
164
|
+
bytes: &Vec<u8>,
|
|
165
|
+
archive: &mut tar::Archive<impl Read>,
|
|
166
|
+
) -> std::io::Result<PackageRecord> {
|
|
167
|
+
let mut index_json = None;
|
|
168
|
+
let mut run_exports_json = None;
|
|
162
169
|
for entry in archive.entries()?.flatten() {
|
|
163
170
|
let mut entry = entry;
|
|
164
171
|
let path = entry.path()?;
|
|
165
172
|
if path.as_os_str().eq("info/index.json") {
|
|
166
|
-
|
|
173
|
+
index_json = Some(package_record_from_index_json(bytes, &mut entry)?);
|
|
174
|
+
} else if path.as_os_str().eq("info/run_exports.json") {
|
|
175
|
+
run_exports_json = Some(RunExportsJson::from_reader(&mut entry)?);
|
|
167
176
|
}
|
|
168
177
|
}
|
|
178
|
+
|
|
179
|
+
if let Some(mut index_json) = index_json {
|
|
180
|
+
index_json.run_exports = run_exports_json;
|
|
181
|
+
return Ok(index_json);
|
|
182
|
+
}
|
|
183
|
+
|
|
169
184
|
Err(std::io::Error::new(
|
|
170
185
|
std::io::ErrorKind::Other,
|
|
171
186
|
"No index.json found",
|
|
172
187
|
))
|
|
173
188
|
}
|
|
174
189
|
|
|
190
|
+
/// Extract the package record from a `.conda` package file content.
|
|
191
|
+
/// This function will look for the `info/index.json` file in the conda package
|
|
192
|
+
/// and extract the package record from it.
|
|
193
|
+
pub fn package_record_from_conda_reader(reader: impl Read) -> std::io::Result<PackageRecord> {
|
|
194
|
+
let bytes = reader.bytes().collect::<Result<Vec<u8>, _>>()?;
|
|
195
|
+
let reader = Cursor::new(&bytes);
|
|
196
|
+
let mut archive = seek::stream_conda_info(reader).expect("Could not open conda file");
|
|
197
|
+
read_index_json_from_archive(&bytes, &mut archive)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
#[allow(clippy::too_many_arguments)]
|
|
175
201
|
async fn index_subdir(
|
|
176
202
|
subdir: Platform,
|
|
177
203
|
op: Operator,
|
|
178
204
|
force: bool,
|
|
205
|
+
write_zst: bool,
|
|
206
|
+
write_shards: bool,
|
|
179
207
|
repodata_patch: Option<PatchInstructions>,
|
|
180
208
|
progress: Option<MultiProgress>,
|
|
181
209
|
semaphore: Arc<Semaphore>,
|
|
182
210
|
) -> Result<()> {
|
|
183
|
-
let repodata_path = if repodata_patch.is_some() {
|
|
184
|
-
format!("{subdir}/repodata_from_packages.json")
|
|
185
|
-
} else {
|
|
186
|
-
format!("{subdir}/repodata.json")
|
|
187
|
-
};
|
|
188
211
|
let mut registered_packages: FxHashMap<String, PackageRecord> = HashMap::default();
|
|
189
212
|
if !force {
|
|
190
|
-
let repodata_bytes =
|
|
213
|
+
let repodata_bytes = if repodata_patch.is_some() {
|
|
214
|
+
op.read(&format!("{subdir}/{REPODATA_FROM_PACKAGES}")).await
|
|
215
|
+
} else {
|
|
216
|
+
op.read(&format!("{subdir}/{REPODATA}")).await
|
|
217
|
+
};
|
|
191
218
|
let repodata: RepoData = match repodata_bytes {
|
|
192
219
|
Ok(bytes) => serde_json::from_slice(&bytes.to_vec())?,
|
|
193
220
|
Err(e) => {
|
|
@@ -368,6 +395,7 @@ async fn index_subdir(
|
|
|
368
395
|
}
|
|
369
396
|
}
|
|
370
397
|
|
|
398
|
+
// TODO: don't serialize run_exports and purls but in their own files
|
|
371
399
|
let repodata = RepoData {
|
|
372
400
|
info: Some(ChannelInfo {
|
|
373
401
|
subdir: Some(subdir.to_string()),
|
|
@@ -379,41 +407,187 @@ async fn index_subdir(
|
|
|
379
407
|
version: Some(2),
|
|
380
408
|
};
|
|
381
409
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
410
|
+
write_repodata(
|
|
411
|
+
repodata,
|
|
412
|
+
repodata_patch,
|
|
413
|
+
write_zst,
|
|
414
|
+
write_shards,
|
|
415
|
+
subdir,
|
|
416
|
+
op,
|
|
417
|
+
)
|
|
418
|
+
.await
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
fn serialize_msgpack_zst<T>(val: &T) -> Result<Vec<u8>>
|
|
422
|
+
where
|
|
423
|
+
T: Serialize + ?Sized,
|
|
424
|
+
{
|
|
425
|
+
let msgpack = rmp_serde::to_vec_named(val)?;
|
|
426
|
+
let encoded = zstd::stream::encode_all(&msgpack[..], 0)?;
|
|
427
|
+
Ok(encoded)
|
|
428
|
+
}
|
|
385
429
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
430
|
+
/// Write a `repodata.json` for all packages in the given configurator's root.
|
|
431
|
+
pub async fn write_repodata(
|
|
432
|
+
repodata: RepoData,
|
|
433
|
+
repodata_patch: Option<PatchInstructions>,
|
|
434
|
+
write_zst: bool,
|
|
435
|
+
write_shards: bool,
|
|
436
|
+
subdir: Platform,
|
|
437
|
+
op: Operator,
|
|
438
|
+
) -> Result<()> {
|
|
439
|
+
if repodata_patch.is_some() {
|
|
440
|
+
let unpatched_repodata_path = format!("{subdir}/{REPODATA_FROM_PACKAGES}");
|
|
441
|
+
tracing::info!("Writing unpatched repodata to {unpatched_repodata_path}");
|
|
442
|
+
let unpatched_repodata_bytes = serde_json::to_vec(&repodata)?;
|
|
443
|
+
op.write(&unpatched_repodata_path, unpatched_repodata_bytes)
|
|
444
|
+
.await?;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
let repodata = if let Some(instructions) = repodata_patch {
|
|
448
|
+
tracing::info!("Patching repodata");
|
|
389
449
|
let mut patched_repodata = repodata.clone();
|
|
390
450
|
patched_repodata.apply_patches(&instructions);
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
451
|
+
patched_repodata
|
|
452
|
+
} else {
|
|
453
|
+
repodata
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
let repodata_bytes = serde_json::to_vec(&repodata)?;
|
|
457
|
+
if write_zst {
|
|
458
|
+
tracing::info!("Compressing repodata bytes");
|
|
459
|
+
let repodata_zst_bytes =
|
|
460
|
+
zstd::stream::encode_all(&repodata_bytes[..], ZSTD_REPODATA_COMPRESSION_LEVEL)?;
|
|
461
|
+
let repodata_zst_path = format!("{subdir}/{REPODATA}.zst");
|
|
462
|
+
tracing::info!("Writing zst repodata to {repodata_zst_path}");
|
|
463
|
+
op.write(&repodata_zst_path, repodata_zst_bytes).await?;
|
|
394
464
|
}
|
|
395
|
-
// todo: also write repodata.json.bz2, repodata.json.zst, repodata.json.jlap and sharded repodata once available in rattler
|
|
396
|
-
// https://github.com/conda/rattler/issues/1096
|
|
397
465
|
|
|
466
|
+
let repodata_path = format!("{subdir}/{REPODATA}");
|
|
467
|
+
tracing::info!("Writing repodata to {repodata_path}");
|
|
468
|
+
op.write(&repodata_path, repodata_bytes).await?;
|
|
469
|
+
|
|
470
|
+
if write_shards {
|
|
471
|
+
// See CEP 16 <https://github.com/conda/ceps/blob/main/cep-0016.md>
|
|
472
|
+
tracing::info!("Creating sharded repodata");
|
|
473
|
+
let mut shards_by_package_names: HashMap<String, Shard> = HashMap::new();
|
|
474
|
+
for (k, package_record) in repodata.conda_packages {
|
|
475
|
+
let package_name = package_record.name.as_normalized();
|
|
476
|
+
let shard = shards_by_package_names
|
|
477
|
+
.entry(package_name.into())
|
|
478
|
+
.or_default();
|
|
479
|
+
shard.conda_packages.insert(k, package_record);
|
|
480
|
+
}
|
|
481
|
+
for (k, package_record) in repodata.packages {
|
|
482
|
+
let package_name = package_record.name.as_normalized();
|
|
483
|
+
let shard = shards_by_package_names
|
|
484
|
+
.entry(package_name.into())
|
|
485
|
+
.or_default();
|
|
486
|
+
shard.packages.insert(k, package_record);
|
|
487
|
+
}
|
|
488
|
+
for package in repodata.removed {
|
|
489
|
+
let package_name = ArchiveIdentifier::try_from_filename(package.as_str())
|
|
490
|
+
.context("Could not determine archive identifier for {package}")?
|
|
491
|
+
.name;
|
|
492
|
+
let shard = shards_by_package_names.entry(package_name).or_default();
|
|
493
|
+
shard.removed.insert(package);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
// calculate digests for shards
|
|
497
|
+
let shards = shards_by_package_names
|
|
498
|
+
.iter()
|
|
499
|
+
.map(|(k, shard)| {
|
|
500
|
+
serialize_msgpack_zst(shard).map(|encoded| {
|
|
501
|
+
let mut hasher = Sha256::new();
|
|
502
|
+
hasher.update(&encoded);
|
|
503
|
+
let digest: Sha256Hash = hasher.finalize();
|
|
504
|
+
(k, (digest, encoded))
|
|
505
|
+
})
|
|
506
|
+
})
|
|
507
|
+
.collect::<Result<HashMap<_, _>>>()?;
|
|
508
|
+
|
|
509
|
+
let sharded_repodata = ShardedRepodata {
|
|
510
|
+
info: ShardedSubdirInfo {
|
|
511
|
+
subdir: subdir.to_string(),
|
|
512
|
+
base_url: "".into(),
|
|
513
|
+
shards_base_url: "./shards/".into(),
|
|
514
|
+
created_at: Some(chrono::Utc::now()),
|
|
515
|
+
},
|
|
516
|
+
shards: shards
|
|
517
|
+
.iter()
|
|
518
|
+
.map(|(&k, (digest, _))| (k.clone(), *digest))
|
|
519
|
+
.collect(),
|
|
520
|
+
};
|
|
521
|
+
|
|
522
|
+
let mut tasks = FuturesUnordered::new();
|
|
523
|
+
// todo max parallel
|
|
524
|
+
for (_, (digest, encoded_shard)) in shards {
|
|
525
|
+
let op = op.clone();
|
|
526
|
+
let future = async move || {
|
|
527
|
+
let shard_path = format!("{subdir}/shards/{digest:x}.msgpack.zst");
|
|
528
|
+
tracing::trace!("Writing repodata shard to {shard_path}");
|
|
529
|
+
op.write(&shard_path, encoded_shard).await
|
|
530
|
+
};
|
|
531
|
+
tasks.push(tokio::spawn(future()));
|
|
532
|
+
}
|
|
533
|
+
while let Some(join_result) = tasks.next().await {
|
|
534
|
+
match join_result {
|
|
535
|
+
Ok(Ok(_)) => {}
|
|
536
|
+
Ok(Err(e)) => Err(e)?,
|
|
537
|
+
Err(join_err) => Err(join_err)?,
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
let repodata_shards_path = format!("{subdir}/{REPODATA_SHARDS}");
|
|
542
|
+
tracing::trace!("Writing repodata shards to {repodata_shards_path}");
|
|
543
|
+
let sharded_repodata_encoded = serialize_msgpack_zst(&sharded_repodata)?;
|
|
544
|
+
op.write(&repodata_shards_path, sharded_repodata_encoded)
|
|
545
|
+
.await?;
|
|
546
|
+
}
|
|
398
547
|
Ok(())
|
|
399
548
|
}
|
|
400
549
|
|
|
550
|
+
/// Configuration for `index_fs`
|
|
551
|
+
pub struct IndexFsConfig {
|
|
552
|
+
/// The channel to index.
|
|
553
|
+
pub channel: PathBuf,
|
|
554
|
+
/// The target platform to index.
|
|
555
|
+
pub target_platform: Option<Platform>,
|
|
556
|
+
/// The path to a repodata patch to apply to the index.
|
|
557
|
+
pub repodata_patch: Option<String>,
|
|
558
|
+
/// Whether to write the repodata as a zstd-compressed file.
|
|
559
|
+
pub write_zst: bool,
|
|
560
|
+
/// Whether to write the repodata shards.
|
|
561
|
+
pub write_shards: bool,
|
|
562
|
+
/// Whether to force the index to be written.
|
|
563
|
+
pub force: bool,
|
|
564
|
+
/// The maximum number of parallel tasks to run.
|
|
565
|
+
pub max_parallel: usize,
|
|
566
|
+
/// The multi-progress bar to use for the index.
|
|
567
|
+
pub multi_progress: Option<MultiProgress>,
|
|
568
|
+
}
|
|
569
|
+
|
|
401
570
|
/// Create a new `repodata.json` for all packages in the channel at the given directory.
|
|
402
|
-
#[allow(clippy::too_many_arguments)]
|
|
403
571
|
pub async fn index_fs(
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
572
|
+
IndexFsConfig {
|
|
573
|
+
channel,
|
|
574
|
+
target_platform,
|
|
575
|
+
repodata_patch,
|
|
576
|
+
write_zst,
|
|
577
|
+
write_shards,
|
|
578
|
+
force,
|
|
579
|
+
max_parallel,
|
|
580
|
+
multi_progress,
|
|
581
|
+
}: IndexFsConfig,
|
|
410
582
|
) -> anyhow::Result<()> {
|
|
411
583
|
let mut config = FsConfig::default();
|
|
412
|
-
config.root = Some(channel.
|
|
584
|
+
config.root = Some(channel.canonicalize()?.to_string_lossy().to_string());
|
|
413
585
|
index(
|
|
414
586
|
target_platform,
|
|
415
587
|
config,
|
|
416
588
|
repodata_patch,
|
|
589
|
+
write_zst,
|
|
590
|
+
write_shards,
|
|
417
591
|
force,
|
|
418
592
|
max_parallel,
|
|
419
593
|
multi_progress,
|
|
@@ -421,21 +595,56 @@ pub async fn index_fs(
|
|
|
421
595
|
.await
|
|
422
596
|
}
|
|
423
597
|
|
|
598
|
+
/// Configuration for `index_s3`
|
|
599
|
+
pub struct IndexS3Config {
|
|
600
|
+
/// The channel to index.
|
|
601
|
+
pub channel: Url,
|
|
602
|
+
/// The region of the S3 bucket.
|
|
603
|
+
pub region: String,
|
|
604
|
+
/// The endpoint URL of the S3 bucket.
|
|
605
|
+
pub endpoint_url: Url,
|
|
606
|
+
/// Whether to force path style for the S3 bucket.
|
|
607
|
+
pub force_path_style: bool,
|
|
608
|
+
/// The access key ID for the S3 bucket.
|
|
609
|
+
pub access_key_id: Option<String>,
|
|
610
|
+
/// The secret access key for the S3 bucket.
|
|
611
|
+
pub secret_access_key: Option<String>,
|
|
612
|
+
/// The session token for the S3 bucket.
|
|
613
|
+
pub session_token: Option<String>,
|
|
614
|
+
/// The target platform to index.
|
|
615
|
+
pub target_platform: Option<Platform>,
|
|
616
|
+
/// The path to a repodata patch to apply to the index.
|
|
617
|
+
pub repodata_patch: Option<String>,
|
|
618
|
+
/// Whether to write the repodata as a zstd-compressed file.
|
|
619
|
+
pub write_zst: bool,
|
|
620
|
+
/// Whether to write the repodata shards.
|
|
621
|
+
pub write_shards: bool,
|
|
622
|
+
/// Whether to force the index to be written.
|
|
623
|
+
pub force: bool,
|
|
624
|
+
/// The maximum number of parallel tasks to run.
|
|
625
|
+
pub max_parallel: usize,
|
|
626
|
+
/// The multi-progress bar to use for the index.
|
|
627
|
+
pub multi_progress: Option<MultiProgress>,
|
|
628
|
+
}
|
|
629
|
+
|
|
424
630
|
/// Create a new `repodata.json` for all packages in the channel at the given S3 URL.
|
|
425
|
-
#[allow(clippy::too_many_arguments)]
|
|
426
631
|
pub async fn index_s3(
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
632
|
+
IndexS3Config {
|
|
633
|
+
channel,
|
|
634
|
+
region,
|
|
635
|
+
endpoint_url,
|
|
636
|
+
force_path_style,
|
|
637
|
+
access_key_id,
|
|
638
|
+
secret_access_key,
|
|
639
|
+
session_token,
|
|
640
|
+
target_platform,
|
|
641
|
+
repodata_patch,
|
|
642
|
+
write_zst,
|
|
643
|
+
write_shards,
|
|
644
|
+
force,
|
|
645
|
+
max_parallel,
|
|
646
|
+
multi_progress,
|
|
647
|
+
}: IndexS3Config,
|
|
439
648
|
) -> anyhow::Result<()> {
|
|
440
649
|
let mut s3_config = S3Config::default();
|
|
441
650
|
s3_config.root = Some(channel.path().to_string());
|
|
@@ -473,6 +682,8 @@ pub async fn index_s3(
|
|
|
473
682
|
target_platform,
|
|
474
683
|
s3_config,
|
|
475
684
|
repodata_patch,
|
|
685
|
+
write_zst,
|
|
686
|
+
write_shards,
|
|
476
687
|
force,
|
|
477
688
|
max_parallel,
|
|
478
689
|
multi_progress,
|
|
@@ -492,10 +703,13 @@ pub async fn index_s3(
|
|
|
492
703
|
/// 2. Collect all registered packages from `repodata.json` (if exists)
|
|
493
704
|
/// 3. Determine which packages to add to and to delete from `repodata.json`
|
|
494
705
|
/// 4. Write `repodata.json` back
|
|
706
|
+
#[allow(clippy::too_many_arguments)]
|
|
495
707
|
pub async fn index<T: Configurator>(
|
|
496
708
|
target_platform: Option<Platform>,
|
|
497
709
|
config: T,
|
|
498
710
|
repodata_patch: Option<String>,
|
|
711
|
+
write_zst: bool,
|
|
712
|
+
write_shards: bool,
|
|
499
713
|
force: bool,
|
|
500
714
|
max_parallel: usize,
|
|
501
715
|
multi_progress: Option<MultiProgress>,
|
|
@@ -569,6 +783,8 @@ pub async fn index<T: Configurator>(
|
|
|
569
783
|
*subdir,
|
|
570
784
|
op.clone(),
|
|
571
785
|
force,
|
|
786
|
+
write_zst,
|
|
787
|
+
write_shards,
|
|
572
788
|
repodata_patch
|
|
573
789
|
.as_ref()
|
|
574
790
|
.and_then(|p| p.subdirs.get(&subdir.to_string()).cloned()),
|