From f82fbd0070a7b0d42eea9f345448c57c17f1e0d6 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 14:08:00 +0100 Subject: [PATCH 01/55] refactor: uv --- Cargo.lock | 1691 ++++++++++++++++++++++++++++---------- Cargo.toml | 26 +- src/environment.rs | 2 + src/install_pypi.rs | 105 +-- src/lock_file/pypi.rs | 37 +- src/lock_file/resolve.rs | 329 ++++++-- src/lock_file/update.rs | 3 +- src/pypi_tags.rs | 2 +- 8 files changed, 1659 insertions(+), 536 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ec164a32e..76f8fc023 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,20 +24,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if", - "cipher 0.3.0", + "cipher", "cpufeatures", "opaque-debug", ] [[package]] -name = "aes" -version = "0.8.3" +name = "ahash" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures", + "getrandom", + "once_cell", + "version_check", ] [[package]] @@ -55,6 +55,21 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -159,6 +174,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c" dependencies = [ + "brotli", "bzip2", "flate2", "futures-core", @@ -166,8 +182,8 @@ dependencies = [ "memchr", "pin-project-lite", "tokio", - "zstd 0.13.0", - "zstd-safe 7.0.0", + "zstd", + "zstd-safe", ] [[package]] @@ -337,15 +353,15 @@ dependencies = [ [[package]] name = "async_http_range_reader" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809a79b508f86b02136fc5aab935ef777d03e5d377dda04e6736a081add9287c" +checksum = "5143aaae4ec035a5d7cfda666eab896fe5428a2a8ab09ca651a2dce3a8f06912" dependencies = [ "bisection", "futures", "http-content-range", "itertools", - "memmap2 0.9.4", + "memmap2", "reqwest", "reqwest-middleware", "thiserror", @@ -358,8 +374,7 @@ dependencies = [ [[package]] name = "async_zip" version = "0.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527207465fb6dcafbf661b0d4a51d0d2306c9d0c2975423079a6caa807930daf" +source = "git+https://github.com/charliermarsh/rs-async-zip?rev=d76801da0943de985254fc6255c0e476b57c5836#d76801da0943de985254fc6255c0e476b57c5836" dependencies = [ "async-compression", "crc32fast", @@ -408,15 +423,15 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.7" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] -name = "base64ct" -version = "1.6.0" +name = "base64" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bisection" @@ -473,7 +488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2cb03d1bed155d89dce0f845b7899b18a9a163e148fd004e1c28421a783e2d8e" dependencies = [ "block-padding", - "cipher 0.3.0", + "cipher", ] [[package]] @@ -498,12 +513,65 @@ dependencies = [ "tracing", ] +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bstr" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "bumpalo" version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "byteorder" version = "1.5.0" @@ -538,30 +606,13 @@ dependencies = [ ] [[package]] -name = "cacache" -version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "142316461ed3a3dfcba10417317472da5bfd0461e4d276bf7c07b330766d9490" +name = "cache-key" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" dependencies = [ - "digest", - "either", - "futures", "hex", - "libc", - "memmap2 0.5.10", - "miette 5.10.0", - "reflink-copy", - "serde", - "serde_derive", - "serde_json", - "sha1", - "sha2", - "ssri", - "tempfile", - "thiserror", - "tokio", - "tokio-stream", - "walkdir", + "seahash", + "url", ] [[package]] @@ -570,6 +621,47 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee" +[[package]] +name = "cachedir" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4703f3937077db8fa35bee3c8789343c1aec2585f0146f09d658d4ccc0e8d873" +dependencies = [ + "tempfile", +] + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-util" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74862c3c6e53a1c1f8f0178f9d38ab41e49746cd3a7cafc239b3d0248fd4e342" +dependencies = [ + "anyhow", + "core-foundation", + "filetime", + "hex", + "ignore", + "jobserver", + "libc", + "miow", + "same-file", + "sha2", + "shell-escape", + "tempfile", + "tracing", + "walkdir", + "windows-sys 0.52.0", +] + [[package]] name = "cc" version = "1.0.83" @@ -586,6 +678,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "charset" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46" +dependencies = [ + "base64 0.13.1", + "encoding_rs", +] + [[package]] name = "chrono" version = "0.4.33" @@ -601,33 +703,6 @@ dependencies = [ "windows-targets 0.52.0", ] -[[package]] -name = "ciborium" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" - -[[package]] -name = "ciborium-ll" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" -dependencies = [ - "ciborium-io", - "half", -] - [[package]] name = "cipher" version = "0.3.0" @@ -637,16 +712,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" version = "4.5.0" @@ -676,6 +741,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", + "strsim 0.11.0", "terminal_size", ] @@ -740,12 +806,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - [[package]] name = "core-foundation" version = "0.9.4" @@ -805,12 +865,6 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - [[package]] name = "crypto-common" version = "0.1.6" @@ -862,7 +916,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.10.0", "syn 2.0.48", ] @@ -887,7 +941,7 @@ dependencies = [ "hashbrown 0.14.3", "lock_api", "once_cell", - "parking_lot_core", + "parking_lot_core 0.9.9", ] [[package]] @@ -957,6 +1011,15 @@ dependencies = [ "subtle", ] +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs" version = "5.0.1" @@ -978,6 +1041,48 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "distribution-filename" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "pep440_rs 0.4.0", + "platform-tags", + "rkyv", + "serde", + "thiserror", + "url", + "uv-normalize", +] + +[[package]] +name = "distribution-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anyhow", + "cache-key", + "data-encoding", + "distribution-filename", + "fs-err", + "once_cell", + "pep440_rs 0.4.0", + "pep508_rs", + "platform-tags", + "pypi-types", + "rkyv", + "rustc-hash", + "serde", + "serde_json", + "sha2", + "thiserror", + "url", + "urlencoding", + "uv-fs", + "uv-git", + "uv-normalize", +] + [[package]] name = "drop_bomb" version = "0.1.5" @@ -1160,7 +1265,7 @@ checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.4.1", "windows-sys 0.52.0", ] @@ -1217,24 +1322,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" dependencies = [ "autocfg", + "tokio", ] [[package]] -name = "fs4" -version = "0.7.0" +name = "fs2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ - "rustix 0.38.31", - "windows-sys 0.48.0", + "libc", + "winapi", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "fslock" version = "0.2.1" @@ -1412,12 +1512,72 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "git2" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd" +dependencies = [ + "bitflags 2.4.2", + "libc", + "libgit2-sys", + "log", + "openssl-probe", + "openssl-sys", + "url", +] + [[package]] name = "glob" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.5", + "regex-syntax 0.8.2", +] + +[[package]] +name = "goblin" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb07a4ffed2093b118a525b1d8f5204ae274faed5604537caf7135d0f18d9887" +dependencies = [ + "log", + "plain", + "scroll", +] + +[[package]] +name = "gourgeist" +version = "0.0.4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anstream", + "cachedir", + "camino", + "directories", + "fs-err", + "platform-host", + "serde", + "serde_json", + "tempfile", + "thiserror", + "tracing", + "uv-cache", + "uv-interpreter", + "which", +] + [[package]] name = "h2" version = "0.3.24" @@ -1437,21 +1597,14 @@ dependencies = [ "tracing", ] -[[package]] -name = "half" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" -dependencies = [ - "cfg-if", - "crunchy", -] - [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] [[package]] name = "hashbrown" @@ -1498,6 +1651,15 @@ dependencies = [ "digest", ] +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "html-escape" version = "0.2.13" @@ -1529,19 +1691,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http-cache-semantics" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aec9f678bca3f4a15194b980f20ed9bfe0dd38e8d298c65c559a93dfbd6380a" -dependencies = [ - "http", - "http-serde", - "reqwest", - "serde", - "time", -] - [[package]] name = "http-content-range" version = "0.1.2" @@ -1549,18 +1698,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f0d1a8ef218a86416107794b34cc446958d9203556c312bb41eab4c924c1d2e" [[package]] -name = "http-serde" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee" -dependencies = [ - "http", - "serde", -] - -[[package]] -name = "httparse" -version = "1.8.0" +name = "httparse" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" @@ -1608,7 +1747,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -1682,22 +1821,19 @@ dependencies = [ ] [[package]] -name = "include_dir" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" -dependencies = [ - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.3" +name = "ignore" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" dependencies = [ - "proc-macro2", - "quote", + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata 0.4.5", + "same-file", + "walkdir", + "winapi-util", ] [[package]] @@ -1736,13 +1872,10 @@ dependencies = [ ] [[package]] -name = "inout" -version = "0.1.3" +name = "indoc" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] +checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" [[package]] name = "insta" @@ -1758,6 +1891,44 @@ dependencies = [ "yaml-rust", ] +[[package]] +name = "install-wheel-rs" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "clap", + "configparser", + "csv", + "data-encoding", + "distribution-filename", + "fs-err", + "fs2", + "goblin", + "mailparse", + "once_cell", + "pep440_rs 0.4.0", + "platform-host", + "platform-info", + "plist", + "pypi-types", + "rayon", + "reflink-copy", + "regex", + "rustc-hash", + "serde", + "serde_json", + "sha2", + "target-lexicon", + "tempfile", + "thiserror", + "tracing", + "url", + "uv-fs", + "uv-normalize", + "walkdir", + "zip", +] + [[package]] name = "instant" version = "0.1.12" @@ -1765,6 +1936,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] @@ -1844,6 +2018,16 @@ dependencies = [ "treediff", ] +[[package]] +name = "junction" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca39ef0d69b18e6a2fd14c2f0a1d593200f4a4ed949b240b5917ab51fac754cb" +dependencies = [ + "scopeguard", + "winapi", +] + [[package]] name = "keyring" version = "2.3.2" @@ -1893,6 +2077,20 @@ version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libgit2-sys" +version = "0.16.2+1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" +dependencies = [ + "cc", + "libc", + "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +] + [[package]] name = "libloading" version = "0.8.1" @@ -1917,7 +2115,33 @@ checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ "bitflags 2.4.2", "libc", - "redox_syscall", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libssh2-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] @@ -1973,6 +2197,17 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +[[package]] +name = "mailparse" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757" +dependencies = [ + "charset", + "data-encoding", + "quoted_printable", +] + [[package]] name = "matchers" version = "0.1.0" @@ -1998,15 +2233,6 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - [[package]] name = "memmap2" version = "0.9.4" @@ -2034,18 +2260,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "miette" -version = "5.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" -dependencies = [ - "miette-derive 5.10.0", - "once_cell", - "thiserror", - "unicode-width", -] - [[package]] name = "miette" version = "7.0.0" @@ -2054,7 +2268,7 @@ checksum = "98a72adfa0c7ae88ba0abcbd00047a476616c66b831d628b8ac7f1e9de0cfd67" dependencies = [ "backtrace", "backtrace-ext", - "miette-derive 7.0.0", + "miette-derive", "owo-colors", "supports-color", "supports-hyperlinks", @@ -2065,17 +2279,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "miette-derive" -version = "5.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - [[package]] name = "miette-derive" version = "7.0.0" @@ -2138,12 +2341,30 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "miow" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "monch" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b52c1b33ff98142aecea13138bd399b68aa7ab5d9546c300988c345004001eea" +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand", +] + [[package]] name = "native-tls" version = "0.2.11" @@ -2326,6 +2547,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "once-map" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "dashmap", + "tokio", +] + [[package]] name = "once_cell" version = "1.19.0" @@ -2370,6 +2600,15 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "300.2.3+3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" +dependencies = [ + "cc", +] + [[package]] name = "openssl-sys" version = "0.9.99" @@ -2378,6 +2617,7 @@ checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" dependencies = [ "cc", "libc", + "openssl-src", "pkg-config", "vcpkg", ] @@ -2451,6 +2691,17 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + [[package]] name = "parking_lot" version = "0.12.1" @@ -2458,7 +2709,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core", + "parking_lot_core 0.9.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", ] [[package]] @@ -2469,21 +2734,16 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.4.1", "smallvec", "windows-targets 0.48.5", ] [[package]] -name = "password-hash" -version = "0.4.2" +name = "paste" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "path-dedot" @@ -2495,78 +2755,47 @@ dependencies = [ ] [[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest", - "hmac", - "password-hash", - "sha2", -] - -[[package]] -name = "peg" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "400bcab7d219c38abf8bd7cc2054eb9bbbd4312d66f6a5557d572a203f646f61" -dependencies = [ - "peg-macros", - "peg-runtime", -] - -[[package]] -name = "peg-macros" -version = "0.8.2" +name = "pep440_rs" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46e61cce859b76d19090f62da50a9fe92bab7c2a5f09e183763559a2ac392c90" +checksum = "887f66cc62717ea72caac4f1eb4e6f392224da3ffff3f40ec13ab427802746d6" dependencies = [ - "peg-runtime", - "proc-macro2", - "quote", + "lazy_static", + "regex", + "serde", + "unicode-width", ] -[[package]] -name = "peg-runtime" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36bae92c60fa2398ce4678b98b2c4b5a7c61099961ca1fa305aec04a9ad28922" - [[package]] name = "pep440_rs" version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c29f9c43de378b4e4e0cd7dbcce0e5cfb80443de8c05620368b2948bc936a1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" dependencies = [ "once_cell", - "regex", + "pubgrub", + "rkyv", "serde", "unicode-width", + "unscanny", ] [[package]] name = "pep508_rs" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "910c513bea0f4f833122321c0f20e8c704e01de98692f6989c2ec21f43d88b1e" +version = "0.2.3" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" dependencies = [ - "anyhow", + "derivative", "once_cell", - "pep440_rs", + "pep440_rs 0.4.0", "regex", + "rkyv", "serde", "thiserror", - "toml", "tracing", "unicode-width", "url", + "uv-fs", + "uv-normalize", ] [[package]] @@ -2688,6 +2917,7 @@ dependencies = [ "deno_task_shell", "dialoguer", "dirs", + "distribution-types", "dunce", "flate2", "futures", @@ -2700,16 +2930,17 @@ dependencies = [ "itertools", "lazy_static", "libc", - "miette 7.0.0", + "miette", "minijinja", "nix 0.27.1", "once_cell", - "pep440_rs", + "pep440_rs 0.4.0", "pep508_rs", + "platform-host", + "platform-tags", "rattler", - "rattler_conda_types", - "rattler_digest 0.18.0", - "rattler_installs_packages", + "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "rattler_lock", "rattler_networking", "rattler_repodata_gateway", @@ -2730,7 +2961,7 @@ dependencies = [ "shlex", "signal-hook", "spdx", - "strsim", + "strsim 0.10.0", "tabwriter", "tar", "tempfile", @@ -2742,6 +2973,13 @@ dependencies = [ "tracing", "tracing-subscriber", "url", + "uv-cache", + "uv-client", + "uv-dispatch", + "uv-interpreter", + "uv-normalize", + "uv-resolver", + "uv-traits", "zip", ] @@ -2751,13 +2989,56 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + +[[package]] +name = "platform-host" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "fs-err", + "goblin", + "once_cell", + "platform-info", + "plist", + "regex", + "serde", + "target-lexicon", + "thiserror", + "tracing", +] + +[[package]] +name = "platform-info" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "platform-tags" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "platform-host", + "rustc-hash", + "thiserror", +] + [[package]] name = "plist" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" dependencies = [ - "base64", + "base64 0.21.7", "indexmap 2.2.2", "line-wrap", "quick-xml", @@ -2813,6 +3094,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "priority-queue" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0bda9164fe05bc9225752d54aae413343c36f684380005398a6a8fde95fe785" +dependencies = [ + "autocfg", + "indexmap 1.9.3", +] + [[package]] name = "proc-macro-crate" version = "1.3.1" @@ -2846,8 +3137,40 @@ dependencies = [ ] [[package]] -name = "purl" -version = "0.1.2" +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "pubgrub" +version = "0.2.1" +source = "git+https://github.com/zanieb/pubgrub?rev=9b6d89cb8a0c7902815c8b2ae99106ba322ffb14#9b6d89cb8a0c7902815c8b2ae99106ba322ffb14" +dependencies = [ + "indexmap 2.2.2", + "log", + "priority-queue", + "rustc-hash", + "thiserror", +] + +[[package]] +name = "purl" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d153044e55fb5c0a6f0f0f974c3335d15a842263ba4b208d2656120fe530a5ab" dependencies = [ @@ -2860,14 +3183,33 @@ dependencies = [ "unicase", ] +[[package]] +name = "pypi-types" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "chrono", + "mailparse", + "once_cell", + "pep440_rs 0.4.0", + "pep508_rs", + "regex", + "rkyv", + "serde", + "thiserror", + "tracing", + "url", + "uv-normalize", +] + [[package]] name = "pyproject-toml" -version = "0.9.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95c3dd745f99aa3c554b7bb00859f7d18c2f1d6afd749ccc86d60b61e702abd9" +checksum = "46d4a5e69187f23a29f8aa0ea57491d104ba541bc55f76552c2a74962aa20e04" dependencies = [ "indexmap 2.2.2", - "pep440_rs", + "pep440_rs 0.3.12", "pep508_rs", "serde", "toml", @@ -2891,6 +3233,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "quoted_printable" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0" + [[package]] name = "radium" version = "0.7.0" @@ -2947,12 +3295,12 @@ dependencies = [ "indexmap 2.2.2", "itertools", "memchr", - "memmap2 0.9.4", + "memmap2", "nom", "once_cell", "pin-project-lite", - "rattler_conda_types", - "rattler_digest 0.18.0", + "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "rattler_networking", "rattler_package_streaming", "reflink-copy", @@ -2976,8 +3324,6 @@ dependencies = [ [[package]] name = "rattler_conda_types" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "085a4ebf784b325311890f7c1dfb9dc017cecb44049cfafef73e02e925e24e22" dependencies = [ "chrono", "fxhash", @@ -2989,7 +3335,7 @@ dependencies = [ "nom", "purl", "rattler_digest 0.18.0", - "rattler_macros", + "rattler_macros 0.18.0", "regex", "serde", "serde_json", @@ -3004,25 +3350,38 @@ dependencies = [ ] [[package]] -name = "rattler_digest" -version = "0.17.0" +name = "rattler_conda_types" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26606e577c9c5b214023c8a31a12753cffd2b09a6768d1d556b99ae9d730bc23" +checksum = "085a4ebf784b325311890f7c1dfb9dc017cecb44049cfafef73e02e925e24e22" dependencies = [ - "blake2", - "digest", + "chrono", + "fxhash", + "glob", "hex", - "md-5", + "indexmap 2.2.2", + "itertools", + "lazy-regex", + "nom", + "purl", + "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_macros 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex", "serde", + "serde_json", + "serde_repr", "serde_with", - "sha2", + "serde_yaml", + "smallvec", + "strum", + "thiserror", + "tracing", + "url", ] [[package]] name = "rattler_digest" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e8b55bd7e3c9efa337b59a26964584975c345bf484eca9fb849b65c2674cee" dependencies = [ "blake2", "digest", @@ -3031,83 +3390,36 @@ dependencies = [ "serde", "serde_with", "sha2", - "tokio", ] [[package]] -name = "rattler_installs_packages" -version = "0.8.1" +name = "rattler_digest" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347eefdb6574abe870dc428c1d6b22e4a0481de88e094b14dca4427e20e9ce16" +checksum = "06e8b55bd7e3c9efa337b59a26964584975c345bf484eca9fb849b65c2674cee" dependencies = [ - "async-once-cell", - "async-recursion", - "async-trait", - "async_http_range_reader", - "async_zip", - "bytes", - "cacache", - "ciborium", - "configparser", - "csv", - "data-encoding", - "dunce", - "elsa", - "flate2", - "fs-err", - "fs4", - "fs_extra", - "futures", - "html-escape", - "http", - "http-cache-semantics", - "include_dir", - "indexmap 2.2.2", - "itertools", - "miette 7.0.0", - "mime", - "once_cell", - "parking_lot", - "pathdiff", - "peg", - "pep440_rs", - "pep508_rs", - "pin-project-lite", - "pyproject-toml", - "rattler_digest 0.17.0", - "regex", - "reqwest", - "reqwest-middleware", - "resolvo", + "blake2", + "digest", + "hex", + "md-5", "serde", - "serde_json", "serde_with", - "smallvec", - "tar", - "tempfile", - "thiserror", - "tl", + "sha2", "tokio", - "tokio-util", - "tracing", - "url", - "zip", ] [[package]] name = "rattler_lock" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e0c6694a1e2ce7f9c3b08920ee717890fc7814ca36bcfefc7ec6fff9daac97" dependencies = [ "chrono", "fxhash", "indexmap 2.2.2", "itertools", - "pep440_rs", + "pep440_rs 0.4.0", "pep508_rs", "purl", - "rattler_conda_types", + "rattler_conda_types 0.18.0", "rattler_digest 0.18.0", "serde", "serde-json-python-formatter", @@ -3116,6 +3428,15 @@ dependencies = [ "serde_yaml", "thiserror", "url", + "uv-normalize", +] + +[[package]] +name = "rattler_macros" +version = "0.18.0" +dependencies = [ + "quote", + "syn 2.0.48", ] [[package]] @@ -3136,7 +3457,7 @@ checksum = "0cc36da705ddde163d228bb140eecf521b390716b83db943a43f6606b31954b1" dependencies = [ "anyhow", "async-trait", - "base64", + "base64 0.21.7", "dirs", "fslock", "getrandom", @@ -3168,8 +3489,8 @@ dependencies = [ "futures-util", "itertools", "num_cpus", - "rattler_conda_types", - "rattler_digest 0.18.0", + "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "rattler_networking", "reqwest", "reqwest-middleware", @@ -3181,7 +3502,7 @@ dependencies = [ "tokio-util", "url", "zip", - "zstd 0.13.0", + "zstd", ] [[package]] @@ -3203,11 +3524,11 @@ dependencies = [ "json-patch", "libc", "md-5", - "memmap2 0.9.4", + "memmap2", "ouroboros", "pin-project-lite", - "rattler_conda_types", - "rattler_digest 0.18.0", + "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "rattler_networking", "reqwest", "reqwest-middleware", @@ -3233,7 +3554,7 @@ dependencies = [ "enum_dispatch", "indexmap 2.2.2", "itertools", - "rattler_conda_types", + "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "shlex", "sysinfo", @@ -3253,8 +3574,8 @@ dependencies = [ "futures", "hex", "itertools", - "rattler_conda_types", - "rattler_digest 0.18.0", + "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "resolvo", "serde", "tempfile", @@ -3274,7 +3595,7 @@ dependencies = [ "nom", "once_cell", "plist", - "rattler_conda_types", + "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex", "serde", "thiserror", @@ -3301,6 +3622,24 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_syscall" version = "0.4.1" @@ -3382,6 +3721,35 @@ version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "requirements-txt" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "fs-err", + "once_cell", + "pep440_rs 0.4.0", + "pep508_rs", + "regex", + "serde", + "thiserror", + "tracing", + "unscanny", + "url", + "uv-fs", + "uv-normalize", + "uv-warnings", +] + [[package]] name = "reqwest" version = "0.11.24" @@ -3389,7 +3757,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" dependencies = [ "async-compression", - "base64", + "base64 0.21.7", "bytes", "encoding_rs", "futures-core", @@ -3446,6 +3814,29 @@ dependencies = [ "thiserror", ] +[[package]] +name = "reqwest-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9af20b65c2ee9746cc575acb6bd28a05ffc0d15e25c992a8f4462d8686aacb4f" +dependencies = [ + "anyhow", + "async-trait", + "chrono", + "futures", + "getrandom", + "http", + "hyper", + "parking_lot 0.11.2", + "reqwest", + "reqwest-middleware", + "retry-policies", + "task-local-extensions", + "tokio", + "tracing", + "wasm-timer", +] + [[package]] name = "resolvo" version = "0.4.0" @@ -3458,7 +3849,6 @@ dependencies = [ "futures", "itertools", "petgraph", - "tokio", "tracing", ] @@ -3487,6 +3877,57 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "rkyv" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rmp" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + [[package]] name = "rstest" version = "0.18.2" @@ -3522,6 +3963,12 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "rustc_version" version = "0.4.0" @@ -3588,7 +4035,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64", + "base64 0.21.7", ] [[package]] @@ -3643,6 +4090,26 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scroll" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "sct" version = "0.7.1" @@ -3653,13 +4120,19 @@ dependencies = [ "untrusted", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "secret-service" version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5da1a5ad4d28c03536f82f77d9f36603f5e37d8869ac98f0a750d5b5686d8d95" dependencies = [ - "aes 0.7.5", + "aes", "block-modes", "futures-util", "generic-array", @@ -3801,7 +4274,7 @@ version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270" dependencies = [ - "base64", + "base64 0.21.7", "chrono", "hex", "indexmap 1.9.3", @@ -3848,7 +4321,7 @@ dependencies = [ "futures", "lazy_static", "log", - "parking_lot", + "parking_lot 0.12.1", "serial_test_derive", ] @@ -3863,17 +4336,6 @@ dependencies = [ "syn 2.0.48", ] -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - [[package]] name = "sha1" version = "0.10.6" @@ -3905,6 +4367,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shell-escape" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" + [[package]] name = "shell-words" version = "1.1.0" @@ -3936,6 +4404,12 @@ dependencies = [ "libc", ] +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "similar" version = "2.4.0" @@ -4018,23 +4492,6 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -[[package]] -name = "ssri" -version = "9.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da7a2b3c2bc9693bcb40870c4e9b5bf0d79f9cb46273321bf855ec513e919082" -dependencies = [ - "base64", - "digest", - "hex", - "miette 5.10.0", - "serde", - "sha-1", - "sha2", - "thiserror", - "xxhash-rust", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -4053,6 +4510,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + [[package]] name = "strum" version = "0.26.1" @@ -4198,6 +4661,12 @@ dependencies = [ "xattr", ] +[[package]] +name = "target-lexicon" +version = "0.12.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" + [[package]] name = "task-local-extensions" version = "0.1.4" @@ -4383,6 +4852,21 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tar" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75" +dependencies = [ + "filetime", + "futures-core", + "libc", + "redox_syscall 0.3.5", + "tokio", + "tokio-stream", + "xattr", +] + [[package]] name = "tokio-util" version = "0.7.10" @@ -4604,6 +5088,12 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" +[[package]] +name = "unscanny" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47" + [[package]] name = "untrusted" version = "0.9.0" @@ -4622,6 +5112,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf8-width" version = "0.1.7" @@ -4644,6 +5140,373 @@ dependencies = [ "rand", ] +[[package]] +name = "uv-build" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anyhow", + "distribution-types", + "fs-err", + "gourgeist", + "indoc", + "itertools", + "once_cell", + "pep508_rs", + "platform-host", + "pypi-types", + "pyproject-toml", + "regex", + "serde", + "serde_json", + "tempfile", + "thiserror", + "tokio", + "toml", + "tracing", + "uv-extract", + "uv-fs", + "uv-interpreter", + "uv-traits", +] + +[[package]] +name = "uv-cache" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "cache-key", + "cachedir", + "directories", + "distribution-types", + "fs-err", + "nanoid", + "pypi-types", + "serde", + "tempfile", + "tracing", + "url", + "uv-fs", + "uv-normalize", + "walkdir", +] + +[[package]] +name = "uv-client" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "async-trait", + "async_http_range_reader", + "async_zip", + "cache-key", + "chrono", + "distribution-filename", + "distribution-types", + "fs-err", + "futures", + "html-escape", + "http", + "install-wheel-rs", + "pep440_rs 0.4.0", + "pep508_rs", + "platform-tags", + "pypi-types", + "reqwest", + "reqwest-middleware", + "reqwest-retry", + "rkyv", + "rmp-serde", + "rustc-hash", + "serde", + "serde_json", + "sha2", + "task-local-extensions", + "tempfile", + "thiserror", + "tl", + "tokio", + "tokio-util", + "tracing", + "url", + "urlencoding", + "uv-cache", + "uv-fs", + "uv-normalize", +] + +[[package]] +name = "uv-dispatch" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anyhow", + "distribution-types", + "fs-err", + "futures", + "gourgeist", + "itertools", + "pep508_rs", + "platform-host", + "platform-tags", + "pypi-types", + "tempfile", + "tokio", + "tracing", + "uv-build", + "uv-cache", + "uv-client", + "uv-distribution", + "uv-installer", + "uv-interpreter", + "uv-resolver", + "uv-traits", +] + +[[package]] +name = "uv-distribution" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anyhow", + "cache-key", + "distribution-filename", + "distribution-types", + "fs-err", + "futures", + "install-wheel-rs", + "nanoid", + "pep440_rs 0.4.0", + "pep508_rs", + "platform-tags", + "pypi-types", + "reqwest", + "rmp-serde", + "rustc-hash", + "serde", + "tempfile", + "thiserror", + "tokio", + "tokio-util", + "tracing", + "url", + "uv-cache", + "uv-client", + "uv-extract", + "uv-fs", + "uv-git", + "uv-normalize", + "uv-traits", + "zip", +] + +[[package]] +name = "uv-extract" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "async-compression", + "async_zip", + "flate2", + "fs-err", + "futures", + "rayon", + "rustc-hash", + "tar", + "thiserror", + "tokio", + "tokio-tar", + "tokio-util", + "zip", +] + +[[package]] +name = "uv-fs" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "dunce", + "fs-err", + "fs2", + "junction", + "tempfile", + "tracing", + "urlencoding", + "uv-warnings", +] + +[[package]] +name = "uv-git" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anyhow", + "base64 0.21.7", + "cache-key", + "cargo-util", + "git2", + "glob", + "hex", + "hmac", + "home", + "once_cell", + "rand", + "reqwest", + "serde", + "sha1", + "tokio", + "tracing", + "url", + "uv-fs", +] + +[[package]] +name = "uv-installer" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anyhow", + "distribution-filename", + "distribution-types", + "fs-err", + "futures", + "install-wheel-rs", + "once-map", + "pep440_rs 0.4.0", + "pep508_rs", + "platform-tags", + "pypi-types", + "rayon", + "requirements-txt", + "rustc-hash", + "tempfile", + "thiserror", + "tokio", + "tracing", + "url", + "uv-cache", + "uv-client", + "uv-distribution", + "uv-extract", + "uv-fs", + "uv-git", + "uv-interpreter", + "uv-normalize", + "uv-traits", +] + +[[package]] +name = "uv-interpreter" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "cache-key", + "fs-err", + "once_cell", + "pep440_rs 0.4.0", + "pep508_rs", + "platform-host", + "platform-tags", + "regex", + "rmp-serde", + "same-file", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "uv-cache", + "uv-fs", + "which", +] + +[[package]] +name = "uv-normalize" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "rkyv", + "serde", +] + +[[package]] +name = "uv-resolver" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anstream", + "anyhow", + "cache-key", + "chrono", + "dashmap", + "derivative", + "distribution-filename", + "distribution-types", + "either", + "fs-err", + "futures", + "indexmap 2.2.2", + "install-wheel-rs", + "itertools", + "once-map", + "once_cell", + "owo-colors", + "pep440_rs 0.4.0", + "pep508_rs", + "petgraph", + "platform-host", + "platform-tags", + "pubgrub", + "pypi-types", + "reqwest", + "rkyv", + "rustc-hash", + "serde_json", + "sha2", + "tempfile", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", + "url", + "uv-cache", + "uv-client", + "uv-distribution", + "uv-git", + "uv-interpreter", + "uv-normalize", + "uv-traits", + "uv-warnings", + "zip", +] + +[[package]] +name = "uv-traits" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anyhow", + "distribution-types", + "once-map", + "pep508_rs", + "tokio", + "uv-cache", + "uv-interpreter", + "uv-normalize", +] + +[[package]] +name = "uv-warnings" +version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +dependencies = [ + "anstream", + "once_cell", + "owo-colors", + "rustc-hash", +] + [[package]] name = "valuable" version = "0.1.0" @@ -4772,6 +5635,21 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "web-sys" version = "0.3.68" @@ -4788,6 +5666,19 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +[[package]] +name = "which" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.31", + "windows-sys 0.52.0", +] + [[package]] name = "winapi" version = "0.3.9" @@ -5019,12 +5910,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "xxhash-rust" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61" - [[package]] name = "yaml-rust" version = "0.4.5" @@ -5118,27 +6003,11 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes 0.8.3", "byteorder", - "bzip2", - "constant_time_eq", "crc32fast", "crossbeam-utils", "flate2", - "hmac", - "pbkdf2", - "sha1", "time", - "zstd 0.11.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", ] [[package]] @@ -5147,17 +6016,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" dependencies = [ - "zstd-safe 7.0.0", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", + "zstd-safe", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 94b38f081..a190fdf6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,8 @@ readme = "README.md" [features] default = ["native-tls"] -native-tls = ["reqwest/native-tls", "rattler_repodata_gateway/native-tls", "rattler/native-tls", "rip/native-tls"] -rustls-tls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots", "rattler_repodata_gateway/rustls-tls", "rattler/rustls-tls", "rip/rustls-tls"] +native-tls = ["reqwest/native-tls", "rattler_repodata_gateway/native-tls", "rattler/native-tls"] +rustls-tls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots", "rattler_repodata_gateway/rustls-tls", "rattler/rustls-tls"] slow_integration_tests = [] [dependencies] @@ -28,6 +28,7 @@ console = { version = "0.15.8", features = ["windows-console-colors"] } deno_task_shell = "0.14.4" dialoguer = "0.11.0" dirs = "5.0.1" +distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } dunce = "1.0.4" flate2 = "1.0.28" futures = "0.3.30" @@ -42,12 +43,14 @@ lazy_static = "1.4.0" miette = { version = "7.0.0", features = ["fancy", "supports-color", "supports-hyperlinks", "supports-unicode", "terminal_size", "textwrap"] } minijinja = { version = "1.0.12", features = ["builtins"] } once_cell = "1.19.0" -pep440_rs = "0.4.0" -pep508_rs = { version = "0.3.0", features = ["modern"] } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } rattler = { version = "0.18.0", default-features = false } rattler_conda_types = { version = "0.18.0", default-features = false } rattler_digest = { version = "0.18.0", default-features = false } -rattler_lock = { version = "0.18.0", default-features = false } +rattler_lock = { path = "../rattler/crates/rattler_lock", default-features = false } rattler_networking = { version = "0.18.0", default-features = false } rattler_repodata_gateway = { version = "0.18.0", default-features = false, features = ["sparse"] } rattler_shell = { version = "0.18.0", default-features = false, features = ["sysinfo"] } @@ -56,7 +59,7 @@ rattler_virtual_packages = { version = "0.18.0", default-features = false } regex = "1.10.3" reqwest = { version = "0.11.24", default-features = false } reqwest-middleware = "0.2.4" -rip = { package = "rattler_installs_packages", version = "0.8.1", default-features = false } +#rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rip", default-features = false } self-replace = "1.3.7" serde = "1.0.196" serde-untagged = "0.1.5" @@ -76,6 +79,14 @@ toml_edit = { version = "0.21.1", features = ["serde"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" +uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } + +uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] } [target.'cfg(unix)'.dependencies] @@ -92,6 +103,9 @@ tokio = { version = "1.36.0", features = ["rt"] } toml = "0.8.10" [patch.crates-io] +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } + #rattler = { git = "https://github.com/mamba-org/rattler", branch = "main" } #rattler_conda_types = { git = "https://github.com/mamba-org/rattler", branch = "main" } #rattler_digest = { git = "https://github.com/mamba-org/rattler", branch = "main" } diff --git a/src/environment.rs b/src/environment.rs index dfd4a3b2b..2c94f24b6 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -22,7 +22,9 @@ use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; use rattler_repodata_gateway::sparse::SparseRepoData; use reqwest_middleware::ClientWithMiddleware; use rip::{index::PackageDb, resolve::solve_options::SDistResolution}; +use std::path::PathBuf; use std::{collections::HashMap, io::ErrorKind, path::Path, sync::Arc}; +use uv_interpreter::Interpreter; /// Verify the location of the prefix folder is not changed so the applied prefix path is still valid. /// Errors when there is a file system error or the path does not align with the defined prefix. diff --git a/src/install_pypi.rs b/src/install_pypi.rs index b696cdb56..954b1f9fa 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -16,9 +16,9 @@ use crate::pypi_tags::{is_python_record, project_platform_tags}; use pep508_rs::MarkerEnvironment; use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; -use rip::artifacts::wheel::{InstallPaths, UnpackWheelOptions}; use rip::artifacts::Wheel; use rip::index::PackageDb; +use rip::install::{install_wheel, InstallPaths, InstallWheelOptions}; use rip::python_env::{ find_distributions_in_venv, uninstall_distribution, Distribution, PythonLocation, WheelTag, WheelTags, @@ -27,7 +27,7 @@ use rip::types::{ ArtifactHashes, ArtifactInfo, ArtifactName, Extra, HasArtifactName, NormalizedPackageName, }; use rip::wheel_builder::WheelBuilder; -use std::collections::{HashMap, HashSet}; +use std::collections::HashSet; use std::ops::Deref; use std::path::Path; use std::str::FromStr; @@ -189,26 +189,26 @@ async fn install_python_distributions( async move { let pb_task = message_formatter.start(wheel.name().to_string()).await; let unpack_result = tokio::task::spawn_blocking(move || { - wheel - .unpack( - &root, - &install_paths, - &python_executable_path, - &UnpackWheelOptions { - installer: Some(PIXI_PYPI_INSTALLER.into()), - extras: Some(extras), - ..Default::default() - }, - ) - .into_diagnostic() - .and_then(|unpacked_wheel| { - if let Some(hash) = hash { - std::fs::write(unpacked_wheel.dist_info.join("HASH"), hash) - .into_diagnostic() - } else { - Ok(()) - } - }) + install_wheel( + &wheel, + &root, + &install_paths, + &python_executable_path, + &InstallWheelOptions { + installer: Some(PIXI_PYPI_INSTALLER.into()), + extras: Some(extras), + ..Default::default() + }, + ) + .into_diagnostic() + .and_then(|unpacked_wheel| { + if let Some(hash) = hash { + std::fs::write(unpacked_wheel.dist_info.join("HASH"), hash) + .into_diagnostic() + } else { + Ok(()) + } + }) }) .map_err(JoinError::try_into_panic) .await; @@ -264,14 +264,22 @@ fn stream_python_artifacts( let stream_pb = pb.clone(); let total_packages = packages_to_download.len(); + let wheel_builder = WheelBuilder::new( + package_db.clone(), + marker_environment, + Some(compatible_tags), + resolve_options.deref().clone(), + ) + .into_diagnostic() + .context("error in construction of WheelBuilder for `pypi-dependencies` installation") + .expect("die"); + let download_stream = stream::iter(packages_to_download) .map(move |(pkg_data, pkg_env_data)| { let pb = stream_pb.clone(); let message_formatter = message_formatter.clone(); - let marker_environment = marker_environment.clone(); - let compatible_tags = compatible_tags.clone(); - let resolve_options = resolve_options.clone(); let package_db = package_db.clone(); + let wheel_builder = wheel_builder.clone(); async move { // Determine the filename from the @@ -286,16 +294,18 @@ fn stream_python_artifacts( format!("'{}' is not a valid python package name", &pkg_data.name) })?; - let artifact_name = ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) - .expect("failed to convert filename to artifact name"); + let artifact_name = + ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) + .expect("failed to convert filename to artifact name"); - let (artifact_name, is_direct_url) = if let ArtifactName::STree(mut stree) = artifact_name{ - // populate resolved version of direct dependency - stree.version = pkg_data.version.clone(); - (ArtifactName::STree(stree), true) - } else { - (artifact_name, false) - }; + let (artifact_name, is_direct_url) = + if let ArtifactName::STree(mut stree) = artifact_name { + // populate resolved version of direct dependency + stree.version = pkg_data.version.clone(); + (ArtifactName::STree(stree), true) + } else { + (artifact_name, false) + }; // Log out intent to install this python package. tracing::info!("downloading python package {filename}"); @@ -315,29 +325,20 @@ fn stream_python_artifacts( }; let (wheel, _) = tokio::spawn({ - let marker_environment = marker_environment.clone(); - let compatible_tags = compatible_tags.clone(); - let resolve_options = resolve_options.clone(); + let wheel_builder = wheel_builder.clone(); let package_db = package_db.clone(); async move { - let wheel_builder = WheelBuilder::new( - package_db.clone(), - marker_environment, - Some(compatible_tags), - resolve_options.deref().clone(), - HashMap::default(), - ) - .into_diagnostic() - .context("error in construction of WheelBuilder for `pypi-dependencies` installation")?; - // TODO: Maybe we should have a cache of wheels separate from the package_db. Since a // wheel can just be identified by its hash or url. - package_db.get_wheel(&artifact_info, Some(&wheel_builder)).await + package_db + .get_wheel(&artifact_info, Some(wheel_builder.clone())) + .await } }) - .await.unwrap_or_else(|e| match e.try_into_panic() { + .await + .unwrap_or_else(|e| match e.try_into_panic() { Ok(panic) => std::panic::resume_unwind(panic), - Err(_) => Err(miette::miette!("operation was cancelled")) + Err(_) => Err(miette::miette!("operation was cancelled")), })?; // Update the progress bar @@ -382,7 +383,7 @@ pub fn remove_old_python_distributions( let python_version = match python_changed { PythonStatus::Removed { old } | PythonStatus::Changed { old, .. } => old, PythonStatus::Added { .. } | PythonStatus::DoesNotExist | PythonStatus::Unchanged(_) => { - return Ok(()) + return Ok(()); } }; @@ -510,7 +511,7 @@ fn extract_locked_tags( ) -> Vec<(&CombinedPypiPackageData, Option>)> { desired_python_packages .into_iter() - .map(|pkg@(pkg_data, _pkg_env_data)| { + .map(|pkg @ (pkg_data, _pkg_env_data)| { // Extract the filename from the url and the name from the package name. let Some(filename) = pkg_data.url.path_segments().and_then(|s| s.last()) else { tracing::warn!( diff --git a/src/lock_file/pypi.rs b/src/lock_file/pypi.rs index 48924a4a8..f88f635fe 100644 --- a/src/lock_file/pypi.rs +++ b/src/lock_file/pypi.rs @@ -12,9 +12,10 @@ use rip::python_env::PythonLocation; use rip::resolve::solve_options::{ResolveOptions, SDistResolution}; use rip::resolve::{resolve, PinnedPackage}; use rip::types::PackageName; +use rip::wheel_builder::WheelBuilder; use std::path::Path; use std::sync::Arc; -use std::{collections::HashMap, vec}; +use std::vec; /// Resolve python packages for the specified project. pub async fn resolve_dependencies<'db>( @@ -84,22 +85,30 @@ pub async fn resolve_dependencies<'db>( }; // Resolve the PyPi dependencies - let mut result = resolve( - package_db, - &requirements, - Arc::new(marker_environment), - Some(Arc::new(compatible_tags)), - conda_python_packages + let marker_environment = Arc::new(marker_environment); + let compatible_tags = Arc::new(compatible_tags); + let resolve_options = ResolveOptions { + sdist_resolution, + python_location, + locked_packages: conda_python_packages .into_iter() .map(|p| (p.name.clone(), p)) .collect(), - HashMap::default(), - ResolveOptions { - sdist_resolution, - python_location, - ..Default::default() - }, - HashMap::default(), + ..Default::default() + }; + let mut result = resolve( + package_db.clone(), + &requirements, + marker_environment.clone(), + Some(compatible_tags.clone()), + WheelBuilder::new( + package_db, + marker_environment.clone(), + Some(compatible_tags.clone()), + resolve_options.clone(), + ) + .expect("failed to create wheel builder"), + resolve_options, ) .await .wrap_err("failed to resolve `pypi-dependencies`, due to underlying error")?; diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 98cb86fa3..61037fbb3 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -2,82 +2,319 @@ //! //! See [`resolve_pypi`] and [`resolve_conda`] for more information. +use crate::project::manifest::LibCSystemRequirement; +use crate::project::virtual_packages::{default_glibc_version, default_mac_os_version}; +use crate::pypi_marker_env::determine_marker_environment; +use crate::pypi_tags::is_python_record; use crate::{ lock_file::{pypi, LockedCondaPackages, LockedPypiPackages, PypiRecord}, project::manifest::{PyPiRequirement, SystemRequirements}, }; +use distribution_types::{BuiltDist, Dist, IndexLocations, IndexUrls, Resolution}; use indexmap::IndexMap; use indicatif::ProgressBar; use miette::IntoDiagnostic; -use rattler_conda_types::{GenericVirtualPackage, MatchSpec, Platform, RepoDataRecord}; +use platform_host::{Os, Platform}; +use platform_tags::Tags; +use rattler::install::PythonInfo; +use rattler_conda_types::{Arch, GenericVirtualPackage, MatchSpec, RepoDataRecord, Version}; use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; use rattler_solve::{resolvo, SolverImpl}; -use rip::{index::PackageDb, resolve::solve_options::SDistResolution}; +use std::cmp::min; +use std::path::PathBuf; use std::{path::Path, sync::Arc}; +use uv_cache::Cache; +use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; +use uv_dispatch::BuildDispatch; +use uv_interpreter::Interpreter; +use uv_normalize::PackageName; +use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver}; +use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; + +fn convert_to_uv_platform( + platform: rattler_conda_types::Platform, + system_requirements: SystemRequirements, +) -> miette::Result { + let platform = if platform.is_linux() { + let arch = match platform.arch() { + None => unreachable!("every platform we support has an arch"), + Some(Arch::X86) => platform_host::Arch::X86, + Some(Arch::X86_64) => platform_host::Arch::X86_64, + Some(Arch::Aarch64) => platform_host::Arch::Aarch64, + Some(Arch::ArmV7l) => platform_host::Arch::Armv7L, + Some(Arch::Ppc64le) => platform_host::Arch::Powerpc64Le, + Some(Arch::Ppc64) => platform_host::Arch::Powerpc64, + Some(Arch::S390X) => platform_host::Arch::S390X, + Some(unsupported_arch) => { + miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + } + }; + + // Find the glibc version + match system_requirements + .libc + .as_ref() + .map(LibCSystemRequirement::family_and_version) + { + None => { + let (major, minor) = default_glibc_version() + .as_major_minor() + .expect("expected default glibc version to be a major.minor version"); + Platform::new( + Os::Manylinux { + major: major as _, + minor: minor as _, + }, + arch, + ) + } + Some(("glibc", version)) => { + let Some((major, minor)) = version.as_major_minor() else { + miette::miette!( + "expected glibc version to be a major.minor version, but got '{version}'" + ) + }; + Platform::new( + Os::Manylinux { + major: major as _, + minor: minor as _, + }, + arch, + ) + } + Some((family, _)) => { + return Err(miette::miette!( + "unsupported libc family for pypi packages '{family}'" + )); + } + } + } else if platform.is_windows() { + let arch = match platform.arch() { + None => unreachable!("every platform we support has an arch"), + Some(Arch::X86) => platform_host::Arch::X86, + Some(Arch::X86_64) => platform_host::Arch::X86_64, + Some(Arch::Aarch64) => platform_host::Arch::Aarch64, + Some(unsupported_arch) => { + miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + } + }; + + Platform::new(Os::Windows, arch) + } else if platform.is_osx() { + let Some((major, minor)) = system_requirements + .macos + .unwrap_or_else(default_mac_os_version(platform)) + .as_major_minor() + else { + miette::miette!( + "expected macos version to be a major.minor version, but got '{version}'" + ) + }; + + let arch = match platform.arch() { + None => unreachable!("every platform we support has an arch"), + Some(Arch::X86) => platform_host::Arch::X86, + Some(Arch::X86_64) => platform_host::Arch::X86_64, + Some(Arch::Aarch64) => platform_host::Arch::Aarch64, + Some(unsupported_arch) => { + miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + } + }; + + Platform::new( + Os::Macos { + major: major as _, + minor: minor as _, + }, + arch, + ) + } else { + return Err(miette::miette!( + "unsupported platform for pypi packages {platform}" + )); + }; + + Ok(platform) +} /// This function takes as input a set of dependencies and system requirements and returns a set of /// locked packages. #[allow(clippy::too_many_arguments)] pub async fn resolve_pypi( package_db: Arc, - dependencies: IndexMap>, + dependencies: IndexMap>, system_requirements: SystemRequirements, locked_conda_records: &[RepoDataRecord], _locked_pypi_records: &[PypiRecord], - platform: Platform, + platform: rattler_conda_types::Platform, pb: &ProgressBar, - python_location: Option<&Path>, - sdist_resolution: SDistResolution, + python_info: &PythonInfo, + venv_root: &Path, ) -> miette::Result { // Solve python packages pb.set_message("resolving pypi dependencies"); - let python_artifacts = pypi::resolve_dependencies( - package_db.clone(), - dependencies, - system_requirements, - platform, - locked_conda_records, - python_location, - sdist_resolution, + + let requirements = dependencies + .iter() + .flat_map(|(name, req)| req.iter().map(move |req| (name, req))) + .map(|(name, req)| req.as_pep508(name)) + .collect::>(); + + // Determine the python interpreter that is installed as part of the conda packages. + let python_record = locked_conda_records + .iter() + .find(|r| is_python_record(r)) + .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; + + // Construct the marker environment for the target platform + let marker_environment = determine_marker_environment(platform, python_record.as_ref())?; + + // Construct a fake interpreter from the conda environment. + // TODO: Should we look into using the actual interpreter here? + let interpreter = Interpreter::artificial( + Platform::current().expect("unsupported platform"), + marker_environment.clone(), + venv_root.to_path_buf(), + venv_root.to_path_buf(), + venv_root.join(python_info.path()), + Path::new("invalid").to_path_buf(), + ); + + // Build the wheel tags based on the interpreter, the target platform, and the python version. + let Some(python_version) = python_record.package_record.version.as_major_minor() else { + return Err(miette::miette!( + "expected python version to be a major.minor version, but got '{version}'" + )); + }; + let implementation_name = match python_record.package_record.name.as_normalized() { + "python" => "cpython", + "pypy" => "pypy", + _ => { + return Err(miette::miette!( + "unsupported python implementation '{}'", + python_record.package_record.name.as_source() + )); + } + }; + let target_platform = convert_to_uv_platform(platform, system_requirements)?; + let tags = Tags::from_env( + &target_platform, + ( + python_info.short_version.0 as u8, + python_info.short_version.1 as u8, + ), + implementation_name, + (python_version.0 as u8, python_version.1 as u8), ) - .await?; + .context("failed to determine the python wheel tags for the target platform")?; + + // Construct a cache + // TODO: Figure out the right location + let cache = Cache::temp().with_context("failed to create cache")?; + + // Define where to get packages from + let index_locations = IndexUrls::default(); + + // Construct a registry client + let registry_client = RegistryClientBuilder::new(cache.clone()) + .index_urls(index_locations.clone()) + .connectivity(Connectivity::Online) + .build(); + + // Resolve the flat indexes from `--find-links`. + let flat_index = { + let client = FlatIndexClient::new(®istry_client, &cache); + let entries = client.fetch(index_locations.flat_index()).await?; + FlatIndex::from_entries(entries, tags) + }; + + // Create a shared in-memory index. + let index = InMemoryIndex::default(); + + // Track in-flight downloads, builds, etc., across resolutions. + let in_flight = InFlight::default(); + + let options = Options::default(); + + let build_dispatch = BuildDispatch::new( + ®istry_client, + &cache, + &interpreter, + &index_locations, + &flat_index, + &index, + &in_flight, + interpreter.sys_executable().to_path_buf(), + &SetupPyStrategy::Pep517, + &NoBuild::None, + &NoBinary::None, + ) + .with_options(options.clone()); + + let resolution = Resolver::new( + Manifest::simple(requirements), + Options::default(), + &marker_environment, + &interpreter, + &tags, + ®istry_client, + &flat_index, + index, + &build_dispatch, + ) + .resolve() + .await + .context("failed to resolve pypi dependencies")?; + let resolution = Resolution::from(resolution); // Clear message pb.set_message(""); - // Add pip packages - let mut locked_packages = LockedPypiPackages::with_capacity(python_artifacts.len()); - for python_artifact in python_artifacts { - let (artifact, metadata) = package_db - // No need for a WheelBuilder here since any builds should have been done during the - // [`python::resolve_dependencies`] call. - .get_metadata(&python_artifact.artifacts, None) - .await - .expect("failed to get metadata for a package for which we have already fetched metadata during solving.") - .expect("no metadata for a package for which we have already fetched metadata during solving."); - - let pkg_data = PypiPackageData { - name: python_artifact.name.to_string(), - version: python_artifact.version, - requires_dist: metadata.requires_dist, - requires_python: metadata.requires_python, - url: artifact.url.clone(), - hash: artifact - .hashes - .as_ref() - .and_then(|hash| PackageHashes::from_hashes(None, hash.sha256)), - }; + // let mut locked_packages = LockedPypiPackages::with_capacity(resolution.len()); + // for dist in resolution.into_distributions() { + // let file_location = match dist { + // Dist::Built(BuiltDist::Registry(dist)) => dist, + // Dist::Built(BuiltDist::DirectUrl(dist)) => dist.url.to_url(), + // Dist::Built(BuiltDist::Path(dist)) => dist.url.to_url(), + // // Dist::Source(_) => {} + // } + // } - let pkg_env = PypiPackageEnvironmentData { - extras: python_artifact - .extras - .into_iter() - .map(|e| e.as_str().to_string()) - .collect(), - }; + // // Add pip packages + // let mut locked_packages = LockedPypiPackages::with_capacity(python_artifacts.len()); + // for python_artifact in python_artifacts { + // let (artifact, metadata) = package_db + // // No need for a WheelBuilder here since any builds should have been done during the + // // [`python::resolve_dependencies`] call. + // .get_metadata(&python_artifact.artifacts, None) + // .await + // .expect("failed to get metadata for a package for which we have already fetched metadata during solving.") + // .expect("no metadata for a package for which we have already fetched metadata during solving."); + // + // let pkg_data = PypiPackageData { + // name: python_artifact.name.to_string(), + // version: python_artifact.version, + // requires_dist: metadata.requires_dist, + // requires_python: metadata.requires_python, + // url: artifact.url.clone(), + // hash: artifact + // .hashes + // .as_ref() + // .and_then(|hash| PackageHashes::from_hashes(None, hash.sha256)), + // }; + // + // let pkg_env = PypiPackageEnvironmentData { + // extras: python_artifact + // .extras + // .into_iter() + // .map(|e| e.as_str().to_string()) + // .collect(), + // }; + // + // locked_packages.push((pkg_data, pkg_env)); + // } - locked_packages.push((pkg_data, pkg_env)); - } + let locked_packages = vec![]; Ok(locked_packages) } diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 3c599aa2b..6e1357647 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -35,6 +35,7 @@ use std::{ }; use tokio::sync::Semaphore; use tracing::Instrument; +use uv_interpreter::Interpreter; impl Project { /// Ensures that the lock-file is up-to-date with the project information. @@ -1273,7 +1274,7 @@ async fn spawn_solve_pypi_task( .location() .map(|path| prefix.root().join(path)) .as_deref(), - sdist_resolution, + prefix.root(), ) .await?; diff --git a/src/pypi_tags.rs b/src/pypi_tags.rs index 5f0f609ea..fc44808b0 100644 --- a/src/pypi_tags.rs +++ b/src/pypi_tags.rs @@ -21,7 +21,7 @@ pub fn project_platform_tags( platform: Platform, system_requirements: &SystemRequirements, python_record: &PackageRecord, -) -> WheelTags { +) -> Tags { let platforms = project_platforms(platform, system_requirements); let mut tags = Vec::new(); From 2974cd481d25d5c634e08a37566e757a31c5374e Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 14:21:49 +0100 Subject: [PATCH 02/55] refactor: resolve should work :shrug: --- Cargo.lock | 32 +++++++------ Cargo.toml | 3 +- src/lock_file/resolve.rs | 100 +++++++++++++++++++++------------------ 3 files changed, 75 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76f8fc023..65d76e05d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1747,7 +1747,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -3324,6 +3324,8 @@ dependencies = [ [[package]] name = "rattler_conda_types" version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "085a4ebf784b325311890f7c1dfb9dc017cecb44049cfafef73e02e925e24e22" dependencies = [ "chrono", "fxhash", @@ -3334,8 +3336,8 @@ dependencies = [ "lazy-regex", "nom", "purl", - "rattler_digest 0.18.0", - "rattler_macros 0.18.0", + "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_macros 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex", "serde", "serde_json", @@ -3352,8 +3354,7 @@ dependencies = [ [[package]] name = "rattler_conda_types" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "085a4ebf784b325311890f7c1dfb9dc017cecb44049cfafef73e02e925e24e22" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "chrono", "fxhash", @@ -3364,8 +3365,8 @@ dependencies = [ "lazy-regex", "nom", "purl", - "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rattler_macros 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_digest 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", + "rattler_macros 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", "regex", "serde", "serde_json", @@ -3382,6 +3383,8 @@ dependencies = [ [[package]] name = "rattler_digest" version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e8b55bd7e3c9efa337b59a26964584975c345bf484eca9fb849b65c2674cee" dependencies = [ "blake2", "digest", @@ -3390,13 +3393,13 @@ dependencies = [ "serde", "serde_with", "sha2", + "tokio", ] [[package]] name = "rattler_digest" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e8b55bd7e3c9efa337b59a26964584975c345bf484eca9fb849b65c2674cee" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "blake2", "digest", @@ -3405,12 +3408,12 @@ dependencies = [ "serde", "serde_with", "sha2", - "tokio", ] [[package]] name = "rattler_lock" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "chrono", "fxhash", @@ -3419,8 +3422,8 @@ dependencies = [ "pep440_rs 0.4.0", "pep508_rs", "purl", - "rattler_conda_types 0.18.0", - "rattler_digest 0.18.0", + "rattler_conda_types 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", + "rattler_digest 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", "serde", "serde-json-python-formatter", "serde_json", @@ -3434,6 +3437,8 @@ dependencies = [ [[package]] name = "rattler_macros" version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a96e90500af30b653b0c4e08fa572a6d4dfc821c5e213b510a195987b8ed133" dependencies = [ "quote", "syn 2.0.48", @@ -3442,8 +3447,7 @@ dependencies = [ [[package]] name = "rattler_macros" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a96e90500af30b653b0c4e08fa572a6d4dfc821c5e213b510a195987b8ed133" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "quote", "syn 2.0.48", diff --git a/Cargo.toml b/Cargo.toml index a190fdf6e..9a8bbe383 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -50,7 +50,7 @@ platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } rattler = { version = "0.18.0", default-features = false } rattler_conda_types = { version = "0.18.0", default-features = false } rattler_digest = { version = "0.18.0", default-features = false } -rattler_lock = { path = "../rattler/crates/rattler_lock", default-features = false } +rattler_lock = { version = "0.18.0", default-features = false } rattler_networking = { version = "0.18.0", default-features = false } rattler_repodata_gateway = { version = "0.18.0", default-features = false, features = ["sparse"] } rattler_shell = { version = "0.18.0", default-features = false, features = ["sysinfo"] } @@ -105,6 +105,7 @@ toml = "0.8.10" [patch.crates-io] pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } #rattler = { git = "https://github.com/mamba-org/rattler", branch = "main" } #rattler_conda_types = { git = "https://github.com/mamba-org/rattler", branch = "main" } diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 61037fbb3..90060e8f2 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -10,7 +10,7 @@ use crate::{ lock_file::{pypi, LockedCondaPackages, LockedPypiPackages, PypiRecord}, project::manifest::{PyPiRequirement, SystemRequirements}, }; -use distribution_types::{BuiltDist, Dist, IndexLocations, IndexUrls, Resolution}; +use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, IndexUrls, Resolution}; use indexmap::IndexMap; use indicatif::ProgressBar; use miette::IntoDiagnostic; @@ -22,7 +22,9 @@ use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; use rattler_solve::{resolvo, SolverImpl}; use std::cmp::min; use std::path::PathBuf; +use std::str::FromStr; use std::{path::Path, sync::Arc}; +use url::Url; use uv_cache::Cache; use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; use uv_dispatch::BuildDispatch; @@ -141,7 +143,7 @@ fn convert_to_uv_platform( /// locked packages. #[allow(clippy::too_many_arguments)] pub async fn resolve_pypi( - package_db: Arc, + // package_db: Arc, dependencies: IndexMap>, system_requirements: SystemRequirements, locked_conda_records: &[RepoDataRecord], @@ -270,51 +272,59 @@ pub async fn resolve_pypi( // Clear message pb.set_message(""); - // let mut locked_packages = LockedPypiPackages::with_capacity(resolution.len()); - // for dist in resolution.into_distributions() { - // let file_location = match dist { - // Dist::Built(BuiltDist::Registry(dist)) => dist, - // Dist::Built(BuiltDist::DirectUrl(dist)) => dist.url.to_url(), - // Dist::Built(BuiltDist::Path(dist)) => dist.url.to_url(), - // // Dist::Source(_) => {} - // } - // } + let mut locked_packages = LockedPypiPackages::with_capacity(resolution.len()); + for dist in resolution.into_distributions() { + let pypi_package_data = match dist { + Dist::Built(dist) => { + let (url, hash) = match &dist { + BuiltDist::Registry(dist) => { + let url = match &dist.file.url { + /// Absolute URL. + FileLocation::AbsoluteUrl(url) => { + Url::from_str(url).expect("invalid absolute url") + } + FileLocation::Path(path) => { + Url::from_file_path(path).expect("invalid path") + } + _ => todo!("unsupported URL"), + }; - // // Add pip packages - // let mut locked_packages = LockedPypiPackages::with_capacity(python_artifacts.len()); - // for python_artifact in python_artifacts { - // let (artifact, metadata) = package_db - // // No need for a WheelBuilder here since any builds should have been done during the - // // [`python::resolve_dependencies`] call. - // .get_metadata(&python_artifact.artifacts, None) - // .await - // .expect("failed to get metadata for a package for which we have already fetched metadata during solving.") - // .expect("no metadata for a package for which we have already fetched metadata during solving."); - // - // let pkg_data = PypiPackageData { - // name: python_artifact.name.to_string(), - // version: python_artifact.version, - // requires_dist: metadata.requires_dist, - // requires_python: metadata.requires_python, - // url: artifact.url.clone(), - // hash: artifact - // .hashes - // .as_ref() - // .and_then(|hash| PackageHashes::from_hashes(None, hash.sha256)), - // }; - // - // let pkg_env = PypiPackageEnvironmentData { - // extras: python_artifact - // .extras - // .into_iter() - // .map(|e| e.as_str().to_string()) - // .collect(), - // }; - // - // locked_packages.push((pkg_data, pkg_env)); - // } + let hash = match (dist.file.hashes.sha256, dist.file.hashes.md5) { + (Some(sha256), None) => Some(PackageHashes::Sha256(sha256)), + (None, Some(md5)) => Some(PackageHashes::Md5(md5)), + (Some(sha256), Some(md5)) => { + Some(PackageHashes::Md5Sha256(md5, sha256)) + } + (None, None) => None, + }; - let locked_packages = vec![]; + (url, hash) + } + BuiltDist::DirectUrl(dist) => (dist.url.to_url(), None), + BuiltDist::Path(dist) => (dist.url.to_url(), None), + }; + + let metadata = registry_client + .wheel_metadata(&dist) + .await + .expect("failed to get wheel metadata"); + PypiPackageData { + name: metadata.name, + version: metadata.version, + requires_dist: metadata.requires_dist, + requires_python: metadata.requires_python, + url, + hash, + } + } + Dist::Source(_) => { + todo!("source dists not yet supported"); + } + }; + + // TODO: Store extras in the lock-file + locked_packages.push((pypi_package_data, PypiPackageEnvironmentData::default())); + } Ok(locked_packages) } From be5cb9bbbca930a77089e987544fc588ea2303ff Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 14:26:01 +0100 Subject: [PATCH 03/55] fix: use git reference for all rattler --- Cargo.lock | 110 ++++++++++++----------------------------------------- Cargo.toml | 19 +++++---- 2 files changed, 33 insertions(+), 96 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 65d76e05d..24a6c8cf5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2939,8 +2939,8 @@ dependencies = [ "platform-host", "platform-tags", "rattler", - "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_conda_types", + "rattler_digest", "rattler_lock", "rattler_networking", "rattler_repodata_gateway", @@ -3278,8 +3278,7 @@ dependencies = [ [[package]] name = "rattler" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66646eab0e70a01b8cf372e10e57a5022f8d111b18870078d2e186f6938f0c5c" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "anyhow", "async-compression", @@ -3299,8 +3298,8 @@ dependencies = [ "nom", "once_cell", "pin-project-lite", - "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_conda_types", + "rattler_digest", "rattler_networking", "rattler_package_streaming", "reflink-copy", @@ -3321,36 +3320,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "rattler_conda_types" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "085a4ebf784b325311890f7c1dfb9dc017cecb44049cfafef73e02e925e24e22" -dependencies = [ - "chrono", - "fxhash", - "glob", - "hex", - "indexmap 2.2.2", - "itertools", - "lazy-regex", - "nom", - "purl", - "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rattler_macros 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex", - "serde", - "serde_json", - "serde_repr", - "serde_with", - "serde_yaml", - "smallvec", - "strum", - "thiserror", - "tracing", - "url", -] - [[package]] name = "rattler_conda_types" version = "0.18.0" @@ -3365,8 +3334,8 @@ dependencies = [ "lazy-regex", "nom", "purl", - "rattler_digest 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", - "rattler_macros 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", + "rattler_digest", + "rattler_macros", "regex", "serde", "serde_json", @@ -3380,22 +3349,6 @@ dependencies = [ "url", ] -[[package]] -name = "rattler_digest" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e8b55bd7e3c9efa337b59a26964584975c345bf484eca9fb849b65c2674cee" -dependencies = [ - "blake2", - "digest", - "hex", - "md-5", - "serde", - "serde_with", - "sha2", - "tokio", -] - [[package]] name = "rattler_digest" version = "0.18.0" @@ -3408,6 +3361,7 @@ dependencies = [ "serde", "serde_with", "sha2", + "tokio", ] [[package]] @@ -3422,8 +3376,8 @@ dependencies = [ "pep440_rs 0.4.0", "pep508_rs", "purl", - "rattler_conda_types 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", - "rattler_digest 0.18.0 (git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844)", + "rattler_conda_types", + "rattler_digest", "serde", "serde-json-python-formatter", "serde_json", @@ -3434,16 +3388,6 @@ dependencies = [ "uv-normalize", ] -[[package]] -name = "rattler_macros" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a96e90500af30b653b0c4e08fa572a6d4dfc821c5e213b510a195987b8ed133" -dependencies = [ - "quote", - "syn 2.0.48", -] - [[package]] name = "rattler_macros" version = "0.18.0" @@ -3456,8 +3400,7 @@ dependencies = [ [[package]] name = "rattler_networking" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc36da705ddde163d228bb140eecf521b390716b83db943a43f6606b31954b1" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "anyhow", "async-trait", @@ -3485,16 +3428,15 @@ dependencies = [ [[package]] name = "rattler_package_streaming" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27f4784ab14191fb9ae0218979f2ccee0f8cb1ca5c82440c7f38e0fd83808d6" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "bzip2", "chrono", "futures-util", "itertools", "num_cpus", - "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_conda_types", + "rattler_digest", "rattler_networking", "reqwest", "reqwest-middleware", @@ -3512,8 +3454,7 @@ dependencies = [ [[package]] name = "rattler_repodata_gateway" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dbcfb255c1dc4e053c2fcac724d2ce404ec40056dea0a50c9f6d949c0a47a80" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "anyhow", "async-compression", @@ -3531,8 +3472,8 @@ dependencies = [ "memmap2", "ouroboros", "pin-project-lite", - "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_conda_types", + "rattler_digest", "rattler_networking", "reqwest", "reqwest-middleware", @@ -3552,13 +3493,12 @@ dependencies = [ [[package]] name = "rattler_shell" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abda3f6112eae2afef9e6b3bc88582c884c1c04765a4b9d7bcf2acb706eaded3" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "enum_dispatch", "indexmap 2.2.2", "itertools", - "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_conda_types", "serde_json", "shlex", "sysinfo", @@ -3570,16 +3510,15 @@ dependencies = [ [[package]] name = "rattler_solve" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7f6035ffc8b6361917d50df6db53cb1002b2042eb6c2bd509dbb5697bbcca1" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "anyhow", "chrono", "futures", "hex", "itertools", - "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rattler_digest 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_conda_types", + "rattler_digest", "resolvo", "serde", "tempfile", @@ -3591,15 +3530,14 @@ dependencies = [ [[package]] name = "rattler_virtual_packages" version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d1748ab835be1aab75c6a055889cded915b0e70b6787bd46e0abf9a8ba65a5" +source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" dependencies = [ "cfg-if", "libloading", "nom", "once_cell", "plist", - "rattler_conda_types 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rattler_conda_types", "regex", "serde", "thiserror", diff --git a/Cargo.toml b/Cargo.toml index 9a8bbe383..aebb37874 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,17 +105,16 @@ toml = "0.8.10" [patch.crates-io] pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -#rattler = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_conda_types = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_digest = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_lock = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_networking = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_repodata_gateway = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_shell = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_solve = { git = "https://github.com/mamba-org/rattler", branch = "main" } -#rattler_virtual_packages = { git = "https://github.com/mamba-org/rattler", branch = "main" } +rattler = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } #rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rattler_installs_packages", branch = "main"} #resolvo = { git = "https://github.com/mamba-org/resolvo.git", branch = "main" } #deno_task_shell = { path = "../deno_task_shell" } From 6f0694db554b310ba5b7a9da78d3dc36423fec40 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 14:44:38 +0100 Subject: [PATCH 04/55] refactor: rip removal --- Cargo.toml | 18 +- src/cli/add.rs | 6 +- src/cli/info.rs | 2 +- src/cli/remove.rs | 4 +- src/lock_file/package_identifier.rs | 51 +--- src/lock_file/pypi.rs | 2 +- src/lock_file/records_by_name.rs | 12 +- src/lock_file/resolve.rs | 194 +++------------ src/lock_file/satisfiability.rs | 12 +- src/project/environment.rs | 2 +- src/project/grouped_environment.rs | 2 +- src/project/manifest/feature.rs | 4 +- src/project/manifest/mod.rs | 12 +- src/project/manifest/python.rs | 22 +- src/project/manifest/target.rs | 4 +- src/project/mod.rs | 2 +- src/project/solve_group.rs | 2 +- src/pypi_tags.rs | 372 +++++++++------------------- 18 files changed, 208 insertions(+), 515 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index aebb37874..e0bbbe8af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -106,15 +106,15 @@ toml = "0.8.10" pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -rattler = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev="d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } #rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rattler_installs_packages", branch = "main"} #resolvo = { git = "https://github.com/mamba-org/resolvo.git", branch = "main" } #deno_task_shell = { path = "../deno_task_shell" } diff --git a/src/cli/add.rs b/src/cli/add.rs index ced94b1fd..d85d2396e 100644 --- a/src/cli/add.rs +++ b/src/cli/add.rs @@ -158,11 +158,11 @@ pub async fn execute(args: Args) -> miette::Result<()> { let specs = pep508_requirements .into_iter() .map(|req| { - let name = rip::types::PackageName::from_str(req.name.as_str())?; + let name = req.name.clone(); let requirement = PyPiRequirement::from(req); Ok((name, requirement)) }) - .collect::, rip::types::ParsePackageNameError>>() + .collect::, uv_normalize::InvalidNameError>>() .into_diagnostic()?; add_pypi_specs_to_project( @@ -208,7 +208,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { pub async fn add_pypi_specs_to_project( project: &mut Project, - specs: Vec<(rip::types::PackageName, PyPiRequirement)>, + specs: Vec<(uv_normalize::PackageName, PyPiRequirement)>, specs_platforms: &Vec, no_update_lockfile: bool, no_install: bool, diff --git a/src/cli/info.rs b/src/cli/info.rs index 4f643eaa3..4c834eb82 100644 --- a/src/cli/info.rs +++ b/src/cli/info.rs @@ -315,7 +315,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { pypi_dependencies: env .pypi_dependencies(Some(Platform::current())) .into_iter() - .map(|(name, _p)| name.as_str().to_string()) + .map(|(name, _p)| name.to_string()) .collect(), platforms: env.platforms().into_iter().collect(), channels: env diff --git a/src/cli/remove.rs b/src/cli/remove.rs index 34a30fd4f..0afc4ec0a 100644 --- a/src/cli/remove.rs +++ b/src/cli/remove.rs @@ -88,14 +88,14 @@ pub async fn execute(args: Args) -> miette::Result<()> { } let mut sucessful_output: Vec = Vec::with_capacity(deps.len()); if args.pypi { - let all_pkg_name = convert_pkg_name::(&deps)?; + let all_pkg_name = convert_pkg_name::(&deps)?; for dep in all_pkg_name.iter() { let (name, req) = project .manifest .remove_pypi_dependency(dep, args.platform, &feature_name)?; sucessful_output.push(format_ok_message( - name.as_str(), + name.as_ref(), &req.to_string(), &table_name, )); diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index 48862889a..b2b0c670c 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -2,18 +2,17 @@ use super::pypi_name_mapping; use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{PackageUrl, RepoDataRecord}; use rattler_lock::CondaPackage; -use rip::resolve::PinnedPackage; -use rip::types::{Extra, NormalizedPackageName, ParsePackageNameError}; use std::{collections::HashSet, str::FromStr}; use thiserror::Error; +use uv_normalize::{ExtraName, InvalidNameError, PackageName}; /// Defines information about a Pypi package extracted from either a python package or from a /// conda package. #[derive(Debug)] pub struct PypiPackageIdentifier { - pub name: NormalizedPackageName, + pub name: uv_normalize::PackageName, pub version: pep440_rs::Version, - pub extras: HashSet, + pub extras: HashSet, } impl PypiPackageIdentifier { @@ -39,19 +38,10 @@ impl PypiPackageIdentifier { pub fn from_locked_pypi_dependency( package: &rattler_lock::PypiPackage, ) -> Result { - let name = NormalizedPackageName::from_str(&package.data().package.name) - .map_err(|e| ConversionError::PackageName(package.data().package.name.clone(), e))?; - let version = package.data().package.version.clone(); - let extras = package - .extras() - .iter() - .map(|e| Extra::from_str(e).map_err(|_| ConversionError::Extra(e.clone()))) - .collect::>()?; - Ok(Self { - name, - version, - extras, + name: package.data().package.name.clone(), + version: package.data().package.version.clone(), + extras: package.extras().iter().collect(), }) } @@ -77,7 +67,7 @@ impl PypiPackageIdentifier { if !has_pypi_purl && pypi_name_mapping::is_conda_forge_url(package.url()) { // Convert the conda package names to pypi package names. If the conversion fails we // just assume that its not a valid python package. - let name = NormalizedPackageName::from_str(record.name.as_normalized()).ok(); + let name = PackageName::from_str(record.name.as_normalized()).ok(); let version = pep440_rs::Version::from_str(&record.version.as_str()).ok(); if let (Some(name), Some(version)) = (name, version) { result.push(PypiPackageIdentifier { @@ -113,7 +103,7 @@ impl PypiPackageIdentifier { if !has_pypi_purl && pypi_name_mapping::is_conda_forge_record(record) { // Convert the conda package names to pypi package names. If the conversion fails we // just assume that its not a valid python package. - let name = NormalizedPackageName::from_str(record.package_record.name.as_source()).ok(); + let name = PackageName::from_str(record.package_record.name.as_source()).ok(); let version = pep440_rs::Version::from_str(&record.package_record.version.as_str()).ok(); if let (Some(name), Some(version)) = (name, version) { @@ -162,7 +152,7 @@ impl PypiPackageIdentifier { ) -> Result { assert_eq!(package_url.package_type(), "pypi"); let name = package_url.name(); - let name = NormalizedPackageName::from_str(name) + let name = PackageName::from_str(name) .map_err(|e| ConversionError::PackageName(name.to_string(), e))?; let version_str = package_url.version().unwrap_or(fallback_version); let version = pep440_rs::Version::from_str(version_str) @@ -179,14 +169,8 @@ impl PypiPackageIdentifier { } pub fn satisfies(&self, requirement: &Requirement) -> bool { - // Parse the name of the requirement. If the name cannot be parsed to a normalized package - // the names will also not match. - let Ok(req_name) = NormalizedPackageName::from_str(&requirement.name) else { - return false; - }; - // Verify the name of the package - if self.name != req_name { + if self.name != requirement.name { return false; } @@ -217,7 +201,7 @@ impl PypiPackageIdentifier { #[derive(Error, Debug)] pub enum ConversionError { #[error("'{0}' is not a valid python package name")] - PackageName(String, #[source] ParsePackageNameError), + PackageName(String, #[source] InvalidNameError), #[error("'{0}' is not a valid python version")] Version(String), @@ -225,16 +209,3 @@ pub enum ConversionError { #[error("'{0}' is not a valid python extra")] Extra(String), } - -impl From for PinnedPackage { - fn from(value: PypiPackageIdentifier) -> Self { - PinnedPackage { - name: value.name, - version: value.version, - extras: value.extras, - // We are not aware of artifacts for conda python packages. - artifacts: vec![], - url: None, - } - } -} diff --git a/src/lock_file/pypi.rs b/src/lock_file/pypi.rs index f88f635fe..030c4627e 100644 --- a/src/lock_file/pypi.rs +++ b/src/lock_file/pypi.rs @@ -11,7 +11,7 @@ use rip::index::PackageDb; use rip::python_env::PythonLocation; use rip::resolve::solve_options::{ResolveOptions, SDistResolution}; use rip::resolve::{resolve, PinnedPackage}; -use rip::types::PackageName; +use uv_normalize::PackageName; use rip::wheel_builder::WheelBuilder; use std::path::Path; use std::sync::Arc; diff --git a/src/lock_file/records_by_name.rs b/src/lock_file/records_by_name.rs index 30194068e..875401480 100644 --- a/src/lock_file/records_by_name.rs +++ b/src/lock_file/records_by_name.rs @@ -109,14 +109,14 @@ impl RepoDataRecordsByName { #[derive(Clone, Debug, Default)] pub struct PypiRecordsByName { pub records: Vec, - by_name: HashMap, + by_name: HashMap, } impl PypiRecordsByName { /// Returns the record with the given name or `None` if no such record exists. pub fn by_name(&self, key: &Q) -> Option<&PypiRecord> where - rip::types::PackageName: Borrow, + uv_normalize::PackageName: Borrow, Q: Hash + Eq, { self.by_name.get(key).map(|idx| &self.records[*idx]) @@ -135,7 +135,7 @@ impl PypiRecordsByName { let mut by_name = HashMap::with_capacity(min_size); let mut records = Vec::with_capacity(min_size); for record in iter { - let Ok(package_name) = rip::types::PackageName::from_str(&record.0.name) else { + let Ok(package_name) = uv_normalize::PackageName::from_str(&record.0.name) else { continue; }; match by_name.entry(package_name) { @@ -161,8 +161,8 @@ impl PypiRecordsByName { /// names and recursively their dependencies. pub fn subset( &self, - package_names: impl IntoIterator, - conda_package_identifiers: &HashMap, + package_names: impl IntoIterator, + conda_package_identifiers: &HashMap, ) -> Self { let mut queue = package_names.into_iter().collect::>(); let mut queued_names = queue.iter().cloned().collect::>(); @@ -180,7 +180,7 @@ impl PypiRecordsByName { // Find all the dependencies of the package and add them to the queue for dependency in found_package.0.requires_dist.iter() { - let Ok(dependency_name) = rip::types::PackageName::from_str(&dependency.name) + let Ok(dependency_name) = uv_normalize::PackageName::from_str(&dependency.name) else { continue; }; diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 90060e8f2..d20a41709 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -2,143 +2,34 @@ //! //! See [`resolve_pypi`] and [`resolve_conda`] for more information. -use crate::project::manifest::LibCSystemRequirement; -use crate::project::virtual_packages::{default_glibc_version, default_mac_os_version}; +use crate::consts::PROJECT_MANIFEST; use crate::pypi_marker_env::determine_marker_environment; -use crate::pypi_tags::is_python_record; +use crate::pypi_tags::{get_pypi_tags, is_python_record}; use crate::{ - lock_file::{pypi, LockedCondaPackages, LockedPypiPackages, PypiRecord}, + lock_file::{LockedCondaPackages, LockedPypiPackages, PypiRecord}, project::manifest::{PyPiRequirement, SystemRequirements}, }; -use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, IndexUrls, Resolution}; +use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, Resolution}; use indexmap::IndexMap; use indicatif::ProgressBar; -use miette::IntoDiagnostic; -use platform_host::{Os, Platform}; -use platform_tags::Tags; +use miette::{Context, IntoDiagnostic}; +use platform_host::{ Platform}; use rattler::install::PythonInfo; -use rattler_conda_types::{Arch, GenericVirtualPackage, MatchSpec, RepoDataRecord, Version}; +use rattler_conda_types::{ GenericVirtualPackage, MatchSpec, RepoDataRecord}; +use rattler_digest::{parse_digest_from_hex, Md5, Sha256}; use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; use rattler_solve::{resolvo, SolverImpl}; -use std::cmp::min; -use std::path::PathBuf; use std::str::FromStr; -use std::{path::Path, sync::Arc}; +use std::{path::Path}; use url::Url; use uv_cache::Cache; -use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; +use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder}; use uv_dispatch::BuildDispatch; use uv_interpreter::Interpreter; use uv_normalize::PackageName; use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver}; use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; -fn convert_to_uv_platform( - platform: rattler_conda_types::Platform, - system_requirements: SystemRequirements, -) -> miette::Result { - let platform = if platform.is_linux() { - let arch = match platform.arch() { - None => unreachable!("every platform we support has an arch"), - Some(Arch::X86) => platform_host::Arch::X86, - Some(Arch::X86_64) => platform_host::Arch::X86_64, - Some(Arch::Aarch64) => platform_host::Arch::Aarch64, - Some(Arch::ArmV7l) => platform_host::Arch::Armv7L, - Some(Arch::Ppc64le) => platform_host::Arch::Powerpc64Le, - Some(Arch::Ppc64) => platform_host::Arch::Powerpc64, - Some(Arch::S390X) => platform_host::Arch::S390X, - Some(unsupported_arch) => { - miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") - } - }; - - // Find the glibc version - match system_requirements - .libc - .as_ref() - .map(LibCSystemRequirement::family_and_version) - { - None => { - let (major, minor) = default_glibc_version() - .as_major_minor() - .expect("expected default glibc version to be a major.minor version"); - Platform::new( - Os::Manylinux { - major: major as _, - minor: minor as _, - }, - arch, - ) - } - Some(("glibc", version)) => { - let Some((major, minor)) = version.as_major_minor() else { - miette::miette!( - "expected glibc version to be a major.minor version, but got '{version}'" - ) - }; - Platform::new( - Os::Manylinux { - major: major as _, - minor: minor as _, - }, - arch, - ) - } - Some((family, _)) => { - return Err(miette::miette!( - "unsupported libc family for pypi packages '{family}'" - )); - } - } - } else if platform.is_windows() { - let arch = match platform.arch() { - None => unreachable!("every platform we support has an arch"), - Some(Arch::X86) => platform_host::Arch::X86, - Some(Arch::X86_64) => platform_host::Arch::X86_64, - Some(Arch::Aarch64) => platform_host::Arch::Aarch64, - Some(unsupported_arch) => { - miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") - } - }; - - Platform::new(Os::Windows, arch) - } else if platform.is_osx() { - let Some((major, minor)) = system_requirements - .macos - .unwrap_or_else(default_mac_os_version(platform)) - .as_major_minor() - else { - miette::miette!( - "expected macos version to be a major.minor version, but got '{version}'" - ) - }; - - let arch = match platform.arch() { - None => unreachable!("every platform we support has an arch"), - Some(Arch::X86) => platform_host::Arch::X86, - Some(Arch::X86_64) => platform_host::Arch::X86_64, - Some(Arch::Aarch64) => platform_host::Arch::Aarch64, - Some(unsupported_arch) => { - miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") - } - }; - - Platform::new( - Os::Macos { - major: major as _, - minor: minor as _, - }, - arch, - ) - } else { - return Err(miette::miette!( - "unsupported platform for pypi packages {platform}" - )); - }; - - Ok(platform) -} - /// This function takes as input a set of dependencies and system requirements and returns a set of /// locked packages. #[allow(clippy::too_many_arguments)] @@ -182,52 +73,32 @@ pub async fn resolve_pypi( Path::new("invalid").to_path_buf(), ); - // Build the wheel tags based on the interpreter, the target platform, and the python version. - let Some(python_version) = python_record.package_record.version.as_major_minor() else { - return Err(miette::miette!( - "expected python version to be a major.minor version, but got '{version}'" - )); - }; - let implementation_name = match python_record.package_record.name.as_normalized() { - "python" => "cpython", - "pypy" => "pypy", - _ => { - return Err(miette::miette!( - "unsupported python implementation '{}'", - python_record.package_record.name.as_source() - )); - } - }; - let target_platform = convert_to_uv_platform(platform, system_requirements)?; - let tags = Tags::from_env( - &target_platform, - ( - python_info.short_version.0 as u8, - python_info.short_version.1 as u8, - ), - implementation_name, - (python_version.0 as u8, python_version.1 as u8), - ) - .context("failed to determine the python wheel tags for the target platform")?; + // Determine the tags + let tags = get_pypi_tags(platform, system_requirements, python_record.as_ref())?; // Construct a cache // TODO: Figure out the right location - let cache = Cache::temp().with_context("failed to create cache")?; + let cache = Cache::temp() + .into_diagnostic() + .context("failed to create cache")?; // Define where to get packages from - let index_locations = IndexUrls::default(); + let index_locations = IndexLocations::default(); // Construct a registry client let registry_client = RegistryClientBuilder::new(cache.clone()) - .index_urls(index_locations.clone()) + .index_urls(index_locations.index_urls()) .connectivity(Connectivity::Online) .build(); // Resolve the flat indexes from `--find-links`. let flat_index = { let client = FlatIndexClient::new(®istry_client, &cache); - let entries = client.fetch(index_locations.flat_index()).await?; - FlatIndex::from_entries(entries, tags) + let entries = client + .fetch(index_locations.flat_index()) + .await + .into_diagnostic()?; + FlatIndex::from_entries(entries, &tags) }; // Create a shared in-memory index. @@ -247,7 +118,7 @@ pub async fn resolve_pypi( &index, &in_flight, interpreter.sys_executable().to_path_buf(), - &SetupPyStrategy::Pep517, + SetupPyStrategy::Pep517, &NoBuild::None, &NoBinary::None, ) @@ -261,11 +132,12 @@ pub async fn resolve_pypi( &tags, ®istry_client, &flat_index, - index, + &index, &build_dispatch, ) .resolve() .await + .into_diagnostic() .context("failed to resolve pypi dependencies")?; let resolution = Resolution::from(resolution); @@ -279,7 +151,6 @@ pub async fn resolve_pypi( let (url, hash) = match &dist { BuiltDist::Registry(dist) => { let url = match &dist.file.url { - /// Absolute URL. FileLocation::AbsoluteUrl(url) => { Url::from_str(url).expect("invalid absolute url") } @@ -289,12 +160,17 @@ pub async fn resolve_pypi( _ => todo!("unsupported URL"), }; - let hash = match (dist.file.hashes.sha256, dist.file.hashes.md5) { - (Some(sha256), None) => Some(PackageHashes::Sha256(sha256)), - (None, Some(md5)) => Some(PackageHashes::Md5(md5)), - (Some(sha256), Some(md5)) => { - Some(PackageHashes::Md5Sha256(md5, sha256)) + let hash = match (&dist.file.hashes.sha256, &dist.file.hashes.md5) { + (Some(sha256), None) => Some(PackageHashes::Sha256( + parse_digest_from_hex::(sha256).expect("invalid sha256"), + )), + (None, Some(md5)) => { + Some(PackageHashes::Md5(parse_digest_from_hex::(md5).expect("invalid md5"))) } + (Some(sha256), Some(md5)) => Some(PackageHashes::Md5Sha256( + parse_digest_from_hex::(md5).expect("invalid md5"), + parse_digest_from_hex::(sha256).expect("invalid sha256"), + )), (None, None) => None, }; diff --git a/src/lock_file/satisfiability.rs b/src/lock_file/satisfiability.rs index 3068c66a6..5aa34b6d5 100644 --- a/src/lock_file/satisfiability.rs +++ b/src/lock_file/satisfiability.rs @@ -9,7 +9,6 @@ use pep440_rs::VersionSpecifiers; use pep508_rs::Requirement; use rattler_conda_types::{MatchSpec, ParseMatchSpecError, Platform}; use rattler_lock::{CondaPackage, Package, PypiPackage}; -use rip::types::NormalizedPackageName; use std::{ collections::{HashMap, HashSet}, str::FromStr, @@ -298,18 +297,9 @@ pub fn verify_pypi_platform_satisfiability( // Iterate over all the requirements and find a packages that match the requirements. while let Some((requirement, source)) = requirements.pop() { - // Convert the name to a normalized string. If the name is not valid, we also won't be able - // to satisfy the requirement. - let Ok(name) = NormalizedPackageName::from_str(requirement.name.as_str()) else { - return Err(PlatformUnsat::UnsatisfiableRequirement( - requirement, - source.to_string(), - )); - }; - // Look-up the identifier that matches the requirement let matched_package = name_to_package_identifiers - .get(&name) + .get(&requirement.name) .into_iter() .flat_map(|idxs| idxs.iter().map(|idx| &package_identifiers[*idx])) .find(|(identifier, _pypi_package_idx)| identifier.satisfies(&requirement)); diff --git a/src/project/environment.rs b/src/project/environment.rs index 4c278ddcb..328e9e367 100644 --- a/src/project/environment.rs +++ b/src/project/environment.rs @@ -279,7 +279,7 @@ impl<'p> Environment<'p> { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { self.features(true) .filter_map(|f| f.pypi_dependencies(platform)) .fold(IndexMap::default(), |mut acc, deps| { diff --git a/src/project/grouped_environment.rs b/src/project/grouped_environment.rs index 1c1a1a515..3e199fb4f 100644 --- a/src/project/grouped_environment.rs +++ b/src/project/grouped_environment.rs @@ -106,7 +106,7 @@ impl<'p> GroupedEnvironment<'p> { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { match self { GroupedEnvironment::Group(group) => group.pypi_dependencies(platform), GroupedEnvironment::Environment(env) => env.pypi_dependencies(platform), diff --git a/src/project/manifest/feature.rs b/src/project/manifest/feature.rs index a629326e1..02d375768 100644 --- a/src/project/manifest/feature.rs +++ b/src/project/manifest/feature.rs @@ -174,7 +174,7 @@ impl Feature { pub fn pypi_dependencies( &self, platform: Option, - ) -> Option>> { + ) -> Option>> { self.targets .resolve(platform) // Get the targets in reverse order, from least specific to most specific. @@ -245,7 +245,7 @@ impl<'de> Deserialize<'de> for Feature { build_dependencies: Option>, #[serde(default)] - pypi_dependencies: Option>, + pypi_dependencies: Option>, /// Additional information to activate an environment. #[serde(default)] diff --git a/src/project/manifest/mod.rs b/src/project/manifest/mod.rs index 276b01487..41edb2252 100644 --- a/src/project/manifest/mod.rs +++ b/src/project/manifest/mod.rs @@ -369,7 +369,7 @@ impl Manifest { pub fn add_pypi_dependency( &mut self, - name: &rip::types::PackageName, + name: &uv_normalize::PackageName, requirement: &PyPiRequirement, platform: Option, ) -> miette::Result<()> { @@ -430,10 +430,10 @@ impl Manifest { /// Removes a pypi dependency from `pixi.toml`. pub fn remove_pypi_dependency( &mut self, - dep: &rip::types::PackageName, + dep: &uv_normalize::PackageName, platform: Option, feature_name: &FeatureName, - ) -> miette::Result<(rip::types::PackageName, PyPiRequirement)> { + ) -> miette::Result<(uv_normalize::PackageName, PyPiRequirement)> { get_or_insert_toml_table( &mut self.document, platform, @@ -921,7 +921,7 @@ impl<'de> Deserialize<'de> for ProjectManifest { build_dependencies: Option>, #[serde(default)] - pypi_dependencies: Option>, + pypi_dependencies: Option>, /// Additional information to activate an environment. #[serde(default)] @@ -1445,7 +1445,7 @@ mod tests { ) { let mut manifest = Manifest::from_str(Path::new(""), file_contents).unwrap(); - let package_name = rip::types::PackageName::from_str(name).unwrap(); + let package_name = uv_normalize::PackageName::from_str(name).unwrap(); // Initially the dependency should exist assert!(manifest @@ -2133,7 +2133,7 @@ platforms = ["linux-64", "win-64"] .as_ref() .unwrap() .get( - &rip::types::PackageName::from_str("torch") + &uv_normalize::PackageName::from_str("torch") .expect("torch should be a valid name") ) .expect("pypi requirement should be available") diff --git a/src/project/manifest/python.rs b/src/project/manifest/python.rs index 33051949c..93a054629 100644 --- a/src/project/manifest/python.rs +++ b/src/project/manifest/python.rs @@ -15,7 +15,7 @@ pub struct PyPiRequirement { #[derive(Debug, Clone, Error)] pub enum ParsePyPiRequirementError { #[error("invalid pep440 version specifier")] - Pep440Error(#[from] pep440_rs::Pep440Error), + Pep440Error(#[from] pep440_rs::VersionParseError), #[error("empty string is not allowed, did you mean '*'?")] EmptyStringNotAllowed, @@ -120,7 +120,7 @@ impl From for PyPiRequirement { impl PyPiRequirement { /// Returns the requirements as [`pep508_rs::Requirement`]s. - pub fn as_pep508(&self, name: &rip::types::PackageName) -> pep508_rs::Requirement { + pub fn as_pep508(&self, name: &uv_normalize::PackageName) -> pep508_rs::Requirement { pep508_rs::Requirement { name: name.as_str().to_string(), extras: self.extras.clone(), @@ -188,11 +188,11 @@ mod tests { #[test] fn test_only_version() { - let requirement: IndexMap = + let requirement: IndexMap = toml_edit::de::from_str(r#"foo = ">=3.12""#).unwrap(); assert_eq!( requirement.first().unwrap().0, - &rip::types::PackageName::from_str("foo").unwrap() + &uv_normalize::PackageName::from_str("foo").unwrap() ); assert_eq!( requirement.first().unwrap().1, @@ -202,7 +202,7 @@ mod tests { index: None, } ); - let requirement: IndexMap = + let requirement: IndexMap = toml_edit::de::from_str(r#"foo = "==3.12.0""#).unwrap(); assert_eq!( requirement.first().unwrap().1, @@ -213,7 +213,7 @@ mod tests { } ); - let requirement: IndexMap = + let requirement: IndexMap = toml_edit::de::from_str(r#"foo = "~=2.1.3""#).unwrap(); assert_eq!( requirement.first().unwrap().1, @@ -224,7 +224,7 @@ mod tests { } ); - let requirement: IndexMap = + let requirement: IndexMap = toml_edit::de::from_str(r#"foo = "*""#).unwrap(); assert_eq!( requirement.first().unwrap().1, @@ -238,7 +238,7 @@ mod tests { #[test] fn test_extended() { - let requirement: IndexMap = + let requirement: IndexMap = toml_edit::de::from_str( r#" foo = { version=">=3.12", extras = ["bar"], index = "artifact-registry" } @@ -248,7 +248,7 @@ mod tests { assert_eq!( requirement.first().unwrap().0, - &rip::types::PackageName::from_str("foo").unwrap() + &uv_normalize::PackageName::from_str("foo").unwrap() ); assert_eq!( requirement.first().unwrap().1, @@ -259,14 +259,14 @@ mod tests { } ); - let requirement: IndexMap = + let requirement: IndexMap = toml_edit::de::from_str( r#"bar = { version=">=3.12,<3.13.0", extras = ["bar", "foo"] }"#, ) .unwrap(); assert_eq!( requirement.first().unwrap().0, - &rip::types::PackageName::from_str("bar").unwrap() + &uv_normalize::PackageName::from_str("bar").unwrap() ); assert_eq!( requirement.first().unwrap().1, diff --git a/src/project/manifest/target.rs b/src/project/manifest/target.rs index 5dbe2d429..f907416ee 100644 --- a/src/project/manifest/target.rs +++ b/src/project/manifest/target.rs @@ -23,7 +23,7 @@ pub struct Target { pub dependencies: HashMap>, /// Specific python dependencies - pub pypi_dependencies: Option>, + pub pypi_dependencies: Option>, /// Additional information to activate an environment. pub activation: Option, @@ -190,7 +190,7 @@ impl<'de> Deserialize<'de> for Target { build_dependencies: Option>, #[serde(default)] - pypi_dependencies: Option>, + pypi_dependencies: Option>, /// Additional information to activate an environment. #[serde(default)] diff --git a/src/project/mod.rs b/src/project/mod.rs index 0813eb1fb..9a3def4c2 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -357,7 +357,7 @@ impl Project { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { self.default_environment().pypi_dependencies(platform) } diff --git a/src/project/solve_group.rs b/src/project/solve_group.rs index f6dc2228b..92bbf7066 100644 --- a/src/project/solve_group.rs +++ b/src/project/solve_group.rs @@ -116,7 +116,7 @@ impl<'p> SolveGroup<'p> { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { self.features(true) .filter_map(|f| f.pypi_dependencies(platform)) .fold(IndexMap::default(), |mut acc, deps| { diff --git a/src/pypi_tags.rs b/src/pypi_tags.rs index fc44808b0..542ff0047 100644 --- a/src/pypi_tags.rs +++ b/src/pypi_tags.rs @@ -1,7 +1,9 @@ use crate::project::manifest::{LibCSystemRequirement, SystemRequirements}; use crate::project::virtual_packages::{default_glibc_version, default_mac_os_version}; use itertools::Itertools; -use rattler_conda_types::{PackageRecord, Platform, Version}; +use platform_host::Os; +use platform_tags::Tags; +use rattler_conda_types::{Arch, PackageRecord, Platform, Version}; use rip::python_env::{WheelTag, WheelTags}; use std::str::FromStr; @@ -16,282 +18,136 @@ pub fn package_name_is_python(record: &rattler_conda_types::PackageName) -> bool record.as_normalized() == "python" } -/// Returns the compatible tags for the project on the given platform with the given python package. -pub fn project_platform_tags( +pub fn get_pypi_tags( platform: Platform, - system_requirements: &SystemRequirements, + system_requirements: SystemRequirements, python_record: &PackageRecord, -) -> Tags { - let platforms = project_platforms(platform, system_requirements); - - let mut tags = Vec::new(); - - if python_record.name.as_normalized() == "python" { - tags.append(&mut cpython_tags(&python_record.version, &platforms)); - } else { - todo!("no support for generic tags yet"); - } - - tags.append(&mut compatible_tags(&python_record.version, &platforms).collect()); - - WheelTags::from_iter(tags) -} +) -> miette::Result { + let platform = if platform.is_linux() { + let arch = match platform.arch() { + None => unreachable!("every platform we support has an arch"), + Some(Arch::X86) => platform_host::Arch::X86, + Some(Arch::X86_64) => platform_host::Arch::X86_64, + Some(Arch::Aarch64) => platform_host::Arch::Aarch64, + Some(Arch::ArmV7l) => platform_host::Arch::Armv7L, + Some(Arch::Ppc64le) => platform_host::Arch::Powerpc64Le, + Some(Arch::Ppc64) => platform_host::Arch::Powerpc64, + Some(Arch::S390X) => platform_host::Arch::S390X, + Some(unsupported_arch) => { + miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + } + }; -fn project_platforms(platform: Platform, system_requirements: &SystemRequirements) -> Vec { - if platform.is_windows() { - match platform { - Platform::Win32 => vec![String::from("win32")], - Platform::Win64 => vec![String::from("win_amd64")], - Platform::WinArm64 => vec![String::from("win_arm64")], - _ => unreachable!("not windows"), - } - } else if platform.is_linux() { - let max_glibc_version = match system_requirements + // Find the glibc version + match system_requirements .libc .as_ref() .map(LibCSystemRequirement::family_and_version) { - Some((family, version)) if family.eq_ignore_ascii_case("glibc") => version.clone(), - Some(_) => { - // Another libc family is being target. - return Vec::new(); + None => { + let (major, minor) = default_glibc_version() + .as_major_minor() + .expect("expected default glibc version to be a major.minor version"); + platform_host::Platform::new( + Os::Manylinux { + major: major as _, + minor: minor as _, + }, + arch, + ) } - None => default_glibc_version(), - }; - linux_platform_tags(platform, &max_glibc_version) - } else { - let mac_version = system_requirements - .macos - .as_ref() - .map_or_else(|| default_mac_os_version(platform), |v| v.clone()); - mac_platform_tags(platform, &mac_version) - } -} - -pub fn mac_platform_tags(platform: Platform, mac_version: &Version) -> Vec { - let v10_0 = Version::from_str("10.0").unwrap(); - let v11_0 = Version::from_str("11.0").unwrap(); - let (major, minor) = mac_version.as_major_minor().expect("invalid mac version"); - - let mut result = Vec::new(); - - // Prior to macOS 11, each yearly release of macOS bumped the "minor" version number. The - // major version was always 10. - if mac_version >= &v10_0 && mac_version < &v11_0 { - let binary_formats = mac_binary_formats(mac_version, platform); - for (minor, binary_format) in (0..=minor).rev().cartesian_product(binary_formats.iter()) { - result.push(format!("macosx_{major}_{minor}_{binary_format}")); - } - } - - // Starting with macOS 11, each yearly release bumps the major version number. The minor - // versions are no the midyear updates. - if mac_version >= &v11_0 { - let binary_formats = mac_binary_formats(mac_version, platform); - for (major, binary_format) in (11..=major).rev().cartesian_product(binary_formats.iter()) { - result.push(format!("macosx_{major}_{minor}_{binary_format}", minor = 0)); - } - } - - // macOS 11 on x86_64 is compatible with binaries from previous releases. - // Arm64 support was introduced in 11.0, so no Arm binaries from previous releases exist. - // - // However, the "universal2" binary format can have a macOS version earlier than 11.0 when the - // x86_64 part of the binary supports that version of macOS. - if mac_version >= &v11_0 { - for minor in (4..=16).rev() { - let binary_formats = if platform == Platform::Osx64 { - let compatible_version = Version::from_str(&format!("10.{}", minor)).unwrap(); - mac_binary_formats(&compatible_version, platform) - } else { - vec![String::from("universal2")] - }; - for binary_format in binary_formats { - result.push(format!( - "macosx_{major}_{minor}_{binary_format}", - major = 10, - minor = minor, - binary_format = binary_format + Some(("glibc", version)) => { + let Some((major, minor)) = version.as_major_minor() else { + miette::miette!( + "expected glibc version to be a major.minor version, but got '{version}'" + ) + }; + platform_host::Platform::new( + Os::Manylinux { + major: major as _, + minor: minor as _, + }, + arch, + ) + } + Some((family, _)) => { + return Err(miette::miette!( + "unsupported libc family for pypi packages '{family}'" )); } } - } - - result -} - -/// Returns a list of compatible binary formats for the specified mac version and platform. -fn mac_binary_formats(mac_version: &Version, platform: Platform) -> Vec { - let mut result = match platform { - Platform::Osx64 => vec![String::from("x86_64")], - Platform::OsxArm64 => vec![String::from("arm64")], - _ => unreachable!("unsupported mac platform: {platform}"), - }; - let v10_4 = Version::from_str("10.4").unwrap(); - - if platform == Platform::Osx64 && mac_version >= &v10_4 { - result.extend([ - String::from("intel"), - String::from("fat64"), - String::from("fat32"), - ]); - } - - if matches!(platform, Platform::Osx64 | Platform::OsxArm64) { - result.push(String::from("universal2")); - } + } else if platform.is_windows() { + let arch = match platform.arch() { + None => unreachable!("every platform we support has an arch"), + Some(Arch::X86) => platform_host::Arch::X86, + Some(Arch::X86_64) => platform_host::Arch::X86_64, + Some(Arch::Aarch64) => platform_host::Arch::Aarch64, + Some(unsupported_arch) => { + miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + } + }; - if matches!(platform, Platform::Osx64) { - result.push(String::from("universal")); - } + platform_host::Platform::new(Os::Windows, arch) + } else if platform.is_osx() { + let Some((major, minor)) = system_requirements + .macos + .unwrap_or_else(default_mac_os_version(platform)) + .as_major_minor() + else { + miette::miette!( + "expected macos version to be a major.minor version, but got '{version}'" + ) + }; - result -} + let arch = match platform.arch() { + None => unreachable!("every platform we support has an arch"), + Some(Arch::X86) => platform_host::Arch::X86, + Some(Arch::X86_64) => platform_host::Arch::X86_64, + Some(Arch::Aarch64) => platform_host::Arch::Aarch64, + Some(unsupported_arch) => { + miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + } + }; -/// Returns the platform tags for linux based OS -pub fn linux_platform_tags(platform: Platform, max_glibc_version: &Version) -> Vec { - let arch = match platform { - Platform::Linux32 => "_i686", - Platform::Linux64 => "_x86_64", - Platform::LinuxAarch64 => "_aarch64", - Platform::LinuxArmV7l => "_armv7l", - Platform::LinuxPpc64le => "_ppc64le", - Platform::LinuxPpc64 => "_ppc64", - Platform::LinuxS390X => "_s390x", - Platform::LinuxRiscv32 => return Vec::new(), - Platform::LinuxRiscv64 => return Vec::new(), - Platform::LinuxArmV6l => return Vec::new(), - _ => unreachable!("not linux"), + platform_host::Platform::new( + Os::Macos { + major: major as _, + minor: minor as _, + }, + arch, + ) + } else { + return Err(miette::miette!( + "unsupported platform for pypi packages {platform}" + )); }; - manylinux_versions(max_glibc_version) - .into_iter() - .map(|p| format!("{p}{arch}")) - .collect() -} -// Generate all manylinux tags based on the major minor version of glibc. -fn manylinux_versions(glibc_version: &Version) -> Vec { - let Some((major, minor)) = glibc_version.as_major_minor() else { - return Vec::new(); + // Build the wheel tags based on the interpreter, the target platform, and the python version. + let Some(python_version) = python_record.version.as_major_minor() else { + return Err(miette::miette!( + "expected python version to be a major.minor version, but got '{version}'" + )); }; - - let mut result = Vec::new(); - for minor in (0..=minor).rev() { - result.push(format!("manylinux_{major}_{minor}")); - match (major, minor) { - (2, 5) => result.push(String::from("manylinux1")), - (2, 12) => result.push(String::from("manylinux2010")), - (2, 17) => result.push(String::from("manylinux2014")), - _ => {} + let implementation_name = match python_record.name.as_normalized() { + "python" => "cpython", + "pypy" => "pypy", + _ => { + return Err(miette::miette!( + "unsupported python implementation '{}'", + python_record.name.as_source() + )); } - } - - result -} - -/// Returns all the tags a specific cpython implementation supports. -pub fn cpython_tags(python_version: &Version, platforms: PIter) -> Vec -where - P: Into, - PIter: IntoIterator, - PIter::IntoIter: Clone, -{ - let Some((major, minor)) = python_version.as_major_minor() else { - return Vec::new(); }; - - let interpreter = format!("cp{major}{minor}"); - let core_abi = format!("cp{}{}", major, minor); - - let mut result = Vec::new(); - let platforms = platforms.into_iter().map(Into::into); - - // Add the core tags - result.extend(platforms.clone().map(|platform| WheelTag { - interpreter: interpreter.clone(), - abi: core_abi.clone(), - platform, - })); - - // Add the "abi3" tags - if python_abi3_applies(major, minor) { - result.extend(platforms.clone().map(|platform| WheelTag { - interpreter: interpreter.clone(), - abi: String::from("abi3"), - platform, - })); - } - - // Add the "none" abi tags - result.extend(platforms.clone().map(|platform| WheelTag { - interpreter: interpreter.clone(), - abi: String::from("none"), - platform, - })); - - // Add other abi3 compatible cpython versions - if python_abi3_applies(major, minor) { - for minor in (2..minor).rev() { - let interpreter = format!("cp{major}{minor}"); - result.extend(platforms.clone().map(|platform| WheelTag { - interpreter: interpreter.clone(), - abi: String::from("abi3"), - platform, - })); - } - } - - result -} - -/// Returns true if the specified Python version supports abi3. PEP 384 was first implemented in -/// Python 3.2. -fn python_abi3_applies(major: u64, minor: u64) -> bool { - major >= 3 && minor >= 2 -} - -/// Returns an iterator that yields all the different versions of the python interpreter. -pub fn py_interpreter_range(python_version: &Version) -> impl Iterator { - let python_version = python_version.as_major_minor(); - - let core_version = python_version - .into_iter() - .map(|(major, minor)| format!("py{major}{minor}")); - let major_version = python_version - .into_iter() - .map(|(major, _)| format!("py{major}")); - let minor_versions = python_version.into_iter().flat_map(|(major, minor)| { - (0..minor) - .rev() - .map(move |minor| format!("py{major}{minor}")) - }); - core_version.chain(major_version).chain(minor_versions) -} - -/// Returns compatible tag for any interpreter. -pub fn compatible_tags<'a, P, PIter>( - python_version: &'a Version, - platforms: PIter, -) -> impl Iterator + 'a -where - P: Into, - PIter: IntoIterator, - PIter::IntoIter: Clone + 'a, -{ - py_interpreter_range(python_version) - .cartesian_product(platforms) - .map(|(interpreter, platform)| WheelTag { - interpreter, - abi: String::from("none"), - platform: platform.into(), - }) - .chain( - py_interpreter_range(python_version).map(|interpreter| WheelTag { - interpreter, - abi: String::from("none"), - platform: String::from("any"), - }), - ) + let tags = Tags::from_env( + &platform, + (python_version.0 as u8, python_version.1 as u8), + implementation_name, + // TODO: This might not be entirely correct.. + (python_version.0 as u8, python_version.1 as u8), + ) + .context("failed to determine the python wheel tags for the target platform")?; + + Ok(tags) } #[cfg(test)] From 1c1a8db4d05b026610940534e5ce2cd93156c146 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 14:50:34 +0100 Subject: [PATCH 05/55] refactor: more rip removal --- src/lock_file/mod.rs | 1 - src/lock_file/pypi.rs | 129 --------------------------------------- src/lock_file/resolve.rs | 17 +++--- src/lock_file/update.rs | 13 ++-- src/pypi_tags.rs | 66 +++----------------- 5 files changed, 21 insertions(+), 205 deletions(-) delete mode 100644 src/lock_file/pypi.rs diff --git a/src/lock_file/mod.rs b/src/lock_file/mod.rs index 9ff1fae09..5ce6fe1c6 100644 --- a/src/lock_file/mod.rs +++ b/src/lock_file/mod.rs @@ -2,7 +2,6 @@ mod outdated; mod package_identifier; -pub(crate) mod pypi; mod pypi_name_mapping; mod records_by_name; mod resolve; diff --git a/src/lock_file/pypi.rs b/src/lock_file/pypi.rs deleted file mode 100644 index 030c4627e..000000000 --- a/src/lock_file/pypi.rs +++ /dev/null @@ -1,129 +0,0 @@ -use crate::consts::PROJECT_MANIFEST; -use crate::lock_file::{package_identifier, pypi_name_mapping}; -use crate::project::manifest::{PyPiRequirement, SystemRequirements}; -use crate::pypi_marker_env::determine_marker_environment; -use crate::pypi_tags::{is_python_record, project_platform_tags}; -use indexmap::IndexMap; -use itertools::Itertools; -use miette::{Context, IntoDiagnostic}; -use rattler_conda_types::{Platform, RepoDataRecord}; -use rip::index::PackageDb; -use rip::python_env::PythonLocation; -use rip::resolve::solve_options::{ResolveOptions, SDistResolution}; -use rip::resolve::{resolve, PinnedPackage}; -use uv_normalize::PackageName; -use rip::wheel_builder::WheelBuilder; -use std::path::Path; -use std::sync::Arc; -use std::vec; - -/// Resolve python packages for the specified project. -pub async fn resolve_dependencies<'db>( - package_db: Arc, - dependencies: IndexMap>, - system_requirements: SystemRequirements, - platform: Platform, - conda_packages: &[RepoDataRecord], - python_location: Option<&Path>, - sdist_resolution: SDistResolution, -) -> miette::Result> { - if dependencies.is_empty() { - return Ok(vec![]); - } - - // Determine the python packages that are installed by the conda packages - let conda_python_packages = - package_identifier::PypiPackageIdentifier::from_records(conda_packages) - .into_diagnostic() - .context("failed to extract python packages from conda metadata")? - .into_iter() - .map(PinnedPackage::from) - .collect_vec(); - - if !conda_python_packages.is_empty() { - tracing::info!( - "the following python packages are assumed to be installed by conda: {conda_python_packages}", - conda_python_packages = - conda_python_packages - .iter() - .format_with(", ", |p, f| f(&format_args!( - "{name} {version}", - name = &p.name, - version = &p.version - ))) - ); - } else { - tracing::info!("there are no python packages installed by conda"); - } - - // Determine the python interpreter that is installed as part of the conda packages. - let python_record = conda_packages - .iter() - .find(|r| is_python_record(r)) - .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; - - // Determine the environment markers - let marker_environment = determine_marker_environment(platform, python_record.as_ref())?; - - // Determine the compatible tags - let compatible_tags = - project_platform_tags(platform, &system_requirements, python_record.as_ref()); - - let requirements = dependencies - .iter() - .flat_map(|(name, req)| req.iter().map(move |req| (name, req))) - .map(|(name, req)| req.as_pep508(name)) - .collect::>(); - - // If we only have a system python - // we cannot resolve correctly, because we might not be able to - // build source dists correctly. Let's skip them for now - let (sdist_resolution, python_location) = match python_location { - Some(path) => (sdist_resolution, PythonLocation::Custom(path.to_path_buf())), - // Use the resolution we have been passed in - None => (sdist_resolution, PythonLocation::System), - }; - - // Resolve the PyPi dependencies - let marker_environment = Arc::new(marker_environment); - let compatible_tags = Arc::new(compatible_tags); - let resolve_options = ResolveOptions { - sdist_resolution, - python_location, - locked_packages: conda_python_packages - .into_iter() - .map(|p| (p.name.clone(), p)) - .collect(), - ..Default::default() - }; - let mut result = resolve( - package_db.clone(), - &requirements, - marker_environment.clone(), - Some(compatible_tags.clone()), - WheelBuilder::new( - package_db, - marker_environment.clone(), - Some(compatible_tags.clone()), - resolve_options.clone(), - ) - .expect("failed to create wheel builder"), - resolve_options, - ) - .await - .wrap_err("failed to resolve `pypi-dependencies`, due to underlying error")?; - - // Remove any conda package from the result - result.retain(|p| !p.artifacts.is_empty()); - - Ok(result) -} - -/// Amend the records with pypi purls if they are not present yet. -pub async fn amend_pypi_purls(conda_packages: &mut [RepoDataRecord]) -> miette::Result<()> { - let conda_forge_mapping = pypi_name_mapping::conda_pypi_name_mapping().await?; - for record in conda_packages.iter_mut() { - pypi_name_mapping::amend_pypi_purls(record, conda_forge_mapping)?; - } - Ok(()) -} diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index d20a41709..cb761f01c 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -13,14 +13,13 @@ use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, Resoluti use indexmap::IndexMap; use indicatif::ProgressBar; use miette::{Context, IntoDiagnostic}; -use platform_host::{ Platform}; -use rattler::install::PythonInfo; -use rattler_conda_types::{ GenericVirtualPackage, MatchSpec, RepoDataRecord}; +use platform_host::Platform; +use rattler_conda_types::{GenericVirtualPackage, MatchSpec, RepoDataRecord}; use rattler_digest::{parse_digest_from_hex, Md5, Sha256}; use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; use rattler_solve::{resolvo, SolverImpl}; +use std::path::Path; use std::str::FromStr; -use std::{path::Path}; use url::Url; use uv_cache::Cache; use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder}; @@ -41,7 +40,7 @@ pub async fn resolve_pypi( _locked_pypi_records: &[PypiRecord], platform: rattler_conda_types::Platform, pb: &ProgressBar, - python_info: &PythonInfo, + python_location: &Path, venv_root: &Path, ) -> miette::Result { // Solve python packages @@ -69,7 +68,7 @@ pub async fn resolve_pypi( marker_environment.clone(), venv_root.to_path_buf(), venv_root.to_path_buf(), - venv_root.join(python_info.path()), + python_location.to_path_buf(), Path::new("invalid").to_path_buf(), ); @@ -164,9 +163,9 @@ pub async fn resolve_pypi( (Some(sha256), None) => Some(PackageHashes::Sha256( parse_digest_from_hex::(sha256).expect("invalid sha256"), )), - (None, Some(md5)) => { - Some(PackageHashes::Md5(parse_digest_from_hex::(md5).expect("invalid md5"))) - } + (None, Some(md5)) => Some(PackageHashes::Md5( + parse_digest_from_hex::(md5).expect("invalid md5"), + )), (Some(sha256), Some(md5)) => Some(PackageHashes::Md5Sha256( parse_digest_from_hex::(md5).expect("invalid md5"), parse_digest_from_hex::(sha256).expect("invalid sha256"), diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 6e1357647..8df187d7f 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -24,7 +24,6 @@ use rattler::package_cache::PackageCache; use rattler_conda_types::{Channel, MatchSpec, PackageName, Platform, RepoDataRecord}; use rattler_lock::{LockFile, PypiPackageData, PypiPackageEnvironmentData}; use rattler_repodata_gateway::sparse::SparseRepoData; -use rip::resolve::solve_options::SDistResolution; use std::{ borrow::Cow, collections::{HashMap, HashSet}, @@ -35,7 +34,6 @@ use std::{ }; use tokio::sync::Semaphore; use tracing::Instrument; -use uv_interpreter::Interpreter; impl Project { /// Ensures that the lock-file is up-to-date with the project information. @@ -1260,20 +1258,21 @@ async fn spawn_solve_pypi_task( ); pb.start(); + let python_path = python_status + .location() + .map(|path| prefix.root().join(path)) + .ok_or_else(|| miette::miette!("missing python interpreter from environment"))?; + let start = Instant::now(); let records = lock_file::resolve_pypi( - package_db, dependencies, system_requirements, &repodata_records.records, &[], platform, &pb.pb, - python_status - .location() - .map(|path| prefix.root().join(path)) - .as_deref(), + &python_path, prefix.root(), ) .await?; diff --git a/src/pypi_tags.rs b/src/pypi_tags.rs index 542ff0047..48d0702ad 100644 --- a/src/pypi_tags.rs +++ b/src/pypi_tags.rs @@ -1,11 +1,8 @@ use crate::project::manifest::{LibCSystemRequirement, SystemRequirements}; use crate::project::virtual_packages::{default_glibc_version, default_mac_os_version}; -use itertools::Itertools; use platform_host::Os; use platform_tags::Tags; -use rattler_conda_types::{Arch, PackageRecord, Platform, Version}; -use rip::python_env::{WheelTag, WheelTags}; -use std::str::FromStr; +use rattler_conda_types::{Arch, PackageRecord, Platform}; /// Returns true if the specified record refers to a version/variant of python. pub fn is_python_record(record: impl AsRef) -> bool { @@ -89,13 +86,12 @@ pub fn get_pypi_tags( platform_host::Platform::new(Os::Windows, arch) } else if platform.is_osx() { - let Some((major, minor)) = system_requirements + let osx_version = system_requirements .macos - .unwrap_or_else(default_mac_os_version(platform)) - .as_major_minor() - else { + .unwrap_or_else(default_mac_os_version(platform)); + let Some((major, minor)) = osx_version.as_major_minor() else { miette::miette!( - "expected macos version to be a major.minor version, but got '{version}'" + "expected macos version to be a major.minor version, but got '{osx_version}'" ) }; @@ -125,7 +121,8 @@ pub fn get_pypi_tags( // Build the wheel tags based on the interpreter, the target platform, and the python version. let Some(python_version) = python_record.version.as_major_minor() else { return Err(miette::miette!( - "expected python version to be a major.minor version, but got '{version}'" + "expected python version to be a major.minor version, but got '{}'", + &python_record.version )); }; let implementation_name = match python_record.name.as_normalized() { @@ -149,52 +146,3 @@ pub fn get_pypi_tags( Ok(tags) } - -#[cfg(test)] -mod test { - use super::*; - - #[test] - fn test_cpython_tags() { - let tags: Vec<_> = cpython_tags(&Version::from_str("3.11.2").unwrap(), vec!["win_amd64"]) - .into_iter() - .map(|t| t.to_string()) - .collect(); - insta::assert_debug_snapshot!(tags); - } - - #[test] - fn test_py_interpreter_range() { - let tags: Vec<_> = py_interpreter_range(&Version::from_str("3.11.2").unwrap()).collect(); - insta::assert_debug_snapshot!(tags); - } - - #[test] - fn test_compatible_tags() { - let tags: Vec<_> = - compatible_tags(&Version::from_str("3.11.2").unwrap(), vec!["win_amd64"]) - .map(|t| t.to_string()) - .collect(); - insta::assert_debug_snapshot!(tags); - } - - #[test] - fn test_linux_platform_tags() { - let tags: Vec<_> = - linux_platform_tags(Platform::Linux64, &Version::from_str("2.17").unwrap()) - .into_iter() - .map(|t| t.to_string()) - .collect(); - insta::assert_debug_snapshot!(tags); - } - - #[test] - fn test_mac_platform_tags() { - let tags: Vec<_> = - mac_platform_tags(Platform::OsxArm64, &Version::from_str("14.0").unwrap()) - .into_iter() - .map(|t| t.to_string()) - .collect(); - insta::assert_debug_snapshot!(tags); - } -} From 197e52da65b5149d25108db23017f81dc902b164 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 14:55:24 +0100 Subject: [PATCH 06/55] refactor: more rip removal --- src/environment.rs | 2 -- src/lib.rs | 2 ++ src/lock_file/mod.rs | 1 - src/lock_file/package_identifier.rs | 2 +- src/lock_file/update.rs | 28 ++++++------------------ src/{lock_file => }/pypi_name_mapping.rs | 11 +++++++++- 6 files changed, 20 insertions(+), 26 deletions(-) rename src/{lock_file => }/pypi_name_mapping.rs (87%) diff --git a/src/environment.rs b/src/environment.rs index 2c94f24b6..e5b1b6e96 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -181,7 +181,6 @@ pub async fn update_prefix_pypi( pypi_records: &[(PypiPackageData, PypiPackageEnvironmentData)], status: &PythonStatus, system_requirements: &SystemRequirements, - sdist_resolution: SDistResolution, ) -> miette::Result<()> { // Remove python packages from a previous python distribution if the python version changed. install_pypi::remove_old_python_distributions(prefix, platform, status)?; @@ -201,7 +200,6 @@ pub async fn update_prefix_pypi( platform, status, system_requirements, - sdist_resolution, ) }, ) diff --git a/src/lib.rs b/src/lib.rs index 87292025e..ff1d43b94 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,6 +20,8 @@ pub mod utils; mod pypi_marker_env; mod pypi_tags; +mod pypi_name_mapping; + pub use activation::get_activation_env; pub use lock_file::load_lock_file; pub use lock_file::UpdateLockFileOptions; diff --git a/src/lock_file/mod.rs b/src/lock_file/mod.rs index 5ce6fe1c6..1d166ebe0 100644 --- a/src/lock_file/mod.rs +++ b/src/lock_file/mod.rs @@ -2,7 +2,6 @@ mod outdated; mod package_identifier; -mod pypi_name_mapping; mod records_by_name; mod resolve; mod satisfiability; diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index b2b0c670c..743121158 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -1,10 +1,10 @@ -use super::pypi_name_mapping; use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{PackageUrl, RepoDataRecord}; use rattler_lock::CondaPackage; use std::{collections::HashSet, str::FromStr}; use thiserror::Error; use uv_normalize::{ExtraName, InvalidNameError, PackageName}; +use crate::pypi_name_mapping; /// Defines information about a Pypi package extracted from either a python package or from a /// conda package. diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 8df187d7f..edf151758 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1,20 +1,9 @@ -use crate::{ - config, consts, environment, - environment::{ - LockFileUsage, PerEnvironmentAndPlatform, PerGroup, PerGroupAndPlatform, PythonStatus, - }, - load_lock_file, lock_file, - lock_file::{ - update, OutdatedEnvironments, PypiPackageIdentifier, PypiRecordsByName, - RepoDataRecordsByName, - }, - prefix::Prefix, - progress::global_multi_progress, - project::{Environment, GroupedEnvironment, GroupedEnvironmentName}, - repodata::fetch_sparse_repodata_targets, - utils::BarrierCell, - EnvironmentName, Project, -}; +use crate::{config, consts, environment, environment::{ + LockFileUsage, PerEnvironmentAndPlatform, PerGroup, PerGroupAndPlatform, PythonStatus, +}, load_lock_file, lock_file, lock_file::{ + update, OutdatedEnvironments, PypiPackageIdentifier, PypiRecordsByName, + RepoDataRecordsByName, +}, prefix::Prefix, progress::global_multi_progress, project::{Environment, GroupedEnvironment, GroupedEnvironmentName}, repodata::fetch_sparse_repodata_targets, utils::BarrierCell, EnvironmentName, Project, pypi_name_mapping}; use futures::{future::Either, stream::FuturesUnordered, FutureExt, StreamExt, TryFutureExt}; use indexmap::{IndexMap, IndexSet}; use indicatif::ProgressBar; @@ -110,7 +99,6 @@ impl<'p> LockFileDerivedData<'p> { &pypi_records, &python_status, &environment.system_requirements(), - SDistResolution::default(), ) .await?; @@ -755,7 +743,6 @@ pub async fn ensure_up_to_date_lock_file( platform, repodata_future, prefix_future, - SDistResolution::default(), ); pending_futures.push(pypi_solve_future.boxed_local()); @@ -1110,7 +1097,7 @@ async fn spawn_solve_conda_environment_task( // Add purl's for the conda packages that are also available as pypi packages if we need them. if has_pypi_dependencies { - lock_file::pypi::amend_pypi_purls(&mut records).await?; + pypi_name_mapping::amend_pypi_purls(&mut records).await?; } // Turn the records into a map by name @@ -1226,7 +1213,6 @@ async fn spawn_solve_pypi_task( platform: Platform, repodata_records: impl Future>, prefix: impl Future, - sdist_resolution: SDistResolution, ) -> miette::Result { // Get the Pypi dependencies for this environment let dependencies = environment.pypi_dependencies(Some(platform)); diff --git a/src/lock_file/pypi_name_mapping.rs b/src/pypi_name_mapping.rs similarity index 87% rename from src/lock_file/pypi_name_mapping.rs rename to src/pypi_name_mapping.rs index 6b470e017..afb329372 100644 --- a/src/lock_file/pypi_name_mapping.rs +++ b/src/pypi_name_mapping.rs @@ -31,11 +31,20 @@ pub async fn conda_pypi_name_mapping() -> miette::Result<&'static HashMap miette::Result<()> { + let conda_forge_mapping = conda_pypi_name_mapping().await?; + for record in conda_packages.iter_mut() { + amend_pypi_purls_for_record(record, conda_forge_mapping)?; + } + Ok(()) +} + /// Updates the specified repodata record to include an optional PyPI package name if it is missing. /// /// This function guesses the PyPI package name from the conda package name if the record refers to /// a conda-forge package. -pub fn amend_pypi_purls( +fn amend_pypi_purls_for_record( record: &mut RepoDataRecord, conda_forge_mapping: &'static HashMap, ) -> miette::Result<()> { From e258a0b0da90e09f73cdbc488d1deedfc592f5d6 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 19 Feb 2024 16:07:42 +0100 Subject: [PATCH 07/55] wip: installing subroutine created --- Cargo.lock | 2 + Cargo.toml | 4 +- src/environment.rs | 6 +- src/install_pypi.rs | 1253 ++++++++++++++++----------- src/lock_file/package_identifier.rs | 2 +- src/lock_file/update.rs | 33 +- src/project/mod.rs | 48 +- 7 files changed, 796 insertions(+), 552 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 24a6c8cf5..701fc3bd5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2926,6 +2926,7 @@ dependencies = [ "indexmap 2.2.2", "indicatif", "insta", + "install-wheel-rs", "is_executable", "itertools", "lazy_static", @@ -2976,6 +2977,7 @@ dependencies = [ "uv-cache", "uv-client", "uv-dispatch", + "uv-installer", "uv-interpreter", "uv-normalize", "uv-resolver", diff --git a/Cargo.toml b/Cargo.toml index e0bbbe8af..1d0c51fc4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,6 +37,7 @@ humantime = "2.1.0" indexmap = { version = "2.2.2", features = ["serde"] } indicatif = "0.17.7" insta = { version = "1.34.0", features = ["yaml"] } +install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } is_executable = "1.0.1" itertools = "0.12.1" lazy_static = "1.4.0" @@ -82,11 +83,12 @@ url = "2.5.0" uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } - uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } + zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] } [target.'cfg(unix)'.dependencies] diff --git a/src/environment.rs b/src/environment.rs index e5b1b6e96..cc72c053c 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -21,7 +21,6 @@ use rattler_conda_types::{Channel, Platform, PrefixRecord, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; use rattler_repodata_gateway::sparse::SparseRepoData; use reqwest_middleware::ClientWithMiddleware; -use rip::{index::PackageDb, resolve::solve_options::SDistResolution}; use std::path::PathBuf; use std::{collections::HashMap, io::ErrorKind, path::Path, sync::Arc}; use uv_interpreter::Interpreter; @@ -176,14 +175,13 @@ pub async fn update_prefix_pypi( environment_name: &EnvironmentName, prefix: &Prefix, platform: Platform, - package_db: Arc, conda_records: &[RepoDataRecord], pypi_records: &[(PypiPackageData, PypiPackageEnvironmentData)], status: &PythonStatus, system_requirements: &SystemRequirements, ) -> miette::Result<()> { // Remove python packages from a previous python distribution if the python version changed. - install_pypi::remove_old_python_distributions(prefix, platform, status)?; + // install_pypi::remove_old_python_distributions(prefix, platform, status)?; // Install and/or remove python packages progress::await_in_progress( @@ -193,8 +191,8 @@ pub async fn update_prefix_pypi( ), |_| { install_pypi::update_python_distributions( - package_db, prefix, + environment_name, conda_records, pypi_records, platform, diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 954b1f9fa..3830ef61b 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -1,32 +1,23 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; -use crate::progress; use crate::progress::ProgressBarMessageFormatter; +use crate::{progress, EnvironmentName}; use futures::{stream, Stream, StreamExt, TryFutureExt, TryStreamExt}; use indexmap::IndexSet; use indicatif::ProgressBar; use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; -use rip::resolve::solve_options::{ResolveOptions, SDistResolution}; use crate::consts::PROJECT_MANIFEST; use crate::project::manifest::SystemRequirements; use crate::pypi_marker_env::determine_marker_environment; -use crate::pypi_tags::{is_python_record, project_platform_tags}; -use pep508_rs::MarkerEnvironment; +use crate::pypi_tags::is_python_record; +use distribution_types::{IndexLocations, Name}; +use install_wheel_rs::linker::LinkMode; +use pep440_rs::{VersionSpecifier, VersionSpecifiers}; +use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl}; use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; -use rip::artifacts::Wheel; -use rip::index::PackageDb; -use rip::install::{install_wheel, InstallPaths, InstallWheelOptions}; -use rip::python_env::{ - find_distributions_in_venv, uninstall_distribution, Distribution, PythonLocation, WheelTag, - WheelTags, -}; -use rip::types::{ - ArtifactHashes, ArtifactInfo, ArtifactName, Extra, HasArtifactName, NormalizedPackageName, -}; -use rip::wheel_builder::WheelBuilder; use std::collections::HashSet; use std::ops::Deref; use std::path::Path; @@ -34,25 +25,44 @@ use std::str::FromStr; use std::sync::Arc; use std::time::Duration; use tokio::task::JoinError; +use uv_cache::Cache; +use uv_client::{FlatIndex, FlatIndexClient, RegistryClientBuilder}; +use uv_dispatch::BuildDispatch; +use uv_installer::{Downloader, Plan, Planner, Reinstall, SitePackages}; +use uv_interpreter::{Interpreter, Virtualenv}; +use uv_resolver::InMemoryIndex; +use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; /// The installer name for pypi packages installed by pixi. pub(crate) const PIXI_PYPI_INSTALLER: &str = env!("CARGO_PKG_NAME"); type CombinedPypiPackageData = (PypiPackageData, PypiPackageEnvironmentData); +pub(super) fn elapsed(duration: Duration) -> String { + let secs = duration.as_secs(); + + if secs >= 60 { + format!("{}m {:02}s", secs / 60, secs % 60) + } else if secs > 0 { + format!("{}.{:02}s", secs, duration.subsec_nanos() / 10_000_000) + } else { + format!("{}ms", duration.subsec_millis()) + } +} + /// Installs and/or remove python distributions. // TODO: refactor arguments in struct #[allow(clippy::too_many_arguments)] pub async fn update_python_distributions( - package_db: Arc, prefix: &Prefix, + name: &EnvironmentName, conda_package: &[RepoDataRecord], python_packages: &[CombinedPypiPackageData], platform: Platform, status: &PythonStatus, system_requirements: &SystemRequirements, - sdist_resolution: SDistResolution, ) -> miette::Result<()> { + let start = std::time::Instant::now(); let Some(python_info) = status.current_info() else { // No python interpreter in the environment, so there is nothing to do here. return Ok(()); @@ -66,526 +76,753 @@ pub async fn update_python_distributions( python_info.short_version.1 as u32, 0, ); - let install_paths = InstallPaths::for_venv(python_version, platform.is_windows()); - - // Determine the current python distributions in those locations - let current_python_packages = find_distributions_in_venv(prefix.root(), &install_paths) - .into_diagnostic() - .context( - "failed to locate python packages that have not been installed as conda packages", - )?; - - // Determine the python packages that are part of the lock-file - let python_packages = python_packages.iter().collect_vec(); - - // Determine the python packages to remove before we start installing anything new. If the - // python version changed between installations we will have to remove any previous distribution - // regardless. - let (python_distributions_to_remove, python_distributions_to_install) = - determine_python_distributions_to_remove_and_install( - prefix.root(), - current_python_packages, - python_packages, - ); - // Determine the python interpreter that is installed as part of the conda packages. let python_record = conda_package .iter() .find(|r| is_python_record(r)) .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; - // Determine the environment markers - let marker_environment = Arc::new(determine_marker_environment( - platform, - python_record.as_ref(), - )?); - - // Determine the compatible tags - let compatible_tags = Arc::new(project_platform_tags( - platform, - system_requirements, - python_record.as_ref(), - )); - - // Define the resolve options for local wheel building - let resolve_options = Arc::new(ResolveOptions { - sdist_resolution, - python_location: PythonLocation::Custom(python_location), - ..Default::default() - }); - - // Start downloading the python packages that we want in the background. - let (package_stream, package_stream_pb) = stream_python_artifacts( - package_db, - marker_environment, - compatible_tags, - resolve_options, - python_distributions_to_install.clone(), + let uv_cache = Cache::temp().into_diagnostic()?; + + let marker_environment = determine_marker_environment(platform, &python_record.package_record)?; + let venv_root = prefix.root().join("envs").join(name.as_str()); + let interpreter = Interpreter::artificial( + platform_host::Platform::current().expect("unsupported platform"), + marker_environment.clone(), + venv_root.to_path_buf(), + venv_root.to_path_buf(), + venv_root.join(python_info.path()), + Path::new("invalid").to_path_buf(), ); + /// Create a custom venv + let venv = Virtualenv::from_interpreter(interpreter, &venv_root); - // Remove python packages that need to be removed - if !python_distributions_to_remove.is_empty() { - let site_package_path = install_paths.site_packages(); - - for python_distribution in python_distributions_to_remove { - uninstall_pixi_installed_distribution(prefix, site_package_path, &python_distribution)?; - } - } + // Determine the current environment markers. + let tags = venv.interpreter().tags().into_diagnostic()?; - // Install the individual python packages that we want - let package_install_pb = install_python_distributions( - prefix, - install_paths, - &prefix.root().join(python_info.path()), - package_stream, - ) - .await?; - - // Clear any pending progress bar - for pb in package_install_pb - .into_iter() - .chain(package_stream_pb.into_iter()) - { - pb.finish_and_clear(); - } + // Prep the registry client. + let client = RegistryClientBuilder::new(uv_cache).build(); - Ok(()) -} + // Resolve the flat indexes from `--find-links`. -/// Concurrently installs python wheels as they become available. -async fn install_python_distributions( - prefix: &Prefix, - install_paths: InstallPaths, - python_executable_path: &Path, - package_stream: impl Stream, HashSet, Wheel)>> + Sized, -) -> miette::Result> { - // Determine the number of packages that we are going to install - let len = { - let (lower_bound, upper_bound) = package_stream.size_hint(); - upper_bound.unwrap_or(lower_bound) + let index_locations = IndexLocations::default(); + let flat_index = { + let client = FlatIndexClient::new(&client, &uv_cache); + let entries = client + .fetch(index_locations.flat_index()) + .await + .into_diagnostic()?; + FlatIndex::from_entries(entries, tags) }; - if len == 0 { - return Ok(None); - } - - // Create a progress bar to show the progress of the installation - let pb = progress::global_multi_progress().add(ProgressBar::new(len as u64)); - pb.set_style(progress::default_progress_style()); - pb.set_prefix("unpacking wheels"); - pb.enable_steady_tick(Duration::from_millis(100)); - - // Create a message formatter to show the current operation - let message_formatter = ProgressBarMessageFormatter::new(pb.clone()); - - // Concurrently unpack the wheels as they become available in the stream. - let install_pb = pb.clone(); - package_stream - .try_for_each_concurrent(Some(20), move |(hash, extras, wheel)| { - let install_paths = install_paths.clone(); - let root = prefix.root().to_path_buf(); - let message_formatter = message_formatter.clone(); - let pb = install_pb.clone(); - let python_executable_path = python_executable_path.to_owned(); - async move { - let pb_task = message_formatter.start(wheel.name().to_string()).await; - let unpack_result = tokio::task::spawn_blocking(move || { - install_wheel( - &wheel, - &root, - &install_paths, - &python_executable_path, - &InstallWheelOptions { - installer: Some(PIXI_PYPI_INSTALLER.into()), - extras: Some(extras), - ..Default::default() - }, - ) - .into_diagnostic() - .and_then(|unpacked_wheel| { - if let Some(hash) = hash { - std::fs::write(unpacked_wheel.dist_info.join("HASH"), hash) - .into_diagnostic() - } else { - Ok(()) - } - }) - }) - .map_err(JoinError::try_into_panic) - .await; - - pb_task.finish().await; - pb.inc(1); - - match unpack_result { - Ok(unpack_result) => unpack_result, - Err(Ok(panic)) => std::panic::resume_unwind(panic), - Err(Err(e)) => Err(miette::miette!("{e}")), - } - } - }) - .await?; - // Update the progress bar - pb.set_style(progress::finished_progress_style()); - pb.finish(); - - Ok(Some(pb)) -} + // Create a shared in-memory index. + let index = InMemoryIndex::default(); + + // Track in-flight downloads, builds, etc., across resolutions. + let in_flight = InFlight::default(); + let no_build = NoBuild::None; + let no_binary = NoBinary::None; + + // Prep the build context. + let build_dispatch = BuildDispatch::new( + &client, + &uv_cache, + venv.interpreter(), + &index_locations, + &flat_index, + &index, + &in_flight, + venv.python_executable(), + SetupPyStrategy::Pep517, + &no_build, + &no_binary, + ); -/// Creates a stream which downloads the specified python packages. The stream will download the -/// packages in parallel and yield them as soon as they become available. -fn stream_python_artifacts( - package_db: Arc, - marker_environment: Arc, - compatible_tags: Arc, - resolve_options: Arc, - packages_to_download: Vec<&CombinedPypiPackageData>, -) -> ( - impl Stream, HashSet, Wheel)>> + '_, - Option, -) { - if packages_to_download.is_empty() { - return (stream::empty().left_stream(), None); - } + let site_packages = SitePackages::from_executable(&venv).unwrap(); - // Construct a progress bar to provide some indication on what is currently downloading. - // TODO: It would be much nicer if we can provide more information with regards to the progress. - // For instance if we could also show at what speed the downloads are progressing or the total - // size of the downloads that would really help the user I think. - let pb = - progress::global_multi_progress().add(ProgressBar::new(packages_to_download.len() as u64)); - pb.set_style(progress::default_progress_style()); - pb.set_prefix("acquiring wheels"); - pb.enable_steady_tick(Duration::from_millis(100)); - - // Construct a message formatter - let message_formatter = ProgressBarMessageFormatter::new(pb.clone()); - - let stream_pb = pb.clone(); - let total_packages = packages_to_download.len(); - - let wheel_builder = WheelBuilder::new( - package_db.clone(), - marker_environment, - Some(compatible_tags), - resolve_options.deref().clone(), - ) - .into_diagnostic() - .context("error in construction of WheelBuilder for `pypi-dependencies` installation") - .expect("die"); - - let download_stream = stream::iter(packages_to_download) - .map(move |(pkg_data, pkg_env_data)| { - let pb = stream_pb.clone(); - let message_formatter = message_formatter.clone(); - let package_db = package_db.clone(); - let wheel_builder = wheel_builder.clone(); - - async move { - // Determine the filename from the - let filename = pkg_data - .url - .path_segments() - .and_then(|s| s.last()) - .expect("url is missing a path"); - let name = NormalizedPackageName::from_str(&pkg_data.name) - .into_diagnostic() - .with_context(|| { - format!("'{}' is not a valid python package name", &pkg_data.name) - })?; - - let artifact_name = - ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) - .expect("failed to convert filename to artifact name"); - - let (artifact_name, is_direct_url) = - if let ArtifactName::STree(mut stree) = artifact_name { - // populate resolved version of direct dependency - stree.version = pkg_data.version.clone(); - (ArtifactName::STree(stree), true) - } else { - (artifact_name, false) - }; - - // Log out intent to install this python package. - tracing::info!("downloading python package {filename}"); - let pb_task = message_formatter.start(filename.to_string()).await; - - // Reconstruct the ArtifactInfo from the data in the lockfile. - let artifact_info = ArtifactInfo { - filename: artifact_name, - url: pkg_data.url.clone(), - hashes: pkg_data.hash.as_ref().map(|hash| ArtifactHashes { - sha256: hash.sha256().cloned(), - }), - requires_python: pkg_data.requires_python.clone(), - dist_info_metadata: Default::default(), - yanked: Default::default(), - is_direct_url, - }; - - let (wheel, _) = tokio::spawn({ - let wheel_builder = wheel_builder.clone(); - let package_db = package_db.clone(); - async move { - // TODO: Maybe we should have a cache of wheels separate from the package_db. Since a - // wheel can just be identified by its hash or url. - package_db - .get_wheel(&artifact_info, Some(wheel_builder.clone())) - .await - } - }) - .await - .unwrap_or_else(|e| match e.try_into_panic() { - Ok(panic) => std::panic::resume_unwind(panic), - Err(_) => Err(miette::miette!("operation was cancelled")), - })?; - - // Update the progress bar - pb_task.finish().await; - pb.inc(1); - if pb.position() == total_packages as u64 { - pb.set_style(progress::finished_progress_style()); - pb.finish(); - } - - let hash = pkg_data - .hash - .as_ref() - .and_then(|h| h.sha256()) - .map(|sha256| format!("sha256-{:x}", sha256)); - - Ok(( - hash, - pkg_env_data - .extras - .iter() - .filter_map(|e| Extra::from_str(e).ok()) - .collect(), - wheel, - )) + let requirements = python_packages + .iter() + .map(|(pkg, _)| { + let name = pkg.name.clone(); + let version = pkg.version.clone(); + Requirement { + name, + version_or_url: Some(VersionOrUrl::VersionSpecifier( + VersionSpecifiers::from_str(&format!("=={}", version)).unwrap(), + )), + // TODO: add these + extras: vec![], + // TODO: add these + marker: None, } }) - .buffer_unordered(20) - .right_stream(); - - (download_stream, Some(pb)) -} - -/// If there was a previous version of python installed, remove any distribution installed in that -/// environment. -pub fn remove_old_python_distributions( - prefix: &Prefix, - platform: Platform, - python_changed: &PythonStatus, -) -> miette::Result<()> { - // If the python version didn't change, there is nothing to do here. - let python_version = match python_changed { - PythonStatus::Removed { old } | PythonStatus::Changed { old, .. } => old, - PythonStatus::Added { .. } | PythonStatus::DoesNotExist | PythonStatus::Unchanged(_) => { - return Ok(()); - } - }; - - // Get the interpreter version from the info - let python_version = ( - python_version.short_version.0 as u32, - python_version.short_version.1 as u32, - 0, - ); - let install_paths = InstallPaths::for_venv(python_version, platform.is_windows()); - - // Locate the packages that are installed in the previous environment - let current_python_packages = find_distributions_in_venv(prefix.root(), &install_paths) - .into_diagnostic() - .with_context(|| format!("failed to determine the python packages installed for a previous version of python ({}.{})", python_version.0, python_version.1))? - .into_iter().filter(|d| d.installer.as_deref() != Some("conda") && d.installer.is_some()).collect_vec(); - - let pb = progress::global_multi_progress() - .add(ProgressBar::new(current_python_packages.len() as u64)); - pb.set_style(progress::default_progress_style()); - pb.set_message("removing old python packages"); - pb.enable_steady_tick(Duration::from_millis(100)); - - // Remove the python packages - let site_package_path = install_paths.site_packages(); - for python_package in current_python_packages { - pb.set_message(format!( - "{} {}", - &python_package.name, &python_package.version - )); - - uninstall_pixi_installed_distribution(prefix, site_package_path, &python_package)?; - - pb.inc(1); + .collect_vec(); + + let _lock = venv.lock().into_diagnostic()?; + // TODO: need to resolve editables? + // Partition into those that should be linked from the cache (`local`), those that need to be + // downloaded (`remote`), and those that should be removed (`extraneous`). + + // TODO: is it possible to use a cached resolve to actually avoid doing another resolve? + let Plan { + local, + remote, + reinstalls, + extraneous, + } = Planner::with_requirements(&requirements) + .build( + site_packages, + &Reinstall::None, + &no_binary, + &index_locations, + &uv_cache, + &venv, + tags, + ) + .expect("Failed to determine installation plan"); + + // Nothing to do. + if remote.is_empty() && local.is_empty() && reinstalls.is_empty() && extraneous.is_empty() { + let s = if requirements.len() == 1 { "" } else { "s" }; + tracing::debug!( + "{}", + format!( + "Audited {} in {}", + format!("{num_requirements} package{s}"), + elapsed(start.elapsed()) + ) + ); + return Ok(()); } - Ok(()) -} + // Resolve any registry-based requirements. + let remote = if remote.is_empty() { + Vec::new() + } else { + let start = std::time::Instant::now(); + + let wheel_finder = uv_resolver::DistFinder::new( + tags, + &client, + venv.interpreter(), + &flat_index, + &no_binary, + ); + let resolution = wheel_finder.resolve(&remote).await.into_diagnostic()?; + + let s = if resolution.len() == 1 { "" } else { "s" }; + tracing::debug!( + "{}", + format!( + "Resolved {} in {}", + format!("{} package{}", resolution.len(), s), + elapsed(start.elapsed()) + ) + ); -/// Uninstalls a python distribution that was previously installed by pixi. -fn uninstall_pixi_installed_distribution( - prefix: &Prefix, - site_package_path: &Path, - python_package: &Distribution, -) -> miette::Result<()> { - tracing::info!( - "uninstalling python package {}-{}", - &python_package.name, - &python_package.version - ); - let relative_dist_info = python_package - .dist_info - .strip_prefix(site_package_path) - .expect("the dist-info path must be a sub-path of the site-packages path"); + resolution.into_distributions().collect::>() + }; - // HACK: Also remove the HASH file that pixi writes. Ignore the error if its there. We - // should probably actually add this file to the RECORD. - let _ = std::fs::remove_file(prefix.root().join(&python_package.dist_info).join("HASH")); + // Download, build, and unzip any missing distributions. + let wheels = if remote.is_empty() { + Vec::new() + } else { + let start = std::time::Instant::now(); + + let downloader = Downloader::new(&uv_cache, tags, &client, &build_dispatch); + // .with_reporter(DownloadReporter::from(printer).with_length(remote.len() as u64)); + + let wheels = downloader + .download(remote.clone(), &in_flight) + .await + .into_diagnostic() + .context("Failed to download distributions")?; + + let s = if wheels.len() == 1 { "" } else { "s" }; + tracing::info!( + "{}", + format!( + "Downloaded {} in {}", + format!("{} package{}", wheels.len(), s), + elapsed(start.elapsed()) + ) + ); - uninstall_distribution(&prefix.root().join(site_package_path), relative_dist_info) - .into_diagnostic() - .with_context(|| format!("could not uninstall python package {}-{}. Manually remove the `.pixi/env` folder and try again.", &python_package.name, &python_package.version))?; + wheels + }; - Ok(()) -} + // Remove any unnecessary packages. + if !extraneous.is_empty() || !reinstalls.is_empty() { + let start = std::time::Instant::now(); -/// Determine which python packages we can leave untouched and which python packages should be -/// removed. -fn determine_python_distributions_to_remove_and_install<'p>( - prefix: &Path, - mut current_python_packages: Vec, - desired_python_packages: Vec<&'p CombinedPypiPackageData>, -) -> (Vec, Vec<&'p CombinedPypiPackageData>) { - // Determine the artifact tags associated with the locked dependencies. - let mut desired_python_packages = extract_locked_tags(desired_python_packages); - - // Any package that is currently installed that is not part of the locked dependencies should be - // removed. So we keep it in the `current_python_packages` list. - // Any package that is in the currently installed list that is NOT found in the lockfile is - // retained in the list to mark it for removal. - current_python_packages.retain(|current_python_packages| { - if current_python_packages.installer.is_none() { - // If this package has no installer, we can't make a reliable decision on whether to - // keep it or not. So we do not uninstall it. - return false; + for dist_info in extraneous.iter().chain(reinstalls.iter()) { + let summary = uv_installer::uninstall(dist_info) + .await + .expect("uinstall did not work"); + tracing::debug!( + "Uninstalled {} ({} file{}, {} director{})", + dist_info.name(), + summary.file_count, + if summary.file_count == 1 { "" } else { "s" }, + summary.dir_count, + if summary.dir_count == 1 { "y" } else { "ies" }, + ); } - if let Some(found_desired_packages_idx) = - desired_python_packages - .iter() - .position(|(pkg, artifact_name)| { - does_installed_match_locked_package( - prefix, - current_python_packages, - (pkg, artifact_name.as_ref()), - ) - }) - { - // Remove from the desired list of packages to install & from the packages to uninstall. - desired_python_packages.remove(found_desired_packages_idx); - false + let s = if extraneous.len() + reinstalls.len() == 1 { + "" } else { - // Only if this package was previously installed by us do we remove it. - current_python_packages.installer.as_deref() == Some(PIXI_PYPI_INSTALLER) - } - }); - - ( - current_python_packages, - desired_python_packages - .into_iter() - .map(|(pkg, _)| pkg) - .collect(), - ) -} - -/// Determine the wheel tags for the locked dependencies. These are extracted by looking at the url -/// of the locked dependency. The filename of the URL is converted to a wheel name and the tags are -/// extract from that. -/// -/// If the locked dependency is not a wheel distribution `None` is returned for the tags. If the -/// the wheel name could not be parsed `None` is returned for the tags and a warning is emitted. -fn extract_locked_tags( - desired_python_packages: Vec<&CombinedPypiPackageData>, -) -> Vec<(&CombinedPypiPackageData, Option>)> { - desired_python_packages - .into_iter() - .map(|pkg @ (pkg_data, _pkg_env_data)| { - // Extract the filename from the url and the name from the package name. - let Some(filename) = pkg_data.url.path_segments().and_then(|s| s.last()) else { - tracing::warn!( - "failed to determine the artifact name of the python package {}-{} from url {}: the url has no filename.", - &pkg_data.name, pkg_data.version, &pkg_data.url); - return (pkg, None); - }; - let Ok(name) = NormalizedPackageName::from_str(&pkg_data.name) else { - tracing::warn!( - "failed to determine the artifact name of the python package {}-{} from url {}: {} is not a valid package name.", - &pkg_data.name, pkg_data.version, &pkg_data.url, &pkg_data.name); - return (pkg, None); - }; - - // Determine the artifact type from the name and filename - match ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) { - Ok(ArtifactName::Wheel(name)) => (pkg, Some(IndexSet::from_iter(name.all_tags_iter()))), - Ok(_) => (pkg, None), - Err(err) => { - tracing::warn!( - "failed to determine the artifact name of the python package {}-{}. Could not determine the name from the url {}: {err}", - &pkg_data.name, pkg_data.version, &pkg_data.url); - (pkg, None) - } - } - }) - .collect() -} - -/// Returns true if the installed python package matches the locked python package. If that is the -/// case we can assume that the locked python package is already installed. -fn does_installed_match_locked_package( - prefix_root: &Path, - installed_python_package: &Distribution, - locked_python_package: (&CombinedPypiPackageData, Option<&IndexSet>), -) -> bool { - let ((pkg_data, _), artifact_tags) = locked_python_package; - - // Match on name and version - if pkg_data.name != installed_python_package.name.as_str() - || pkg_data.version != installed_python_package.version - { - return false; + "s" + }; + tracing::debug!( + "{}", + format!( + "Uninstalled {} in {}", + format!("{} package{}", extraneous.len() + reinstalls.len(), s), + elapsed(start.elapsed()) + ) + ); } - // If this distribution is installed with pixi we can assume that there is a URL file that - // contains the original URL. - if installed_python_package.installer.as_deref() == Some(PIXI_PYPI_INSTALLER) { - let expected_hash = pkg_data - .hash - .as_ref() - .and_then(|hash| hash.sha256()) - .map(|sha256| format!("sha256-{:x}", sha256)); - if let Some(expected_hash) = expected_hash { - let hash_path = prefix_root - .join(&installed_python_package.dist_info) - .join("HASH"); - if let Ok(actual_hash) = std::fs::read_to_string(hash_path) { - return actual_hash == expected_hash; - } - } + // Install the resolved distributions. + let wheels = wheels.into_iter().chain(local).collect::>(); + if !wheels.is_empty() { + let start = std::time::Instant::now(); + uv_installer::Installer::new(&venv) + .with_link_mode(LinkMode::default()) + // .with_reporter(InstallReporter::from(printer).with_length(wheels.len() as u64)) + .install(&wheels) + .unwrap(); + + let s = if wheels.len() == 1 { "" } else { "s" }; + tracing::info!( + "{}", + format!( + "Installed {} in {}", + format!("{} package{}", wheels.len(), s), + elapsed(start.elapsed()) + ) + ); } - // Try to match the tags of both packages. This turns out to be pretty unreliable because - // there are many WHEELS that do not report the tags of their filename correctly in the - // WHEEL file. - match (artifact_tags, &installed_python_package.tags) { - (None, _) | (_, None) => { - // One, or both, of the artifacts are not a wheel distribution so we cannot - // currently compare them. In that case we always just reinstall. - // TODO: Maybe log some info here? - // TODO: Add support for more distribution types. - false - } - (Some(locked_tags), Some(installed_tags)) => locked_tags == installed_tags, - } + // // Determine the current python distributions in those locations + // let current_python_packages = find_distributions_in_venv(prefix.root(), &install_paths) + // .into_diagnostic() + // .context( + // "failed to locate python packages that have not been installed as conda packages", + // )?; + // + // // Determine the python packages that are part of the lock-file + // let python_packages = python_packages.iter().collect_vec(); + // + // // Determine the python packages to remove before we start installing anything new. If the + // // python version changed between installations we will have to remove any previous distribution + // // regardless. + // let (python_distributions_to_remove, python_distributions_to_install) = + // determine_python_distributions_to_remove_and_install( + // prefix.root(), + // current_python_packages, + // python_packages, + // ); + // + // // Determine the python interpreter that is installed as part of the conda packages. + // let python_record = conda_package + // .iter() + // .find(|r| is_python_record(r)) + // .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; + // + // // Determine the environment markers + // let marker_environment = Arc::new(determine_marker_environment( + // platform, + // python_record.as_ref(), + // )?); + // + // // Determine the compatible tags + // let compatible_tags = Arc::new(project_platform_tags( + // platform, + // system_requirements, + // python_record.as_ref(), + // )); + // + // // Define the resolve options for local wheel building + // let resolve_options = Arc::new(ResolveOptions { + // sdist_resolution, + // python_location: PythonLocation::Custom(python_location), + // ..Default::default() + // }); + // + // // Start downloading the python packages that we want in the background. + // let (package_stream, package_stream_pb) = stream_python_artifacts( + // package_db, + // marker_environment, + // compatible_tags, + // resolve_options, + // python_distributions_to_install.clone(), + // ); + // + // // Remove python packages that need to be removed + // if !python_distributions_to_remove.is_empty() { + // let site_package_path = install_paths.site_packages(); + // + // for python_distribution in python_distributions_to_remove { + // uninstall_pixi_installed_distribution(prefix, site_package_path, &python_distribution)?; + // } + // } + // + // // Install the individual python packages that we want + // let package_install_pb = install_python_distributions( + // prefix, + // install_paths, + // &prefix.root().join(python_info.path()), + // package_stream, + // ) + // .await?; + // + // // Clear any pending progress bar + // for pb in package_install_pb + // .into_iter() + // .chain(package_stream_pb.into_iter()) + // { + // pb.finish_and_clear(); + // } + // + Ok(()) } + +// Concurrently installs python wheels as they become available. +// async fn install_python_distributions( +// prefix: &Prefix, +// install_paths: InstallPaths, +// python_executable_path: &Path, +// package_stream: impl Stream, HashSet, Wheel)>> + Sized, +// ) -> miette::Result> { +// // Determine the number of packages that we are going to install +// let len = { +// let (lower_bound, upper_bound) = package_stream.size_hint(); +// upper_bound.unwrap_or(lower_bound) +// }; +// if len == 0 { +// return Ok(None); +// } +// +// // Create a progress bar to show the progress of the installation +// let pb = progress::global_multi_progress().add(ProgressBar::new(len as u64)); +// pb.set_style(progress::default_progress_style()); +// pb.set_prefix("unpacking wheels"); +// pb.enable_steady_tick(Duration::from_millis(100)); +// +// // Create a message formatter to show the current operation +// let message_formatter = ProgressBarMessageFormatter::new(pb.clone()); +// +// // Concurrently unpack the wheels as they become available in the stream. +// let install_pb = pb.clone(); +// package_stream +// .try_for_each_concurrent(Some(20), move |(hash, extras, wheel)| { +// let install_paths = install_paths.clone(); +// let root = prefix.root().to_path_buf(); +// let message_formatter = message_formatter.clone(); +// let pb = install_pb.clone(); +// let python_executable_path = python_executable_path.to_owned(); +// async move { +// let pb_task = message_formatter.start(wheel.name().to_string()).await; +// let unpack_result = tokio::task::spawn_blocking(move || { +// install_wheel( +// &wheel, +// &root, +// &install_paths, +// &python_executable_path, +// &InstallWheelOptions { +// installer: Some(PIXI_PYPI_INSTALLER.into()), +// extras: Some(extras), +// ..Default::default() +// }, +// ) +// .into_diagnostic() +// .and_then(|unpacked_wheel| { +// if let Some(hash) = hash { +// std::fs::write(unpacked_wheel.dist_info.join("HASH"), hash) +// .into_diagnostic() +// } else { +// Ok(()) +// } +// }) +// }) +// .map_err(JoinError::try_into_panic) +// .await; +// +// pb_task.finish().await; +// pb.inc(1); +// +// match unpack_result { +// Ok(unpack_result) => unpack_result, +// Err(Ok(panic)) => std::panic::resume_unwind(panic), +// Err(Err(e)) => Err(miette::miette!("{e}")), +// } +// } +// }) +// .await?; +// +// // Update the progress bar +// pb.set_style(progress::finished_progress_style()); +// pb.finish(); +// +// Ok(Some(pb)) +// } +// +// /// Creates a stream which downloads the specified python packages. The stream will download the +// /// packages in parallel and yield them as soon as they become available. +// fn stream_python_artifacts( +// package_db: Arc, +// marker_environment: Arc, +// compatible_tags: Arc, +// resolve_options: Arc, +// packages_to_download: Vec<&CombinedPypiPackageData>, +// ) -> ( +// impl Stream, HashSet, Wheel)>> + '_, +// Option, +// ) { +// if packages_to_download.is_empty() { +// return (stream::empty().left_stream(), None); +// } +// +// // Construct a progress bar to provide some indication on what is currently downloading. +// // TODO: It would be much nicer if we can provide more information with regards to the progress. +// // For instance if we could also show at what speed the downloads are progressing or the total +// // size of the downloads that would really help the user I think. +// let pb = +// progress::global_multi_progress().add(ProgressBar::new(packages_to_download.len() as u64)); +// pb.set_style(progress::default_progress_style()); +// pb.set_prefix("acquiring wheels"); +// pb.enable_steady_tick(Duration::from_millis(100)); +// +// // Construct a message formatter +// let message_formatter = ProgressBarMessageFormatter::new(pb.clone()); +// +// let stream_pb = pb.clone(); +// let total_packages = packages_to_download.len(); +// +// let wheel_builder = WheelBuilder::new( +// package_db.clone(), +// marker_environment, +// Some(compatible_tags), +// resolve_options.deref().clone(), +// ) +// .into_diagnostic() +// .context("error in construction of WheelBuilder for `pypi-dependencies` installation") +// .expect("die"); +// +// let download_stream = stream::iter(packages_to_download) +// .map(move |(pkg_data, pkg_env_data)| { +// let pb = stream_pb.clone(); +// let message_formatter = message_formatter.clone(); +// let package_db = package_db.clone(); +// let wheel_builder = wheel_builder.clone(); +// +// async move { +// // Determine the filename from the +// let filename = pkg_data +// .url +// .path_segments() +// .and_then(|s| s.last()) +// .expect("url is missing a path"); +// let name = NormalizedPackageName::from_str(&pkg_data.name) +// .into_diagnostic() +// .with_context(|| { +// format!("'{}' is not a valid python package name", &pkg_data.name) +// })?; +// +// let artifact_name = +// ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) +// .expect("failed to convert filename to artifact name"); +// +// let (artifact_name, is_direct_url) = +// if let ArtifactName::STree(mut stree) = artifact_name { +// // populate resolved version of direct dependency +// stree.version = pkg_data.version.clone(); +// (ArtifactName::STree(stree), true) +// } else { +// (artifact_name, false) +// }; +// +// // Log out intent to install this python package. +// tracing::info!("downloading python package {filename}"); +// let pb_task = message_formatter.start(filename.to_string()).await; +// +// // Reconstruct the ArtifactInfo from the data in the lockfile. +// let artifact_info = ArtifactInfo { +// filename: artifact_name, +// url: pkg_data.url.clone(), +// hashes: pkg_data.hash.as_ref().map(|hash| ArtifactHashes { +// sha256: hash.sha256().cloned(), +// }), +// requires_python: pkg_data.requires_python.clone(), +// dist_info_metadata: Default::default(), +// yanked: Default::default(), +// is_direct_url, +// }; +// +// let (wheel, _) = tokio::spawn({ +// let wheel_builder = wheel_builder.clone(); +// let package_db = package_db.clone(); +// async move { +// // TODO: Maybe we should have a cache of wheels separate from the package_db. Since a +// // wheel can just be identified by its hash or url. +// package_db +// .get_wheel(&artifact_info, Some(wheel_builder.clone())) +// .await +// } +// }) +// .await +// .unwrap_or_else(|e| match e.try_into_panic() { +// Ok(panic) => std::panic::resume_unwind(panic), +// Err(_) => Err(miette::miette!("operation was cancelled")), +// })?; +// +// // Update the progress bar +// pb_task.finish().await; +// pb.inc(1); +// if pb.position() == total_packages as u64 { +// pb.set_style(progress::finished_progress_style()); +// pb.finish(); +// } +// +// let hash = pkg_data +// .hash +// .as_ref() +// .and_then(|h| h.sha256()) +// .map(|sha256| format!("sha256-{:x}", sha256)); +// +// Ok(( +// hash, +// pkg_env_data +// .extras +// .iter() +// .filter_map(|e| Extra::from_str(e).ok()) +// .collect(), +// wheel, +// )) +// } +// }) +// .buffer_unordered(20) +// .right_stream(); +// +// (download_stream, Some(pb)) +// } +// +// /// If there was a previous version of python installed, remove any distribution installed in that +// /// environment. +// pub fn remove_old_python_distributions( +// prefix: &Prefix, +// platform: Platform, +// python_changed: &PythonStatus, +// ) -> miette::Result<()> { +// // If the python version didn't change, there is nothing to do here. +// let python_version = match python_changed { +// PythonStatus::Removed { old } | PythonStatus::Changed { old, .. } => old, +// PythonStatus::Added { .. } | PythonStatus::DoesNotExist | PythonStatus::Unchanged(_) => { +// return Ok(()); +// } +// }; +// +// // Get the interpreter version from the info +// let python_version = ( +// python_version.short_version.0 as u32, +// python_version.short_version.1 as u32, +// 0, +// ); +// let install_paths = InstallPaths::for_venv(python_version, platform.is_windows()); +// +// // Locate the packages that are installed in the previous environment +// let current_python_packages = find_distributions_in_venv(prefix.root(), &install_paths) +// .into_diagnostic() +// .with_context(|| format!("failed to determine the python packages installed for a previous version of python ({}.{})", python_version.0, python_version.1))? +// .into_iter().filter(|d| d.installer.as_deref() != Some("conda") && d.installer.is_some()).collect_vec(); +// +// let pb = progress::global_multi_progress() +// .add(ProgressBar::new(current_python_packages.len() as u64)); +// pb.set_style(progress::default_progress_style()); +// pb.set_message("removing old python packages"); +// pb.enable_steady_tick(Duration::from_millis(100)); +// +// // Remove the python packages +// let site_package_path = install_paths.site_packages(); +// for python_package in current_python_packages { +// pb.set_message(format!( +// "{} {}", +// &python_package.name, &python_package.version +// )); +// +// uninstall_pixi_installed_distribution(prefix, site_package_path, &python_package)?; +// +// pb.inc(1); +// } +// +// Ok(()) +// } +// +// /// Uninstalls a python distribution that was previously installed by pixi. +// fn uninstall_pixi_installed_distribution( +// prefix: &Prefix, +// site_package_path: &Path, +// python_package: &Distribution, +// ) -> miette::Result<()> { +// tracing::info!( +// "uninstalling python package {}-{}", +// &python_package.name, +// &python_package.version +// ); +// let relative_dist_info = python_package +// .dist_info +// .strip_prefix(site_package_path) +// .expect("the dist-info path must be a sub-path of the site-packages path"); +// +// // HACK: Also remove the HASH file that pixi writes. Ignore the error if its there. We +// // should probably actually add this file to the RECORD. +// let _ = std::fs::remove_file(prefix.root().join(&python_package.dist_info).join("HASH")); +// +// uninstall_distribution(&prefix.root().join(site_package_path), relative_dist_info) +// .into_diagnostic() +// .with_context(|| format!("could not uninstall python package {}-{}. Manually remove the `.pixi/env` folder and try again.", &python_package.name, &python_package.version))?; +// +// Ok(()) +// } +// +// /// Determine which python packages we can leave untouched and which python packages should be +// /// removed. +// fn determine_python_distributions_to_remove_and_install<'p>( +// prefix: &Path, +// mut current_python_packages: Vec, +// desired_python_packages: Vec<&'p CombinedPypiPackageData>, +// ) -> (Vec, Vec<&'p CombinedPypiPackageData>) { +// // Determine the artifact tags associated with the locked dependencies. +// let mut desired_python_packages = extract_locked_tags(desired_python_packages); +// +// // Any package that is currently installed that is not part of the locked dependencies should be +// // removed. So we keep it in the `current_python_packages` list. +// // Any package that is in the currently installed list that is NOT found in the lockfile is +// // retained in the list to mark it for removal. +// current_python_packages.retain(|current_python_packages| { +// if current_python_packages.installer.is_none() { +// // If this package has no installer, we can't make a reliable decision on whether to +// // keep it or not. So we do not uninstall it. +// return false; +// } +// +// if let Some(found_desired_packages_idx) = +// desired_python_packages +// .iter() +// .position(|(pkg, artifact_name)| { +// does_installed_match_locked_package( +// prefix, +// current_python_packages, +// (pkg, artifact_name.as_ref()), +// ) +// }) +// { +// // Remove from the desired list of packages to install & from the packages to uninstall. +// desired_python_packages.remove(found_desired_packages_idx); +// false +// } else { +// // Only if this package was previously installed by us do we remove it. +// current_python_packages.installer.as_deref() == Some(PIXI_PYPI_INSTALLER) +// } +// }); +// +// ( +// current_python_packages, +// desired_python_packages +// .into_iter() +// .map(|(pkg, _)| pkg) +// .collect(), +// ) +// } +// +// /// Determine the wheel tags for the locked dependencies. These are extracted by looking at the url +// /// of the locked dependency. The filename of the URL is converted to a wheel name and the tags are +// /// extract from that. +// /// +// /// If the locked dependency is not a wheel distribution `None` is returned for the tags. If the +// /// the wheel name could not be parsed `None` is returned for the tags and a warning is emitted. +// fn extract_locked_tags( +// desired_python_packages: Vec<&CombinedPypiPackageData>, +// ) -> Vec<(&CombinedPypiPackageData, Option>)> { +// desired_python_packages +// .into_iter() +// .map(|pkg @ (pkg_data, _pkg_env_data)| { +// // Extract the filename from the url and the name from the package name. +// let Some(filename) = pkg_data.url.path_segments().and_then(|s| s.last()) else { +// tracing::warn!( +// "failed to determine the artifact name of the python package {}-{} from url {}: the url has no filename.", +// &pkg_data.name, pkg_data.version, &pkg_data.url); +// return (pkg, None); +// }; +// let Ok(name) = NormalizedPackageName::from_str(&pkg_data.name) else { +// tracing::warn!( +// "failed to determine the artifact name of the python package {}-{} from url {}: {} is not a valid package name.", +// &pkg_data.name, pkg_data.version, &pkg_data.url, &pkg_data.name); +// return (pkg, None); +// }; +// +// // Determine the artifact type from the name and filename +// match ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) { +// Ok(ArtifactName::Wheel(name)) => (pkg, Some(IndexSet::from_iter(name.all_tags_iter()))), +// Ok(_) => (pkg, None), +// Err(err) => { +// tracing::warn!( +// "failed to determine the artifact name of the python package {}-{}. Could not determine the name from the url {}: {err}", +// &pkg_data.name, pkg_data.version, &pkg_data.url); +// (pkg, None) +// } +// } +// }) +// .collect() +// } +// +// /// Returns true if the installed python package matches the locked python package. If that is the +// /// case we can assume that the locked python package is already installed. +// fn does_installed_match_locked_package( +// prefix_root: &Path, +// installed_python_package: &Distribution, +// locked_python_package: (&CombinedPypiPackageData, Option<&IndexSet>), +// ) -> bool { +// let ((pkg_data, _), artifact_tags) = locked_python_package; +// +// // Match on name and version +// if pkg_data.name != installed_python_package.name.as_str() +// || pkg_data.version != installed_python_package.version +// { +// return false; +// } +// +// // If this distribution is installed with pixi we can assume that there is a URL file that +// // contains the original URL. +// if installed_python_package.installer.as_deref() == Some(PIXI_PYPI_INSTALLER) { +// let expected_hash = pkg_data +// .hash +// .as_ref() +// .and_then(|hash| hash.sha256()) +// .map(|sha256| format!("sha256-{:x}", sha256)); +// if let Some(expected_hash) = expected_hash { +// let hash_path = prefix_root +// .join(&installed_python_package.dist_info) +// .join("HASH"); +// if let Ok(actual_hash) = std::fs::read_to_string(hash_path) { +// return actual_hash == expected_hash; +// } +// } +// } +// +// // Try to match the tags of both packages. This turns out to be pretty unreliable because +// // there are many WHEELS that do not report the tags of their filename correctly in the +// // WHEEL file. +// match (artifact_tags, &installed_python_package.tags) { +// (None, _) | (_, None) => { +// // One, or both, of the artifacts are not a wheel distribution so we cannot +// // currently compare them. In that case we always just reinstall. +// // TODO: Maybe log some info here? +// // TODO: Add support for more distribution types. +// false +// } +// (Some(locked_tags), Some(installed_tags)) => locked_tags == installed_tags, +// } +// } diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index 743121158..72779889d 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -1,10 +1,10 @@ +use crate::pypi_name_mapping; use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{PackageUrl, RepoDataRecord}; use rattler_lock::CondaPackage; use std::{collections::HashSet, str::FromStr}; use thiserror::Error; use uv_normalize::{ExtraName, InvalidNameError, PackageName}; -use crate::pypi_name_mapping; /// Defines information about a Pypi package extracted from either a python package or from a /// conda package. diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index edf151758..fd95a7d24 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1,9 +1,21 @@ -use crate::{config, consts, environment, environment::{ - LockFileUsage, PerEnvironmentAndPlatform, PerGroup, PerGroupAndPlatform, PythonStatus, -}, load_lock_file, lock_file, lock_file::{ - update, OutdatedEnvironments, PypiPackageIdentifier, PypiRecordsByName, - RepoDataRecordsByName, -}, prefix::Prefix, progress::global_multi_progress, project::{Environment, GroupedEnvironment, GroupedEnvironmentName}, repodata::fetch_sparse_repodata_targets, utils::BarrierCell, EnvironmentName, Project, pypi_name_mapping}; +use crate::{ + config, consts, environment, + environment::{ + LockFileUsage, PerEnvironmentAndPlatform, PerGroup, PerGroupAndPlatform, PythonStatus, + }, + load_lock_file, lock_file, + lock_file::{ + update, OutdatedEnvironments, PypiPackageIdentifier, PypiRecordsByName, + RepoDataRecordsByName, + }, + prefix::Prefix, + progress::global_multi_progress, + project::{Environment, GroupedEnvironment, GroupedEnvironmentName}, + pypi_name_mapping, + repodata::fetch_sparse_repodata_targets, + utils::BarrierCell, + EnvironmentName, Project, +}; use futures::{future::Either, stream::FuturesUnordered, FutureExt, StreamExt, TryFutureExt}; use indexmap::{IndexMap, IndexSet}; use indicatif::ProgressBar; @@ -94,7 +106,6 @@ impl<'p> LockFileDerivedData<'p> { environment.name(), &prefix, platform, - package_db, &repodata_records, &pypi_records, &python_status, @@ -738,12 +749,8 @@ pub async fn ensure_up_to_date_lock_file( .expect("prefix should be available now or in the future"); // Spawn a task to solve the pypi environment - let pypi_solve_future = spawn_solve_pypi_task( - group.clone(), - platform, - repodata_future, - prefix_future, - ); + let pypi_solve_future = + spawn_solve_pypi_task(group.clone(), platform, repodata_future, prefix_future); pending_futures.push(pypi_solve_future.boxed_local()); diff --git a/src/project/mod.rs b/src/project/mod.rs index 9a3def4c2..01614afee 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -12,8 +12,6 @@ use once_cell::sync::OnceCell; use rattler_conda_types::{Channel, GenericVirtualPackage, Platform, Version}; use rattler_networking::AuthenticationMiddleware; use reqwest_middleware::ClientWithMiddleware; -use rip::index::PackageSources; -use rip::{index::PackageDb, normalize_index_url}; use std::hash::Hash; use std::{ collections::{HashMap, HashSet}, @@ -91,7 +89,7 @@ pub struct Project { /// Root folder of the project root: PathBuf, /// The PyPI package db for this project - package_db: OnceCell>, + // package_db: OnceCell>, /// Reqwest client shared for this project client: reqwest::Client, /// Authenticated reqwest client shared for this project @@ -118,7 +116,7 @@ impl Project { .build(); Self { root: Default::default(), - package_db: Default::default(), + // package_db: Default::default(), client, authenticated_client, manifest, @@ -174,7 +172,7 @@ impl Project { Ok(Self { root: root.to_owned(), - package_db: Default::default(), + // package_db: Default::default(), client: Default::default(), authenticated_client: reqwest_middleware::ClientBuilder::new(reqwest::Client::new()) .with_arc(Arc::new(AuthenticationMiddleware::default())) @@ -374,26 +372,26 @@ impl Project { self.manifest.has_pypi_dependencies() } - /// Returns the Python index URLs to use for this project. - pub fn pypi_index_url(&self) -> Url { - normalize_index_url(Url::parse("https://pypi.org/simple/").unwrap()) - } - - /// Returns the package database used for caching python metadata, wheels and more. See the - /// documentation of [`rip::index::PackageDb`] for more information. - pub fn pypi_package_db(&self) -> miette::Result> { - Ok(self - .package_db - .get_or_try_init(|| { - PackageDb::new( - PackageSources::from(self.pypi_index_url()), - self.authenticated_client().clone(), - &config::get_cache_dir()?.join("pypi/"), - ) - .map(Arc::new) - })? - .clone()) - } + // /// Returns the Python index URLs to use for this project. + // pub fn pypi_index_url(&self) -> Url { + // normalize_index_url(Url::parse("https://pypi.org/simple/").unwrap()) + // } + // + // /// Returns the package database used for caching python metadata, wheels and more. See the + // /// documentation of [`rip::index::PackageDb`] for more information. + // pub fn pypi_package_db(&self) -> miette::Result> { + // Ok(self + // .package_db + // .get_or_try_init(|| { + // PackageDb::new( + // PackageSources::from(self.pypi_index_url()), + // self.authenticated_client().clone(), + // &config::get_cache_dir()?.join("pypi/"), + // ) + // .map(Arc::new) + // })? + // .clone()) + // } /// Returns the reqwest client used for http networking pub fn client(&self) -> &reqwest::Client { From 5ae69e9828973bbc27607985983474f0ae7f3a96 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 19 Feb 2024 16:23:24 +0100 Subject: [PATCH 08/55] wip: converting to new types --- src/project/manifest/mod.rs | 6 +++--- src/project/manifest/python.rs | 37 ++++++++++++++++++++++++++-------- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/project/manifest/mod.rs b/src/project/manifest/mod.rs index 41edb2252..2aefac5ef 100644 --- a/src/project/manifest/mod.rs +++ b/src/project/manifest/mod.rs @@ -382,7 +382,7 @@ impl Manifest { )?; // Add the pypi dependency to the table - dependency_table.insert(name.as_str(), (*requirement).clone().into()); + dependency_table.insert(name.as_ref(), (*requirement).clone().into()); // Add the dependency to the manifest as well self.default_feature_mut() @@ -440,14 +440,14 @@ impl Manifest { feature_name, consts::PYPI_DEPENDENCIES, )? - .remove(dep.as_source_str()) + .remove(dep.as_ref()) .ok_or_else(|| { let table_name = get_nested_toml_table_name(feature_name, platform, consts::PYPI_DEPENDENCIES); miette::miette!( "Couldn't find {} in [{}]", - console::style(dep.as_source_str()).bold(), + console::style(dep.as_ref()).bold(), console::style(table_name).bold(), ) })?; diff --git a/src/project/manifest/python.rs b/src/project/manifest/python.rs index 93a054629..6f71b82d0 100644 --- a/src/project/manifest/python.rs +++ b/src/project/manifest/python.rs @@ -1,13 +1,15 @@ use pep440_rs::VersionSpecifiers; +use pep508_rs::Extras; use serde::{de, de::Error, Deserialize, Deserializer}; use std::{fmt, fmt::Formatter, str::FromStr}; use thiserror::Error; use toml_edit::Item; +use uv_normalize::ExtraName; #[derive(Debug, Clone, Eq, PartialEq)] pub struct PyPiRequirement { pub(crate) version: Option, - pub(crate) extras: Option>, + pub(crate) extras: Option, pub(crate) index: Option, } @@ -15,7 +17,7 @@ pub struct PyPiRequirement { #[derive(Debug, Clone, Error)] pub enum ParsePyPiRequirementError { #[error("invalid pep440 version specifier")] - Pep440Error(#[from] pep440_rs::VersionParseError), + Pep440Error(#[from] pep440_rs::VersionSpecifiersParseError), #[error("empty string is not allowed, did you mean '*'?")] EmptyStringNotAllowed, @@ -112,7 +114,7 @@ impl From for PyPiRequirement { }; PyPiRequirement { version, - extras: req.extras, + extras: Some(Extras(req.extras)), index: None, } } @@ -123,7 +125,11 @@ impl PyPiRequirement { pub fn as_pep508(&self, name: &uv_normalize::PackageName) -> pep508_rs::Requirement { pep508_rs::Requirement { name: name.as_str().to_string(), - extras: self.extras.clone(), + extras: self + .extras + .clone() + .map(|e| e.into_vec()) + .unwrap_or_default(), version_or_url: self .version .clone() @@ -159,9 +165,18 @@ impl<'de> Deserialize<'de> for PyPiRequirement { ); } }; + let mut extras = Vec::new(); + if let Some(raw_extras) = raw_requirement.extras { + extras = raw_extras + .into_iter() + .map(ExtraName::from_str) + .collect::, _>>() + .map_err(Error::custom)?; + } + Ok(PyPiRequirement { + extras: Some(Extras(extras)), version, - extras: raw_requirement.extras, index: raw_requirement.index, }) }) @@ -254,7 +269,7 @@ mod tests { requirement.first().unwrap().1, &PyPiRequirement { version: Some(pep440_rs::VersionSpecifiers::from_str(">=3.12").unwrap()), - extras: Some(vec!("bar".to_string())), + extras: Some(Extras(vec![ExtraName::from_str("bar").unwrap()])), index: Some("artifact-registry".to_string()), } ); @@ -272,7 +287,10 @@ mod tests { requirement.first().unwrap().1, &PyPiRequirement { version: Some(pep440_rs::VersionSpecifiers::from_str(">=3.12,<3.13.0").unwrap()), - extras: Some(vec!("bar".to_string(), "foo".to_string())), + extras: Some(Extras(vec![ + ExtraName::from_str("bar").unwrap(), + ExtraName::from_str("foo").unwrap() + ])), index: None, } ); @@ -293,7 +311,10 @@ mod tests { pypi_requirement, PyPiRequirement { version: VersionSpecifiers::from_str("==1.2.3").ok(), - extras: Some(vec!["feature1".to_owned(), "feature2".to_owned()]), + extras: Some(Extras(vec![ + ExtraName::from_str("feature1").unwrap(), + ExtraName::from_str("feature2").unwrap() + ])), index: None, } ); From 2ba9f53efcc5f577f9b2076d9cb18ee700dccdea Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 16:23:59 +0100 Subject: [PATCH 09/55] fix: more error --- src/environment.rs | 2 -- src/lock_file/package_identifier.rs | 6 +++--- src/lock_file/records_by_name.rs | 14 +++----------- src/lock_file/satisfiability.rs | 10 ++++------ src/lock_file/update.rs | 4 ---- src/project/mod.rs | 3 --- src/project/solve_group.rs | 2 +- src/pypi_tags.rs | 30 ++++++++++++++--------------- 8 files changed, 25 insertions(+), 46 deletions(-) diff --git a/src/environment.rs b/src/environment.rs index cc72c053c..8e5ad2cb3 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -21,9 +21,7 @@ use rattler_conda_types::{Channel, Platform, PrefixRecord, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; use rattler_repodata_gateway::sparse::SparseRepoData; use reqwest_middleware::ClientWithMiddleware; -use std::path::PathBuf; use std::{collections::HashMap, io::ErrorKind, path::Path, sync::Arc}; -use uv_interpreter::Interpreter; /// Verify the location of the prefix folder is not changed so the applied prefix path is still valid. /// Errors when there is a file system error or the path does not align with the defined prefix. diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index 72779889d..8dc1827c0 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -41,7 +41,7 @@ impl PypiPackageIdentifier { Ok(Self { name: package.data().package.name.clone(), version: package.data().package.version.clone(), - extras: package.extras().iter().collect(), + extras: package.extras().iter().cloned().collect(), }) } @@ -188,8 +188,8 @@ impl PypiPackageIdentifier { } // Check if the required extras exist - for extra in requirement.extras.iter().flat_map(|e| e.iter()) { - if !self.extras.contains(extra.as_str()) { + for extra in requirement.extras.iter() { + if !self.extras.contains(extra) { return false; } } diff --git a/src/lock_file/records_by_name.rs b/src/lock_file/records_by_name.rs index 875401480..cd6aa09e8 100644 --- a/src/lock_file/records_by_name.rs +++ b/src/lock_file/records_by_name.rs @@ -4,7 +4,6 @@ use std::borrow::Borrow; use std::collections::hash_map::Entry; use std::collections::{HashMap, HashSet}; use std::hash::Hash; -use std::str::FromStr; /// A struct that holds both a ``Vec` of `RepoDataRecord` and a mapping from name to index. #[derive(Clone, Debug, Default)] @@ -135,10 +134,7 @@ impl PypiRecordsByName { let mut by_name = HashMap::with_capacity(min_size); let mut records = Vec::with_capacity(min_size); for record in iter { - let Ok(package_name) = uv_normalize::PackageName::from_str(&record.0.name) else { - continue; - }; - match by_name.entry(package_name) { + match by_name.entry(record.0.name.clone()) { Entry::Vacant(entry) => { let idx = records.len(); records.push(record); @@ -180,12 +176,8 @@ impl PypiRecordsByName { // Find all the dependencies of the package and add them to the queue for dependency in found_package.0.requires_dist.iter() { - let Ok(dependency_name) = uv_normalize::PackageName::from_str(&dependency.name) - else { - continue; - }; - if queued_names.insert(dependency_name.clone()) { - queue.push(dependency_name); + if queued_names.insert(dependency.name.clone()) { + queue.push(dependency.name.clone()); } } diff --git a/src/lock_file/satisfiability.rs b/src/lock_file/satisfiability.rs index 5aa34b6d5..13b8f7b48 100644 --- a/src/lock_file/satisfiability.rs +++ b/src/lock_file/satisfiability.rs @@ -14,6 +14,7 @@ use std::{ str::FromStr, }; use thiserror::Error; +use uv_normalize::PackageName; #[derive(Debug, Error, Diagnostic)] pub enum EnvironmentUnsat { @@ -50,7 +51,7 @@ pub enum PlatformUnsat { FailedToDetermineMarkerEnvironment(#[source] Box), #[error("{0} requires python version {1} but the python interpreter in the lock-file has version {2}")] - PythonVersionMismatch(String, VersionSpecifiers, Box), + PythonVersionMismatch(PackageName, VersionSpecifiers, Box), } /// Verifies that all the requirements of the specified `environment` can be satisfied with the @@ -340,10 +341,7 @@ pub fn verify_pypi_platform_satisfiability( // Loop over all requirements of the package and add them to the queue. for dependency in pkg_data.requires_dist.iter() { // Skip this requirement if it does not apply. - if !dependency.evaluate_markers( - &marker_environment, - requirement.extras.clone().unwrap_or_default(), - ) { + if !dependency.evaluate_markers(&marker_environment, &requirement.extras) { continue; } @@ -354,7 +352,7 @@ pub fn verify_pypi_platform_satisfiability( // Add the requirement to the queue. requirements_visited.insert(dependency.clone()); - requirements.push((dependency.clone(), &pkg_data.name)); + requirements.push((dependency.clone(), pkg_data.name.as_ref())); } } diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index fd95a7d24..d73f7f0df 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -94,7 +94,6 @@ impl<'p> LockFileDerivedData<'p> { // Get the prefix with the conda packages installed. let platform = Platform::current(); - let package_db = environment.project().pypi_package_db()?; let (prefix, python_status) = self.conda_prefix(environment).await?; let repodata_records = self .repodata_records(environment, platform) @@ -1235,9 +1234,6 @@ async fn spawn_solve_pypi_task( // Get the system requirements for this environment let system_requirements = environment.system_requirements(); - // Get the package database - let package_db = environment.project().pypi_package_db()?; - // Wait until the conda records and prefix are available. let (repodata_records, (prefix, python_status)) = tokio::join!(repodata_records, prefix); diff --git a/src/project/mod.rs b/src/project/mod.rs index 01614afee..8ade6c1e2 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -8,7 +8,6 @@ pub mod virtual_packages; use indexmap::{Equivalent, IndexMap, IndexSet}; use miette::{IntoDiagnostic, NamedSource, WrapErr}; -use once_cell::sync::OnceCell; use rattler_conda_types::{Channel, GenericVirtualPackage, Platform, Version}; use rattler_networking::AuthenticationMiddleware; use reqwest_middleware::ClientWithMiddleware; @@ -24,12 +23,10 @@ use std::{ }; use crate::{ - config, consts::{self, PROJECT_MANIFEST}, task::Task, }; use manifest::{EnvironmentName, Manifest, PyPiRequirement, SystemRequirements}; -use url::Url; use crate::task::TaskName; pub use dependencies::Dependencies; diff --git a/src/project/solve_group.rs b/src/project/solve_group.rs index 92bbf7066..f5bed938b 100644 --- a/src/project/solve_group.rs +++ b/src/project/solve_group.rs @@ -257,7 +257,7 @@ mod tests { ["a", "b", "c"] .into_iter() .map(PackageName::new_unchecked) - .collect() + .collect::>() ); } } diff --git a/src/pypi_tags.rs b/src/pypi_tags.rs index 48d0702ad..1ac48b6b9 100644 --- a/src/pypi_tags.rs +++ b/src/pypi_tags.rs @@ -1,5 +1,6 @@ use crate::project::manifest::{LibCSystemRequirement, SystemRequirements}; use crate::project::virtual_packages::{default_glibc_version, default_mac_os_version}; +use miette::{Context, IntoDiagnostic}; use platform_host::Os; use platform_tags::Tags; use rattler_conda_types::{Arch, PackageRecord, Platform}; @@ -31,7 +32,7 @@ pub fn get_pypi_tags( Some(Arch::Ppc64) => platform_host::Arch::Powerpc64, Some(Arch::S390X) => platform_host::Arch::S390X, Some(unsupported_arch) => { - miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + miette::bail!("unsupported arch for pypi packages '{unsupported_arch}'") } }; @@ -55,7 +56,7 @@ pub fn get_pypi_tags( } Some(("glibc", version)) => { let Some((major, minor)) = version.as_major_minor() else { - miette::miette!( + miette::bail!( "expected glibc version to be a major.minor version, but got '{version}'" ) }; @@ -68,9 +69,7 @@ pub fn get_pypi_tags( ) } Some((family, _)) => { - return Err(miette::miette!( - "unsupported libc family for pypi packages '{family}'" - )); + miette::bail!("unsupported libc family for pypi packages '{family}'"); } } } else if platform.is_windows() { @@ -80,7 +79,7 @@ pub fn get_pypi_tags( Some(Arch::X86_64) => platform_host::Arch::X86_64, Some(Arch::Aarch64) => platform_host::Arch::Aarch64, Some(unsupported_arch) => { - miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + miette::bail!("unsupported arch for pypi packages '{unsupported_arch}'") } }; @@ -88,9 +87,9 @@ pub fn get_pypi_tags( } else if platform.is_osx() { let osx_version = system_requirements .macos - .unwrap_or_else(default_mac_os_version(platform)); + .unwrap_or_else(|| default_mac_os_version(platform)); let Some((major, minor)) = osx_version.as_major_minor() else { - miette::miette!( + miette::bail!( "expected macos version to be a major.minor version, but got '{osx_version}'" ) }; @@ -101,7 +100,7 @@ pub fn get_pypi_tags( Some(Arch::X86_64) => platform_host::Arch::X86_64, Some(Arch::Aarch64) => platform_host::Arch::Aarch64, Some(unsupported_arch) => { - miette::miette!("unsupported arch for pypi packages '{unsupported_arch}'") + miette::bail!("unsupported arch for pypi packages '{unsupported_arch}'") } }; @@ -113,26 +112,24 @@ pub fn get_pypi_tags( arch, ) } else { - return Err(miette::miette!( - "unsupported platform for pypi packages {platform}" - )); + miette::bail!("unsupported platform for pypi packages {platform}") }; // Build the wheel tags based on the interpreter, the target platform, and the python version. let Some(python_version) = python_record.version.as_major_minor() else { - return Err(miette::miette!( + miette::bail!( "expected python version to be a major.minor version, but got '{}'", &python_record.version - )); + ); }; let implementation_name = match python_record.name.as_normalized() { "python" => "cpython", "pypy" => "pypy", _ => { - return Err(miette::miette!( + miette::bail!( "unsupported python implementation '{}'", python_record.name.as_source() - )); + ); } }; let tags = Tags::from_env( @@ -142,6 +139,7 @@ pub fn get_pypi_tags( // TODO: This might not be entirely correct.. (python_version.0 as u8, python_version.1 as u8), ) + .into_diagnostic() .context("failed to determine the python wheel tags for the target platform")?; Ok(tags) From 2f2ae23a8cc1fc3ba0e7d04695b80c6082f3e043 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 19 Feb 2024 16:31:01 +0100 Subject: [PATCH 10/55] fix: python.rs errors --- src/project/manifest/python.rs | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/project/manifest/python.rs b/src/project/manifest/python.rs index 6f71b82d0..8fd37317f 100644 --- a/src/project/manifest/python.rs +++ b/src/project/manifest/python.rs @@ -4,12 +4,12 @@ use serde::{de, de::Error, Deserialize, Deserializer}; use std::{fmt, fmt::Formatter, str::FromStr}; use thiserror::Error; use toml_edit::Item; -use uv_normalize::ExtraName; +use uv_normalize::{ExtraName, PackageName}; #[derive(Debug, Clone, Eq, PartialEq)] pub struct PyPiRequirement { pub(crate) version: Option, - pub(crate) extras: Option, + pub(crate) extras: Option>, pub(crate) index: Option, } @@ -56,7 +56,9 @@ impl From for Item { // Add extras as an array. table.insert( "extras", - toml_edit::Value::Array(toml_edit::Array::from_iter(val.extras.unwrap())), + toml_edit::Value::Array(toml_edit::Array::from_iter( + val.extras.unwrap().iter().map(|e| e.to_string()), + )), ); Item::Value(toml_edit::Value::InlineTable(table)) } else { @@ -114,7 +116,7 @@ impl From for PyPiRequirement { }; PyPiRequirement { version, - extras: Some(Extras(req.extras)), + extras: Some(req.extras), index: None, } } @@ -124,12 +126,8 @@ impl PyPiRequirement { /// Returns the requirements as [`pep508_rs::Requirement`]s. pub fn as_pep508(&self, name: &uv_normalize::PackageName) -> pep508_rs::Requirement { pep508_rs::Requirement { - name: name.as_str().to_string(), - extras: self - .extras - .clone() - .map(|e| e.into_vec()) - .unwrap_or_default(), + name: name.clone(), + extras: self.extras.clone().unwrap_or_default(), version_or_url: self .version .clone() @@ -169,13 +167,13 @@ impl<'de> Deserialize<'de> for PyPiRequirement { if let Some(raw_extras) = raw_requirement.extras { extras = raw_extras .into_iter() - .map(ExtraName::from_str) + .map(|e| ExtraName::from_str(&e)) .collect::, _>>() .map_err(Error::custom)?; } Ok(PyPiRequirement { - extras: Some(Extras(extras)), + extras: Some(extras), version, index: raw_requirement.index, }) @@ -269,7 +267,7 @@ mod tests { requirement.first().unwrap().1, &PyPiRequirement { version: Some(pep440_rs::VersionSpecifiers::from_str(">=3.12").unwrap()), - extras: Some(Extras(vec![ExtraName::from_str("bar").unwrap()])), + extras: Some(vec![ExtraName::from_str("bar").unwrap()]), index: Some("artifact-registry".to_string()), } ); @@ -287,10 +285,10 @@ mod tests { requirement.first().unwrap().1, &PyPiRequirement { version: Some(pep440_rs::VersionSpecifiers::from_str(">=3.12,<3.13.0").unwrap()), - extras: Some(Extras(vec![ + extras: Some(vec![ ExtraName::from_str("bar").unwrap(), ExtraName::from_str("foo").unwrap() - ])), + ]), index: None, } ); @@ -311,10 +309,10 @@ mod tests { pypi_requirement, PyPiRequirement { version: VersionSpecifiers::from_str("==1.2.3").ok(), - extras: Some(Extras(vec![ + extras: Some(vec![ ExtraName::from_str("feature1").unwrap(), ExtraName::from_str("feature2").unwrap() - ])), + ]), index: None, } ); From ab9c591abdec5c07a019261cf11071f2718ee534 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Mon, 19 Feb 2024 16:43:27 +0100 Subject: [PATCH 11/55] fix: more errors --- src/lock_file/resolve.rs | 48 ++++++++++++++---------- src/lock_file/update.rs | 79 ++++++++++++++++++++-------------------- 2 files changed, 69 insertions(+), 58 deletions(-) diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index cb761f01c..12e19190e 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -20,15 +20,23 @@ use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; use rattler_solve::{resolvo, SolverImpl}; use std::path::Path; use std::str::FromStr; +use std::sync::Arc; use url::Url; use uv_cache::Cache; -use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClientBuilder}; +use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; use uv_dispatch::BuildDispatch; use uv_interpreter::Interpreter; use uv_normalize::PackageName; use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver}; use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; +struct PypiSolveContext { + interpreter: Interpreter, + registry_client: Arc, + index_locations: Arc, + +} + /// This function takes as input a set of dependencies and system requirements and returns a set of /// locked packages. #[allow(clippy::too_many_arguments)] @@ -61,6 +69,9 @@ pub async fn resolve_pypi( // Construct the marker environment for the target platform let marker_environment = determine_marker_environment(platform, python_record.as_ref())?; + // Determine the tags + let tags = get_pypi_tags(platform, system_requirements, python_record.as_ref())?; + // Construct a fake interpreter from the conda environment. // TODO: Should we look into using the actual interpreter here? let interpreter = Interpreter::artificial( @@ -72,9 +83,6 @@ pub async fn resolve_pypi( Path::new("invalid").to_path_buf(), ); - // Determine the tags - let tags = get_pypi_tags(platform, system_requirements, python_record.as_ref())?; - // Construct a cache // TODO: Figure out the right location let cache = Cache::temp() @@ -82,13 +90,15 @@ pub async fn resolve_pypi( .context("failed to create cache")?; // Define where to get packages from - let index_locations = IndexLocations::default(); + let index_locations = Arc::new(IndexLocations::default()); // Construct a registry client - let registry_client = RegistryClientBuilder::new(cache.clone()) - .index_urls(index_locations.index_urls()) - .connectivity(Connectivity::Online) - .build(); + let registry_client = Arc::new( + RegistryClientBuilder::new(cache.clone()) + .index_urls(index_locations.index_urls()) + .connectivity(Connectivity::Online) + .build(), + ); // Resolve the flat indexes from `--find-links`. let flat_index = { @@ -121,7 +131,7 @@ pub async fn resolve_pypi( &NoBuild::None, &NoBinary::None, ) - .with_options(options.clone()); + .with_options(options.clone()); let resolution = Resolver::new( Manifest::simple(requirements), @@ -134,10 +144,10 @@ pub async fn resolve_pypi( &index, &build_dispatch, ) - .resolve() - .await - .into_diagnostic() - .context("failed to resolve pypi dependencies")?; + .resolve() + .await + .into_diagnostic() + .context("failed to resolve pypi dependencies")?; let resolution = Resolution::from(resolution); // Clear message @@ -227,9 +237,9 @@ pub async fn resolve_conda( // Solve the task resolvo::Solver.solve(task).into_diagnostic() }) - .await - .unwrap_or_else(|e| match e.try_into_panic() { - Ok(e) => std::panic::resume_unwind(e), - Err(_err) => Err(miette::miette!("cancelled")), - }) + .await + .unwrap_or_else(|e| match e.try_into_panic() { + Ok(e) => std::panic::resume_unwind(e), + Err(_err) => Err(miette::miette!("cancelled")), + }) } diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index d73f7f0df..fbda60d36 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1238,51 +1238,52 @@ async fn spawn_solve_pypi_task( let (repodata_records, (prefix, python_status)) = tokio::join!(repodata_records, prefix); let environment_name = environment.name().clone(); - let (pypi_packages, duration) = tokio::spawn( - async move { - let pb = SolveProgressBar::new( - global_multi_progress().add(ProgressBar::hidden()), - platform, - environment_name, - ); - pb.start(); + // let (pypi_packages, duration) = tokio::spawn( + let (pypi_packages, duration) = async move { + let pb = SolveProgressBar::new( + global_multi_progress().add(ProgressBar::hidden()), + platform, + environment_name, + ); + pb.start(); - let python_path = python_status - .location() - .map(|path| prefix.root().join(path)) - .ok_or_else(|| miette::miette!("missing python interpreter from environment"))?; + let python_path = python_status + .location() + .map(|path| prefix.root().join(path)) + .ok_or_else(|| miette::miette!("missing python interpreter from environment"))?; - let start = Instant::now(); + let start = Instant::now(); - let records = lock_file::resolve_pypi( - dependencies, - system_requirements, - &repodata_records.records, - &[], - platform, - &pb.pb, - &python_path, - prefix.root(), - ) - .await?; + let records = lock_file::resolve_pypi( + dependencies, + system_requirements, + &repodata_records.records, + &[], + platform, + &pb.pb, + &python_path, + prefix.root(), + ) + .await?; - let end = Instant::now(); + let end = Instant::now(); - pb.finish(); + pb.finish(); - Ok((PypiRecordsByName::from_iter(records), end - start)) - } - .instrument(tracing::info_span!( - "resolve_pypi", - group = %environment.name().as_str(), - platform = %platform - )), - ) - .await - .unwrap_or_else(|e| match e.try_into_panic() { - Ok(panic) => std::panic::resume_unwind(panic), - Err(_err) => Err(miette::miette!("the operation was cancelled")), - })?; + Ok((PypiRecordsByName::from_iter(records), end - start)) + } + .instrument(tracing::info_span!( + "resolve_pypi", + group = %environment.name().as_str(), + platform = %platform + )) + .await?; + // ) + // .await + // .unwrap_or_else(|e| match e.try_into_panic() { + // Ok(panic) => std::panic::resume_unwind(panic), + // Err(_err) => Err(miette::miette!("the operation was cancelled")), + // })?; Ok(TaskResult::PypiGroupSolved( environment.name().clone(), From 285539242e68522f044c8301fee5b4bb1545f0a0 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 19 Feb 2024 16:54:39 +0100 Subject: [PATCH 12/55] wip: its compiling --- src/install_pypi.rs | 7 +++-- src/lock_file/package_identifier.rs | 43 ++++++++++++++--------------- src/lock_file/resolve.rs | 32 ++++++++++----------- src/lock_file/update.rs | 2 +- 4 files changed, 43 insertions(+), 41 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 3830ef61b..da5c5ded8 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -101,7 +101,7 @@ pub async fn update_python_distributions( let tags = venv.interpreter().tags().into_diagnostic()?; // Prep the registry client. - let client = RegistryClientBuilder::new(uv_cache).build(); + let client = RegistryClientBuilder::new(uv_cache.clone()).build(); // Resolve the flat indexes from `--find-links`. @@ -188,7 +188,10 @@ pub async fn update_python_distributions( "{}", format!( "Audited {} in {}", - format!("{num_requirements} package{s}"), + format!( + "{num_requirements} package{s}", + num_requirements = requirements.len() + ), elapsed(start.elapsed()) ) ); diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index 8dc1827c0..f413135c2 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -24,16 +24,16 @@ impl PypiPackageIdentifier { Ok(result) } - /// Constructs a new instance from a [`LockedDependency`]. - pub fn from_locked_package( - package: &rattler_lock::Package, - ) -> Result, ConversionError> { - match package { - rattler_lock::Package::Conda(pkg) => Self::from_locked_conda_dependency(pkg), - rattler_lock::Package::Pypi(pkg) => Ok(vec![Self::from_locked_pypi_dependency(pkg)?]), - } - } - + // /// Constructs a new instance from a [`LockedDependency`]. + // pub fn from_locked_package( + // package: &rattler_lock::Package, + // ) -> Result, ConversionError> { + // match package { + // rattler_lock::Package::Conda(pkg) => Self::from_locked_conda_dependency(pkg), + // rattler_lock::Package::Pypi(pkg) => Ok(vec![Self::from_locked_pypi_dependency(pkg)?]), + // } + // } + // /// Constructs a new instance from a locked Pypi dependency. pub fn from_locked_pypi_dependency( package: &rattler_lock::PypiPackage, @@ -119,15 +119,15 @@ impl PypiPackageIdentifier { Ok(()) } - /// Given a list of conda package records, extract the python packages that will be installed - /// when these conda packages are installed. - pub fn from_records(records: &[RepoDataRecord]) -> Result, ConversionError> { - let mut result = Vec::new(); - for record in records { - Self::from_record_into(record, &mut result)?; - } - Ok(result) - } + // /// Given a list of conda package records, extract the python packages that will be installed + // /// when these conda packages are installed. + // pub fn from_records(records: &[RepoDataRecord]) -> Result, ConversionError> { + // let mut result = Vec::new(); + // for record in records { + // Self::from_record_into(record, &mut result)?; + // } + // Ok(result) + // } /// Tries to construct an instance from a generic PURL. /// @@ -205,7 +205,6 @@ pub enum ConversionError { #[error("'{0}' is not a valid python version")] Version(String), - - #[error("'{0}' is not a valid python extra")] - Extra(String), + // #[error("'{0}' is not a valid python extra")] + // Extra(String), } diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 12e19190e..f2fef3efa 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -30,12 +30,12 @@ use uv_normalize::PackageName; use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver}; use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; -struct PypiSolveContext { - interpreter: Interpreter, - registry_client: Arc, - index_locations: Arc, - -} +// struct PypiSolveContext { +// interpreter: Interpreter, +// registry_client: Arc, +// index_locations: Arc, +// +// } /// This function takes as input a set of dependencies and system requirements and returns a set of /// locked packages. @@ -131,7 +131,7 @@ pub async fn resolve_pypi( &NoBuild::None, &NoBinary::None, ) - .with_options(options.clone()); + .with_options(options.clone()); let resolution = Resolver::new( Manifest::simple(requirements), @@ -144,10 +144,10 @@ pub async fn resolve_pypi( &index, &build_dispatch, ) - .resolve() - .await - .into_diagnostic() - .context("failed to resolve pypi dependencies")?; + .resolve() + .await + .into_diagnostic() + .context("failed to resolve pypi dependencies")?; let resolution = Resolution::from(resolution); // Clear message @@ -237,9 +237,9 @@ pub async fn resolve_conda( // Solve the task resolvo::Solver.solve(task).into_diagnostic() }) - .await - .unwrap_or_else(|e| match e.try_into_panic() { - Ok(e) => std::panic::resume_unwind(e), - Err(_err) => Err(miette::miette!("cancelled")), - }) + .await + .unwrap_or_else(|e| match e.try_into_panic() { + Ok(e) => std::panic::resume_unwind(e), + Err(_err) => Err(miette::miette!("cancelled")), + }) } diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index fbda60d36..84e314718 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1270,7 +1270,7 @@ async fn spawn_solve_pypi_task( pb.finish(); - Ok((PypiRecordsByName::from_iter(records), end - start)) + Ok::<(_, _), miette::Report>((PypiRecordsByName::from_iter(records), end - start)) } .instrument(tracing::info_span!( "resolve_pypi", From d47c4ed3a44d01a11fad3ef719e3424d65d72c73 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 20 Feb 2024 09:45:58 +0100 Subject: [PATCH 13/55] feat: some compile time fixes --- src/install_pypi.rs | 2 +- src/project/manifest/mod.rs | 2 +- tests/common/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index da5c5ded8..e5e85874f 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -95,7 +95,7 @@ pub async fn update_python_distributions( Path::new("invalid").to_path_buf(), ); /// Create a custom venv - let venv = Virtualenv::from_interpreter(interpreter, &venv_root); + let venv = Virtualenv::from_interpreter(interpreter, prefix.root()); // Determine the current environment markers. let tags = venv.interpreter().tags().into_diagnostic()?; diff --git a/src/project/manifest/mod.rs b/src/project/manifest/mod.rs index 2aefac5ef..17e19b03b 100644 --- a/src/project/manifest/mod.rs +++ b/src/project/manifest/mod.rs @@ -1381,7 +1381,7 @@ mod tests { .clone() .into_iter() .flat_map(|d| d.into_iter()) - .map(|(name, spec)| format!("{} = {}", name.as_source_str(), Item::from(spec))) + .map(|(name, spec)| format!("{} = {}", name.as_ref(), Item::from(spec))) .join("\n")); } diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 28199edd1..45da89097 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -105,7 +105,7 @@ impl LockFileExt for LockFile { .into_iter() .flatten() .filter_map(Package::into_pypi) - .any(|pkg| pkg.data().package.name == name); + .any(|pkg| pkg.data().package.name.as_ref() == name); package_found } From d4a58c6a5a1896d97eae35c6fccffbdfff70a167 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 20 Feb 2024 10:04:50 +0100 Subject: [PATCH 14/55] fix: whitespace --- src/install_pypi.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index e5e85874f..d8e10d5e7 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -94,6 +94,7 @@ pub async fn update_python_distributions( venv_root.join(python_info.path()), Path::new("invalid").to_path_buf(), ); + /// Create a custom venv let venv = Virtualenv::from_interpreter(interpreter, prefix.root()); From 6759bc48bd5ba9ff4a85c1e0cb9c719e36f05e85 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 20 Feb 2024 10:52:54 +0100 Subject: [PATCH 15/55] fix: more errors --- src/lock_file/resolve.rs | 32 +++++++++++++++++++++----------- src/pypi_tags.rs | 3 ++- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index f2fef3efa..010d436ad 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -13,7 +13,7 @@ use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, Resoluti use indexmap::IndexMap; use indicatif::ProgressBar; use miette::{Context, IntoDiagnostic}; -use platform_host::Platform; +use platform_host::{Os, Platform}; use rattler_conda_types::{GenericVirtualPackage, MatchSpec, RepoDataRecord}; use rattler_digest::{parse_digest_from_hex, Md5, Sha256}; use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; @@ -70,24 +70,34 @@ pub async fn resolve_pypi( let marker_environment = determine_marker_environment(platform, python_record.as_ref())?; // Determine the tags - let tags = get_pypi_tags(platform, system_requirements, python_record.as_ref())?; + let tags = get_pypi_tags(platform, &system_requirements, python_record.as_ref())?; + + // Construct a cache + // TODO: Figure out the right location + let cache = Cache::temp() + .into_diagnostic() + .context("failed to create cache")?; // Construct a fake interpreter from the conda environment. // TODO: Should we look into using the actual interpreter here? + let platform = Platform::current().expect("unsupported platform"); + let lib_dir = if platform.os() == &Os::Windows { + "Lib" + } else { + "lib" + }; let interpreter = Interpreter::artificial( - Platform::current().expect("unsupported platform"), + platform.clone(), marker_environment.clone(), venv_root.to_path_buf(), venv_root.to_path_buf(), python_location.to_path_buf(), - Path::new("invalid").to_path_buf(), + venv_root.join(lib_dir), ); - - // Construct a cache - // TODO: Figure out the right location - let cache = Cache::temp() - .into_diagnostic() - .context("failed to create cache")?; + // let current_platform = Platform::current().expect("unsupported platform"); + // let interpreter = Interpreter::query(python_location, ¤t_platform, &cache) + // .into_diagnostic() + // .context("failed to create interpreter")?; // Define where to get packages from let index_locations = Arc::new(IndexLocations::default()); @@ -127,7 +137,7 @@ pub async fn resolve_pypi( &index, &in_flight, interpreter.sys_executable().to_path_buf(), - SetupPyStrategy::Pep517, + SetupPyStrategy::default(), &NoBuild::None, &NoBinary::None, ) diff --git a/src/pypi_tags.rs b/src/pypi_tags.rs index 1ac48b6b9..f8dc7bbd5 100644 --- a/src/pypi_tags.rs +++ b/src/pypi_tags.rs @@ -18,7 +18,7 @@ pub fn package_name_is_python(record: &rattler_conda_types::PackageName) -> bool pub fn get_pypi_tags( platform: Platform, - system_requirements: SystemRequirements, + system_requirements: &SystemRequirements, python_record: &PackageRecord, ) -> miette::Result { let platform = if platform.is_linux() { @@ -87,6 +87,7 @@ pub fn get_pypi_tags( } else if platform.is_osx() { let osx_version = system_requirements .macos + .clone() .unwrap_or_else(|| default_mac_os_version(platform)); let Some((major, minor)) = osx_version.as_major_minor() else { miette::bail!( From 717f2e4cd2176181e7eb2fb1128dde248acf9997 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 20 Feb 2024 12:01:32 +0100 Subject: [PATCH 16/55] wip: sdist support --- Cargo.lock | 1 + Cargo.toml | 1 + examples/pypi/pixi.toml | 2 +- src/lock_file/resolve.rs | 78 +++++++++++++++++++++++++++++++--------- 4 files changed, 65 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 701fc3bd5..f6cc6cbe3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2977,6 +2977,7 @@ dependencies = [ "uv-cache", "uv-client", "uv-dispatch", + "uv-distribution", "uv-installer", "uv-interpreter", "uv-normalize", diff --git a/Cargo.toml b/Cargo.toml index 1d0c51fc4..8d456b6a7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -88,6 +88,7 @@ uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] } diff --git a/examples/pypi/pixi.toml b/examples/pypi/pixi.toml index bc35d9bbf..747b4e404 100644 --- a/examples/pypi/pixi.toml +++ b/examples/pypi/pixi.toml @@ -24,7 +24,7 @@ black = {version = "~=23.10", extras = ["jupyter"]} # sdists: pyliblzfse = "*" pycosat = "*" -plot-antenna = "==1.7" +plot-antenna = "==1.8" [system-requirements] # Tensorflow on macOS arm64 requires macOS 12.0 or higher diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 010d436ad..983e2228a 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -9,7 +9,7 @@ use crate::{ lock_file::{LockedCondaPackages, LockedPypiPackages, PypiRecord}, project::manifest::{PyPiRequirement, SystemRequirements}, }; -use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, Resolution}; +use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, Resolution, SourceDist}; use indexmap::IndexMap; use indicatif::ProgressBar; use miette::{Context, IntoDiagnostic}; @@ -25,6 +25,7 @@ use url::Url; use uv_cache::Cache; use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; use uv_dispatch::BuildDispatch; +use uv_distribution::DistributionDatabase; use uv_interpreter::Interpreter; use uv_normalize::PackageName; use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver}; @@ -39,6 +40,23 @@ use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; /// This function takes as input a set of dependencies and system requirements and returns a set of /// locked packages. + +fn parse_hashes_from_hex(sha256: &Option, md5: &Option) -> Option { + match (sha256, md5) { + (Some(sha256), None) => Some(PackageHashes::Sha256( + parse_digest_from_hex::(sha256).expect("invalid sha256"), + )), + (None, Some(md5)) => Some(PackageHashes::Md5( + parse_digest_from_hex::(md5).expect("invalid md5"), + )), + (Some(sha256), Some(md5)) => Some(PackageHashes::Md5Sha256( + parse_digest_from_hex::(md5).expect("invalid md5"), + parse_digest_from_hex::(sha256).expect("invalid sha256"), + )), + (None, None) => None, + } +} + #[allow(clippy::too_many_arguments)] pub async fn resolve_pypi( // package_db: Arc, @@ -163,6 +181,7 @@ pub async fn resolve_pypi( // Clear message pb.set_message(""); + let database = DistributionDatabase::new(&cache, &tags, ®istry_client, &build_dispatch); let mut locked_packages = LockedPypiPackages::with_capacity(resolution.len()); for dist in resolution.into_distributions() { let pypi_package_data = match dist { @@ -179,19 +198,8 @@ pub async fn resolve_pypi( _ => todo!("unsupported URL"), }; - let hash = match (&dist.file.hashes.sha256, &dist.file.hashes.md5) { - (Some(sha256), None) => Some(PackageHashes::Sha256( - parse_digest_from_hex::(sha256).expect("invalid sha256"), - )), - (None, Some(md5)) => Some(PackageHashes::Md5( - parse_digest_from_hex::(md5).expect("invalid md5"), - )), - (Some(sha256), Some(md5)) => Some(PackageHashes::Md5Sha256( - parse_digest_from_hex::(md5).expect("invalid md5"), - parse_digest_from_hex::(sha256).expect("invalid sha256"), - )), - (None, None) => None, - }; + let hash = + parse_hashes_from_hex(&dist.file.hashes.sha256, &dist.file.hashes.md5); (url, hash) } @@ -212,8 +220,46 @@ pub async fn resolve_pypi( hash, } } - Dist::Source(_) => { - todo!("source dists not yet supported"); + Dist::Source(source) => { + let hash = source + .file() + .map(|file| parse_hashes_from_hex(&file.hashes.sha256, &file.hashes.md5)) + .flatten(); + + let (metadata, url) = database + .get_or_build_wheel_metadata(&Dist::Source(source.clone())) + .await + .into_diagnostic()?; + + // Use the precise url if we got it back + // otherwise try to construct it from the source + let url = if let Some(url) = url { + url + } else { + match source { + SourceDist::Registry(reg) => match ®.file.url { + FileLocation::AbsoluteUrl(url) => { + Url::from_str(url).expect("invalid absolute url") + } + FileLocation::Path(path) => { + Url::from_file_path(path).expect("invalid path") + } + _ => todo!("unsupported URL"), + }, + SourceDist::DirectUrl(direct) => direct.url.to_url(), + SourceDist::Git(git) => git.url.to_url(), + SourceDist::Path(path) => path.url.to_url(), + } + }; + + PypiPackageData { + name: metadata.name, + version: metadata.version, + requires_dist: metadata.requires_dist, + requires_python: metadata.requires_python, + url, + hash, + } } }; From 9d78f7ff19bd64063dc832ed60d4cdde548257ea Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 20 Feb 2024 13:49:44 +0100 Subject: [PATCH 17/55] feat: simple progress report for resolving --- examples/pypi/pixi.lock | 1272 +++++++++++++++++++------------------- src/install_pypi.rs | 1 - src/lock_file/resolve.rs | 28 +- 3 files changed, 676 insertions(+), 625 deletions(-) diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index 15618480b..585082505 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -5,7 +5,6 @@ environments: - url: https://conda.anaconda.org/conda-forge/ packages: linux-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda @@ -44,92 +43,92 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e - - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 - - pypi: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/df/55525e489c43f9dbb6c8ea27d8a567b3dcd18a22f3c45483055f5ca6611d/libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl osx-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.2.2-h8857fd0_0.conda @@ -161,92 +160,92 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 - - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl + - pypi: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c9/ea/fe2a69cc6cfebf7c7ee8a6357566fc1cbb91632bde5869b669a396accb5f/libclang-16.0.6-py2.py3-none-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl + - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl osx-arm64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda @@ -278,93 +277,93 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e - - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl + - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/32/1f/981809b77b71972beec34b3ff5422c1b1f7e519daac7b3cbd055c05ba2cf/libclang-16.0.6-py2.py3-none-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl win-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.2.2-h56e8100_0.conda @@ -396,90 +395,91 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33130-hcb4865c_18.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa - - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 - - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae - - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 - - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/8c/dc970bc00867fe290e8c8a7befa1635af716a9ebdfe3fb9dce0ca4b522ce/libclang-16.0.6-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl packages: - kind: conda name: _libgcc_mutex @@ -513,13 +513,13 @@ packages: - kind: pypi name: absl-py version: 2.1.0 - url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl sha256: 526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 requires_python: '>=3.7' - kind: pypi name: asttokens version: 2.4.1 - url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl sha256: 051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 requires_dist: - six >=1.12.0 @@ -532,7 +532,7 @@ packages: - kind: pypi name: astunparse version: 1.6.3 - url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl sha256: c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 requires_dist: - wheel <1.0, >=0.23.0 @@ -540,7 +540,7 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b + url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b requires_dist: - click >=8.0.0 @@ -560,8 +560,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 - sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 + url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -580,8 +580,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 + url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -600,8 +600,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba + url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -620,7 +620,7 @@ packages: - kind: pypi name: blinker version: 1.7.0 - url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl sha256: c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 requires_python: '>=3.8' - kind: conda @@ -728,43 +728,37 @@ packages: - kind: pypi name: cachetools version: 5.3.2 - url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl sha256: 861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 requires_python: '>=3.7' - kind: pypi name: certifi version: 2024.2.2 - url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 requires_python: '>=3.6' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e - sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e + url: https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl + sha256: 802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 + url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 + url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: 753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - requires_python: '>=3.7.0' - kind: pypi name: click version: 8.1.7 - url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl sha256: ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 requires_dist: - colorama ; platform_system == 'Windows' @@ -773,13 +767,13 @@ packages: - kind: pypi name: colorama version: 0.4.6 - url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7' - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd + url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd requires_dist: - numpy <2.0, >=1.20 @@ -791,10 +785,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' + - types-pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' + - pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -803,8 +797,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de - sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de + url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -815,10 +809,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' + - types-pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' + - pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -827,8 +821,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 - sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 + url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -839,10 +833,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' + - types-pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' + - pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -851,8 +845,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 + url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -863,10 +857,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' + - types-pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' + - pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -875,7 +869,7 @@ packages: - kind: pypi name: cycler version: 0.12.1 - url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl sha256: 85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 requires_dist: - ipython ; extra == 'docs' @@ -889,13 +883,13 @@ packages: - kind: pypi name: decorator version: 5.1.1 - url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 requires_python: '>=3.5' - kind: pypi name: executing version: 2.0.1 - url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl sha256: eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc requires_dist: - asttokens >=2.1.0 ; extra == 'tests' @@ -909,11 +903,11 @@ packages: - kind: pypi name: flask version: 3.0.2 - url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl sha256: 3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e requires_dist: - - Werkzeug >=3.0.0 - - Jinja2 >=3.1.2 + - werkzeug >=3.0.0 + - jinja2 >=3.1.2 - itsdangerous >=2.1.2 - click >=8.1.3 - blinker >=1.6.2 @@ -924,13 +918,13 @@ packages: - kind: pypi name: flatbuffers version: 23.5.26 - url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 + url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl sha256: c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - kind: pypi name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - sha256: 18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 + version: 4.49.0 + url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -965,9 +959,9 @@ packages: requires_python: '>=3.8' - kind: pypi name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - sha256: d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a + version: 4.49.0 + url: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + sha256: fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1002,9 +996,9 @@ packages: requires_python: '>=3.8' - kind: pypi name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 - sha256: aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 + version: 4.49.0 + url: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1040,14 +1034,14 @@ packages: - kind: pypi name: gast version: 0.5.4 - url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl sha256: 6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' - kind: pypi name: google-auth - version: 2.27.0 - url: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - sha256: 8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + version: 2.28.0 + url: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl + sha256: 7634d29dcd1e101f5226a23cbc4a0c6cda6394253bf80e281d9c5c6797869c53 requires_dist: - cachetools <6.0, >=2.0.0 - pyasn1-modules >=0.2.1 @@ -1064,7 +1058,7 @@ packages: - kind: pypi name: google-auth-oauthlib version: 1.0.0 - url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl sha256: 95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb requires_dist: - google-auth >=2.15.0 @@ -1074,14 +1068,14 @@ packages: - kind: pypi name: google-pasta version: 0.2.0 - url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl sha256: b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed requires_dist: - six - kind: pypi name: grpcio version: 1.60.1 - url: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 + url: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl sha256: 4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 requires_dist: - grpcio-tools >=1.60.1 ; extra == 'protobuf' @@ -1089,7 +1083,7 @@ packages: - kind: pypi name: grpcio version: 1.60.1 - url: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c + url: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl sha256: 49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c requires_dist: - grpcio-tools >=1.60.1 ; extra == 'protobuf' @@ -1097,7 +1091,7 @@ packages: - kind: pypi name: grpcio version: 1.60.1 - url: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 + url: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 requires_dist: - grpcio-tools >=1.60.1 ; extra == 'protobuf' @@ -1105,7 +1099,7 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd + url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd requires_dist: - numpy >=1.17.3 @@ -1113,24 +1107,24 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 - sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 + url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc + url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' @@ -1176,7 +1170,7 @@ packages: - kind: pypi name: idna version: '3.6' - url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl sha256: c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f requires_python: '>=3.5' - kind: conda @@ -1195,7 +1189,7 @@ packages: - kind: pypi name: ipython version: 8.21.0 - url: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 + url: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl sha256: 1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 requires_dist: - decorator @@ -1273,19 +1267,19 @@ packages: - kind: pypi name: itsdangerous version: 2.1.2 - url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl sha256: 2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 requires_python: '>=3.7' - kind: pypi name: jedi version: 0.19.1 - url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl sha256: e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 requires_dist: - parso <0.9.0, >=0.8.3 - - Jinja2 ==2.11.3 ; extra == 'docs' - - MarkupSafe ==1.1.1 ; extra == 'docs' - - Pygments ==2.8.1 ; extra == 'docs' + - jinja2 ==2.11.3 ; extra == 'docs' + - markupsafe ==1.1.1 ; extra == 'docs' + - pygments ==2.8.1 ; extra == 'docs' - alabaster ==0.7.12 ; extra == 'docs' - babel ==2.9.1 ; extra == 'docs' - chardet ==4.0.0 ; extra == 'docs' @@ -1311,7 +1305,7 @@ packages: - flake8 ==5.0.4 ; extra == 'qa' - mypy ==0.971 ; extra == 'qa' - types-setuptools ==67.2.0.1 ; extra == 'qa' - - Django ; extra == 'testing' + - django ; extra == 'testing' - attrs ; extra == 'testing' - colorama ; extra == 'testing' - docopt ; extra == 'testing' @@ -1320,30 +1314,30 @@ packages: - kind: pypi name: jinja2 version: 3.1.3 - url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl sha256: 7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa requires_dist: - - MarkupSafe >=2.0 - - Babel >=2.7 ; extra == 'i18n' + - markupsafe >=2.0 + - babel >=2.7 ; extra == 'i18n' requires_python: '>=3.7' - kind: pypi name: keras version: 2.14.0 - url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl sha256: d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd requires_python: '>=3.9' - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 + url: https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl + sha256: 11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5 requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 + url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 requires_dist: - typing-extensions ; python_version < '3.8' @@ -1351,19 +1345,11 @@ packages: - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e + url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: 040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -1537,6 +1523,26 @@ packages: license_family: BSD size: 5017024 timestamp: 1705980469944 +- kind: pypi + name: libclang + version: 16.0.6 + url: https://files.pythonhosted.org/packages/32/1f/981809b77b71972beec34b3ff5422c1b1f7e519daac7b3cbd055c05ba2cf/libclang-16.0.6-py2.py3-none-macosx_11_0_arm64.whl + sha256: e1a5ad1e895e5443e205568c85c04b4608e4e973dae42f4dfd9cb46c81d1486b +- kind: pypi + name: libclang + version: 16.0.6 + url: https://files.pythonhosted.org/packages/c9/ea/fe2a69cc6cfebf7c7ee8a6357566fc1cbb91632bde5869b669a396accb5f/libclang-16.0.6-py2.py3-none-macosx_10_9_x86_64.whl + sha256: da9e47ebc3f0a6d90fb169ef25f9fbcd29b4a4ef97a8b0e3e3a17800af1423f4 +- kind: pypi + name: libclang + version: 16.0.6 + url: https://files.pythonhosted.org/packages/02/8c/dc970bc00867fe290e8c8a7befa1635af716a9ebdfe3fb9dce0ca4b522ce/libclang-16.0.6-py2.py3-none-win_amd64.whl + sha256: daab4a11dae228f1efa9efa3fe638b493b14d8d52c71fb3c7019e2f1df4514c2 +- kind: pypi + name: libclang + version: 16.0.6 + url: https://files.pythonhosted.org/packages/ea/df/55525e489c43f9dbb6c8ea27d8a567b3dcd18a22f3c45483055f5ca6611d/libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl + sha256: 9dcdc730939788b8b69ffd6d5d75fe5366e3ee007f1e36a99799ec0b0c001492 - kind: conda name: libclang version: 16.0.6 @@ -2485,7 +2491,7 @@ packages: - kind: pypi name: markdown version: 3.5.2 - url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl sha256: d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd requires_dist: - importlib-metadata >=4.4 ; python_version < '3.10' @@ -2502,25 +2508,25 @@ packages: - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f + url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f requires_python: '>=3.7' - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 + url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 requires_python: '>=3.7' - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 + url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 requires_python: '>=3.7' - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e + url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e requires_dist: - contourpy >=1.0.1 @@ -2537,8 +2543,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 + url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2554,8 +2560,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2571,8 +2577,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 - sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2588,7 +2594,7 @@ packages: - kind: pypi name: matplotlib-inline version: 0.1.6 - url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl sha256: f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 requires_dist: - traitlets @@ -2612,7 +2618,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c + url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c requires_dist: - numpy >1.20 @@ -2627,7 +2633,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa + url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl sha256: 832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa requires_dist: - numpy >1.20 @@ -2642,7 +2648,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca + url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca requires_dist: - numpy >1.20 @@ -2657,7 +2663,7 @@ packages: - kind: pypi name: mypy-extensions version: 1.0.0 - url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl sha256: 4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d requires_python: '>=3.5' - kind: conda @@ -2702,6 +2708,30 @@ packages: license: X11 AND BSD-3-Clause size: 822031 timestamp: 1698751567986 +- kind: pypi + name: numpy + version: 1.26.4 + url: https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl + sha256: edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef + requires_python: '>=3.9' +- kind: pypi + name: numpy + version: 1.26.4 + url: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 + requires_python: '>=3.9' +- kind: pypi + name: numpy + version: 1.26.4 + url: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl + sha256: cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 + requires_python: '>=3.9' +- kind: pypi + name: numpy + version: 1.26.4 + url: https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 + requires_python: '>=3.9' - kind: conda name: numpy version: 1.26.4 @@ -2801,7 +2831,7 @@ packages: - kind: pypi name: oauthlib version: 3.2.2 - url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl sha256: 8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca requires_dist: - cryptography >=3.0.0 ; extra == 'rsa' @@ -2880,7 +2910,7 @@ packages: - kind: pypi name: opt-einsum version: 3.3.0 - url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl sha256: 2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 requires_dist: - numpy >=1.7 @@ -2895,13 +2925,13 @@ packages: - kind: pypi name: packaging version: '23.2' - url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl sha256: 8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 requires_python: '>=3.7' - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b + url: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl sha256: 8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' @@ -2932,12 +2962,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -2947,7 +2977,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' + - pyqt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -2972,7 +3002,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -2981,7 +3011,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -2992,8 +3022,8 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 - sha256: fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 + url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3023,12 +3053,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3038,7 +3068,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' + - pyqt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3063,7 +3093,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3072,7 +3102,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -3083,8 +3113,8 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 + url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + sha256: fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3114,12 +3144,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3129,7 +3159,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' + - pyqt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3154,7 +3184,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3163,7 +3193,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -3174,8 +3204,8 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - sha256: a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 + url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3205,12 +3235,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3220,7 +3250,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' + - pyqt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3245,7 +3275,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3254,7 +3284,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -3265,7 +3295,7 @@ packages: - kind: pypi name: parso version: 0.8.3 - url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 + url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl sha256: c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 requires_dist: - flake8 ==3.8.3 ; extra == 'qa' @@ -3276,20 +3306,20 @@ packages: - kind: pypi name: pathspec version: 0.12.1 - url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 + url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl sha256: a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 requires_python: '>=3.8' - kind: pypi name: pexpect version: 4.9.0 - url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 + url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 requires_dist: - ptyprocess >=0.5 - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 + url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 requires_dist: - furo ; extra == 'docs' @@ -3317,8 +3347,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 - sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3345,8 +3375,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e - sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3373,8 +3403,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 - sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3401,7 +3431,7 @@ packages: - kind: pypi name: platformdirs version: 4.2.0 - url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl sha256: 0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 requires_dist: - furo >=2023.9.10 ; extra == 'docs' @@ -3416,52 +3446,51 @@ packages: requires_python: '>=3.8' - kind: pypi name: plot-antenna - version: '1.7' - url: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - sha256: ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + version: '1.8' + url: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + sha256: f12c4cb90dea3fa0e41e904e4595959d727d933aa3292fbc89d1f9b15249bf48 requires_dist: - matplotlib - numpy - pandas - plotly - - pysmithplot @ git+https://github.com/schlatterbeck/pySmithPlot.git - pytest ; extra == 'test' - kaleido ; extra == 'test' requires_python: '>=3.7' - kind: pypi name: plotly - version: 5.18.0 - url: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - sha256: 23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + version: 5.19.0 + url: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + sha256: 906abcc5f15945765328c5d47edaa884bc99f5985fbc61e8cd4dc361f4ff8f5a requires_dist: - tenacity >=6.2.0 - packaging - requires_python: '>=3.6' + requires_python: '>=3.8' - kind: pypi name: prompt-toolkit version: 3.0.43 - url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl sha256: a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 requires_dist: - wcwidth requires_python: '>=3.7.0' - kind: pypi name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - sha256: 2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d + version: 4.25.3 + url: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl + sha256: f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c requires_python: '>=3.8' - kind: pypi name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - sha256: 8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 + version: 4.25.3 + url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 requires_python: '>=3.8' - kind: pypi name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 - sha256: fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 + version: 4.25.3 + url: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl + sha256: 7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d requires_python: '>=3.8' - kind: conda name: pthreads-win32 @@ -3480,25 +3509,25 @@ packages: - kind: pypi name: ptyprocess version: 0.7.0 - url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 + url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl sha256: 4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - kind: pypi name: pure-eval version: 0.2.2 - url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl sha256: 01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 requires_dist: - pytest ; extra == 'tests' - kind: pypi name: pyasn1 version: 0.5.1 - url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl sha256: 4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7' - kind: pypi name: pyasn1-modules version: 0.3.0 - url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl sha256: d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d requires_dist: - pyasn1 <0.6.0, >=0.4.6 @@ -3506,7 +3535,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c + url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c requires_dist: - numpy @@ -3520,7 +3549,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c + url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl sha256: bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c requires_dist: - numpy @@ -3534,7 +3563,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 + url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 requires_dist: - numpy @@ -3548,12 +3577,12 @@ packages: - kind: pypi name: pycosat version: 0.6.6 - url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff + url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz sha256: a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - kind: pypi name: pygments version: 2.17.2 - url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl sha256: b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c requires_dist: - importlib-metadata ; python_version < '3.8' and extra == 'plugins' @@ -3562,12 +3591,12 @@ packages: - kind: pypi name: pyliblzfse version: 0.4.1 - url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d + url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz sha256: bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - kind: pypi name: pyparsing version: 3.1.1 - url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl sha256: 32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb requires_dist: - railroad-diagrams ; extra == 'diagrams' @@ -3576,32 +3605,23 @@ packages: - kind: pypi name: pysdl2 version: 0.9.16 - url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 + url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz sha256: 1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 + url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 + url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e + url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl sha256: d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e -- kind: pypi - name: pysmithplot - version: 0.2.0 - url: git+https://github.com/schlatterbeck/pySmithPlot.git - sha256: 0da5fe6b19902c9f296544e2bfaab9d1e0d142d3bf576771d53d10f54830c12b - requires_dist: - - matplotlib >=1.2.0 - - numpy - - scipy - kind: conda name: python version: 3.11.7 @@ -3712,14 +3732,6 @@ packages: license: Python-2.0 size: 14567667 timestamp: 1703342625860 -- kind: pypi - name: python-dateutil - version: 2.8.2 - url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - requires_dist: - - six >=1.5 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' - kind: conda name: python_abi version: '3.11' @@ -3780,10 +3792,18 @@ packages: license_family: BSD size: 6755 timestamp: 1695147711935 +- kind: pypi + name: python-dateutil + version: 2.8.2 + url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + requires_dist: + - six >=1.5 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' - kind: pypi name: pytz version: '2024.1' - url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 + url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl sha256: 328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - kind: conda name: readline @@ -3834,20 +3854,20 @@ packages: - kind: pypi name: requests version: 2.31.0 - url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f requires_dist: - charset-normalizer <4, >=2 - idna <4, >=2.5 - urllib3 <3, >=1.21.1 - certifi >=2017.4.17 - - PySocks !=1.5.7, >=1.5.6 ; extra == 'socks' + - pysocks !=1.5.7, >=1.5.6 ; extra == 'socks' - chardet <6, >=3.0.2 ; extra == 'use_chardet_on_py3' requires_python: '>=3.7' - kind: pypi name: requests-oauthlib version: 1.3.1 - url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl sha256: 2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 requires_dist: - oauthlib >=3.0.0 @@ -3857,7 +3877,7 @@ packages: - kind: pypi name: rsa version: '4.9' - url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl sha256: 90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 requires_dist: - pyasn1 >=0.1.3 @@ -3971,16 +3991,16 @@ packages: - kind: pypi name: setuptools version: 69.1.0 - url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl sha256: c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 requires_dist: - sphinx >=3.5 ; extra == 'docs' - sphinx <7.2.5 ; extra == 'docs' - - jaraco.packaging >=9.3 ; extra == 'docs' - - rst.linker >=1.9 ; extra == 'docs' + - jaraco-packaging >=9.3 ; extra == 'docs' + - rst-linker >=1.9 ; extra == 'docs' - furo ; extra == 'docs' - sphinx-lint ; extra == 'docs' - - jaraco.tidelift >=1.4 ; extra == 'docs' + - jaraco-tidelift >=1.4 ; extra == 'docs' - pygments-github-lexers ==0.0.5 ; extra == 'docs' - sphinx-favicon ; extra == 'docs' - sphinx-inline-tabs ; extra == 'docs' @@ -3994,9 +4014,9 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing' - wheel ; extra == 'testing' - pip >=19.1 ; extra == 'testing' - - jaraco.envs >=2.2 ; extra == 'testing' + - jaraco-envs >=2.2 ; extra == 'testing' - pytest-xdist ; extra == 'testing' - - jaraco.path >=3.2.0 ; extra == 'testing' + - jaraco-path >=3.2.0 ; extra == 'testing' - build[virtualenv] ; extra == 'testing' - filelock >=3.4.0 ; extra == 'testing' - ini2toml[lite] >=0.9 ; extra == 'testing' @@ -4009,27 +4029,27 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing-integration' - tomli ; extra == 'testing-integration' - wheel ; extra == 'testing-integration' - - jaraco.path >=3.2.0 ; extra == 'testing-integration' - - jaraco.envs >=2.2 ; extra == 'testing-integration' + - jaraco-path >=3.2.0 ; extra == 'testing-integration' + - jaraco-envs >=2.2 ; extra == 'testing-integration' - build[virtualenv] >=1.0.3 ; extra == 'testing-integration' - filelock >=3.4.0 ; extra == 'testing-integration' - packaging >=23.1 ; extra == 'testing-integration' - pytest-cov ; platform_python_implementation != 'PyPy' and extra == 'testing' - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' - - jaraco.develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' + - jaraco-develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' - pytest-ruff >=0.2.1 ; sys_platform != 'cygwin' and extra == 'testing' - pytest-perf ; sys_platform != 'cygwin' and extra == 'testing' requires_python: '>=3.8' - kind: pypi name: six version: 1.16.0 - url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl sha256: 8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' - kind: pypi name: stack-data version: 0.6.3 - url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl sha256: d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 requires_dist: - executing >=1.2.0 @@ -4061,7 +4081,7 @@ packages: - kind: pypi name: tenacity version: 8.2.3 - url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl sha256: ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c requires_dist: - reno ; extra == 'doc' @@ -4071,7 +4091,7 @@ packages: - kind: pypi name: tensorboard version: 2.14.1 - url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl sha256: 3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 requires_dist: - absl-py >=0.4 @@ -4090,13 +4110,13 @@ packages: - kind: pypi name: tensorboard-data-server version: 0.7.2 - url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb requires_python: '>=3.7' - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c + url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c requires_dist: - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' @@ -4117,29 +4137,8 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 - sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 - requires_dist: - - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa + url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 requires_dist: - absl-py >=1.0.0 - astunparse >=1.6.0 @@ -4163,8 +4162,6 @@ packages: - tensorboard <2.15, >=2.14 - tensorflow-estimator <2.15, >=2.14.0 - keras <2.15, >=2.14.0 - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' @@ -4180,8 +4177,29 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 + url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 + requires_dist: + - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa requires_dist: - absl-py >=1.0.0 - astunparse >=1.6.0 @@ -4205,6 +4223,8 @@ packages: - tensorboard <2.15, >=2.14 - tensorflow-estimator <2.15, >=2.14.0 - keras <2.15, >=2.14.0 + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' @@ -4220,13 +4240,13 @@ packages: - kind: pypi name: tensorflow-estimator version: 2.14.0 - url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl sha256: 820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 requires_python: '>=3.7' - kind: pypi name: tensorflow-intel version: 2.14.0 - url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae + url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl sha256: 51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae requires_dist: - absl-py >=1.0.0 @@ -4266,7 +4286,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.31.0 - url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 + url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl sha256: 4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 requires_dist: - tensorflow <2.12.0, >=2.11.0 ; extra == 'tensorflow' @@ -4278,7 +4298,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 + url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' @@ -4290,8 +4310,8 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 + url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' @@ -4302,8 +4322,8 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 + url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' @@ -4314,7 +4334,7 @@ packages: - kind: pypi name: tensorflow-macos version: 2.14.0 - url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 + url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl sha256: 064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 requires_dist: - absl-py >=1.0.0 @@ -4354,7 +4374,7 @@ packages: - kind: pypi name: termcolor version: 2.4.0 - url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl sha256: 9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 requires_dist: - pytest ; extra == 'tests' @@ -4426,13 +4446,13 @@ packages: - kind: pypi name: tokenize-rt version: 5.2.0 - url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl sha256: b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 requires_python: '>=3.8' - kind: pypi name: traitlets version: 5.14.1 - url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl sha256: 2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 requires_dist: - myst-parser ; extra == 'docs' @@ -4448,9 +4468,15 @@ packages: - kind: pypi name: typing-extensions version: 4.9.0 - url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl sha256: af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd requires_python: '>=3.8' +- kind: pypi + name: tzdata + version: '2024.1' + url: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + sha256: 9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 + requires_python: '>=2' - kind: conda name: tzdata version: 2024a @@ -4479,9 +4505,9 @@ packages: timestamp: 1666630199266 - kind: pypi name: urllib3 - version: 2.2.0 - url: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - sha256: ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + version: 2.2.1 + url: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + sha256: 450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d requires_dist: - brotli >=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli' - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli' @@ -4541,23 +4567,23 @@ packages: - kind: pypi name: wcwidth version: 0.2.13 - url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl sha256: 3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 requires_dist: - - backports.functools-lru-cache >=1.2.1 ; python_version < '3.2' + - backports-functools-lru-cache >=1.2.1 ; python_version < '3.2' - kind: pypi name: werkzeug version: 3.0.1 - url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl sha256: 90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 requires_dist: - - MarkupSafe >=2.1.1 + - markupsafe >=2.1.1 - watchdog >=2.3 ; extra == 'watchdog' requires_python: '>=3.8' - kind: pypi name: wheel version: 0.42.0 - url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl sha256: 177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d requires_dist: - pytest >=6.0.0 ; extra == 'test' @@ -4566,26 +4592,26 @@ packages: - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 + url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 - sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 + url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 + url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 + url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: conda name: xz diff --git a/src/install_pypi.rs b/src/install_pypi.rs index d8e10d5e7..970cdbddf 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -234,7 +234,6 @@ pub async fn update_python_distributions( let start = std::time::Instant::now(); let downloader = Downloader::new(&uv_cache, tags, &client, &build_dispatch); - // .with_reporter(DownloadReporter::from(printer).with_length(remote.len() as u64)); let wheels = downloader .download(remote.clone(), &in_flight) diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 983e2228a..0cb01613a 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -3,13 +3,16 @@ //! See [`resolve_pypi`] and [`resolve_conda`] for more information. use crate::consts::PROJECT_MANIFEST; +use crate::progress::ProgressBarMessageFormatter; use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::{get_pypi_tags, is_python_record}; use crate::{ lock_file::{LockedCondaPackages, LockedPypiPackages, PypiRecord}, project::manifest::{PyPiRequirement, SystemRequirements}, }; -use distribution_types::{BuiltDist, Dist, FileLocation, IndexLocations, Resolution, SourceDist}; +use distribution_types::{ + BuiltDist, Dist, FileLocation, IndexLocations, Resolution, SourceDist, VersionOrUrl, +}; use indexmap::IndexMap; use indicatif::ProgressBar; use miette::{Context, IntoDiagnostic}; @@ -57,6 +60,28 @@ fn parse_hashes_from_hex(sha256: &Option, md5: &Option) -> Optio } } +struct ResolveReporter(ProgressBar); + +impl uv_resolver::ResolverReporter for ResolveReporter { + fn on_progress(&self, name: &PackageName, version: VersionOrUrl) { + self.0.set_message(format!("resolving {}{}", name, version)); + } + + fn on_complete(&self) {} + + fn on_build_start(&self, dist: &SourceDist) -> usize { + 0 + } + + fn on_build_complete(&self, dist: &SourceDist, id: usize) {} + + fn on_checkout_start(&self, url: &Url, rev: &str) -> usize { + 0 + } + + fn on_checkout_complete(&self, url: &Url, rev: &str, index: usize) {} +} + #[allow(clippy::too_many_arguments)] pub async fn resolve_pypi( // package_db: Arc, @@ -172,6 +197,7 @@ pub async fn resolve_pypi( &index, &build_dispatch, ) + .with_reporter(ResolveReporter(pb.clone())) .resolve() .await .into_diagnostic() From 77a9e2cbb66d472bc43dc626eb830f70c4af59af Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 20 Feb 2024 14:09:31 +0100 Subject: [PATCH 18/55] feat: venv fix --- examples/pypi/pixi.lock | 168 ++++++++++++++++++++-------------------- src/install_pypi.rs | 2 +- 2 files changed, 85 insertions(+), 85 deletions(-) diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index 585082505..cefa0f8f7 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -560,8 +560,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba + url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -580,8 +580,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl - sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 + url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -600,8 +600,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 + url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -797,8 +797,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 + url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -821,8 +821,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl - sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de + url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -845,8 +845,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 + url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -1107,24 +1107,24 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc + url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl - sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 + url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' @@ -1528,11 +1528,6 @@ packages: version: 16.0.6 url: https://files.pythonhosted.org/packages/32/1f/981809b77b71972beec34b3ff5422c1b1f7e519daac7b3cbd055c05ba2cf/libclang-16.0.6-py2.py3-none-macosx_11_0_arm64.whl sha256: e1a5ad1e895e5443e205568c85c04b4608e4e973dae42f4dfd9cb46c81d1486b -- kind: pypi - name: libclang - version: 16.0.6 - url: https://files.pythonhosted.org/packages/c9/ea/fe2a69cc6cfebf7c7ee8a6357566fc1cbb91632bde5869b669a396accb5f/libclang-16.0.6-py2.py3-none-macosx_10_9_x86_64.whl - sha256: da9e47ebc3f0a6d90fb169ef25f9fbcd29b4a4ef97a8b0e3e3a17800af1423f4 - kind: pypi name: libclang version: 16.0.6 @@ -1543,6 +1538,11 @@ packages: version: 16.0.6 url: https://files.pythonhosted.org/packages/ea/df/55525e489c43f9dbb6c8ea27d8a567b3dcd18a22f3c45483055f5ca6611d/libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl sha256: 9dcdc730939788b8b69ffd6d5d75fe5366e3ee007f1e36a99799ec0b0c001492 +- kind: pypi + name: libclang + version: 16.0.6 + url: https://files.pythonhosted.org/packages/c9/ea/fe2a69cc6cfebf7c7ee8a6357566fc1cbb91632bde5869b669a396accb5f/libclang-16.0.6-py2.py3-none-macosx_10_9_x86_64.whl + sha256: da9e47ebc3f0a6d90fb169ef25f9fbcd29b4a4ef97a8b0e3e3a17800af1423f4 - kind: conda name: libclang version: 16.0.6 @@ -2543,8 +2543,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl - sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2560,8 +2560,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl - sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 + url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2577,8 +2577,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 + url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2714,12 +2714,6 @@ packages: url: https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl sha256: edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef requires_python: '>=3.9' -- kind: pypi - name: numpy - version: 1.26.4 - url: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 - requires_python: '>=3.9' - kind: pypi name: numpy version: 1.26.4 @@ -2732,6 +2726,12 @@ packages: url: https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: 666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 requires_python: '>=3.9' +- kind: pypi + name: numpy + version: 1.26.4 + url: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 + requires_python: '>=3.9' - kind: conda name: numpy version: 1.26.4 @@ -3022,8 +3022,8 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 + url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + sha256: fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3113,8 +3113,8 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl - sha256: fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 + url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3204,8 +3204,8 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 + url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3347,8 +3347,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl - sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3375,8 +3375,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl - sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3403,8 +3403,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -4137,8 +4137,29 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl - sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 + url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 + requires_dist: + - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa requires_dist: - absl-py >=1.0.0 - astunparse >=1.6.0 @@ -4162,6 +4183,8 @@ packages: - tensorboard <2.15, >=2.14 - tensorflow-estimator <2.15, >=2.14.0 - keras <2.15, >=2.14.0 + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' @@ -4177,29 +4200,8 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl - sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 - requires_dist: - - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa + url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 requires_dist: - absl-py >=1.0.0 - astunparse >=1.6.0 @@ -4223,8 +4225,6 @@ packages: - tensorboard <2.15, >=2.14 - tensorflow-estimator <2.15, >=2.14.0 - keras <2.15, >=2.14.0 - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' @@ -4310,8 +4310,8 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl - sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 + url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' @@ -4322,8 +4322,8 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 + url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' @@ -4595,12 +4595,6 @@ packages: url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl - sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 @@ -4613,6 +4607,12 @@ packages: url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: conda name: xz version: 5.2.6 diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 970cdbddf..04e42a5b1 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -91,7 +91,7 @@ pub async fn update_python_distributions( marker_environment.clone(), venv_root.to_path_buf(), venv_root.to_path_buf(), - venv_root.join(python_info.path()), + prefix.root().join(python_info.path()), Path::new("invalid").to_path_buf(), ); From fee39fe558e609d4528afa0609a25f659d168902 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 20 Feb 2024 14:12:22 +0100 Subject: [PATCH 19/55] fix: small fix --- src/lock_file/resolve.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 0cb01613a..65c8d1720 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -249,8 +249,7 @@ pub async fn resolve_pypi( Dist::Source(source) => { let hash = source .file() - .map(|file| parse_hashes_from_hex(&file.hashes.sha256, &file.hashes.md5)) - .flatten(); + .and_then(|file| parse_hashes_from_hex(&file.hashes.sha256, &file.hashes.md5)); let (metadata, url) = database .get_or_build_wheel_metadata(&Dist::Source(source.clone())) From 0b185c503fc41e2622f8db1394af9cb02a537c72 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 20 Feb 2024 13:54:06 +0100 Subject: [PATCH 20/55] feat: share between resolvers --- src/lock_file/mod.rs | 2 +- src/lock_file/resolve.rs | 98 +++++++++++++++++++++++----------------- src/lock_file/update.rs | 23 +++++++++- src/project/mod.rs | 35 ++++++++------ 4 files changed, 100 insertions(+), 58 deletions(-) diff --git a/src/lock_file/mod.rs b/src/lock_file/mod.rs index 1d166ebe0..ec716d0dd 100644 --- a/src/lock_file/mod.rs +++ b/src/lock_file/mod.rs @@ -15,7 +15,7 @@ use rattler_lock::{LockFile, PypiPackageData, PypiPackageEnvironmentData}; pub use outdated::OutdatedEnvironments; pub use package_identifier::PypiPackageIdentifier; pub use records_by_name::{PypiRecordsByName, RepoDataRecordsByName}; -pub use resolve::{resolve_conda, resolve_pypi}; +pub use resolve::{resolve_conda, resolve_pypi, UvResolutionContext}; pub use satisfiability::{ verify_environment_satisfiability, verify_platform_satisfiability, PlatformUnsat, }; diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 65c8d1720..f0f729043 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -2,6 +2,7 @@ //! //! See [`resolve_pypi`] and [`resolve_conda`] for more information. +use crate::config::get_cache_dir; use crate::consts::PROJECT_MANIFEST; use crate::progress::ProgressBarMessageFormatter; use crate::pypi_marker_env::determine_marker_environment; @@ -9,6 +10,7 @@ use crate::pypi_tags::{get_pypi_tags, is_python_record}; use crate::{ lock_file::{LockedCondaPackages, LockedPypiPackages, PypiRecord}, project::manifest::{PyPiRequirement, SystemRequirements}, + Project, }; use distribution_types::{ BuiltDist, Dist, FileLocation, IndexLocations, Resolution, SourceDist, VersionOrUrl, @@ -34,12 +36,36 @@ use uv_normalize::PackageName; use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver}; use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; -// struct PypiSolveContext { -// interpreter: Interpreter, -// registry_client: Arc, -// index_locations: Arc, -// -// } +/// Objects that are needed for resolutions which can be shared between different resolutions. +#[derive(Clone)] +pub struct UvResolutionContext { + cache: Cache, + registry_client: Arc, + in_flight: Arc, + index_locations: Arc, +} + +impl UvResolutionContext { + pub fn from_project(project: &Project) -> miette::Result { + let cache = Cache::from_path(get_cache_dir().expect("missing caching directory")) + .into_diagnostic() + .context("failed to create uv cache")?; + let registry_client = Arc::new( + RegistryClientBuilder::new(cache.clone()) + .connectivity(Connectivity::Online) + .build(), + ); + let in_flight = Arc::new(InFlight::default()); + let index_locations = Arc::new(project.pypi_index_locations()); + + Ok(Self { + cache, + registry_client, + in_flight, + index_locations, + }) + } +} /// This function takes as input a set of dependencies and system requirements and returns a set of /// locked packages. @@ -84,7 +110,7 @@ impl uv_resolver::ResolverReporter for ResolveReporter { #[allow(clippy::too_many_arguments)] pub async fn resolve_pypi( - // package_db: Arc, + context: UvResolutionContext, dependencies: IndexMap>, system_requirements: SystemRequirements, locked_conda_records: &[RepoDataRecord], @@ -112,15 +138,9 @@ pub async fn resolve_pypi( // Construct the marker environment for the target platform let marker_environment = determine_marker_environment(platform, python_record.as_ref())?; - // Determine the tags + // Determine the tags for this particular solve. let tags = get_pypi_tags(platform, &system_requirements, python_record.as_ref())?; - // Construct a cache - // TODO: Figure out the right location - let cache = Cache::temp() - .into_diagnostic() - .context("failed to create cache")?; - // Construct a fake interpreter from the conda environment. // TODO: Should we look into using the actual interpreter here? let platform = Platform::current().expect("unsupported platform"); @@ -137,27 +157,23 @@ pub async fn resolve_pypi( python_location.to_path_buf(), venv_root.join(lib_dir), ); - // let current_platform = Platform::current().expect("unsupported platform"); - // let interpreter = Interpreter::query(python_location, ¤t_platform, &cache) - // .into_diagnostic() - // .context("failed to create interpreter")?; - - // Define where to get packages from - let index_locations = Arc::new(IndexLocations::default()); - - // Construct a registry client - let registry_client = Arc::new( - RegistryClientBuilder::new(cache.clone()) - .index_urls(index_locations.index_urls()) - .connectivity(Connectivity::Online) - .build(), - ); + // + // // Define where to get packages from + // let index_locations = Arc::new(IndexLocations::default()); + // + // // Construct a registry client + // let registry_client = Arc::new( + // RegistryClientBuilder::new(cache.clone()) + // .index_urls(index_locations.index_urls()) + // .connectivity(Connectivity::Online) + // .build(), + // ); // Resolve the flat indexes from `--find-links`. let flat_index = { - let client = FlatIndexClient::new(®istry_client, &cache); + let client = FlatIndexClient::new(&context.registry_client, &context.cache); let entries = client - .fetch(index_locations.flat_index()) + .fetch(context.index_locations.flat_index()) .await .into_diagnostic()?; FlatIndex::from_entries(entries, &tags) @@ -166,19 +182,15 @@ pub async fn resolve_pypi( // Create a shared in-memory index. let index = InMemoryIndex::default(); - // Track in-flight downloads, builds, etc., across resolutions. - let in_flight = InFlight::default(); - let options = Options::default(); - let build_dispatch = BuildDispatch::new( - ®istry_client, - &cache, + &context.registry_client, + &context.cache, &interpreter, - &index_locations, + &context.index_locations, &flat_index, &index, - &in_flight, + &context.in_flight, interpreter.sys_executable().to_path_buf(), SetupPyStrategy::default(), &NoBuild::None, @@ -188,11 +200,11 @@ pub async fn resolve_pypi( let resolution = Resolver::new( Manifest::simple(requirements), - Options::default(), + options.clone(), &marker_environment, &interpreter, &tags, - ®istry_client, + &context.registry_client, &flat_index, &index, &build_dispatch, @@ -202,6 +214,7 @@ pub async fn resolve_pypi( .await .into_diagnostic() .context("failed to resolve pypi dependencies")?; + let resolution = Resolution::from(resolution); // Clear message @@ -233,7 +246,8 @@ pub async fn resolve_pypi( BuiltDist::Path(dist) => (dist.url.to_url(), None), }; - let metadata = registry_client + let metadata = context + .registry_client .wheel_metadata(&dist) .await .expect("failed to get wheel metadata"); diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 84e314718..58826ef00 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1,3 +1,4 @@ +use crate::lock_file::UvResolutionContext; use crate::{ config, consts, environment, environment::{ @@ -710,6 +711,7 @@ pub async fn ensure_up_to_date_lock_file( } // Spawn tasks to update the pypi packages. + let mut uv_context = None; for (environment, platform) in outdated .pypi .into_iter() @@ -747,9 +749,24 @@ pub async fn ensure_up_to_date_lock_file( .get_conda_prefix(&group) .expect("prefix should be available now or in the future"); + // Get the uv context + let uv_context = match &uv_context { + None => { + let context = UvResolutionContext::from_project(project)?; + uv_context = Some(context.clone()); + context + } + Some(context) => context.clone(), + }; + // Spawn a task to solve the pypi environment - let pypi_solve_future = - spawn_solve_pypi_task(group.clone(), platform, repodata_future, prefix_future); + let pypi_solve_future = spawn_solve_pypi_task( + uv_context, + group.clone(), + platform, + repodata_future, + prefix_future, + ); pending_futures.push(pypi_solve_future.boxed_local()); @@ -1215,6 +1232,7 @@ async fn spawn_extract_pypi_environment_task( /// A task that solves the pypi dependencies for a given environment. async fn spawn_solve_pypi_task( + resolution_context: UvResolutionContext, environment: GroupedEnvironment<'_>, platform: Platform, repodata_records: impl Future>, @@ -1255,6 +1273,7 @@ async fn spawn_solve_pypi_task( let start = Instant::now(); let records = lock_file::resolve_pypi( + resolution_context, dependencies, system_requirements, &repodata_records.records, diff --git a/src/project/mod.rs b/src/project/mod.rs index 8ade6c1e2..7b417a310 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -6,12 +6,15 @@ pub mod manifest; mod solve_group; pub mod virtual_packages; +use distribution_types::IndexLocations; use indexmap::{Equivalent, IndexMap, IndexSet}; use miette::{IntoDiagnostic, NamedSource, WrapErr}; use rattler_conda_types::{Channel, GenericVirtualPackage, Platform, Version}; use rattler_networking::AuthenticationMiddleware; +use reqwest::Client; use reqwest_middleware::ClientWithMiddleware; use std::hash::Hash; +use std::time::Duration; use std::{ collections::{HashMap, HashSet}, env, @@ -85,8 +88,6 @@ impl SpecType { pub struct Project { /// Root folder of the project root: PathBuf, - /// The PyPI package db for this project - // package_db: OnceCell>, /// Reqwest client shared for this project client: reqwest::Client, /// Authenticated reqwest client shared for this project @@ -113,7 +114,6 @@ impl Project { .build(); Self { root: Default::default(), - // package_db: Default::default(), client, authenticated_client, manifest, @@ -167,13 +167,21 @@ impl Project { ) }); + let timeout = 5 * 60; + let client = Client::builder() + .pool_max_idle_per_host(20) + .timeout(std::time::Duration::from_secs(timeout)) + .build() + .expect("failed to create reqwest Client"); + + let authenticated_client = reqwest_middleware::ClientBuilder::new(client.clone()) + .with_arc(Arc::new(AuthenticationMiddleware::default())) + .build(); + Ok(Self { root: root.to_owned(), - // package_db: Default::default(), - client: Default::default(), - authenticated_client: reqwest_middleware::ClientBuilder::new(reqwest::Client::new()) - .with_arc(Arc::new(AuthenticationMiddleware::default())) - .build(), + client, + authenticated_client, manifest: manifest?, }) } @@ -369,11 +377,12 @@ impl Project { self.manifest.has_pypi_dependencies() } - // /// Returns the Python index URLs to use for this project. - // pub fn pypi_index_url(&self) -> Url { - // normalize_index_url(Url::parse("https://pypi.org/simple/").unwrap()) - // } - // + /// Returns the Python index locations to use for this project. + pub fn pypi_index_locations(&self) -> IndexLocations { + /// TODO: Currently we just default to Pypi always. + IndexLocations::default() + } + // /// Returns the package database used for caching python metadata, wheels and more. See the // /// documentation of [`rip::index::PackageDb`] for more information. // pub fn pypi_package_db(&self) -> miette::Result> { From c336e982c54fdc4ca0cafdb9d1da8a33649d214f Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 20 Feb 2024 14:16:10 +0100 Subject: [PATCH 21/55] feat: share resources between solve and install --- src/environment.rs | 3 ++ src/install_pypi.rs | 45 +++++++++++------------- src/lock_file/resolve.rs | 76 ++++++++++++++++++++++------------------ src/lock_file/update.rs | 21 +++++++++++ 4 files changed, 87 insertions(+), 58 deletions(-) diff --git a/src/environment.rs b/src/environment.rs index 8e5ad2cb3..bfa0310ff 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -1,5 +1,6 @@ use miette::IntoDiagnostic; +use crate::lock_file::UvResolutionContext; use crate::{ consts, install, install_pypi, lock_file::UpdateLockFileOptions, @@ -177,6 +178,7 @@ pub async fn update_prefix_pypi( pypi_records: &[(PypiPackageData, PypiPackageEnvironmentData)], status: &PythonStatus, system_requirements: &SystemRequirements, + uv_context: UvResolutionContext, ) -> miette::Result<()> { // Remove python packages from a previous python distribution if the python version changed. // install_pypi::remove_old_python_distributions(prefix, platform, status)?; @@ -196,6 +198,7 @@ pub async fn update_prefix_pypi( platform, status, system_requirements, + uv_context, ) }, ) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 04e42a5b1..b01de2735 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -9,6 +9,7 @@ use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; use crate::consts::PROJECT_MANIFEST; +use crate::lock_file::UvResolutionContext; use crate::project::manifest::SystemRequirements; use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::is_python_record; @@ -26,7 +27,7 @@ use std::sync::Arc; use std::time::Duration; use tokio::task::JoinError; use uv_cache::Cache; -use uv_client::{FlatIndex, FlatIndexClient, RegistryClientBuilder}; +use uv_client::{FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; use uv_dispatch::BuildDispatch; use uv_installer::{Downloader, Plan, Planner, Reinstall, SitePackages}; use uv_interpreter::{Interpreter, Virtualenv}; @@ -61,6 +62,7 @@ pub async fn update_python_distributions( platform: Platform, status: &PythonStatus, system_requirements: &SystemRequirements, + uv_context: UvResolutionContext, ) -> miette::Result<()> { let start = std::time::Instant::now(); let Some(python_info) = status.current_info() else { @@ -82,8 +84,6 @@ pub async fn update_python_distributions( .find(|r| is_python_record(r)) .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; - let uv_cache = Cache::temp().into_diagnostic()?; - let marker_environment = determine_marker_environment(platform, &python_record.package_record)?; let venv_root = prefix.root().join("envs").join(name.as_str()); let interpreter = Interpreter::artificial( @@ -101,40 +101,32 @@ pub async fn update_python_distributions( // Determine the current environment markers. let tags = venv.interpreter().tags().into_diagnostic()?; - // Prep the registry client. - let client = RegistryClientBuilder::new(uv_cache.clone()).build(); - // Resolve the flat indexes from `--find-links`. - let index_locations = IndexLocations::default(); let flat_index = { - let client = FlatIndexClient::new(&client, &uv_cache); + let client = FlatIndexClient::new(&uv_context.registry_client, &uv_context.cache); let entries = client - .fetch(index_locations.flat_index()) + .fetch(uv_context.index_locations.flat_index()) .await .into_diagnostic()?; FlatIndex::from_entries(entries, tags) }; - // Create a shared in-memory index. - let index = InMemoryIndex::default(); - // Track in-flight downloads, builds, etc., across resolutions. - let in_flight = InFlight::default(); let no_build = NoBuild::None; let no_binary = NoBinary::None; // Prep the build context. let build_dispatch = BuildDispatch::new( - &client, - &uv_cache, + &uv_context.registry_client, + &uv_context.cache, venv.interpreter(), - &index_locations, + &uv_context.index_locations, &flat_index, - &index, - &in_flight, + &uv_context.in_memory_index, + &uv_context.in_flight, venv.python_executable(), - SetupPyStrategy::Pep517, + SetupPyStrategy::default(), &no_build, &no_binary, ); @@ -175,8 +167,8 @@ pub async fn update_python_distributions( site_packages, &Reinstall::None, &no_binary, - &index_locations, - &uv_cache, + &uv_context.index_locations, + &uv_context.cache, &venv, tags, ) @@ -207,7 +199,7 @@ pub async fn update_python_distributions( let wheel_finder = uv_resolver::DistFinder::new( tags, - &client, + &uv_context.registry_client, venv.interpreter(), &flat_index, &no_binary, @@ -233,10 +225,15 @@ pub async fn update_python_distributions( } else { let start = std::time::Instant::now(); - let downloader = Downloader::new(&uv_cache, tags, &client, &build_dispatch); + let downloader = Downloader::new( + &uv_context.cache, + tags, + &uv_context.registry_client, + &build_dispatch, + ); let wheels = downloader - .download(remote.clone(), &in_flight) + .download(remote.clone(), &uv_context.in_flight) .await .into_diagnostic() .context("Failed to download distributions")?; diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index f0f729043..c4fd7ffe2 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -39,10 +39,11 @@ use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; /// Objects that are needed for resolutions which can be shared between different resolutions. #[derive(Clone)] pub struct UvResolutionContext { - cache: Cache, - registry_client: Arc, - in_flight: Arc, - index_locations: Arc, + pub cache: Cache, + pub registry_client: Arc, + pub in_flight: Arc, + pub index_locations: Arc, + pub in_memory_index: Arc, } impl UvResolutionContext { @@ -57,12 +58,13 @@ impl UvResolutionContext { ); let in_flight = Arc::new(InFlight::default()); let index_locations = Arc::new(project.pypi_index_locations()); - + let in_memory_index = Arc::new(InMemoryIndex::default()); Ok(Self { cache, registry_client, in_flight, index_locations, + in_memory_index, }) } } @@ -144,19 +146,22 @@ pub async fn resolve_pypi( // Construct a fake interpreter from the conda environment. // TODO: Should we look into using the actual interpreter here? let platform = Platform::current().expect("unsupported platform"); - let lib_dir = if platform.os() == &Os::Windows { - "Lib" - } else { - "lib" - }; - let interpreter = Interpreter::artificial( - platform.clone(), - marker_environment.clone(), - venv_root.to_path_buf(), - venv_root.to_path_buf(), - python_location.to_path_buf(), - venv_root.join(lib_dir), - ); + // let lib_dir = if platform.os() == &Os::Windows { + // "Lib" + // } else { + // "lib" + // }; + // let interpreter = Interpreter::artificial( + // platform.clone(), + // marker_environment.clone(), + // venv_root.to_path_buf(), + // venv_root.to_path_buf(), + // python_location.to_path_buf(), + // venv_root.join(lib_dir), + // ); + let interpreter = + Interpreter::query(python_location, &platform, &context.cache).into_diagnostic()?; + // // // Define where to get packages from // let index_locations = Arc::new(IndexLocations::default()); @@ -180,8 +185,6 @@ pub async fn resolve_pypi( }; // Create a shared in-memory index. - let index = InMemoryIndex::default(); - let options = Options::default(); let build_dispatch = BuildDispatch::new( &context.registry_client, @@ -189,14 +192,14 @@ pub async fn resolve_pypi( &interpreter, &context.index_locations, &flat_index, - &index, + &context.in_memory_index, &context.in_flight, interpreter.sys_executable().to_path_buf(), SetupPyStrategy::default(), &NoBuild::None, &NoBinary::None, ) - .with_options(options.clone()); + .with_options(options.clone()); let resolution = Resolver::new( Manifest::simple(requirements), @@ -206,21 +209,26 @@ pub async fn resolve_pypi( &tags, &context.registry_client, &flat_index, - &index, + &context.in_memory_index, &build_dispatch, ) - .with_reporter(ResolveReporter(pb.clone())) - .resolve() - .await - .into_diagnostic() - .context("failed to resolve pypi dependencies")?; + .with_reporter(ResolveReporter(pb.clone())) + .resolve() + .await + .into_diagnostic() + .context("failed to resolve pypi dependencies")?; let resolution = Resolution::from(resolution); // Clear message pb.set_message(""); - let database = DistributionDatabase::new(&cache, &tags, ®istry_client, &build_dispatch); + let database = DistributionDatabase::new( + &context.cache, + &tags, + &context.registry_client, + &build_dispatch, + ); let mut locked_packages = LockedPypiPackages::with_capacity(resolution.len()); for dist in resolution.into_distributions() { let pypi_package_data = match dist { @@ -332,9 +340,9 @@ pub async fn resolve_conda( // Solve the task resolvo::Solver.solve(task).into_diagnostic() }) - .await - .unwrap_or_else(|e| match e.try_into_panic() { - Ok(e) => std::panic::resume_unwind(e), - Err(_err) => Err(miette::miette!("cancelled")), - }) + .await + .unwrap_or_else(|e| match e.try_into_panic() { + Ok(e) => std::panic::resume_unwind(e), + Err(_err) => Err(miette::miette!("cancelled")), + }) } diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 58826ef00..320c2cb9d 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -70,6 +70,8 @@ pub struct UpdateLockFileOptions { /// A struct that holds the lock-file and any potential derived data that was computed when calling /// `ensure_up_to_date_lock_file`. pub struct LockFileDerivedData<'p> { + pub project: &'p Project, + /// The lock-file pub lock_file: LockFile, @@ -84,6 +86,9 @@ pub struct LockFileDerivedData<'p> { /// A list of prefixes that have been updated while resolving all dependencies. pub updated_pypi_prefixes: HashMap, Prefix>, + + /// The cached uv context + pub uv_context: Option, } impl<'p> LockFileDerivedData<'p> { @@ -101,6 +106,15 @@ impl<'p> LockFileDerivedData<'p> { .unwrap_or_default(); let pypi_records = self.pypi_records(environment, platform).unwrap_or_default(); + let uv_context = match &self.uv_context { + None => { + let context = UvResolutionContext::from_project(self.project)?; + self.uv_context = Some(context.clone()); + context + } + Some(context) => context.clone(), + }; + // Update the prefix with Pypi records environment::update_prefix_pypi( environment.name(), @@ -110,6 +124,7 @@ impl<'p> LockFileDerivedData<'p> { &pypi_records, &python_status, &environment.system_requirements(), + uv_context, ) .await?; @@ -401,11 +416,13 @@ pub async fn ensure_up_to_date_lock_file( tracing::info!("skipping check if lock-file is up-to-date"); return Ok(LockFileDerivedData { + project, lock_file, package_cache, repo_data: options.existing_repo_data, updated_conda_prefixes: Default::default(), updated_pypi_prefixes: Default::default(), + uv_context: None, }); } @@ -416,11 +433,13 @@ pub async fn ensure_up_to_date_lock_file( // If no-environment is outdated we can return early. return Ok(LockFileDerivedData { + project, lock_file, package_cache, repo_data: options.existing_repo_data, updated_conda_prefixes: Default::default(), updated_pypi_prefixes: Default::default(), + uv_context: None, }); } @@ -1009,12 +1028,14 @@ pub async fn ensure_up_to_date_lock_file( top_level_progress.finish_and_clear(); Ok(LockFileDerivedData { + project, lock_file, package_cache, updated_conda_prefixes: context.take_instantiated_conda_prefixes(), updated_pypi_prefixes: HashMap::default(), repo_data: Arc::into_inner(context.repo_data) .expect("repo data should not be shared anymore"), + uv_context, }) } From 85cd8d10ce97518302e3d2febab1c71bb9ba3eae Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 20 Feb 2024 14:26:03 +0100 Subject: [PATCH 22/55] fix: cargo imports --- src/install_pypi.rs | 38 +++++++++++++++++----------------- src/lock_file/resolve.rs | 14 ++++++------- src/project/manifest/python.rs | 4 ++-- src/project/mod.rs | 2 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index b01de2735..49c869ab4 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -1,10 +1,10 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; -use crate::progress::ProgressBarMessageFormatter; -use crate::{progress, EnvironmentName}; -use futures::{stream, Stream, StreamExt, TryFutureExt, TryStreamExt}; -use indexmap::IndexSet; -use indicatif::ProgressBar; + +use crate::{EnvironmentName}; +use futures::{StreamExt}; + + use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; @@ -13,26 +13,26 @@ use crate::lock_file::UvResolutionContext; use crate::project::manifest::SystemRequirements; use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::is_python_record; -use distribution_types::{IndexLocations, Name}; +use distribution_types::{Name}; use install_wheel_rs::linker::LinkMode; -use pep440_rs::{VersionSpecifier, VersionSpecifiers}; -use pep508_rs::{MarkerEnvironment, Requirement, VersionOrUrl}; +use pep440_rs::{VersionSpecifiers}; +use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; -use std::collections::HashSet; -use std::ops::Deref; + + use std::path::Path; use std::str::FromStr; -use std::sync::Arc; + use std::time::Duration; -use tokio::task::JoinError; -use uv_cache::Cache; -use uv_client::{FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; + + +use uv_client::{FlatIndex, FlatIndexClient}; use uv_dispatch::BuildDispatch; use uv_installer::{Downloader, Plan, Planner, Reinstall, SitePackages}; use uv_interpreter::{Interpreter, Virtualenv}; -use uv_resolver::InMemoryIndex; -use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; + +use uv_traits::{NoBinary, NoBuild, SetupPyStrategy}; /// The installer name for pypi packages installed by pixi. pub(crate) const PIXI_PYPI_INSTALLER: &str = env!("CARGO_PKG_NAME"); @@ -61,7 +61,7 @@ pub async fn update_python_distributions( python_packages: &[CombinedPypiPackageData], platform: Platform, status: &PythonStatus, - system_requirements: &SystemRequirements, + _system_requirements: &SystemRequirements, uv_context: UvResolutionContext, ) -> miette::Result<()> { let start = std::time::Instant::now(); @@ -70,10 +70,10 @@ pub async fn update_python_distributions( return Ok(()); }; - let python_location = prefix.root().join(&python_info.path); + let _python_location = prefix.root().join(&python_info.path); // Determine where packages would have been installed - let python_version = ( + let _python_version = ( python_info.short_version.0 as u32, python_info.short_version.1 as u32, 0, diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index c4fd7ffe2..9c0827113 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -4,7 +4,7 @@ use crate::config::get_cache_dir; use crate::consts::PROJECT_MANIFEST; -use crate::progress::ProgressBarMessageFormatter; + use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::{get_pypi_tags, is_python_record}; use crate::{ @@ -18,7 +18,7 @@ use distribution_types::{ use indexmap::IndexMap; use indicatif::ProgressBar; use miette::{Context, IntoDiagnostic}; -use platform_host::{Os, Platform}; +use platform_host::{Platform}; use rattler_conda_types::{GenericVirtualPackage, MatchSpec, RepoDataRecord}; use rattler_digest::{parse_digest_from_hex, Md5, Sha256}; use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; @@ -97,17 +97,17 @@ impl uv_resolver::ResolverReporter for ResolveReporter { fn on_complete(&self) {} - fn on_build_start(&self, dist: &SourceDist) -> usize { + fn on_build_start(&self, _dist: &SourceDist) -> usize { 0 } - fn on_build_complete(&self, dist: &SourceDist, id: usize) {} + fn on_build_complete(&self, _dist: &SourceDist, _id: usize) {} - fn on_checkout_start(&self, url: &Url, rev: &str) -> usize { + fn on_checkout_start(&self, _url: &Url, _rev: &str) -> usize { 0 } - fn on_checkout_complete(&self, url: &Url, rev: &str, index: usize) {} + fn on_checkout_complete(&self, _url: &Url, _rev: &str, _index: usize) {} } #[allow(clippy::too_many_arguments)] @@ -120,7 +120,7 @@ pub async fn resolve_pypi( platform: rattler_conda_types::Platform, pb: &ProgressBar, python_location: &Path, - venv_root: &Path, + _venv_root: &Path, ) -> miette::Result { // Solve python packages pb.set_message("resolving pypi dependencies"); diff --git a/src/project/manifest/python.rs b/src/project/manifest/python.rs index 8fd37317f..dab08164d 100644 --- a/src/project/manifest/python.rs +++ b/src/project/manifest/python.rs @@ -1,10 +1,10 @@ use pep440_rs::VersionSpecifiers; -use pep508_rs::Extras; + use serde::{de, de::Error, Deserialize, Deserializer}; use std::{fmt, fmt::Formatter, str::FromStr}; use thiserror::Error; use toml_edit::Item; -use uv_normalize::{ExtraName, PackageName}; +use uv_normalize::{ExtraName}; #[derive(Debug, Clone, Eq, PartialEq)] pub struct PyPiRequirement { diff --git a/src/project/mod.rs b/src/project/mod.rs index 7b417a310..d9e04eea5 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -14,7 +14,7 @@ use rattler_networking::AuthenticationMiddleware; use reqwest::Client; use reqwest_middleware::ClientWithMiddleware; use std::hash::Hash; -use std::time::Duration; + use std::{ collections::{HashMap, HashSet}, env, From 6bb949d88c1229bf8d180828f665d315a11812e2 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 20 Feb 2024 14:27:56 +0100 Subject: [PATCH 23/55] feat: for tim --- src/install_pypi.rs | 51 +++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 49c869ab4..510e4fc8f 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -1,9 +1,8 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; -use crate::{EnvironmentName}; -use futures::{StreamExt}; - +use crate::EnvironmentName; +use futures::StreamExt; use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; @@ -12,21 +11,19 @@ use crate::consts::PROJECT_MANIFEST; use crate::lock_file::UvResolutionContext; use crate::project::manifest::SystemRequirements; use crate::pypi_marker_env::determine_marker_environment; -use crate::pypi_tags::is_python_record; -use distribution_types::{Name}; +use crate::pypi_tags::{get_pypi_tags, is_python_record}; +use distribution_types::{IndexLocations, Name}; use install_wheel_rs::linker::LinkMode; -use pep440_rs::{VersionSpecifiers}; +use pep440_rs::VersionSpecifiers; use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; - use std::path::Path; use std::str::FromStr; use std::time::Duration; - use uv_client::{FlatIndex, FlatIndexClient}; use uv_dispatch::BuildDispatch; use uv_installer::{Downloader, Plan, Planner, Reinstall, SitePackages}; @@ -61,7 +58,7 @@ pub async fn update_python_distributions( python_packages: &[CombinedPypiPackageData], platform: Platform, status: &PythonStatus, - _system_requirements: &SystemRequirements, + system_requirements: &SystemRequirements, uv_context: UvResolutionContext, ) -> miette::Result<()> { let start = std::time::Instant::now(); @@ -70,7 +67,7 @@ pub async fn update_python_distributions( return Ok(()); }; - let _python_location = prefix.root().join(&python_info.path); + let python_location = prefix.root().join(&python_info.path); // Determine where packages would have been installed let _python_version = ( @@ -86,20 +83,28 @@ pub async fn update_python_distributions( let marker_environment = determine_marker_environment(platform, &python_record.package_record)?; let venv_root = prefix.root().join("envs").join(name.as_str()); - let interpreter = Interpreter::artificial( - platform_host::Platform::current().expect("unsupported platform"), - marker_environment.clone(), - venv_root.to_path_buf(), - venv_root.to_path_buf(), - prefix.root().join(python_info.path()), - Path::new("invalid").to_path_buf(), - ); + // let interpreter = Interpreter::artificial( + // platform_host::Platform::current().expect("unsupported platform"), + // marker_environment.clone(), + // venv_root.to_path_buf(), + // venv_root.to_path_buf(), + // prefix.root().join(python_info.path()), + // Path::new("invalid").to_path_buf(), + // ); + + let platform = platform_host::Platform::current().expect("unsupported platform"); + let interpreter = + Interpreter::query(&python_location, &platform, &uv_context.cache).into_diagnostic()?; /// Create a custom venv let venv = Virtualenv::from_interpreter(interpreter, prefix.root()); // Determine the current environment markers. - let tags = venv.interpreter().tags().into_diagnostic()?; + let tags = get_pypi_tags( + Platform::current(), + &system_requirements, + &python_record.package_record, + )?; // Resolve the flat indexes from `--find-links`. @@ -109,7 +114,7 @@ pub async fn update_python_distributions( .fetch(uv_context.index_locations.flat_index()) .await .into_diagnostic()?; - FlatIndex::from_entries(entries, tags) + FlatIndex::from_entries(entries, &tags) }; // Track in-flight downloads, builds, etc., across resolutions. @@ -170,7 +175,7 @@ pub async fn update_python_distributions( &uv_context.index_locations, &uv_context.cache, &venv, - tags, + &tags, ) .expect("Failed to determine installation plan"); @@ -198,7 +203,7 @@ pub async fn update_python_distributions( let start = std::time::Instant::now(); let wheel_finder = uv_resolver::DistFinder::new( - tags, + &tags, &uv_context.registry_client, venv.interpreter(), &flat_index, @@ -227,7 +232,7 @@ pub async fn update_python_distributions( let downloader = Downloader::new( &uv_context.cache, - tags, + &tags, &uv_context.registry_client, &build_dispatch, ); From ceecfc47867f36591d24f2d69aac8bf0c5ab1d04 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 20 Feb 2024 15:13:37 +0100 Subject: [PATCH 24/55] fix: dont check extras in the lock-file --- examples/pypi/pixi.lock | 1178 +++++++++++++-------------- src/install_pypi.rs | 2 +- src/lock_file/package_identifier.rs | 13 +- src/lock_file/satisfiability.rs | 17 +- 4 files changed, 597 insertions(+), 613 deletions(-) diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index cefa0f8f7..15618480b 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -5,6 +5,7 @@ environments: - url: https://conda.anaconda.org/conda-forge/ packages: linux-64: + - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda @@ -43,92 +44,92 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ea/df/55525e489c43f9dbb6c8ea27d8a567b3dcd18a22f3c45483055f5ca6611d/libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 + - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e + - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + - pypi: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 + - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca + - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 + - pypi: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 + extras: + - jupyter + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + - pypi: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd osx-64: + - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.2.2-h8857fd0_0.conda @@ -160,92 +161,92 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl - - pypi: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - - pypi: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c9/ea/fe2a69cc6cfebf7c7ee8a6357566fc1cbb91632bde5869b669a396accb5f/libclang-16.0.6-py2.py3-none-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 + - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 + - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + - pypi: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 + - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + - pypi: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 + - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 + - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 + - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba + extras: + - jupyter + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd osx-arm64: + - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda @@ -277,93 +278,93 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - - pypi: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/32/1f/981809b77b71972beec34b3ff5422c1b1f7e519daac7b3cbd055c05ba2cf/libclang-16.0.6-py2.py3-none-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 + - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 + - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 + - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + - pypi: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 + - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff + - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 + - pypi: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b + extras: + - jupyter + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e + - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd win-64: + - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.2.2-h56e8100_0.conda @@ -395,91 +396,90 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33130-hcb4865c_18.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/02/8c/dc970bc00867fe290e8c8a7befa1635af716a9ebdfe3fb9dce0ca4b522ce/libclang-16.0.6-py2.py3-none-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 + - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 + extras: + - jupyter + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 + - pypi: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 + - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae + - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + - pypi: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd packages: - kind: conda name: _libgcc_mutex @@ -513,13 +513,13 @@ packages: - kind: pypi name: absl-py version: 2.1.0 - url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 sha256: 526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 requires_python: '>=3.7' - kind: pypi name: asttokens version: 2.4.1 - url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 sha256: 051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 requires_dist: - six >=1.12.0 @@ -532,7 +532,7 @@ packages: - kind: pypi name: astunparse version: 1.6.3 - url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 sha256: c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 requires_dist: - wheel <1.0, >=0.23.0 @@ -540,7 +540,7 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl + url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b requires_dist: - click >=8.0.0 @@ -560,7 +560,7 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 requires_dist: - click >=8.0.0 @@ -580,7 +580,7 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 requires_dist: - click >=8.0.0 @@ -600,7 +600,7 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba requires_dist: - click >=8.0.0 @@ -620,7 +620,7 @@ packages: - kind: pypi name: blinker version: 1.7.0 - url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 sha256: c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 requires_python: '>=3.8' - kind: conda @@ -728,37 +728,43 @@ packages: - kind: pypi name: cachetools version: 5.3.2 - url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 sha256: 861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 requires_python: '>=3.7' - kind: pypi name: certifi version: 2024.2.2 - url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 requires_python: '>=3.6' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl - sha256: 802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db + url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e + sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 sha256: 753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 requires_python: '>=3.7.0' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 + sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 + requires_python: '>=3.7.0' - kind: pypi name: click version: 8.1.7 - url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 sha256: ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 requires_dist: - colorama ; platform_system == 'Windows' @@ -767,13 +773,13 @@ packages: - kind: pypi name: colorama version: 0.4.6 - url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7' - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl + url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd requires_dist: - numpy <2.0, >=1.20 @@ -785,10 +791,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-pillow ; extra == 'mypy' + - types-Pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - pillow ; extra == 'test' + - Pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -797,7 +803,7 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de requires_dist: - numpy <2.0, >=1.20 @@ -809,10 +815,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-pillow ; extra == 'mypy' + - types-Pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - pillow ; extra == 'test' + - Pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -821,7 +827,7 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 requires_dist: - numpy <2.0, >=1.20 @@ -833,10 +839,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-pillow ; extra == 'mypy' + - types-Pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - pillow ; extra == 'test' + - Pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -845,7 +851,7 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 requires_dist: - numpy <2.0, >=1.20 @@ -857,10 +863,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-pillow ; extra == 'mypy' + - types-Pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - pillow ; extra == 'test' + - Pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -869,7 +875,7 @@ packages: - kind: pypi name: cycler version: 0.12.1 - url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 sha256: 85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 requires_dist: - ipython ; extra == 'docs' @@ -883,13 +889,13 @@ packages: - kind: pypi name: decorator version: 5.1.1 - url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 requires_python: '>=3.5' - kind: pypi name: executing version: 2.0.1 - url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc sha256: eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc requires_dist: - asttokens >=2.1.0 ; extra == 'tests' @@ -903,11 +909,11 @@ packages: - kind: pypi name: flask version: 3.0.2 - url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e sha256: 3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e requires_dist: - - werkzeug >=3.0.0 - - jinja2 >=3.1.2 + - Werkzeug >=3.0.0 + - Jinja2 >=3.1.2 - itsdangerous >=2.1.2 - click >=8.1.3 - blinker >=1.6.2 @@ -918,13 +924,13 @@ packages: - kind: pypi name: flatbuffers version: 23.5.26 - url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 sha256: c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - kind: pypi name: fonttools - version: 4.49.0 - url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl - sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e + version: 4.48.1 + url: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 + sha256: 18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -959,9 +965,9 @@ packages: requires_python: '>=3.8' - kind: pypi name: fonttools - version: 4.49.0 - url: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl - sha256: fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 + version: 4.48.1 + url: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a + sha256: d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -996,9 +1002,9 @@ packages: requires_python: '>=3.8' - kind: pypi name: fonttools - version: 4.49.0 - url: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 + version: 4.48.1 + url: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 + sha256: aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1034,14 +1040,14 @@ packages: - kind: pypi name: gast version: 0.5.4 - url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 sha256: 6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' - kind: pypi name: google-auth - version: 2.28.0 - url: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl - sha256: 7634d29dcd1e101f5226a23cbc4a0c6cda6394253bf80e281d9c5c6797869c53 + version: 2.27.0 + url: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + sha256: 8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 requires_dist: - cachetools <6.0, >=2.0.0 - pyasn1-modules >=0.2.1 @@ -1058,7 +1064,7 @@ packages: - kind: pypi name: google-auth-oauthlib version: 1.0.0 - url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb sha256: 95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb requires_dist: - google-auth >=2.15.0 @@ -1068,14 +1074,14 @@ packages: - kind: pypi name: google-pasta version: 0.2.0 - url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed sha256: b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed requires_dist: - six - kind: pypi name: grpcio version: 1.60.1 - url: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl + url: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 sha256: 4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 requires_dist: - grpcio-tools >=1.60.1 ; extra == 'protobuf' @@ -1083,7 +1089,7 @@ packages: - kind: pypi name: grpcio version: 1.60.1 - url: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c sha256: 49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c requires_dist: - grpcio-tools >=1.60.1 ; extra == 'protobuf' @@ -1091,7 +1097,7 @@ packages: - kind: pypi name: grpcio version: 1.60.1 - url: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 sha256: cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 requires_dist: - grpcio-tools >=1.60.1 ; extra == 'protobuf' @@ -1099,7 +1105,7 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl + url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd requires_dist: - numpy >=1.17.3 @@ -1107,7 +1113,7 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 requires_dist: - numpy >=1.17.3 @@ -1115,7 +1121,7 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 requires_dist: - numpy >=1.17.3 @@ -1123,7 +1129,7 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc requires_dist: - numpy >=1.17.3 @@ -1170,7 +1176,7 @@ packages: - kind: pypi name: idna version: '3.6' - url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f sha256: c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f requires_python: '>=3.5' - kind: conda @@ -1189,7 +1195,7 @@ packages: - kind: pypi name: ipython version: 8.21.0 - url: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 sha256: 1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 requires_dist: - decorator @@ -1267,19 +1273,19 @@ packages: - kind: pypi name: itsdangerous version: 2.1.2 - url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 sha256: 2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 requires_python: '>=3.7' - kind: pypi name: jedi version: 0.19.1 - url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 sha256: e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 requires_dist: - parso <0.9.0, >=0.8.3 - - jinja2 ==2.11.3 ; extra == 'docs' - - markupsafe ==1.1.1 ; extra == 'docs' - - pygments ==2.8.1 ; extra == 'docs' + - Jinja2 ==2.11.3 ; extra == 'docs' + - MarkupSafe ==1.1.1 ; extra == 'docs' + - Pygments ==2.8.1 ; extra == 'docs' - alabaster ==0.7.12 ; extra == 'docs' - babel ==2.9.1 ; extra == 'docs' - chardet ==4.0.0 ; extra == 'docs' @@ -1305,7 +1311,7 @@ packages: - flake8 ==5.0.4 ; extra == 'qa' - mypy ==0.971 ; extra == 'qa' - types-setuptools ==67.2.0.1 ; extra == 'qa' - - django ; extra == 'testing' + - Django ; extra == 'testing' - attrs ; extra == 'testing' - colorama ; extra == 'testing' - docopt ; extra == 'testing' @@ -1314,30 +1320,30 @@ packages: - kind: pypi name: jinja2 version: 3.1.3 - url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa sha256: 7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa requires_dist: - - markupsafe >=2.0 - - babel >=2.7 ; extra == 'i18n' + - MarkupSafe >=2.0 + - Babel >=2.7 ; extra == 'i18n' requires_python: '>=3.7' - kind: pypi name: keras version: 2.14.0 - url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd sha256: d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd requires_python: '>=3.9' - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl - sha256: 11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5 + url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 + sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 requires_dist: - typing-extensions ; python_version < '3.8' @@ -1345,11 +1351,19 @@ packages: - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e sha256: 040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 + sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -1523,26 +1537,6 @@ packages: license_family: BSD size: 5017024 timestamp: 1705980469944 -- kind: pypi - name: libclang - version: 16.0.6 - url: https://files.pythonhosted.org/packages/32/1f/981809b77b71972beec34b3ff5422c1b1f7e519daac7b3cbd055c05ba2cf/libclang-16.0.6-py2.py3-none-macosx_11_0_arm64.whl - sha256: e1a5ad1e895e5443e205568c85c04b4608e4e973dae42f4dfd9cb46c81d1486b -- kind: pypi - name: libclang - version: 16.0.6 - url: https://files.pythonhosted.org/packages/02/8c/dc970bc00867fe290e8c8a7befa1635af716a9ebdfe3fb9dce0ca4b522ce/libclang-16.0.6-py2.py3-none-win_amd64.whl - sha256: daab4a11dae228f1efa9efa3fe638b493b14d8d52c71fb3c7019e2f1df4514c2 -- kind: pypi - name: libclang - version: 16.0.6 - url: https://files.pythonhosted.org/packages/ea/df/55525e489c43f9dbb6c8ea27d8a567b3dcd18a22f3c45483055f5ca6611d/libclang-16.0.6-py2.py3-none-manylinux2010_x86_64.whl - sha256: 9dcdc730939788b8b69ffd6d5d75fe5366e3ee007f1e36a99799ec0b0c001492 -- kind: pypi - name: libclang - version: 16.0.6 - url: https://files.pythonhosted.org/packages/c9/ea/fe2a69cc6cfebf7c7ee8a6357566fc1cbb91632bde5869b669a396accb5f/libclang-16.0.6-py2.py3-none-macosx_10_9_x86_64.whl - sha256: da9e47ebc3f0a6d90fb169ef25f9fbcd29b4a4ef97a8b0e3e3a17800af1423f4 - kind: conda name: libclang version: 16.0.6 @@ -2491,7 +2485,7 @@ packages: - kind: pypi name: markdown version: 3.5.2 - url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd sha256: d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd requires_dist: - importlib-metadata >=4.4 ; python_version < '3.10' @@ -2508,25 +2502,25 @@ packages: - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f requires_python: '>=3.7' - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 requires_python: '>=3.7' - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 sha256: b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 requires_python: '>=3.7' - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl + url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e requires_dist: - contourpy >=1.0.1 @@ -2543,7 +2537,7 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 requires_dist: - contourpy >=1.0.1 @@ -2560,7 +2554,7 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 requires_dist: - contourpy >=1.0.1 @@ -2577,7 +2571,7 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 requires_dist: - contourpy >=1.0.1 @@ -2594,7 +2588,7 @@ packages: - kind: pypi name: matplotlib-inline version: 0.1.6 - url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 sha256: f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 requires_dist: - traitlets @@ -2618,7 +2612,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c requires_dist: - numpy >1.20 @@ -2633,7 +2627,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa sha256: 832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa requires_dist: - numpy >1.20 @@ -2648,7 +2642,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca requires_dist: - numpy >1.20 @@ -2663,7 +2657,7 @@ packages: - kind: pypi name: mypy-extensions version: 1.0.0 - url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d sha256: 4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d requires_python: '>=3.5' - kind: conda @@ -2708,30 +2702,6 @@ packages: license: X11 AND BSD-3-Clause size: 822031 timestamp: 1698751567986 -- kind: pypi - name: numpy - version: 1.26.4 - url: https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl - sha256: edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef - requires_python: '>=3.9' -- kind: pypi - name: numpy - version: 1.26.4 - url: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl - sha256: cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 - requires_python: '>=3.9' -- kind: pypi - name: numpy - version: 1.26.4 - url: https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 - requires_python: '>=3.9' -- kind: pypi - name: numpy - version: 1.26.4 - url: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 - requires_python: '>=3.9' - kind: conda name: numpy version: 1.26.4 @@ -2831,7 +2801,7 @@ packages: - kind: pypi name: oauthlib version: 3.2.2 - url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca sha256: 8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca requires_dist: - cryptography >=3.0.0 ; extra == 'rsa' @@ -2910,7 +2880,7 @@ packages: - kind: pypi name: opt-einsum version: 3.3.0 - url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 sha256: 2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 requires_dist: - numpy >=1.7 @@ -2925,13 +2895,13 @@ packages: - kind: pypi name: packaging version: '23.2' - url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 sha256: 8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 requires_python: '>=3.7' - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl + url: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b sha256: 8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' @@ -2962,12 +2932,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - sqlalchemy >=2.0.0 ; extra == 'mysql' + - SQLAlchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -2977,7 +2947,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - pyqt5 >=5.15.9 ; extra == 'clipboard' + - PyQt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3002,7 +2972,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - pyqt5 >=5.15.9 ; extra == 'all' + - PyQt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3011,7 +2981,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - sqlalchemy >=2.0.0 ; extra == 'all' + - SQLAlchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -3022,7 +2992,7 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 sha256: fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' @@ -3053,12 +3023,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - sqlalchemy >=2.0.0 ; extra == 'mysql' + - SQLAlchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3068,7 +3038,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - pyqt5 >=5.15.9 ; extra == 'clipboard' + - PyQt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3093,7 +3063,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - pyqt5 >=5.15.9 ; extra == 'all' + - PyQt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3102,7 +3072,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - sqlalchemy >=2.0.0 ; extra == 'all' + - SQLAlchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -3113,7 +3083,7 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' @@ -3144,12 +3114,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - sqlalchemy >=2.0.0 ; extra == 'mysql' + - SQLAlchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3159,7 +3129,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - pyqt5 >=5.15.9 ; extra == 'clipboard' + - PyQt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3184,7 +3154,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - pyqt5 >=5.15.9 ; extra == 'all' + - PyQt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3193,7 +3163,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - sqlalchemy >=2.0.0 ; extra == 'all' + - SQLAlchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -3204,7 +3174,7 @@ packages: - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl + url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 sha256: a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' @@ -3235,12 +3205,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - sqlalchemy >=2.0.0 ; extra == 'mysql' + - SQLAlchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3250,7 +3220,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - pyqt5 >=5.15.9 ; extra == 'clipboard' + - PyQt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3275,7 +3245,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - pyqt5 >=5.15.9 ; extra == 'all' + - PyQt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3284,7 +3254,7 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - sqlalchemy >=2.0.0 ; extra == 'all' + - SQLAlchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - tabulate >=0.9.0 ; extra == 'all' - xarray >=2022.12.0 ; extra == 'all' @@ -3295,7 +3265,7 @@ packages: - kind: pypi name: parso version: 0.8.3 - url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 sha256: c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 requires_dist: - flake8 ==3.8.3 ; extra == 'qa' @@ -3306,20 +3276,20 @@ packages: - kind: pypi name: pathspec version: 0.12.1 - url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 sha256: a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 requires_python: '>=3.8' - kind: pypi name: pexpect version: 4.9.0 - url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 requires_dist: - ptyprocess >=0.5 - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl + url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 requires_dist: - furo ; extra == 'docs' @@ -3347,7 +3317,7 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 requires_dist: - furo ; extra == 'docs' @@ -3375,7 +3345,7 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e requires_dist: - furo ; extra == 'docs' @@ -3403,7 +3373,7 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 requires_dist: - furo ; extra == 'docs' @@ -3431,7 +3401,7 @@ packages: - kind: pypi name: platformdirs version: 4.2.0 - url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 sha256: 0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 requires_dist: - furo >=2023.9.10 ; extra == 'docs' @@ -3446,51 +3416,52 @@ packages: requires_python: '>=3.8' - kind: pypi name: plot-antenna - version: '1.8' - url: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - sha256: f12c4cb90dea3fa0e41e904e4595959d727d933aa3292fbc89d1f9b15249bf48 + version: '1.7' + url: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + sha256: ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 requires_dist: - matplotlib - numpy - pandas - plotly + - pysmithplot @ git+https://github.com/schlatterbeck/pySmithPlot.git - pytest ; extra == 'test' - kaleido ; extra == 'test' requires_python: '>=3.7' - kind: pypi name: plotly - version: 5.19.0 - url: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - sha256: 906abcc5f15945765328c5d47edaa884bc99f5985fbc61e8cd4dc361f4ff8f5a + version: 5.18.0 + url: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + sha256: 23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de requires_dist: - tenacity >=6.2.0 - packaging - requires_python: '>=3.8' + requires_python: '>=3.6' - kind: pypi name: prompt-toolkit version: 3.0.43 - url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 sha256: a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 requires_dist: - wcwidth requires_python: '>=3.7.0' - kind: pypi name: protobuf - version: 4.25.3 - url: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl - sha256: f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c + version: 4.25.2 + url: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d + sha256: 2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d requires_python: '>=3.8' - kind: pypi name: protobuf - version: 4.25.3 - url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl - sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 + version: 4.25.2 + url: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 + sha256: 8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 requires_python: '>=3.8' - kind: pypi name: protobuf - version: 4.25.3 - url: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl - sha256: 7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d + version: 4.25.2 + url: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 + sha256: fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 requires_python: '>=3.8' - kind: conda name: pthreads-win32 @@ -3509,25 +3480,25 @@ packages: - kind: pypi name: ptyprocess version: 0.7.0 - url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 sha256: 4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - kind: pypi name: pure-eval version: 0.2.2 - url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 sha256: 01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 requires_dist: - pytest ; extra == 'tests' - kind: pypi name: pyasn1 version: 0.5.1 - url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 sha256: 4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7' - kind: pypi name: pyasn1-modules version: 0.3.0 - url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d sha256: d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d requires_dist: - pyasn1 <0.6.0, >=0.4.6 @@ -3535,7 +3506,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c requires_dist: - numpy @@ -3549,7 +3520,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c sha256: bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c requires_dist: - numpy @@ -3563,7 +3534,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl + url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 requires_dist: - numpy @@ -3577,12 +3548,12 @@ packages: - kind: pypi name: pycosat version: 0.6.6 - url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff sha256: a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - kind: pypi name: pygments version: 2.17.2 - url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c sha256: b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c requires_dist: - importlib-metadata ; python_version < '3.8' and extra == 'plugins' @@ -3591,12 +3562,12 @@ packages: - kind: pypi name: pyliblzfse version: 0.4.1 - url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d sha256: bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - kind: pypi name: pyparsing version: 3.1.1 - url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb sha256: 32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb requires_dist: - railroad-diagrams ; extra == 'diagrams' @@ -3605,23 +3576,32 @@ packages: - kind: pypi name: pysdl2 version: 0.9.16 - url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 sha256: 1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl + url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e sha256: d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e +- kind: pypi + name: pysmithplot + version: 0.2.0 + url: git+https://github.com/schlatterbeck/pySmithPlot.git + sha256: 0da5fe6b19902c9f296544e2bfaab9d1e0d142d3bf576771d53d10f54830c12b + requires_dist: + - matplotlib >=1.2.0 + - numpy + - scipy - kind: conda name: python version: 3.11.7 @@ -3732,6 +3712,14 @@ packages: license: Python-2.0 size: 14567667 timestamp: 1703342625860 +- kind: pypi + name: python-dateutil + version: 2.8.2 + url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + requires_dist: + - six >=1.5 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' - kind: conda name: python_abi version: '3.11' @@ -3792,18 +3780,10 @@ packages: license_family: BSD size: 6755 timestamp: 1695147711935 -- kind: pypi - name: python-dateutil - version: 2.8.2 - url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - requires_dist: - - six >=1.5 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' - kind: pypi name: pytz version: '2024.1' - url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 sha256: 328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - kind: conda name: readline @@ -3854,20 +3834,20 @@ packages: - kind: pypi name: requests version: 2.31.0 - url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f requires_dist: - charset-normalizer <4, >=2 - idna <4, >=2.5 - urllib3 <3, >=1.21.1 - certifi >=2017.4.17 - - pysocks !=1.5.7, >=1.5.6 ; extra == 'socks' + - PySocks !=1.5.7, >=1.5.6 ; extra == 'socks' - chardet <6, >=3.0.2 ; extra == 'use_chardet_on_py3' requires_python: '>=3.7' - kind: pypi name: requests-oauthlib version: 1.3.1 - url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 sha256: 2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 requires_dist: - oauthlib >=3.0.0 @@ -3877,7 +3857,7 @@ packages: - kind: pypi name: rsa version: '4.9' - url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 sha256: 90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 requires_dist: - pyasn1 >=0.1.3 @@ -3991,16 +3971,16 @@ packages: - kind: pypi name: setuptools version: 69.1.0 - url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 sha256: c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 requires_dist: - sphinx >=3.5 ; extra == 'docs' - sphinx <7.2.5 ; extra == 'docs' - - jaraco-packaging >=9.3 ; extra == 'docs' - - rst-linker >=1.9 ; extra == 'docs' + - jaraco.packaging >=9.3 ; extra == 'docs' + - rst.linker >=1.9 ; extra == 'docs' - furo ; extra == 'docs' - sphinx-lint ; extra == 'docs' - - jaraco-tidelift >=1.4 ; extra == 'docs' + - jaraco.tidelift >=1.4 ; extra == 'docs' - pygments-github-lexers ==0.0.5 ; extra == 'docs' - sphinx-favicon ; extra == 'docs' - sphinx-inline-tabs ; extra == 'docs' @@ -4014,9 +3994,9 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing' - wheel ; extra == 'testing' - pip >=19.1 ; extra == 'testing' - - jaraco-envs >=2.2 ; extra == 'testing' + - jaraco.envs >=2.2 ; extra == 'testing' - pytest-xdist ; extra == 'testing' - - jaraco-path >=3.2.0 ; extra == 'testing' + - jaraco.path >=3.2.0 ; extra == 'testing' - build[virtualenv] ; extra == 'testing' - filelock >=3.4.0 ; extra == 'testing' - ini2toml[lite] >=0.9 ; extra == 'testing' @@ -4029,27 +4009,27 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing-integration' - tomli ; extra == 'testing-integration' - wheel ; extra == 'testing-integration' - - jaraco-path >=3.2.0 ; extra == 'testing-integration' - - jaraco-envs >=2.2 ; extra == 'testing-integration' + - jaraco.path >=3.2.0 ; extra == 'testing-integration' + - jaraco.envs >=2.2 ; extra == 'testing-integration' - build[virtualenv] >=1.0.3 ; extra == 'testing-integration' - filelock >=3.4.0 ; extra == 'testing-integration' - packaging >=23.1 ; extra == 'testing-integration' - pytest-cov ; platform_python_implementation != 'PyPy' and extra == 'testing' - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' - - jaraco-develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' + - jaraco.develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' - pytest-ruff >=0.2.1 ; sys_platform != 'cygwin' and extra == 'testing' - pytest-perf ; sys_platform != 'cygwin' and extra == 'testing' requires_python: '>=3.8' - kind: pypi name: six version: 1.16.0 - url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 sha256: 8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' - kind: pypi name: stack-data version: 0.6.3 - url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 sha256: d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 requires_dist: - executing >=1.2.0 @@ -4081,7 +4061,7 @@ packages: - kind: pypi name: tenacity version: 8.2.3 - url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c sha256: ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c requires_dist: - reno ; extra == 'doc' @@ -4091,7 +4071,7 @@ packages: - kind: pypi name: tensorboard version: 2.14.1 - url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 sha256: 3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 requires_dist: - absl-py >=0.4 @@ -4110,13 +4090,13 @@ packages: - kind: pypi name: tensorboard-data-server version: 0.7.2 - url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb requires_python: '>=3.7' - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c requires_dist: - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' @@ -4137,7 +4117,7 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 requires_dist: - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' @@ -4158,7 +4138,7 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa requires_dist: - absl-py >=1.0.0 @@ -4200,7 +4180,7 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 requires_dist: - absl-py >=1.0.0 @@ -4240,13 +4220,13 @@ packages: - kind: pypi name: tensorflow-estimator version: 2.14.0 - url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 sha256: 820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 requires_python: '>=3.7' - kind: pypi name: tensorflow-intel version: 2.14.0 - url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae sha256: 51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae requires_dist: - absl-py >=1.0.0 @@ -4286,7 +4266,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.31.0 - url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 sha256: 4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 requires_dist: - tensorflow <2.12.0, >=2.11.0 ; extra == 'tensorflow' @@ -4298,7 +4278,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl + url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' @@ -4310,7 +4290,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' @@ -4322,7 +4302,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' @@ -4334,7 +4314,7 @@ packages: - kind: pypi name: tensorflow-macos version: 2.14.0 - url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 sha256: 064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 requires_dist: - absl-py >=1.0.0 @@ -4374,7 +4354,7 @@ packages: - kind: pypi name: termcolor version: 2.4.0 - url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 sha256: 9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 requires_dist: - pytest ; extra == 'tests' @@ -4446,13 +4426,13 @@ packages: - kind: pypi name: tokenize-rt version: 5.2.0 - url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 sha256: b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 requires_python: '>=3.8' - kind: pypi name: traitlets version: 5.14.1 - url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 sha256: 2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 requires_dist: - myst-parser ; extra == 'docs' @@ -4468,15 +4448,9 @@ packages: - kind: pypi name: typing-extensions version: 4.9.0 - url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd sha256: af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd requires_python: '>=3.8' -- kind: pypi - name: tzdata - version: '2024.1' - url: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl - sha256: 9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 - requires_python: '>=2' - kind: conda name: tzdata version: 2024a @@ -4505,9 +4479,9 @@ packages: timestamp: 1666630199266 - kind: pypi name: urllib3 - version: 2.2.1 - url: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - sha256: 450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d + version: 2.2.0 + url: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + sha256: ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 requires_dist: - brotli >=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli' - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli' @@ -4567,23 +4541,23 @@ packages: - kind: pypi name: wcwidth version: 0.2.13 - url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 sha256: 3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 requires_dist: - - backports-functools-lru-cache >=1.2.1 ; python_version < '3.2' + - backports.functools-lru-cache >=1.2.1 ; python_version < '3.2' - kind: pypi name: werkzeug version: 3.0.1 - url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 sha256: 90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 requires_dist: - - markupsafe >=2.1.1 + - MarkupSafe >=2.1.1 - watchdog >=2.3 ; extra == 'watchdog' requires_python: '>=3.8' - kind: pypi name: wheel version: 0.42.0 - url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d sha256: 177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d requires_dist: - pytest >=6.0.0 ; extra == 'test' @@ -4592,25 +4566,25 @@ packages: - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl + url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl + url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: conda diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 510e4fc8f..413633be4 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -209,7 +209,7 @@ pub async fn update_python_distributions( &flat_index, &no_binary, ); - let resolution = wheel_finder.resolve(&remote).await.into_diagnostic()?; + let resolution = wheel_finder.resolve(&remote).await.into_diagnostic().context("wheel finder resolve failed")?; let s = if resolution.len() == 1 { "" } else { "s" }; tracing::debug!( diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index f413135c2..aef971abe 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -187,12 +187,13 @@ impl PypiPackageIdentifier { } } - // Check if the required extras exist - for extra in requirement.extras.iter() { - if !self.extras.contains(extra) { - return false; - } - } + // TODO: uv doesnt properly support this yet. + // // Check if the required extras exist + // for extra in requirement.extras.iter() { + // if !self.extras.contains(extra) { + // return false; + // } + // } true } diff --git a/src/lock_file/satisfiability.rs b/src/lock_file/satisfiability.rs index 13b8f7b48..cdb2112e1 100644 --- a/src/lock_file/satisfiability.rs +++ b/src/lock_file/satisfiability.rs @@ -39,8 +39,8 @@ pub enum PlatformUnsat { #[error("there are more conda packages in the lock-file than are used by the environment")] TooManyCondaPackages, - #[error("there are more pypi packages in the lock-file than are used by the environment")] - TooManyPypiPackages, + #[error("there are more pypi packages in the lock-file than are used by the environment: {}", .0.iter().format(", "))] + TooManyPypiPackages(Vec), #[error("there are PyPi dependencies but a python interpreter is missing from the lock-file")] MissingPythonInterpreter, @@ -256,7 +256,12 @@ pub fn verify_pypi_platform_satisfiability( // If there are no pypi packages specified in the requirement, we can skip verifying them. if requirements.is_empty() { return if !locked_pypi_environment.is_empty() { - Err(PlatformUnsat::TooManyPypiPackages) + Err(PlatformUnsat::TooManyPypiPackages( + locked_pypi_environment + .iter() + .map(|p| p.data().package.name.clone()) + .collect(), + )) } else { Ok(()) }; @@ -358,7 +363,11 @@ pub fn verify_pypi_platform_satisfiability( // Make sure we don't have more packages than we need. if packages_visited.len() != locked_pypi_environment.len() { - return Err(PlatformUnsat::TooManyPypiPackages); + let extraneous_packages = HashSet::from_iter(0..locked_pypi_environment.len()) + .difference(&packages_visited) + .map(|idx| locked_pypi_environment[*idx].data().package.name.clone()) + .collect_vec(); + return Err(PlatformUnsat::TooManyPypiPackages(extraneous_packages)); } Ok(()) From 37dad702757a549c36cbe6fb84de48857ffdb555 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Tue, 20 Feb 2024 17:01:29 +0100 Subject: [PATCH 25/55] fix: constrain the locked versions --- src/install_pypi.rs | 26 +++--- src/lock_file/package_identifier.rs | 28 ++----- src/lock_file/resolve.rs | 125 +++++++++++++++++++--------- src/project/mod.rs | 2 +- 4 files changed, 107 insertions(+), 74 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 413633be4..6083ef2f7 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -2,7 +2,6 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; use crate::EnvironmentName; -use futures::StreamExt; use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; @@ -12,14 +11,13 @@ use crate::lock_file::UvResolutionContext; use crate::project::manifest::SystemRequirements; use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::{get_pypi_tags, is_python_record}; -use distribution_types::{IndexLocations, Name}; +use distribution_types::{Name}; use install_wheel_rs::linker::LinkMode; use pep440_rs::VersionSpecifiers; use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; -use std::path::Path; use std::str::FromStr; use std::time::Duration; @@ -81,22 +79,22 @@ pub async fn update_python_distributions( .find(|r| is_python_record(r)) .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; - let marker_environment = determine_marker_environment(platform, &python_record.package_record)?; - let venv_root = prefix.root().join("envs").join(name.as_str()); - // let interpreter = Interpreter::artificial( - // platform_host::Platform::current().expect("unsupported platform"), - // marker_environment.clone(), - // venv_root.to_path_buf(), - // venv_root.to_path_buf(), - // prefix.root().join(python_info.path()), - // Path::new("invalid").to_path_buf(), - // ); + // let marker_environment = determine_marker_environment(platform, &python_record.package_record)?; + // let venv_root = prefix.root().join("envs").join(name.as_str()); + // // let interpreter = Interpreter::artificial( + // // platform_host::Platform::current().expect("unsupported platform"), + // // marker_environment.clone(), + // // venv_root.to_path_buf(), + // // venv_root.to_path_buf(), + // // prefix.root().join(python_info.path()), + // // Path::new("invalid").to_path_buf(), + // // ); let platform = platform_host::Platform::current().expect("unsupported platform"); let interpreter = Interpreter::query(&python_location, &platform, &uv_context.cache).into_diagnostic()?; - /// Create a custom venv + // Create a custom venv let venv = Virtualenv::from_interpreter(interpreter, prefix.root()); // Determine the current environment markers. diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index aef971abe..3bc0e6ab7 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -24,16 +24,6 @@ impl PypiPackageIdentifier { Ok(result) } - // /// Constructs a new instance from a [`LockedDependency`]. - // pub fn from_locked_package( - // package: &rattler_lock::Package, - // ) -> Result, ConversionError> { - // match package { - // rattler_lock::Package::Conda(pkg) => Self::from_locked_conda_dependency(pkg), - // rattler_lock::Package::Pypi(pkg) => Ok(vec![Self::from_locked_pypi_dependency(pkg)?]), - // } - // } - // /// Constructs a new instance from a locked Pypi dependency. pub fn from_locked_pypi_dependency( package: &rattler_lock::PypiPackage, @@ -119,15 +109,15 @@ impl PypiPackageIdentifier { Ok(()) } - // /// Given a list of conda package records, extract the python packages that will be installed - // /// when these conda packages are installed. - // pub fn from_records(records: &[RepoDataRecord]) -> Result, ConversionError> { - // let mut result = Vec::new(); - // for record in records { - // Self::from_record_into(record, &mut result)?; - // } - // Ok(result) - // } + /// Given a list of conda package records, extract the python packages that will be installed + /// when these conda packages are installed. + pub fn from_records(records: &[RepoDataRecord]) -> Result, ConversionError> { + let mut result = Vec::new(); + for record in records { + Self::from_record_into(record, &mut result)?; + } + Ok(result) + } /// Tries to construct an instance from a generic PURL. /// diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 9c0827113..79b4d7d38 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -4,7 +4,9 @@ use crate::config::get_cache_dir; use crate::consts::PROJECT_MANIFEST; +use std::collections::HashMap; +use crate::lock_file::package_identifier; use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::{get_pypi_tags, is_python_record}; use crate::{ @@ -13,12 +15,15 @@ use crate::{ Project, }; use distribution_types::{ - BuiltDist, Dist, FileLocation, IndexLocations, Resolution, SourceDist, VersionOrUrl, + BuiltDist, Dist, FileLocation, IndexLocations, Name, Resolution, SourceDist, VersionOrUrl, }; use indexmap::IndexMap; use indicatif::ProgressBar; +use itertools::Itertools; use miette::{Context, IntoDiagnostic}; -use platform_host::{Platform}; +use pep440_rs::{Operator, Version, VersionPattern, VersionSpecifier}; +use pep508_rs::Requirement; +use platform_host::Platform; use rattler_conda_types::{GenericVirtualPackage, MatchSpec, RepoDataRecord}; use rattler_digest::{parse_digest_from_hex, Md5, Sha256}; use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; @@ -110,13 +115,29 @@ impl uv_resolver::ResolverReporter for ResolveReporter { fn on_checkout_complete(&self, _url: &Url, _rev: &str, _index: usize) {} } +fn single_version_requirement(name: PackageName, version: Version) -> Requirement { + Requirement { + name, + version_or_url: Some(pep508_rs::VersionOrUrl::VersionSpecifier( + [ + VersionSpecifier::new(Operator::Equal, VersionPattern::verbatim(version)) + .expect("this should always work"), + ] + .into_iter() + .collect(), + )), + extras: Vec::default(), + marker: None, + } +} + #[allow(clippy::too_many_arguments)] pub async fn resolve_pypi( context: UvResolutionContext, dependencies: IndexMap>, system_requirements: SystemRequirements, locked_conda_records: &[RepoDataRecord], - _locked_pypi_records: &[PypiRecord], + locked_pypi_records: &[PypiRecord], platform: rattler_conda_types::Platform, pb: &ProgressBar, python_location: &Path, @@ -125,6 +146,33 @@ pub async fn resolve_pypi( // Solve python packages pb.set_message("resolving pypi dependencies"); + // Determine which pypi packages are already installed as conda package. + // Determine the python packages that are installed by the conda packages + let conda_python_packages = + package_identifier::PypiPackageIdentifier::from_records(locked_conda_records) + .into_diagnostic() + .context("failed to extract python packages from conda metadata")? + .into_iter() + .map(|p| (p.name.clone(), p)) + .collect::>(); + + if !conda_python_packages.is_empty() { + tracing::info!( + "the following python packages are assumed to be installed by conda: {conda_python_packages}", + conda_python_packages = + conda_python_packages + .values() + .format_with(", ", |p, f| f(&format_args!( + "{name} {version}", + name = &p.name, + version = &p.version + ))) + ); + } else { + tracing::info!("there are no python packages installed by conda"); + } + + // Get the Pypi requirements let requirements = dependencies .iter() .flat_map(|(name, req)| req.iter().map(move |req| (name, req))) @@ -146,34 +194,9 @@ pub async fn resolve_pypi( // Construct a fake interpreter from the conda environment. // TODO: Should we look into using the actual interpreter here? let platform = Platform::current().expect("unsupported platform"); - // let lib_dir = if platform.os() == &Os::Windows { - // "Lib" - // } else { - // "lib" - // }; - // let interpreter = Interpreter::artificial( - // platform.clone(), - // marker_environment.clone(), - // venv_root.to_path_buf(), - // venv_root.to_path_buf(), - // python_location.to_path_buf(), - // venv_root.join(lib_dir), - // ); let interpreter = Interpreter::query(python_location, &platform, &context.cache).into_diagnostic()?; - // - // // Define where to get packages from - // let index_locations = Arc::new(IndexLocations::default()); - // - // // Construct a registry client - // let registry_client = Arc::new( - // RegistryClientBuilder::new(cache.clone()) - // .index_urls(index_locations.index_urls()) - // .connectivity(Connectivity::Online) - // .build(), - // ); - // Resolve the flat indexes from `--find-links`. let flat_index = { let client = FlatIndexClient::new(&context.registry_client, &context.cache); @@ -199,10 +222,27 @@ pub async fn resolve_pypi( &NoBuild::None, &NoBinary::None, ) - .with_options(options.clone()); + .with_options(options.clone()); + + let constraints = conda_python_packages + .values() + .map(|p| single_version_requirement(p.name.clone(), p.version.clone())) + .collect(); + + let preferences = locked_pypi_records + .iter() + .map(|p| single_version_requirement(p.0.name.clone(), p.0.version.clone())) + .collect(); let resolution = Resolver::new( - Manifest::simple(requirements), + Manifest::new( + requirements, + constraints, + Vec::new(), + preferences, + None, + Vec::new(), + ), options.clone(), &marker_environment, &interpreter, @@ -212,11 +252,11 @@ pub async fn resolve_pypi( &context.in_memory_index, &build_dispatch, ) - .with_reporter(ResolveReporter(pb.clone())) - .resolve() - .await - .into_diagnostic() - .context("failed to resolve pypi dependencies")?; + .with_reporter(ResolveReporter(pb.clone())) + .resolve() + .await + .into_diagnostic() + .context("failed to resolve pypi dependencies")?; let resolution = Resolution::from(resolution); @@ -231,6 +271,11 @@ pub async fn resolve_pypi( ); let mut locked_packages = LockedPypiPackages::with_capacity(resolution.len()); for dist in resolution.into_distributions() { + // If this refers to a conda package we can skip it + if conda_python_packages.contains_key(dist.name()) { + continue; + } + let pypi_package_data = match dist { Dist::Built(dist) => { let (url, hash) = match &dist { @@ -340,9 +385,9 @@ pub async fn resolve_conda( // Solve the task resolvo::Solver.solve(task).into_diagnostic() }) - .await - .unwrap_or_else(|e| match e.try_into_panic() { - Ok(e) => std::panic::resume_unwind(e), - Err(_err) => Err(miette::miette!("cancelled")), - }) + .await + .unwrap_or_else(|e| match e.try_into_panic() { + Ok(e) => std::panic::resume_unwind(e), + Err(_err) => Err(miette::miette!("cancelled")), + }) } diff --git a/src/project/mod.rs b/src/project/mod.rs index d9e04eea5..8d65d28d3 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -379,7 +379,7 @@ impl Project { /// Returns the Python index locations to use for this project. pub fn pypi_index_locations(&self) -> IndexLocations { - /// TODO: Currently we just default to Pypi always. + // TODO: Currently we just default to Pypi always. IndexLocations::default() } From 0a78d055084ed312e21c22e646fa6b6820da1e74 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Thu, 22 Feb 2024 08:48:13 +0100 Subject: [PATCH 26/55] bump: uv to 0.1.6 --- Cargo.lock | 76 ++++++++++++++++++++++++++++-------------------------- Cargo.toml | 53 ++++++++++++++++++------------------- 2 files changed, 66 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f6cc6cbe3..c5d388784 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -608,7 +608,7 @@ dependencies = [ [[package]] name = "cache-key" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "hex", "seahash", @@ -1044,7 +1044,7 @@ dependencies = [ [[package]] name = "distribution-filename" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "pep440_rs 0.4.0", "platform-tags", @@ -1058,13 +1058,14 @@ dependencies = [ [[package]] name = "distribution-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anyhow", "cache-key", "data-encoding", "distribution-filename", "fs-err", + "itertools", "once_cell", "pep440_rs 0.4.0", "pep508_rs", @@ -1560,7 +1561,7 @@ dependencies = [ [[package]] name = "gourgeist" version = "0.0.4" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anstream", "cachedir", @@ -1894,7 +1895,7 @@ dependencies = [ [[package]] name = "install-wheel-rs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "clap", "configparser", @@ -2550,7 +2551,7 @@ dependencies = [ [[package]] name = "once-map" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "dashmap", "tokio", @@ -2769,7 +2770,7 @@ dependencies = [ [[package]] name = "pep440_rs" version = "0.4.0" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "once_cell", "pubgrub", @@ -2782,7 +2783,7 @@ dependencies = [ [[package]] name = "pep508_rs" version = "0.2.3" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "derivative", "once_cell", @@ -3001,7 +3002,7 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "platform-host" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "fs-err", "goblin", @@ -3028,7 +3029,7 @@ dependencies = [ [[package]] name = "platform-tags" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "platform-host", "rustc-hash", @@ -3189,7 +3190,7 @@ dependencies = [ [[package]] name = "pypi-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "chrono", "mailparse", @@ -3281,7 +3282,7 @@ dependencies = [ [[package]] name = "rattler" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "anyhow", "async-compression", @@ -3326,7 +3327,7 @@ dependencies = [ [[package]] name = "rattler_conda_types" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "chrono", "fxhash", @@ -3355,7 +3356,7 @@ dependencies = [ [[package]] name = "rattler_digest" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "blake2", "digest", @@ -3370,7 +3371,7 @@ dependencies = [ [[package]] name = "rattler_lock" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "chrono", "fxhash", @@ -3394,7 +3395,7 @@ dependencies = [ [[package]] name = "rattler_macros" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "quote", "syn 2.0.48", @@ -3403,7 +3404,7 @@ dependencies = [ [[package]] name = "rattler_networking" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "anyhow", "async-trait", @@ -3431,7 +3432,7 @@ dependencies = [ [[package]] name = "rattler_package_streaming" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "bzip2", "chrono", @@ -3457,7 +3458,7 @@ dependencies = [ [[package]] name = "rattler_repodata_gateway" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "anyhow", "async-compression", @@ -3496,7 +3497,7 @@ dependencies = [ [[package]] name = "rattler_shell" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "enum_dispatch", "indexmap 2.2.2", @@ -3513,7 +3514,7 @@ dependencies = [ [[package]] name = "rattler_solve" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "anyhow", "chrono", @@ -3533,7 +3534,7 @@ dependencies = [ [[package]] name = "rattler_virtual_packages" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=d61c84e379e75fe7ed528f917085d14b0719d844#d61c84e379e75fe7ed528f917085d14b0719d844" +source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" dependencies = [ "cfg-if", "libloading", @@ -3678,7 +3679,7 @@ dependencies = [ [[package]] name = "requirements-txt" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "fs-err", "once_cell", @@ -5088,7 +5089,7 @@ dependencies = [ [[package]] name = "uv-build" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anyhow", "distribution-types", @@ -5118,7 +5119,7 @@ dependencies = [ [[package]] name = "uv-cache" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "cache-key", "cachedir", @@ -5139,7 +5140,7 @@ dependencies = [ [[package]] name = "uv-client" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "async-trait", "async_http_range_reader", @@ -5178,12 +5179,13 @@ dependencies = [ "uv-cache", "uv-fs", "uv-normalize", + "uv-warnings", ] [[package]] name = "uv-dispatch" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anyhow", "distribution-types", @@ -5211,7 +5213,7 @@ dependencies = [ [[package]] name = "uv-distribution" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anyhow", "cache-key", @@ -5248,7 +5250,7 @@ dependencies = [ [[package]] name = "uv-extract" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "async-compression", "async_zip", @@ -5268,7 +5270,7 @@ dependencies = [ [[package]] name = "uv-fs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "dunce", "fs-err", @@ -5283,7 +5285,7 @@ dependencies = [ [[package]] name = "uv-git" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anyhow", "base64 0.21.7", @@ -5308,7 +5310,7 @@ dependencies = [ [[package]] name = "uv-installer" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anyhow", "distribution-filename", @@ -5343,7 +5345,7 @@ dependencies = [ [[package]] name = "uv-interpreter" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "cache-key", "fs-err", @@ -5368,7 +5370,7 @@ dependencies = [ [[package]] name = "uv-normalize" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "rkyv", "serde", @@ -5377,7 +5379,7 @@ dependencies = [ [[package]] name = "uv-resolver" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anstream", "anyhow", @@ -5429,7 +5431,7 @@ dependencies = [ [[package]] name = "uv-traits" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anyhow", "distribution-types", @@ -5444,7 +5446,7 @@ dependencies = [ [[package]] name = "uv-warnings" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.5#07349e39e84a10b531b4316a140c8b7ae8bf59e4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" dependencies = [ "anstream", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 8d456b6a7..3d6f63564 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,6 @@ console = { version = "0.15.8", features = ["windows-console-colors"] } deno_task_shell = "0.14.4" dialoguer = "0.11.0" dirs = "5.0.1" -distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } dunce = "1.0.4" flate2 = "1.0.28" futures = "0.3.30" @@ -37,17 +36,12 @@ humantime = "2.1.0" indexmap = { version = "2.2.2", features = ["serde"] } indicatif = "0.17.7" insta = { version = "1.34.0", features = ["yaml"] } -install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } is_executable = "1.0.1" itertools = "0.12.1" lazy_static = "1.4.0" miette = { version = "7.0.0", features = ["fancy", "supports-color", "supports-hyperlinks", "supports-unicode", "terminal_size", "textwrap"] } minijinja = { version = "1.0.12", features = ["builtins"] } once_cell = "1.19.0" -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } rattler = { version = "0.18.0", default-features = false } rattler_conda_types = { version = "0.18.0", default-features = false } rattler_digest = { version = "0.18.0", default-features = false } @@ -80,15 +74,22 @@ toml_edit = { version = "0.21.1", features = ["serde"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" -uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } + +distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] } @@ -106,18 +107,18 @@ tokio = { version = "1.36.0", features = ["rt"] } toml = "0.8.10" [patch.crates-io] -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.5" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -rattler = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } -rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "d61c84e379e75fe7ed528f917085d14b0719d844" } +rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } #rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rattler_installs_packages", branch = "main"} #resolvo = { git = "https://github.com/mamba-org/resolvo.git", branch = "main" } #deno_task_shell = { path = "../deno_task_shell" } From 7f242d9b6f3ce0acadc839bfa2c978dd53d7535f Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Thu, 22 Feb 2024 09:08:44 +0100 Subject: [PATCH 27/55] bump: uv to 0.1.7 --- Cargo.lock | 137 ++++++++++++++++++--------------------- Cargo.toml | 54 +++++++-------- src/lock_file/resolve.rs | 40 ++++++++++-- 3 files changed, 125 insertions(+), 106 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c5d388784..0b4fa1b7f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -608,7 +608,7 @@ dependencies = [ [[package]] name = "cache-key" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "hex", "seahash", @@ -1044,9 +1044,9 @@ dependencies = [ [[package]] name = "distribution-filename" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ - "pep440_rs 0.4.0", + "pep440_rs", "platform-tags", "rkyv", "serde", @@ -1058,7 +1058,7 @@ dependencies = [ [[package]] name = "distribution-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "cache-key", @@ -1067,7 +1067,7 @@ dependencies = [ "fs-err", "itertools", "once_cell", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "platform-tags", "pypi-types", @@ -1077,6 +1077,7 @@ dependencies = [ "serde_json", "sha2", "thiserror", + "tracing", "url", "urlencoding", "uv-fs", @@ -1561,7 +1562,7 @@ dependencies = [ [[package]] name = "gourgeist" version = "0.0.4" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anstream", "cachedir", @@ -1575,6 +1576,7 @@ dependencies = [ "thiserror", "tracing", "uv-cache", + "uv-fs", "uv-interpreter", "which", ] @@ -1895,7 +1897,7 @@ dependencies = [ [[package]] name = "install-wheel-rs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "clap", "configparser", @@ -1907,7 +1909,7 @@ dependencies = [ "goblin", "mailparse", "once_cell", - "pep440_rs 0.4.0", + "pep440_rs", "platform-host", "platform-info", "plist", @@ -2551,7 +2553,7 @@ dependencies = [ [[package]] name = "once-map" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "dashmap", "tokio", @@ -2757,20 +2759,8 @@ dependencies = [ [[package]] name = "pep440_rs" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887f66cc62717ea72caac4f1eb4e6f392224da3ffff3f40ec13ab427802746d6" -dependencies = [ - "lazy_static", - "regex", - "serde", - "unicode-width", -] - -[[package]] -name = "pep440_rs" -version = "0.4.0" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +version = "0.5.0" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "once_cell", "pubgrub", @@ -2782,17 +2772,16 @@ dependencies = [ [[package]] name = "pep508_rs" -version = "0.2.3" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +version = "0.4.2" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "derivative", "once_cell", - "pep440_rs 0.4.0", + "pep440_rs", "regex", "rkyv", "serde", "thiserror", - "tracing", "unicode-width", "url", "uv-fs", @@ -2936,7 +2925,7 @@ dependencies = [ "minijinja", "nix 0.27.1", "once_cell", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "platform-host", "platform-tags", @@ -3002,7 +2991,7 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "platform-host" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "fs-err", "goblin", @@ -3029,7 +3018,7 @@ dependencies = [ [[package]] name = "platform-tags" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "platform-host", "rustc-hash", @@ -3163,7 +3152,7 @@ dependencies = [ [[package]] name = "pubgrub" version = "0.2.1" -source = "git+https://github.com/zanieb/pubgrub?rev=9b6d89cb8a0c7902815c8b2ae99106ba322ffb14#9b6d89cb8a0c7902815c8b2ae99106ba322ffb14" +source = "git+https://github.com/zanieb/pubgrub?rev=aab132a3d4d444dd8dd41d8c4e605abd69dacfe1#aab132a3d4d444dd8dd41d8c4e605abd69dacfe1" dependencies = [ "indexmap 2.2.2", "log", @@ -3190,12 +3179,12 @@ dependencies = [ [[package]] name = "pypi-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "chrono", "mailparse", "once_cell", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "regex", "rkyv", @@ -3208,12 +3197,12 @@ dependencies = [ [[package]] name = "pyproject-toml" -version = "0.8.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d4a5e69187f23a29f8aa0ea57491d104ba541bc55f76552c2a74962aa20e04" +checksum = "3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898" dependencies = [ "indexmap 2.2.2", - "pep440_rs 0.3.12", + "pep440_rs", "pep508_rs", "serde", "toml", @@ -3282,7 +3271,7 @@ dependencies = [ [[package]] name = "rattler" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "async-compression", @@ -3327,7 +3316,7 @@ dependencies = [ [[package]] name = "rattler_conda_types" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "chrono", "fxhash", @@ -3356,7 +3345,7 @@ dependencies = [ [[package]] name = "rattler_digest" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "blake2", "digest", @@ -3371,13 +3360,13 @@ dependencies = [ [[package]] name = "rattler_lock" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "chrono", "fxhash", "indexmap 2.2.2", "itertools", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "purl", "rattler_conda_types", @@ -3395,7 +3384,7 @@ dependencies = [ [[package]] name = "rattler_macros" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "quote", "syn 2.0.48", @@ -3404,7 +3393,7 @@ dependencies = [ [[package]] name = "rattler_networking" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "async-trait", @@ -3432,7 +3421,7 @@ dependencies = [ [[package]] name = "rattler_package_streaming" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "bzip2", "chrono", @@ -3458,7 +3447,7 @@ dependencies = [ [[package]] name = "rattler_repodata_gateway" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "async-compression", @@ -3497,7 +3486,7 @@ dependencies = [ [[package]] name = "rattler_shell" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "enum_dispatch", "indexmap 2.2.2", @@ -3514,7 +3503,7 @@ dependencies = [ [[package]] name = "rattler_solve" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "chrono", @@ -3534,7 +3523,7 @@ dependencies = [ [[package]] name = "rattler_virtual_packages" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c17092264314da83f968ecbcf8cf081fbf5dbb74#c17092264314da83f968ecbcf8cf081fbf5dbb74" +source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "cfg-if", "libloading", @@ -3679,11 +3668,11 @@ dependencies = [ [[package]] name = "requirements-txt" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "fs-err", "once_cell", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "regex", "serde", @@ -4657,18 +4646,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", @@ -4898,7 +4887,6 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -5089,7 +5077,7 @@ dependencies = [ [[package]] name = "uv-build" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-types", @@ -5119,7 +5107,7 @@ dependencies = [ [[package]] name = "uv-cache" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "cache-key", "cachedir", @@ -5140,7 +5128,7 @@ dependencies = [ [[package]] name = "uv-client" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "async-trait", "async_http_range_reader", @@ -5154,7 +5142,7 @@ dependencies = [ "html-escape", "http", "install-wheel-rs", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "platform-tags", "pypi-types", @@ -5185,7 +5173,7 @@ dependencies = [ [[package]] name = "uv-dispatch" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-types", @@ -5213,7 +5201,7 @@ dependencies = [ [[package]] name = "uv-distribution" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "cache-key", @@ -5223,7 +5211,7 @@ dependencies = [ "futures", "install-wheel-rs", "nanoid", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "platform-tags", "pypi-types", @@ -5250,7 +5238,7 @@ dependencies = [ [[package]] name = "uv-extract" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "async-compression", "async_zip", @@ -5259,7 +5247,6 @@ dependencies = [ "futures", "rayon", "rustc-hash", - "tar", "thiserror", "tokio", "tokio-tar", @@ -5270,7 +5257,7 @@ dependencies = [ [[package]] name = "uv-fs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "dunce", "fs-err", @@ -5285,7 +5272,7 @@ dependencies = [ [[package]] name = "uv-git" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "base64 0.21.7", @@ -5310,7 +5297,7 @@ dependencies = [ [[package]] name = "uv-installer" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-filename", @@ -5319,7 +5306,7 @@ dependencies = [ "futures", "install-wheel-rs", "once-map", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "platform-tags", "pypi-types", @@ -5345,12 +5332,12 @@ dependencies = [ [[package]] name = "uv-interpreter" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "cache-key", "fs-err", "once_cell", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "platform-host", "platform-tags", @@ -5370,7 +5357,7 @@ dependencies = [ [[package]] name = "uv-normalize" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "rkyv", "serde", @@ -5379,7 +5366,7 @@ dependencies = [ [[package]] name = "uv-resolver" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anstream", "anyhow", @@ -5398,7 +5385,7 @@ dependencies = [ "once-map", "once_cell", "owo-colors", - "pep440_rs 0.4.0", + "pep440_rs", "pep508_rs", "petgraph", "platform-host", @@ -5431,7 +5418,7 @@ dependencies = [ [[package]] name = "uv-traits" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-types", @@ -5446,7 +5433,7 @@ dependencies = [ [[package]] name = "uv-warnings" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.6#a269766c27ea6d31860b165ef5cb045be323cf16" +source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anstream", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 3d6f63564..3d8b0e77e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,7 +67,7 @@ strsim = "0.10.0" tabwriter = { version = "1.4.0", features = ["ansi_formatting"] } tar = "0.4.40" tempfile = "3.10.0" -thiserror = "1.0.56" +thiserror = "1.0.57" tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread", "signal"] } tokio-util = "0.7.10" toml_edit = { version = "0.21.1", features = ["serde"] } @@ -75,21 +75,21 @@ tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" -distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] } @@ -107,18 +107,18 @@ tokio = { version = "1.36.0", features = ["rt"] } toml = "0.8.10" [patch.crates-io] -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } -rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "c17092264314da83f968ecbcf8cf081fbf5dbb74" } +rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } #rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rattler_installs_packages", branch = "main"} #resolvo = { git = "https://github.com/mamba-org/resolvo.git", branch = "main" } #deno_task_shell = { path = "../deno_task_shell" } diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 79b4d7d38..4e9d9f6bb 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -5,8 +5,9 @@ use crate::config::get_cache_dir; use crate::consts::PROJECT_MANIFEST; use std::collections::HashMap; +use std::future::Future; -use crate::lock_file::package_identifier; +use crate::lock_file::{package_identifier, PypiPackageIdentifier}; use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::{get_pypi_tags, is_python_record}; use crate::{ @@ -35,11 +36,13 @@ use url::Url; use uv_cache::Cache; use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; use uv_dispatch::BuildDispatch; -use uv_distribution::DistributionDatabase; +use uv_distribution::{DistributionDatabase, Reporter}; use uv_interpreter::Interpreter; use uv_normalize::PackageName; -use uv_resolver::{InMemoryIndex, Manifest, Options, Resolver}; -use uv_traits::{InFlight, NoBinary, NoBuild, SetupPyStrategy}; +use uv_resolver::{ + DefaultResolverProvider, InMemoryIndex, Manifest, Options, Resolver, ResolverProvider, +}; +use uv_traits::{BuildContext, InFlight, NoBinary, NoBuild, SetupPyStrategy}; /// Objects that are needed for resolutions which can be shared between different resolutions. #[derive(Clone)] @@ -58,6 +61,7 @@ impl UvResolutionContext { .context("failed to create uv cache")?; let registry_client = Arc::new( RegistryClientBuilder::new(cache.clone()) + .client(project.client().clone()) .connectivity(Connectivity::Online) .build(), ); @@ -115,6 +119,32 @@ impl uv_resolver::ResolverReporter for ResolveReporter { fn on_checkout_complete(&self, _url: &Url, _rev: &str, _index: usize) {} } +// struct CondaResolverProvider<'a, Context: BuildContext + Send + Sync> { +// fallback: DefaultResolverProvider<'a, Context>, +// conda_python_identifiers: Vec, +// } +// +// type PackageVersionsResult = Result; +// type WheelMetadataResult = Result<(Metadata21, Option), uv_distribution::Error>; +// +// impl<'a, Context: BuildContext + Send + Sync> ResolverProvider for CondaResolverProvider<'a, Context> { +// fn get_package_versions<'io>(&'io self, package_name: &'io PackageName) -> impl Future + Send + 'io { +// todo!() +// } +// +// fn get_or_build_wheel_metadata<'io>(&'io self, dist: &'io Dist) -> impl Future + Send + 'io { +// self.fallback.get_or_build_wheel_metadata(dist) +// } +// +// fn index_locations(&self) -> &IndexLocations { +// todo!() +// } +// +// fn with_reporter(self, reporter: impl Reporter + 'static) -> Self { +// todo!() +// } +// } + fn single_version_requirement(name: PackageName, version: Version) -> Requirement { Requirement { name, @@ -252,6 +282,8 @@ pub async fn resolve_pypi( &context.in_memory_index, &build_dispatch, ) + .into_diagnostic() + .context("failed to resolve pypi dependencies")? .with_reporter(ResolveReporter(pb.clone())) .resolve() .await From 247390f5805906c21e6e909a17d84229d9ad971a Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Thu, 22 Feb 2024 11:59:52 +0100 Subject: [PATCH 28/55] wip: using own installation --- Cargo.lock | 2 + Cargo.toml | 85 +- examples/pypi/pixi.lock | 1980 ++++++++------------------------ src/environment.rs | 2 - src/install_pypi.rs | 232 +++- src/project/manifest/python.rs | 2 +- 6 files changed, 732 insertions(+), 1571 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b4fa1b7f..931979dad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2907,6 +2907,7 @@ dependencies = [ "deno_task_shell", "dialoguer", "dirs", + "distribution-filename", "distribution-types", "dunce", "flate2", @@ -2929,6 +2930,7 @@ dependencies = [ "pep508_rs", "platform-host", "platform-tags", + "pypi-types", "rattler", "rattler_conda_types", "rattler_digest", diff --git a/Cargo.toml b/Cargo.toml index 3d8b0e77e..ff6c219b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,17 @@ readme = "README.md" [features] default = ["native-tls"] -native-tls = ["reqwest/native-tls", "rattler_repodata_gateway/native-tls", "rattler/native-tls"] -rustls-tls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots", "rattler_repodata_gateway/rustls-tls", "rattler/rustls-tls"] +native-tls = [ + "reqwest/native-tls", + "rattler_repodata_gateway/native-tls", + "rattler/native-tls", +] +rustls-tls = [ + "reqwest/rustls-tls", + "reqwest/rustls-tls-native-roots", + "rattler_repodata_gateway/rustls-tls", + "rattler/rustls-tls", +] slow_integration_tests = [] [dependencies] @@ -21,13 +30,24 @@ async-once-cell = "0.5.3" async-recursion = "1.0.5" async-scoped = { version = "0.8.0", features = ["use-tokio"] } chrono = "0.4.33" -clap = { version = "4.5.0", default-features = false, features = ["derive", "usage", "wrap_help", "std", "color", "error-context", "env"] } +clap = { version = "4.5.0", default-features = false, features = [ + "derive", + "usage", + "wrap_help", + "std", + "color", + "error-context", + "env", +] } clap-verbosity-flag = "2.1.2" clap_complete = "4.5.0" console = { version = "0.15.8", features = ["windows-console-colors"] } deno_task_shell = "0.14.4" dialoguer = "0.11.0" dirs = "5.0.1" +distribution-filename = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } + +distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } dunce = "1.0.4" flate2 = "1.0.28" futures = "0.3.30" @@ -36,25 +56,50 @@ humantime = "2.1.0" indexmap = { version = "2.2.2", features = ["serde"] } indicatif = "0.17.7" insta = { version = "1.34.0", features = ["yaml"] } +install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } is_executable = "1.0.1" itertools = "0.12.1" lazy_static = "1.4.0" -miette = { version = "7.0.0", features = ["fancy", "supports-color", "supports-hyperlinks", "supports-unicode", "terminal_size", "textwrap"] } +miette = { version = "7.0.0", features = [ + "fancy", + "supports-color", + "supports-hyperlinks", + "supports-unicode", + "terminal_size", + "textwrap", +] } minijinja = { version = "1.0.12", features = ["builtins"] } once_cell = "1.19.0" +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +pypi-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } rattler = { version = "0.18.0", default-features = false } rattler_conda_types = { version = "0.18.0", default-features = false } rattler_digest = { version = "0.18.0", default-features = false } rattler_lock = { version = "0.18.0", default-features = false } rattler_networking = { version = "0.18.0", default-features = false } -rattler_repodata_gateway = { version = "0.18.0", default-features = false, features = ["sparse"] } -rattler_shell = { version = "0.18.0", default-features = false, features = ["sysinfo"] } -rattler_solve = { version = "0.18.0", default-features = false, features = ["resolvo"] } +rattler_repodata_gateway = { version = "0.18.0", default-features = false, features = [ + "sparse", +] } +rattler_shell = { version = "0.18.0", default-features = false, features = [ + "sysinfo", +] } +rattler_solve = { version = "0.18.0", default-features = false, features = [ + "resolvo", +] } rattler_virtual_packages = { version = "0.18.0", default-features = false } regex = "1.10.3" reqwest = { version = "0.11.24", default-features = false } reqwest-middleware = "0.2.4" #rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rip", default-features = false } + +<<<<<<< HEAD +thiserror = "1.0.57" +======= + +>>>>>>> faf9af1 (wip: using own installation) self-replace = "1.3.7" serde = "1.0.196" serde-untagged = "0.1.5" @@ -67,14 +112,22 @@ strsim = "0.10.0" tabwriter = { version = "1.4.0", features = ["ansi_formatting"] } tar = "0.4.40" tempfile = "3.10.0" -thiserror = "1.0.57" -tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread", "signal"] } +tokio = { version = "1.36.0", features = [ + "macros", + "rt-multi-thread", + "signal", +] } +thiserror = "1.0.56" +tokio = { version = "1.36.0", features = [ + "macros", + "rt-multi-thread", + "signal", +] } tokio-util = "0.7.10" toml_edit = { version = "0.21.1", features = ["serde"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" - distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } @@ -91,10 +144,18 @@ uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] } +zip = { version = "0.6.6", default-features = false, features = [ + "deflate", + "time", +] } [target.'cfg(unix)'.dependencies] -nix = { version = "0.27.1", default-features = false, features = ["fs", "signal", "term", "poll"] } +nix = { version = "0.27.1", default-features = false, features = [ + "fs", + "signal", + "term", + "poll", +] } libc = { version = "0.2.153", default-features = false } signal-hook = "0.3.17" diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index 15618480b..6a2c1a0a5 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -5,7 +5,6 @@ environments: - url: https://conda.anaconda.org/conda-forge/ packages: linux-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda @@ -36,7 +35,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.7-hab00c5b_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py311h64a7726_0.conda @@ -44,92 +43,57 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e - - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 - - pypi: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl osx-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.2.2-h8857fd0_0.conda @@ -154,99 +118,64 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.4-h93d8f39_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.2.1-hd75f5a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.7-h9f0c242_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.8-h9f0c242_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.11.4-py311he0bea55_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 - - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl osx-arm64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda @@ -271,100 +200,100 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h463b476_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.2.1-h0d3ecfb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.7-hdf0ec26_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.11.4-py311h2b215a9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e - - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/8c/dc970bc00867fe290e8c8a7befa1635af716a9ebdfe3fb9dce0ca4b522ce/libclang-16.0.6-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl win-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.2.2-h56e8100_0.conda @@ -385,7 +314,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.2.1-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.7-h2628c8c_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.8-h2628c8c_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.11.4-py311h0b4df5a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.11.0-h91493d7_1.conda @@ -396,90 +325,91 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33130-hcb4865c_18.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa - - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 - - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae - - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 - - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/8c/dc970bc00867fe290e8c8a7befa1635af716a9ebdfe3fb9dce0ca4b522ce/libclang-16.0.6-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl packages: - kind: conda name: _libgcc_mutex @@ -513,13 +443,13 @@ packages: - kind: pypi name: absl-py version: 2.1.0 - url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl sha256: 526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 requires_python: '>=3.7' - kind: pypi name: asttokens version: 2.4.1 - url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl sha256: 051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 requires_dist: - six >=1.12.0 @@ -532,7 +462,7 @@ packages: - kind: pypi name: astunparse version: 1.6.3 - url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl sha256: c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 requires_dist: - wheel <1.0, >=0.23.0 @@ -540,27 +470,7 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b - sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b - requires_dist: - - click >=8.0.0 - - mypy-extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 ; python_version < '3.11' - - typing-extensions >=4.0.1 ; python_version < '3.11' - - colorama >=0.4.3 ; extra == 'colorama' - - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' - - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' - - ipython >=7.8.0 ; extra == 'jupyter' - - tokenize-rt >=3.2.0 ; extra == 'jupyter' - - uvloop >=0.15.2 ; extra == 'uvloop' - requires_python: '>=3.8' -- kind: pypi - name: black - version: 23.12.1 - url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 + url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 requires_dist: - click >=8.0.0 @@ -577,50 +487,10 @@ packages: - tokenize-rt >=3.2.0 ; extra == 'jupyter' - uvloop >=0.15.2 ; extra == 'uvloop' requires_python: '>=3.8' -- kind: pypi - name: black - version: 23.12.1 - url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - requires_dist: - - click >=8.0.0 - - mypy-extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 ; python_version < '3.11' - - typing-extensions >=4.0.1 ; python_version < '3.11' - - colorama >=0.4.3 ; extra == 'colorama' - - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' - - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' - - ipython >=7.8.0 ; extra == 'jupyter' - - tokenize-rt >=3.2.0 ; extra == 'jupyter' - - uvloop >=0.15.2 ; extra == 'uvloop' - requires_python: '>=3.8' -- kind: pypi - name: black - version: 23.12.1 - url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - requires_dist: - - click >=8.0.0 - - mypy-extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 ; python_version < '3.11' - - typing-extensions >=4.0.1 ; python_version < '3.11' - - colorama >=0.4.3 ; extra == 'colorama' - - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' - - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' - - ipython >=7.8.0 ; extra == 'jupyter' - - tokenize-rt >=3.2.0 ; extra == 'jupyter' - - uvloop >=0.15.2 ; extra == 'uvloop' - requires_python: '>=3.8' - kind: pypi name: blinker version: 1.7.0 - url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl sha256: c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 requires_python: '>=3.8' - kind: conda @@ -728,43 +598,25 @@ packages: - kind: pypi name: cachetools version: 5.3.2 - url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl sha256: 861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 requires_python: '>=3.7' - kind: pypi name: certifi version: 2024.2.2 - url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 requires_python: '>=3.6' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e - sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e - requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 + url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - sha256: 753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - requires_python: '>=3.7.0' - kind: pypi name: click version: 8.1.7 - url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl sha256: ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 requires_dist: - colorama ; platform_system == 'Windows' @@ -773,37 +625,13 @@ packages: - kind: pypi name: colorama version: 0.4.6 - url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7' - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd - sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd - requires_dist: - - numpy <2.0, >=1.20 - - furo ; extra == 'docs' - - sphinx >=7.2 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - bokeh ; extra == 'bokeh' - - selenium ; extra == 'bokeh' - - contourpy[bokeh,docs] ; extra == 'mypy' - - docutils-stubs ; extra == 'mypy' - - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' - - contourpy[test-no-images] ; extra == 'test' - - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' - - pytest ; extra == 'test-no-images' - - pytest-cov ; extra == 'test-no-images' - - pytest-xdist ; extra == 'test-no-images' - - wurlitzer ; extra == 'test-no-images' - requires_python: '>=3.9' -- kind: pypi - name: contourpy - version: 1.2.0 - url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de + url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de requires_dist: - numpy <2.0, >=1.20 @@ -815,58 +643,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' - - contourpy[test-no-images] ; extra == 'test' - - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' - - pytest ; extra == 'test-no-images' - - pytest-cov ; extra == 'test-no-images' - - pytest-xdist ; extra == 'test-no-images' - - wurlitzer ; extra == 'test-no-images' - requires_python: '>=3.9' -- kind: pypi - name: contourpy - version: 1.2.0 - url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 - sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 - requires_dist: - - numpy <2.0, >=1.20 - - furo ; extra == 'docs' - - sphinx >=7.2 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - bokeh ; extra == 'bokeh' - - selenium ; extra == 'bokeh' - - contourpy[bokeh,docs] ; extra == 'mypy' - - docutils-stubs ; extra == 'mypy' - - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' - - contourpy[test-no-images] ; extra == 'test' - - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' - - pytest ; extra == 'test-no-images' - - pytest-cov ; extra == 'test-no-images' - - pytest-xdist ; extra == 'test-no-images' - - wurlitzer ; extra == 'test-no-images' - requires_python: '>=3.9' -- kind: pypi - name: contourpy - version: 1.2.0 - url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - requires_dist: - - numpy <2.0, >=1.20 - - furo ; extra == 'docs' - - sphinx >=7.2 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - bokeh ; extra == 'bokeh' - - selenium ; extra == 'bokeh' - - contourpy[bokeh,docs] ; extra == 'mypy' - - docutils-stubs ; extra == 'mypy' - - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' + - types-pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' + - pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -875,7 +655,7 @@ packages: - kind: pypi name: cycler version: 0.12.1 - url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl sha256: 85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 requires_dist: - ipython ; extra == 'docs' @@ -889,13 +669,13 @@ packages: - kind: pypi name: decorator version: 5.1.1 - url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 requires_python: '>=3.5' - kind: pypi name: executing version: 2.0.1 - url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl sha256: eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc requires_dist: - asttokens >=2.1.0 ; extra == 'tests' @@ -909,11 +689,11 @@ packages: - kind: pypi name: flask version: 3.0.2 - url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl sha256: 3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e requires_dist: - - Werkzeug >=3.0.0 - - Jinja2 >=3.1.2 + - werkzeug >=3.0.0 + - jinja2 >=3.1.2 - itsdangerous >=2.1.2 - click >=8.1.3 - blinker >=1.6.2 @@ -924,87 +704,13 @@ packages: - kind: pypi name: flatbuffers version: 23.5.26 - url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 + url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl sha256: c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - kind: pypi name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - sha256: 18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - requires_dist: - - fs <3, >=2.2.0 ; extra == 'all' - - lxml >=4.0 ; extra == 'all' - - zopfli >=0.1.4 ; extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'all' - - pycairo ; extra == 'all' - - matplotlib ; extra == 'all' - - sympy ; extra == 'all' - - skia-pathops >=0.5.0 ; extra == 'all' - - uharfbuzz >=0.23.0 ; extra == 'all' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' - - xattr ; sys_platform == 'darwin' and extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'graphite' - - pycairo ; extra == 'interpolatable' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' - - lxml >=4.0 ; extra == 'lxml' - - skia-pathops >=0.5.0 ; extra == 'pathops' - - matplotlib ; extra == 'plot' - - uharfbuzz >=0.23.0 ; extra == 'repacker' - - sympy ; extra == 'symfont' - - xattr ; sys_platform == 'darwin' and extra == 'type1' - - fs <3, >=2.2.0 ; extra == 'ufo' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' - - zopfli >=0.1.4 ; extra == 'woff' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' - requires_python: '>=3.8' -- kind: pypi - name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - sha256: d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - requires_dist: - - fs <3, >=2.2.0 ; extra == 'all' - - lxml >=4.0 ; extra == 'all' - - zopfli >=0.1.4 ; extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'all' - - pycairo ; extra == 'all' - - matplotlib ; extra == 'all' - - sympy ; extra == 'all' - - skia-pathops >=0.5.0 ; extra == 'all' - - uharfbuzz >=0.23.0 ; extra == 'all' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' - - xattr ; sys_platform == 'darwin' and extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'graphite' - - pycairo ; extra == 'interpolatable' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' - - lxml >=4.0 ; extra == 'lxml' - - skia-pathops >=0.5.0 ; extra == 'pathops' - - matplotlib ; extra == 'plot' - - uharfbuzz >=0.23.0 ; extra == 'repacker' - - sympy ; extra == 'symfont' - - xattr ; sys_platform == 'darwin' and extra == 'type1' - - fs <3, >=2.2.0 ; extra == 'ufo' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' - - zopfli >=0.1.4 ; extra == 'woff' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' - requires_python: '>=3.8' -- kind: pypi - name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 - sha256: aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 + version: 4.49.0 + url: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + sha256: fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1040,14 +746,14 @@ packages: - kind: pypi name: gast version: 0.5.4 - url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl sha256: 6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' - kind: pypi name: google-auth - version: 2.27.0 - url: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - sha256: 8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + version: 2.28.0 + url: https://files.pythonhosted.org/packages/ff/ce/1b4dc8b5ecdc9a99202b093729192b69301c33064d0e312fb8d9e384dbe0/google_auth-2.28.0-py2.py3-none-any.whl + sha256: 7634d29dcd1e101f5226a23cbc4a0c6cda6394253bf80e281d9c5c6797869c53 requires_dist: - cachetools <6.0, >=2.0.0 - pyasn1-modules >=0.2.1 @@ -1064,7 +770,7 @@ packages: - kind: pypi name: google-auth-oauthlib version: 1.0.0 - url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl sha256: 95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb requires_dist: - google-auth >=2.15.0 @@ -1074,66 +780,26 @@ packages: - kind: pypi name: google-pasta version: 0.2.0 - url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl sha256: b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed requires_dist: - six - kind: pypi name: grpcio version: 1.60.1 - url: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - sha256: 4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - requires_dist: - - grpcio-tools >=1.60.1 ; extra == 'protobuf' - requires_python: '>=3.7' -- kind: pypi - name: grpcio - version: 1.60.1 - url: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c + url: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl sha256: 49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c requires_dist: - grpcio-tools >=1.60.1 ; extra == 'protobuf' requires_python: '>=3.7' -- kind: pypi - name: grpcio - version: 1.60.1 - url: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 - sha256: cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 - requires_dist: - - grpcio-tools >=1.60.1 ; extra == 'protobuf' - requires_python: '>=3.7' -- kind: pypi - name: h5py - version: 3.10.0 - url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd - sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd - requires_dist: - - numpy >=1.17.3 - requires_python: '>=3.8' - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' -- kind: pypi - name: h5py - version: 3.10.0 - url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - requires_dist: - - numpy >=1.17.3 - requires_python: '>=3.8' -- kind: pypi - name: h5py - version: 3.10.0 - url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - requires_dist: - - numpy >=1.17.3 - requires_python: '>=3.8' - kind: conda name: icu version: '73.2' @@ -1176,7 +842,7 @@ packages: - kind: pypi name: idna version: '3.6' - url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl sha256: c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f requires_python: '>=3.5' - kind: conda @@ -1195,7 +861,7 @@ packages: - kind: pypi name: ipython version: 8.21.0 - url: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 + url: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl sha256: 1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 requires_dist: - decorator @@ -1273,19 +939,19 @@ packages: - kind: pypi name: itsdangerous version: 2.1.2 - url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl sha256: 2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 requires_python: '>=3.7' - kind: pypi name: jedi version: 0.19.1 - url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl sha256: e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 requires_dist: - parso <0.9.0, >=0.8.3 - - Jinja2 ==2.11.3 ; extra == 'docs' - - MarkupSafe ==1.1.1 ; extra == 'docs' - - Pygments ==2.8.1 ; extra == 'docs' + - jinja2 ==2.11.3 ; extra == 'docs' + - markupsafe ==1.1.1 ; extra == 'docs' + - pygments ==2.8.1 ; extra == 'docs' - alabaster ==0.7.12 ; extra == 'docs' - babel ==2.9.1 ; extra == 'docs' - chardet ==4.0.0 ; extra == 'docs' @@ -1311,7 +977,7 @@ packages: - flake8 ==5.0.4 ; extra == 'qa' - mypy ==0.971 ; extra == 'qa' - types-setuptools ==67.2.0.1 ; extra == 'qa' - - Django ; extra == 'testing' + - django ; extra == 'testing' - attrs ; extra == 'testing' - colorama ; extra == 'testing' - docopt ; extra == 'testing' @@ -1320,50 +986,26 @@ packages: - kind: pypi name: jinja2 version: 3.1.3 - url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl sha256: 7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa requires_dist: - - MarkupSafe >=2.0 - - Babel >=2.7 ; extra == 'i18n' + - markupsafe >=2.0 + - babel >=2.7 ; extra == 'i18n' requires_python: '>=3.7' - kind: pypi name: keras version: 2.14.0 - url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl sha256: d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd requires_python: '>=3.9' - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 + url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e - sha256: 040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -1537,6 +1179,11 @@ packages: license_family: BSD size: 5017024 timestamp: 1705980469944 +- kind: pypi + name: libclang + version: 16.0.6 + url: https://files.pythonhosted.org/packages/02/8c/dc970bc00867fe290e8c8a7befa1635af716a9ebdfe3fb9dce0ca4b522ce/libclang-16.0.6-py2.py3-none-win_amd64.whl + sha256: daab4a11dae228f1efa9efa3fe638b493b14d8d52c71fb3c7019e2f1df4514c2 - kind: conda name: libclang version: 16.0.6 @@ -2485,7 +2132,7 @@ packages: - kind: pypi name: markdown version: 3.5.2 - url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl sha256: d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd requires_dist: - importlib-metadata >=4.4 ; python_version < '3.10' @@ -2502,77 +2149,14 @@ packages: - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - requires_python: '>=3.7' -- kind: pypi - name: markupsafe - version: 2.1.5 - url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 + url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 requires_python: '>=3.7' -- kind: pypi - name: markupsafe - version: 2.1.5 - url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 - sha256: b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 - requires_python: '>=3.7' - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e - sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e - requires_dist: - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - kiwisolver >=1.3.1 - - numpy <2, >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python-dateutil >=2.7 - - importlib-resources >=3.2.0 ; python_version < '3.10' - requires_python: '>=3.9' -- kind: pypi - name: matplotlib - version: 3.8.3 - url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - requires_dist: - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - kiwisolver >=1.3.1 - - numpy <2, >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python-dateutil >=2.7 - - importlib-resources >=3.2.0 ; python_version < '3.10' - requires_python: '>=3.9' -- kind: pypi - name: matplotlib - version: 3.8.3 - url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - requires_dist: - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - kiwisolver >=1.3.1 - - numpy <2, >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python-dateutil >=2.7 - - importlib-resources >=3.2.0 ; python_version < '3.10' - requires_python: '>=3.9' -- kind: pypi - name: matplotlib - version: 3.8.3 - url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 - sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2588,7 +2172,7 @@ packages: - kind: pypi name: matplotlib-inline version: 0.1.6 - url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl sha256: f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 requires_dist: - traitlets @@ -2612,22 +2196,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - requires_dist: - - numpy >1.20 - - numpy >=1.23.3 ; python_version > '3.10' - - numpy >=1.21.2 ; python_version > '3.9' - - absl-py ; extra == 'dev' - - pytest ; extra == 'dev' - - pytest-xdist ; extra == 'dev' - - pylint >=2.6.0 ; extra == 'dev' - - pyink ; extra == 'dev' - requires_python: '>=3.7' -- kind: pypi - name: ml-dtypes - version: 0.2.0 - url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa + url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl sha256: 832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa requires_dist: - numpy >1.20 @@ -2639,25 +2208,10 @@ packages: - pylint >=2.6.0 ; extra == 'dev' - pyink ; extra == 'dev' requires_python: '>=3.7' -- kind: pypi - name: ml-dtypes - version: 0.2.0 - url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca - sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca - requires_dist: - - numpy >1.20 - - numpy >=1.23.3 ; python_version > '3.10' - - numpy >=1.21.2 ; python_version > '3.9' - - absl-py ; extra == 'dev' - - pytest ; extra == 'dev' - - pytest-xdist ; extra == 'dev' - - pylint >=2.6.0 ; extra == 'dev' - - pyink ; extra == 'dev' - requires_python: '>=3.7' - kind: pypi name: mypy-extensions version: 1.0.0 - url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl sha256: 4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d requires_python: '>=3.5' - kind: conda @@ -2702,6 +2256,12 @@ packages: license: X11 AND BSD-3-Clause size: 822031 timestamp: 1698751567986 +- kind: pypi + name: numpy + version: 1.26.4 + url: https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl + sha256: cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 + requires_python: '>=3.9' - kind: conda name: numpy version: 1.26.4 @@ -2801,7 +2361,7 @@ packages: - kind: pypi name: oauthlib version: 3.2.2 - url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl sha256: 8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca requires_dist: - cryptography >=3.0.0 ; extra == 'rsa' @@ -2880,7 +2440,7 @@ packages: - kind: pypi name: opt-einsum version: 3.3.0 - url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl sha256: 2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 requires_dist: - numpy >=1.7 @@ -2895,104 +2455,13 @@ packages: - kind: pypi name: packaging version: '23.2' - url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl sha256: 8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 requires_python: '>=3.7' - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b - sha256: 8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b - requires_dist: - - numpy <2, >=1.22.4 ; python_version < '3.11' - - numpy <2, >=1.23.2 ; python_version == '3.11' - - numpy <2, >=1.26.0 ; python_version >= '3.12' - - python-dateutil >=2.8.2 - - pytz >=2020.1 - - tzdata >=2022.7 - - hypothesis >=6.46.1 ; extra == 'test' - - pytest >=7.3.2 ; extra == 'test' - - pytest-xdist >=2.2.0 ; extra == 'test' - - bottleneck >=1.3.6 ; extra == 'performance' - - numba >=0.56.4 ; extra == 'performance' - - numexpr >=2.8.4 ; extra == 'performance' - - scipy >=1.10.0 ; extra == 'computation' - - xarray >=2022.12.0 ; extra == 'computation' - - fsspec >=2022.11.0 ; extra == 'fss' - - s3fs >=2022.11.0 ; extra == 'aws' - - gcsfs >=2022.11.0 ; extra == 'gcp' - - pandas-gbq >=0.19.0 ; extra == 'gcp' - - odfpy >=1.4.1 ; extra == 'excel' - - openpyxl >=3.1.0 ; extra == 'excel' - - python-calamine >=0.1.7 ; extra == 'excel' - - pyxlsb >=1.0.10 ; extra == 'excel' - - xlrd >=2.0.1 ; extra == 'excel' - - xlsxwriter >=3.0.5 ; extra == 'excel' - - pyarrow >=10.0.1 ; extra == 'parquet' - - pyarrow >=10.0.1 ; extra == 'feather' - - tables >=3.8.0 ; extra == 'hdf5' - - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - - psycopg2 >=2.9.6 ; extra == 'postgresql' - - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' - - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - - beautifulsoup4 >=4.11.2 ; extra == 'html' - - html5lib >=1.1 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'xml' - - matplotlib >=3.6.3 ; extra == 'plot' - - jinja2 >=3.1.2 ; extra == 'output-formatting' - - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' - - qtpy >=2.3.0 ; extra == 'clipboard' - - zstandard >=0.19.0 ; extra == 'compression' - - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' - - adbc-driver-postgresql >=0.8.0 ; extra == 'all' - - adbc-driver-sqlite >=0.8.0 ; extra == 'all' - - beautifulsoup4 >=4.11.2 ; extra == 'all' - - bottleneck >=1.3.6 ; extra == 'all' - - dataframe-api-compat >=0.1.7 ; extra == 'all' - - fastparquet >=2022.12.0 ; extra == 'all' - - fsspec >=2022.11.0 ; extra == 'all' - - gcsfs >=2022.11.0 ; extra == 'all' - - html5lib >=1.1 ; extra == 'all' - - hypothesis >=6.46.1 ; extra == 'all' - - jinja2 >=3.1.2 ; extra == 'all' - - lxml >=4.9.2 ; extra == 'all' - - matplotlib >=3.6.3 ; extra == 'all' - - numba >=0.56.4 ; extra == 'all' - - numexpr >=2.8.4 ; extra == 'all' - - odfpy >=1.4.1 ; extra == 'all' - - openpyxl >=3.1.0 ; extra == 'all' - - pandas-gbq >=0.19.0 ; extra == 'all' - - psycopg2 >=2.9.6 ; extra == 'all' - - pyarrow >=10.0.1 ; extra == 'all' - - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' - - pyreadstat >=1.2.0 ; extra == 'all' - - pytest >=7.3.2 ; extra == 'all' - - pytest-xdist >=2.2.0 ; extra == 'all' - - python-calamine >=0.1.7 ; extra == 'all' - - pyxlsb >=1.0.10 ; extra == 'all' - - qtpy >=2.3.0 ; extra == 'all' - - scipy >=1.10.0 ; extra == 'all' - - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' - - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: pandas - version: 2.2.0 - url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 + url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl sha256: fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' @@ -3023,194 +2492,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - - psycopg2 >=2.9.6 ; extra == 'postgresql' - - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' - - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - - beautifulsoup4 >=4.11.2 ; extra == 'html' - - html5lib >=1.1 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'xml' - - matplotlib >=3.6.3 ; extra == 'plot' - - jinja2 >=3.1.2 ; extra == 'output-formatting' - - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' - - qtpy >=2.3.0 ; extra == 'clipboard' - - zstandard >=0.19.0 ; extra == 'compression' - - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' - - adbc-driver-postgresql >=0.8.0 ; extra == 'all' - - adbc-driver-sqlite >=0.8.0 ; extra == 'all' - - beautifulsoup4 >=4.11.2 ; extra == 'all' - - bottleneck >=1.3.6 ; extra == 'all' - - dataframe-api-compat >=0.1.7 ; extra == 'all' - - fastparquet >=2022.12.0 ; extra == 'all' - - fsspec >=2022.11.0 ; extra == 'all' - - gcsfs >=2022.11.0 ; extra == 'all' - - html5lib >=1.1 ; extra == 'all' - - hypothesis >=6.46.1 ; extra == 'all' - - jinja2 >=3.1.2 ; extra == 'all' - - lxml >=4.9.2 ; extra == 'all' - - matplotlib >=3.6.3 ; extra == 'all' - - numba >=0.56.4 ; extra == 'all' - - numexpr >=2.8.4 ; extra == 'all' - - odfpy >=1.4.1 ; extra == 'all' - - openpyxl >=3.1.0 ; extra == 'all' - - pandas-gbq >=0.19.0 ; extra == 'all' - - psycopg2 >=2.9.6 ; extra == 'all' - - pyarrow >=10.0.1 ; extra == 'all' - - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' - - pyreadstat >=1.2.0 ; extra == 'all' - - pytest >=7.3.2 ; extra == 'all' - - pytest-xdist >=2.2.0 ; extra == 'all' - - python-calamine >=0.1.7 ; extra == 'all' - - pyxlsb >=1.0.10 ; extra == 'all' - - qtpy >=2.3.0 ; extra == 'all' - - scipy >=1.10.0 ; extra == 'all' - - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' - - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: pandas - version: 2.2.0 - url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - requires_dist: - - numpy <2, >=1.22.4 ; python_version < '3.11' - - numpy <2, >=1.23.2 ; python_version == '3.11' - - numpy <2, >=1.26.0 ; python_version >= '3.12' - - python-dateutil >=2.8.2 - - pytz >=2020.1 - - tzdata >=2022.7 - - hypothesis >=6.46.1 ; extra == 'test' - - pytest >=7.3.2 ; extra == 'test' - - pytest-xdist >=2.2.0 ; extra == 'test' - - bottleneck >=1.3.6 ; extra == 'performance' - - numba >=0.56.4 ; extra == 'performance' - - numexpr >=2.8.4 ; extra == 'performance' - - scipy >=1.10.0 ; extra == 'computation' - - xarray >=2022.12.0 ; extra == 'computation' - - fsspec >=2022.11.0 ; extra == 'fss' - - s3fs >=2022.11.0 ; extra == 'aws' - - gcsfs >=2022.11.0 ; extra == 'gcp' - - pandas-gbq >=0.19.0 ; extra == 'gcp' - - odfpy >=1.4.1 ; extra == 'excel' - - openpyxl >=3.1.0 ; extra == 'excel' - - python-calamine >=0.1.7 ; extra == 'excel' - - pyxlsb >=1.0.10 ; extra == 'excel' - - xlrd >=2.0.1 ; extra == 'excel' - - xlsxwriter >=3.0.5 ; extra == 'excel' - - pyarrow >=10.0.1 ; extra == 'parquet' - - pyarrow >=10.0.1 ; extra == 'feather' - - tables >=3.8.0 ; extra == 'hdf5' - - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - - psycopg2 >=2.9.6 ; extra == 'postgresql' - - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' - - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - - beautifulsoup4 >=4.11.2 ; extra == 'html' - - html5lib >=1.1 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'xml' - - matplotlib >=3.6.3 ; extra == 'plot' - - jinja2 >=3.1.2 ; extra == 'output-formatting' - - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' - - qtpy >=2.3.0 ; extra == 'clipboard' - - zstandard >=0.19.0 ; extra == 'compression' - - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' - - adbc-driver-postgresql >=0.8.0 ; extra == 'all' - - adbc-driver-sqlite >=0.8.0 ; extra == 'all' - - beautifulsoup4 >=4.11.2 ; extra == 'all' - - bottleneck >=1.3.6 ; extra == 'all' - - dataframe-api-compat >=0.1.7 ; extra == 'all' - - fastparquet >=2022.12.0 ; extra == 'all' - - fsspec >=2022.11.0 ; extra == 'all' - - gcsfs >=2022.11.0 ; extra == 'all' - - html5lib >=1.1 ; extra == 'all' - - hypothesis >=6.46.1 ; extra == 'all' - - jinja2 >=3.1.2 ; extra == 'all' - - lxml >=4.9.2 ; extra == 'all' - - matplotlib >=3.6.3 ; extra == 'all' - - numba >=0.56.4 ; extra == 'all' - - numexpr >=2.8.4 ; extra == 'all' - - odfpy >=1.4.1 ; extra == 'all' - - openpyxl >=3.1.0 ; extra == 'all' - - pandas-gbq >=0.19.0 ; extra == 'all' - - psycopg2 >=2.9.6 ; extra == 'all' - - pyarrow >=10.0.1 ; extra == 'all' - - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' - - pyreadstat >=1.2.0 ; extra == 'all' - - pytest >=7.3.2 ; extra == 'all' - - pytest-xdist >=2.2.0 ; extra == 'all' - - python-calamine >=0.1.7 ; extra == 'all' - - pyxlsb >=1.0.10 ; extra == 'all' - - qtpy >=2.3.0 ; extra == 'all' - - scipy >=1.10.0 ; extra == 'all' - - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' - - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: pandas - version: 2.2.0 - url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - sha256: a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - requires_dist: - - numpy <2, >=1.22.4 ; python_version < '3.11' - - numpy <2, >=1.23.2 ; python_version == '3.11' - - numpy <2, >=1.26.0 ; python_version >= '3.12' - - python-dateutil >=2.8.2 - - pytz >=2020.1 - - tzdata >=2022.7 - - hypothesis >=6.46.1 ; extra == 'test' - - pytest >=7.3.2 ; extra == 'test' - - pytest-xdist >=2.2.0 ; extra == 'test' - - bottleneck >=1.3.6 ; extra == 'performance' - - numba >=0.56.4 ; extra == 'performance' - - numexpr >=2.8.4 ; extra == 'performance' - - scipy >=1.10.0 ; extra == 'computation' - - xarray >=2022.12.0 ; extra == 'computation' - - fsspec >=2022.11.0 ; extra == 'fss' - - s3fs >=2022.11.0 ; extra == 'aws' - - gcsfs >=2022.11.0 ; extra == 'gcp' - - pandas-gbq >=0.19.0 ; extra == 'gcp' - - odfpy >=1.4.1 ; extra == 'excel' - - openpyxl >=3.1.0 ; extra == 'excel' - - python-calamine >=0.1.7 ; extra == 'excel' - - pyxlsb >=1.0.10 ; extra == 'excel' - - xlrd >=2.0.1 ; extra == 'excel' - - xlsxwriter >=3.0.5 ; extra == 'excel' - - pyarrow >=10.0.1 ; extra == 'parquet' - - pyarrow >=10.0.1 ; extra == 'feather' - - tables >=3.8.0 ; extra == 'hdf5' - - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3220,7 +2507,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' + - pyqt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3245,7 +2532,7 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' @@ -3254,127 +2541,43 @@ packages: - qtpy >=2.3.0 ; extra == 'all' - scipy >=1.10.0 ; extra == 'all' - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: parso - version: 0.8.3 - url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - sha256: c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - requires_dist: - - flake8 ==3.8.3 ; extra == 'qa' - - mypy ==0.782 ; extra == 'qa' - - docopt ; extra == 'testing' - - pytest <6.0.0 ; extra == 'testing' - requires_python: '>=3.6' -- kind: pypi - name: pathspec - version: 0.12.1 - url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - sha256: a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - requires_python: '>=3.8' -- kind: pypi - name: pexpect - version: 4.9.0 - url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - requires_dist: - - ptyprocess >=0.5 -- kind: pypi - name: pillow - version: 10.2.0 - url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 - sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 - requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx >=2.4 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinx-removed-in ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - check-manifest ; extra == 'tests' - - coverage ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - pyroma ; extra == 'tests' - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - typing-extensions ; python_version < '3.10' and extra == 'typing' - - defusedxml ; extra == 'xmp' - requires_python: '>=3.8' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' - kind: pypi - name: pillow - version: 10.2.0 - url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 - sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + name: parso + version: 0.8.3 + url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + sha256: c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx >=2.4 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinx-removed-in ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - check-manifest ; extra == 'tests' - - coverage ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - pyroma ; extra == 'tests' - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - typing-extensions ; python_version < '3.10' and extra == 'typing' - - defusedxml ; extra == 'xmp' + - flake8 ==3.8.3 ; extra == 'qa' + - mypy ==0.782 ; extra == 'qa' + - docopt ; extra == 'testing' + - pytest <6.0.0 ; extra == 'testing' + requires_python: '>=3.6' +- kind: pypi + name: pathspec + version: 0.12.1 + url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + sha256: a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 requires_python: '>=3.8' - kind: pypi - name: pillow - version: 10.2.0 - url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e - sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + name: pexpect + version: 4.9.0 + url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx >=2.4 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinx-removed-in ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - check-manifest ; extra == 'tests' - - coverage ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - pyroma ; extra == 'tests' - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - typing-extensions ; python_version < '3.10' and extra == 'typing' - - defusedxml ; extra == 'xmp' - requires_python: '>=3.8' + - ptyprocess >=0.5 - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 - sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3401,7 +2604,7 @@ packages: - kind: pypi name: platformdirs version: 4.2.0 - url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl sha256: 0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 requires_dist: - furo >=2023.9.10 ; extra == 'docs' @@ -3416,52 +2619,39 @@ packages: requires_python: '>=3.8' - kind: pypi name: plot-antenna - version: '1.7' - url: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - sha256: ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + version: '1.8' + url: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + sha256: f12c4cb90dea3fa0e41e904e4595959d727d933aa3292fbc89d1f9b15249bf48 requires_dist: - matplotlib - numpy - pandas - plotly - - pysmithplot @ git+https://github.com/schlatterbeck/pySmithPlot.git - pytest ; extra == 'test' - kaleido ; extra == 'test' requires_python: '>=3.7' - kind: pypi name: plotly - version: 5.18.0 - url: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - sha256: 23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + version: 5.19.0 + url: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + sha256: 906abcc5f15945765328c5d47edaa884bc99f5985fbc61e8cd4dc361f4ff8f5a requires_dist: - tenacity >=6.2.0 - packaging - requires_python: '>=3.6' + requires_python: '>=3.8' - kind: pypi name: prompt-toolkit version: 3.0.43 - url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl sha256: a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 requires_dist: - wcwidth requires_python: '>=3.7.0' - kind: pypi name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - sha256: 2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - requires_python: '>=3.8' -- kind: pypi - name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - sha256: 8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - requires_python: '>=3.8' -- kind: pypi - name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 - sha256: fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 + version: 4.25.3 + url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 requires_python: '>=3.8' - kind: conda name: pthreads-win32 @@ -3480,25 +2670,25 @@ packages: - kind: pypi name: ptyprocess version: 0.7.0 - url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 + url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl sha256: 4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - kind: pypi name: pure-eval version: 0.2.2 - url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl sha256: 01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 requires_dist: - pytest ; extra == 'tests' - kind: pypi name: pyasn1 version: 0.5.1 - url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl sha256: 4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7' - kind: pypi name: pyasn1-modules version: 0.3.0 - url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl sha256: d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d requires_dist: - pyasn1 <0.6.0, >=0.4.6 @@ -3506,21 +2696,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - requires_dist: - - numpy - - pysdl2 - - pysdl2-dll - - pyopengl ; extra == 'all' - - markdown ; extra == 'all' - - pdoc3 ; extra == 'all' - - gym ; extra == 'all' - requires_python: '>=3.8' -- kind: pypi - name: pyboy - version: 1.6.6 - url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c + url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl sha256: bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c requires_dist: - numpy @@ -3531,29 +2707,15 @@ packages: - pdoc3 ; extra == 'all' - gym ; extra == 'all' requires_python: '>=3.8' -- kind: pypi - name: pyboy - version: 1.6.6 - url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 - sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 - requires_dist: - - numpy - - pysdl2 - - pysdl2-dll - - pyopengl ; extra == 'all' - - markdown ; extra == 'all' - - pdoc3 ; extra == 'all' - - gym ; extra == 'all' - requires_python: '>=3.8' - kind: pypi name: pycosat version: 0.6.6 - url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff + url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz sha256: a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - kind: pypi name: pygments version: 2.17.2 - url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl sha256: b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c requires_dist: - importlib-metadata ; python_version < '3.8' and extra == 'plugins' @@ -3562,12 +2724,12 @@ packages: - kind: pypi name: pyliblzfse version: 0.4.1 - url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d + url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz sha256: bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - kind: pypi name: pyparsing version: 3.1.1 - url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl sha256: 32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb requires_dist: - railroad-diagrams ; extra == 'diagrams' @@ -3576,48 +2738,28 @@ packages: - kind: pypi name: pysdl2 version: 0.9.16 - url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 + url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz sha256: 1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 -- kind: pypi - name: pysdl2-dll - version: 2.30.0 - url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 + url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 -- kind: pypi - name: pysdl2-dll - version: 2.30.0 - url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e - sha256: d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e -- kind: pypi - name: pysmithplot - version: 0.2.0 - url: git+https://github.com/schlatterbeck/pySmithPlot.git - sha256: 0da5fe6b19902c9f296544e2bfaab9d1e0d142d3bf576771d53d10f54830c12b - requires_dist: - - matplotlib >=1.2.0 - - numpy - - scipy - kind: conda name: python - version: 3.11.7 - build: h2628c8c_1_cpython - build_number: 1 + version: 3.11.8 + build: h2628c8c_0_cpython subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.7-h2628c8c_1_cpython.conda - sha256: 668e9fd58e627c823e6e9d791e1fb8b372c76b5704a0c3b0cc94b3a34f5be582 - md5: c2f9a938fca6aa621b44afc8f5db79ab + url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.8-h2628c8c_0_cpython.conda + sha256: 8b2db64acfd351f4281d75465b09109f4b51096d5e58128cb7a4c1d2ade47203 + md5: 5af649cf283ec4c1ffff5c4fe0cec12b depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.5.0,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - ucrt >=10.0.20348.0 @@ -3627,25 +2769,24 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 18191531 - timestamp: 1703342117253 + size: 18096526 + timestamp: 1708116524168 - kind: conda name: python - version: 3.11.7 - build: h9f0c242_1_cpython - build_number: 1 + version: 3.11.8 + build: h9f0c242_0_cpython subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.7-h9f0c242_1_cpython.conda - sha256: d234064dffa64715cf0a3f6c6a3665ead193f5a898614691b08d9c5afcdf11cc - md5: 686f211dcfbb8d27c6fe1ca905870189 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.8-h9f0c242_0_cpython.conda + sha256: 645dad20b46041ecd6a85eccbb3291fa1ad7921eea065c0081efff78c3d7e27a + md5: 22bda10a0f425564a538aed9a0e8a9df depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.5.0,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libzlib >=1.2.13,<1.3.0a0 - ncurses >=6.4,<7.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -3653,17 +2794,16 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 15452269 - timestamp: 1703343492323 + size: 14067894 + timestamp: 1708117836907 - kind: conda name: python - version: 3.11.7 - build: hab00c5b_1_cpython - build_number: 1 + version: 3.11.8 + build: hab00c5b_0_cpython subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.7-hab00c5b_1_cpython.conda - sha256: 8266801d3f21ae3018b997dcd05503b034016a3335aa3ab5b8c3f482af1e6580 - md5: 27cf681282c11dba7b0b1fd266e8f289 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda + sha256: f33559d7127b6a892854bc3b2b4be1406c3be9537d658cb13edae57c8c0b5a11 + md5: 2fdc314ee058eda0114738a9309d3683 depends: - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 @@ -3671,12 +2811,12 @@ packages: - libffi >=3.4,<4.0a0 - libgcc-ng >=12 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libuuid >=2.38.1,<3.0a0 - libxcrypt >=4.4.36 - libzlib >=1.2.13,<1.3.0a0 - ncurses >=6.4,<7.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -3684,25 +2824,24 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 30830615 - timestamp: 1703344491543 + size: 30754113 + timestamp: 1708118457486 - kind: conda name: python - version: 3.11.7 - build: hdf0ec26_1_cpython - build_number: 1 + version: 3.11.8 + build: hdf0ec26_0_cpython subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.7-hdf0ec26_1_cpython.conda - sha256: 92ac26592b53ddb646237c0dd83fd073d2f181dd1553e7ac8428b4475ff5560b - md5: f0f1fcde592e067a5ca2187d6f232bd3 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda + sha256: 6c9bbac137759e013e6a50593c7cf10a06032fcb1ef3a994c598c7a95e73a8e1 + md5: 8f4076d960f17f19ae8b2f66727ea1c6 depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.5.0,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libzlib >=1.2.13,<1.3.0a0 - ncurses >=6.4,<7.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -3710,16 +2849,8 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 14567667 - timestamp: 1703342625860 -- kind: pypi - name: python-dateutil - version: 2.8.2 - url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - requires_dist: - - six >=1.5 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' + size: 14623079 + timestamp: 1708116925163 - kind: conda name: python_abi version: '3.11' @@ -3780,10 +2911,18 @@ packages: license_family: BSD size: 6755 timestamp: 1695147711935 +- kind: pypi + name: python-dateutil + version: 2.8.2 + url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + requires_dist: + - six >=1.5 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' - kind: pypi name: pytz version: '2024.1' - url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 + url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl sha256: 328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - kind: conda name: readline @@ -3834,20 +2973,20 @@ packages: - kind: pypi name: requests version: 2.31.0 - url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f requires_dist: - charset-normalizer <4, >=2 - idna <4, >=2.5 - urllib3 <3, >=1.21.1 - certifi >=2017.4.17 - - PySocks !=1.5.7, >=1.5.6 ; extra == 'socks' + - pysocks !=1.5.7, >=1.5.6 ; extra == 'socks' - chardet <6, >=3.0.2 ; extra == 'use_chardet_on_py3' requires_python: '>=3.7' - kind: pypi name: requests-oauthlib version: 1.3.1 - url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl sha256: 2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 requires_dist: - oauthlib >=3.0.0 @@ -3857,7 +2996,7 @@ packages: - kind: pypi name: rsa version: '4.9' - url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl sha256: 90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 requires_dist: - pyasn1 >=0.1.3 @@ -3971,16 +3110,16 @@ packages: - kind: pypi name: setuptools version: 69.1.0 - url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl sha256: c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 requires_dist: - sphinx >=3.5 ; extra == 'docs' - sphinx <7.2.5 ; extra == 'docs' - - jaraco.packaging >=9.3 ; extra == 'docs' - - rst.linker >=1.9 ; extra == 'docs' + - jaraco-packaging >=9.3 ; extra == 'docs' + - rst-linker >=1.9 ; extra == 'docs' - furo ; extra == 'docs' - sphinx-lint ; extra == 'docs' - - jaraco.tidelift >=1.4 ; extra == 'docs' + - jaraco-tidelift >=1.4 ; extra == 'docs' - pygments-github-lexers ==0.0.5 ; extra == 'docs' - sphinx-favicon ; extra == 'docs' - sphinx-inline-tabs ; extra == 'docs' @@ -3994,9 +3133,9 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing' - wheel ; extra == 'testing' - pip >=19.1 ; extra == 'testing' - - jaraco.envs >=2.2 ; extra == 'testing' + - jaraco-envs >=2.2 ; extra == 'testing' - pytest-xdist ; extra == 'testing' - - jaraco.path >=3.2.0 ; extra == 'testing' + - jaraco-path >=3.2.0 ; extra == 'testing' - build[virtualenv] ; extra == 'testing' - filelock >=3.4.0 ; extra == 'testing' - ini2toml[lite] >=0.9 ; extra == 'testing' @@ -4009,27 +3148,27 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing-integration' - tomli ; extra == 'testing-integration' - wheel ; extra == 'testing-integration' - - jaraco.path >=3.2.0 ; extra == 'testing-integration' - - jaraco.envs >=2.2 ; extra == 'testing-integration' + - jaraco-path >=3.2.0 ; extra == 'testing-integration' + - jaraco-envs >=2.2 ; extra == 'testing-integration' - build[virtualenv] >=1.0.3 ; extra == 'testing-integration' - filelock >=3.4.0 ; extra == 'testing-integration' - packaging >=23.1 ; extra == 'testing-integration' - pytest-cov ; platform_python_implementation != 'PyPy' and extra == 'testing' - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' - - jaraco.develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' + - jaraco-develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' - pytest-ruff >=0.2.1 ; sys_platform != 'cygwin' and extra == 'testing' - pytest-perf ; sys_platform != 'cygwin' and extra == 'testing' requires_python: '>=3.8' - kind: pypi name: six version: 1.16.0 - url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl sha256: 8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' - kind: pypi name: stack-data version: 0.6.3 - url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl sha256: d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 requires_dist: - executing >=1.2.0 @@ -4061,7 +3200,7 @@ packages: - kind: pypi name: tenacity version: 8.2.3 - url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl sha256: ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c requires_dist: - reno ; extra == 'doc' @@ -4071,7 +3210,7 @@ packages: - kind: pypi name: tensorboard version: 2.14.1 - url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl sha256: 3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 requires_dist: - absl-py >=0.4 @@ -4090,34 +3229,13 @@ packages: - kind: pypi name: tensorboard-data-server version: 0.7.2 - url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb requires_python: '>=3.7' - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - requires_dist: - - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 + url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 requires_dist: - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' @@ -4135,98 +3253,16 @@ packages: - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - tensorrt ==8.5.3.1 ; extra == 'and-cuda' requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - requires_dist: - - absl-py >=1.0.0 - - astunparse >=1.6.0 - - flatbuffers >=23.5.26 - - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 - - google-pasta >=0.1.1 - - h5py >=2.9.0 - - libclang >=13.0.0 - - ml-dtypes ==0.2.0 - - numpy >=1.23.5 - - opt-einsum >=2.3.2 - - packaging - - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 - - setuptools - - six >=1.12.0 - - termcolor >=1.1.0 - - typing-extensions >=3.6.6 - - wrapt <1.15, >=1.11.0 - - tensorflow-io-gcs-filesystem >=0.23.1 - - grpcio <2.0, >=1.24.3 - - tensorboard <2.15, >=2.14 - - tensorflow-estimator <2.15, >=2.14.0 - - keras <2.15, >=2.14.0 - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - requires_dist: - - absl-py >=1.0.0 - - astunparse >=1.6.0 - - flatbuffers >=23.5.26 - - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 - - google-pasta >=0.1.1 - - h5py >=2.9.0 - - libclang >=13.0.0 - - ml-dtypes ==0.2.0 - - numpy >=1.23.5 - - opt-einsum >=2.3.2 - - packaging - - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 - - setuptools - - six >=1.12.0 - - termcolor >=1.1.0 - - typing-extensions >=3.6.6 - - wrapt <1.15, >=1.11.0 - - tensorflow-io-gcs-filesystem >=0.23.1 - - grpcio <2.0, >=1.24.3 - - tensorboard <2.15, >=2.14 - - tensorflow-estimator <2.15, >=2.14.0 - - keras <2.15, >=2.14.0 - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' - kind: pypi name: tensorflow-estimator version: 2.14.0 - url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl sha256: 820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 requires_python: '>=3.7' - kind: pypi name: tensorflow-intel version: 2.14.0 - url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae + url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl sha256: 51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae requires_dist: - absl-py >=1.0.0 @@ -4266,7 +3302,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.31.0 - url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 + url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl sha256: 4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 requires_dist: - tensorflow <2.12.0, >=2.11.0 ; extra == 'tensorflow' @@ -4275,46 +3311,10 @@ packages: - tensorflow-gpu <2.12.0, >=2.11.0 ; extra == 'tensorflow-gpu' - tensorflow-rocm <2.12.0, >=2.11.0 ; extra == 'tensorflow-rocm' requires_python: '>=3.7,<3.12' -- kind: pypi - name: tensorflow-io-gcs-filesystem - version: 0.36.0 - url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 - sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 - requires_dist: - - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' - - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' - - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' - - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' - requires_python: '>=3.7,<3.12' -- kind: pypi - name: tensorflow-io-gcs-filesystem - version: 0.36.0 - url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - requires_dist: - - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' - - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' - - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' - - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' - requires_python: '>=3.7,<3.12' -- kind: pypi - name: tensorflow-io-gcs-filesystem - version: 0.36.0 - url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - requires_dist: - - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' - - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' - - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' - - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' - requires_python: '>=3.7,<3.12' - kind: pypi name: tensorflow-macos version: 2.14.0 - url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 + url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl sha256: 064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 requires_dist: - absl-py >=1.0.0 @@ -4354,7 +3354,7 @@ packages: - kind: pypi name: termcolor version: 2.4.0 - url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl sha256: 9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 requires_dist: - pytest ; extra == 'tests' @@ -4426,13 +3426,13 @@ packages: - kind: pypi name: tokenize-rt version: 5.2.0 - url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl sha256: b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 requires_python: '>=3.8' - kind: pypi name: traitlets version: 5.14.1 - url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl sha256: 2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 requires_dist: - myst-parser ; extra == 'docs' @@ -4448,9 +3448,15 @@ packages: - kind: pypi name: typing-extensions version: 4.9.0 - url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl sha256: af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd requires_python: '>=3.8' +- kind: pypi + name: tzdata + version: '2024.1' + url: https://files.pythonhosted.org/packages/65/58/f9c9e6be752e9fcb8b6a0ee9fb87e6e7a1f6bcab2cdc73f02bb7ba91ada0/tzdata-2024.1-py2.py3-none-any.whl + sha256: 9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 + requires_python: '>=2' - kind: conda name: tzdata version: 2024a @@ -4479,9 +3485,9 @@ packages: timestamp: 1666630199266 - kind: pypi name: urllib3 - version: 2.2.0 - url: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - sha256: ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + version: 2.2.1 + url: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + sha256: 450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d requires_dist: - brotli >=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli' - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli' @@ -4541,23 +3547,23 @@ packages: - kind: pypi name: wcwidth version: 0.2.13 - url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl sha256: 3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 requires_dist: - - backports.functools-lru-cache >=1.2.1 ; python_version < '3.2' + - backports-functools-lru-cache >=1.2.1 ; python_version < '3.2' - kind: pypi name: werkzeug version: 3.0.1 - url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl sha256: 90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 requires_dist: - - MarkupSafe >=2.1.1 + - markupsafe >=2.1.1 - watchdog >=2.3 ; extra == 'watchdog' requires_python: '>=3.8' - kind: pypi name: wheel version: 0.42.0 - url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl sha256: 177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d requires_dist: - pytest >=6.0.0 ; extra == 'test' @@ -4566,27 +3572,9 @@ packages: - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 - sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 + url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: conda name: xz version: 5.2.6 diff --git a/src/environment.rs b/src/environment.rs index bfa0310ff..1393d6904 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -192,10 +192,8 @@ pub async fn update_prefix_pypi( |_| { install_pypi::update_python_distributions( prefix, - environment_name, conda_records, pypi_records, - platform, status, system_requirements, uv_context, diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 6083ef2f7..673e10c9f 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -1,17 +1,20 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; +use std::io; use crate::EnvironmentName; +use distribution_filename::DistFilename; use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; +use uv_cache::Cache; use crate::consts::PROJECT_MANIFEST; use crate::lock_file::UvResolutionContext; use crate::project::manifest::SystemRequirements; use crate::pypi_marker_env::determine_marker_environment; use crate::pypi_tags::{get_pypi_tags, is_python_record}; -use distribution_types::{Name}; +use distribution_types::{CachedDist, Dist, IndexLocations, IndexUrl, InstalledDist, Name}; use install_wheel_rs::linker::LinkMode; use pep440_rs::VersionSpecifiers; use pep508_rs::{Requirement, VersionOrUrl}; @@ -24,8 +27,10 @@ use std::time::Duration; use uv_client::{FlatIndex, FlatIndexClient}; use uv_dispatch::BuildDispatch; +use uv_distribution::RegistryWheelIndex; use uv_installer::{Downloader, Plan, Planner, Reinstall, SitePackages}; use uv_interpreter::{Interpreter, Virtualenv}; +use uv_normalize::PackageName; use uv_traits::{NoBinary, NoBuild, SetupPyStrategy}; @@ -46,15 +51,167 @@ pub(super) fn elapsed(duration: Duration) -> String { } } +/// Derived from uv [`uv_installer::Plan`] +struct PixiInstallPlan { + /// The distributions that are not already installed in the current environment, but are + /// available in the local cache. + pub local: Vec, + + /// The distributions that are not already installed in the current environment, and are + /// not available in the local cache. + /// this is where we differ from UV because we want already have the URL we want to download + pub remote: Vec, + + /// Any distributions that are already installed in the current environment, but will be + /// re-installed (including upgraded) to satisfy the requirements. + pub reinstalls: Vec, + + /// Any distributions that are already installed in the current environment, and are + /// _not_ necessary to satisfy the requirements. + pub extraneous: Vec, +} + +/// Converts our locked data to a file +fn locked_data_to_file(pkg: &PypiPackageData) -> distribution_types::File { + // Convert our url to a FileLocation + let url = if pkg.url.scheme() == "file" { + distribution_types::FileLocation::Path( + pkg.url.to_file_path().expect("cannot convert to file path"), + ) + } else { + distribution_types::FileLocation::AbsoluteUrl(pkg.url.to_string()) + }; + + // Convert PackageHashes to uv hashes + let hashes = if let Some(ref hash) = pkg.hash { + match hash { + rattler_lock::PackageHashes::Md5(md5) => pypi_types::Hashes { + md5: Some(format!("{:x}", md5)), + sha256: None, + }, + rattler_lock::PackageHashes::Sha256(sha256) => pypi_types::Hashes { + md5: None, + sha256: Some(format!("{:x}", sha256)), + }, + rattler_lock::PackageHashes::Md5Sha256(md5, sha256) => pypi_types::Hashes { + md5: Some(format!("{:x}", md5)), + sha256: Some(format!("{:x}", sha256)), + }, + } + } else { + pypi_types::Hashes { + md5: None, + sha256: None, + } + }; + + distribution_types::File { + filename: pkg.name.as_ref().to_owned(), + dist_info_metadata: None, + hashes, + requires_python: pkg.requires_python.clone(), + upload_time_utc_ms: None, + yanked: None, + size: None, + url, + } +} + +fn convert_to_dist(pkg: &PypiPackageData) -> Dist { + let filename = DistFilename::try_from_normalized_filename(pkg.name.as_ref()) + .expect("could not convert to dist filename"); + + // Bit of a hack to create the file type + let file = locked_data_to_file(pkg); + + Dist::from_registry(filename, file, IndexUrl::Pypi) +} + +/// Figure out what we can link from the cache locally +/// and what we need to download from the registry. +/// Also determine what we need to remove. +/// Ignores re-installs for now. +pub fn whats_the_plan<'venv, 'a>( + required: &'a [CombinedPypiPackageData], + installed: &SitePackages<'venv>, + registry_index: &'a mut RegistryWheelIndex<'a>, + uv_cache: &Cache, +) -> miette::Result { + // Create a HashSet of PackageName and Version + let required_map: std::collections::HashMap<&PackageName, &PypiPackageData> = + required.iter().map(|(pkg, _)| (&pkg.name, pkg)).collect(); + + // Filter out conda packages + // Ignore packages without an installer + let installed = installed.iter().filter(|dist| { + dist.installer() + .unwrap_or_default() + .is_some_and(|installer| installer == "conda") + }); + + let mut extraneous = vec![]; + let mut local = vec![]; + let mut remote = vec![]; + let mut reinstalls = vec![]; + + // TODO: Do something with editable packages + + // Walk over all installed packages and check if they are required + for dist in installed { + if let Some(pkg) = required_map.get(&dist.name()) { + // Check if the installed version is the same as the required version + let same_version = match dist { + InstalledDist::Registry(reg) => reg.version == pkg.version, + InstalledDist::Url(direct_url) => direct_url.url == pkg.url, + }; + + // Don't do anything if the version is the same + if same_version { + continue; + } + + // Otherwise, we need to check if we get it remote or local + reinstalls.push(dist.clone()); + + // Check if we need to revalidate + // In that case + if uv_cache.must_revalidate(&pkg.name) { + remote.push(convert_to_dist(pkg)); + continue; + } + + // Do we have in the cache? + let wheel = registry_index + .get(&pkg.name) + .find(|(version, _)| **version == pkg.version); + if let Some((wheel, cached)) = wheel { + local.push(CachedDist::Registry(cached.clone())); + } else { + remote.push(convert_to_dist(pkg)); + } + + // TODO(tim): we need to have special handling for DirectUrl dists + } else { + // We can uninstall + extraneous.push(dist.clone()); + } + } + + Ok(PixiInstallPlan { + local, + remote, + reinstalls, + extraneous, + }) +} + /// Installs and/or remove python distributions. // TODO: refactor arguments in struct #[allow(clippy::too_many_arguments)] pub async fn update_python_distributions( prefix: &Prefix, - name: &EnvironmentName, conda_package: &[RepoDataRecord], python_packages: &[CombinedPypiPackageData], - platform: Platform, status: &PythonStatus, system_requirements: &SystemRequirements, uv_context: UvResolutionContext, @@ -68,28 +225,13 @@ pub async fn update_python_distributions( let python_location = prefix.root().join(&python_info.path); // Determine where packages would have been installed - let _python_version = ( - python_info.short_version.0 as u32, - python_info.short_version.1 as u32, - 0, - ); + let _python_version = (python_info.short_version.1 as u32, 0); let python_record = conda_package .iter() .find(|r| is_python_record(r)) .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; - // let marker_environment = determine_marker_environment(platform, &python_record.package_record)?; - // let venv_root = prefix.root().join("envs").join(name.as_str()); - // // let interpreter = Interpreter::artificial( - // // platform_host::Platform::current().expect("unsupported platform"), - // // marker_environment.clone(), - // // venv_root.to_path_buf(), - // // venv_root.to_path_buf(), - // // prefix.root().join(python_info.path()), - // // Path::new("invalid").to_path_buf(), - // // ); - let platform = platform_host::Platform::current().expect("unsupported platform"); let interpreter = Interpreter::query(&python_location, &platform, &uv_context.cache).into_diagnostic()?; @@ -160,23 +302,21 @@ pub async fn update_python_distributions( // downloaded (`remote`), and those that should be removed (`extraneous`). // TODO: is it possible to use a cached resolve to actually avoid doing another resolve? - let Plan { + + let installed = SitePackages::from_executable(&venv).expect("could not create site-packages"); + let mut registry_index = + RegistryWheelIndex::new(&uv_context.cache, &tags, &uv_context.index_locations); + let PixiInstallPlan { local, remote, reinstalls, extraneous, - } = Planner::with_requirements(&requirements) - .build( - site_packages, - &Reinstall::None, - &no_binary, - &uv_context.index_locations, - &uv_context.cache, - &venv, - &tags, - ) - .expect("Failed to determine installation plan"); - + } = whats_the_plan( + python_packages, + &installed, + &mut registry_index, + &uv_context.cache, + )?; // Nothing to do. if remote.is_empty() && local.is_empty() && reinstalls.is_empty() && extraneous.is_empty() { let s = if requirements.len() == 1 { "" } else { "s" }; @@ -194,34 +334,6 @@ pub async fn update_python_distributions( return Ok(()); } - // Resolve any registry-based requirements. - let remote = if remote.is_empty() { - Vec::new() - } else { - let start = std::time::Instant::now(); - - let wheel_finder = uv_resolver::DistFinder::new( - &tags, - &uv_context.registry_client, - venv.interpreter(), - &flat_index, - &no_binary, - ); - let resolution = wheel_finder.resolve(&remote).await.into_diagnostic().context("wheel finder resolve failed")?; - - let s = if resolution.len() == 1 { "" } else { "s" }; - tracing::debug!( - "{}", - format!( - "Resolved {} in {}", - format!("{} package{}", resolution.len(), s), - elapsed(start.elapsed()) - ) - ); - - resolution.into_distributions().collect::>() - }; - // Download, build, and unzip any missing distributions. let wheels = if remote.is_empty() { Vec::new() diff --git a/src/project/manifest/python.rs b/src/project/manifest/python.rs index dab08164d..e64411a61 100644 --- a/src/project/manifest/python.rs +++ b/src/project/manifest/python.rs @@ -4,7 +4,7 @@ use serde::{de, de::Error, Deserialize, Deserializer}; use std::{fmt, fmt::Formatter, str::FromStr}; use thiserror::Error; use toml_edit::Item; -use uv_normalize::{ExtraName}; +use uv_normalize::ExtraName; #[derive(Debug, Clone, Eq, PartialEq)] pub struct PyPiRequirement { From 1730c5d6c8570c3f4ffee7648405f5a2ad37edd6 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Thu, 22 Feb 2024 12:15:28 +0100 Subject: [PATCH 29/55] fix: small bug with preliminary installing --- src/install_pypi.rs | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 673e10c9f..48c556185 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -138,7 +138,7 @@ pub fn whats_the_plan<'venv, 'a>( uv_cache: &Cache, ) -> miette::Result { // Create a HashSet of PackageName and Version - let required_map: std::collections::HashMap<&PackageName, &PypiPackageData> = + let mut required_map: std::collections::HashMap<&PackageName, &PypiPackageData> = required.iter().map(|(pkg, _)| (&pkg.name, pkg)).collect(); // Filter out conda packages @@ -158,7 +158,7 @@ pub fn whats_the_plan<'venv, 'a>( // Walk over all installed packages and check if they are required for dist in installed { - if let Some(pkg) = required_map.get(&dist.name()) { + if let Some(pkg) = required_map.remove(&dist.name()) { // Check if the installed version is the same as the required version let same_version = match dist { InstalledDist::Registry(reg) => reg.version == pkg.version, @@ -184,7 +184,7 @@ pub fn whats_the_plan<'venv, 'a>( let wheel = registry_index .get(&pkg.name) .find(|(version, _)| **version == pkg.version); - if let Some((wheel, cached)) = wheel { + if let Some((_, cached)) = wheel { local.push(CachedDist::Registry(cached.clone())); } else { remote.push(convert_to_dist(pkg)); @@ -197,6 +197,26 @@ pub fn whats_the_plan<'venv, 'a>( } } + // Now we need to check if we have any packages left in the required_map + for pkg in required_map.values() { + // Check if we need to revalidate + // In that case + if uv_cache.must_revalidate(&pkg.name) { + remote.push(convert_to_dist(pkg)); + continue; + } + + // Do we have in the cache? + let wheel = registry_index + .get(&pkg.name) + .find(|(version, _)| **version == pkg.version); + if let Some((_, cached)) = wheel { + local.push(CachedDist::Registry(cached.clone())); + } else { + remote.push(convert_to_dist(pkg)); + } + } + Ok(PixiInstallPlan { local, remote, From db02a99ae5c88f52b7b6b60c85e57cffc7781b45 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Thu, 22 Feb 2024 12:25:50 +0100 Subject: [PATCH 30/55] fix: try to fix cargo toml --- Cargo.lock | 87 +++++++++++++++++++++++++++++---------------- Cargo.toml | 39 +++++--------------- src/install_pypi.rs | 7 ++++ 3 files changed, 73 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 931979dad..14fe2b406 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1046,7 +1046,7 @@ name = "distribution-filename" version = "0.0.1" source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ - "pep440_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-tags", "rkyv", "serde", @@ -1067,8 +1067,8 @@ dependencies = [ "fs-err", "itertools", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-tags", "pypi-types", "rkyv", @@ -1909,7 +1909,7 @@ dependencies = [ "goblin", "mailparse", "once_cell", - "pep440_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-host", "platform-info", "plist", @@ -2757,6 +2757,18 @@ dependencies = [ "once_cell", ] +[[package]] +name = "pep440_rs" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15efd4d885c29126cc93e12af3087896e2518bd5ca0fb328c19c4ef9cecfa8be" +dependencies = [ + "once_cell", + "serde", + "unicode-width", + "unscanny", +] + [[package]] name = "pep440_rs" version = "0.5.0" @@ -2770,6 +2782,23 @@ dependencies = [ "unscanny", ] +[[package]] +name = "pep508_rs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1455babf8edd3eedcdfcb39700e455a4bb189e71b4f1fa0eacc9b244cc5a55e6" +dependencies = [ + "derivative", + "once_cell", + "pep440_rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex", + "serde", + "thiserror", + "unicode-width", + "url", + "urlencoding", +] + [[package]] name = "pep508_rs" version = "0.4.2" @@ -2777,7 +2806,7 @@ source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9 dependencies = [ "derivative", "once_cell", - "pep440_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "regex", "rkyv", "serde", @@ -2907,7 +2936,6 @@ dependencies = [ "deno_task_shell", "dialoguer", "dirs", - "distribution-filename", "distribution-types", "dunce", "flate2", @@ -2926,11 +2954,10 @@ dependencies = [ "minijinja", "nix 0.27.1", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-host", "platform-tags", - "pypi-types", "rattler", "rattler_conda_types", "rattler_digest", @@ -3186,8 +3213,8 @@ dependencies = [ "chrono", "mailparse", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "regex", "rkyv", "serde", @@ -3204,8 +3231,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898" dependencies = [ "indexmap 2.2.2", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pep508_rs 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "toml", ] @@ -3368,8 +3395,8 @@ dependencies = [ "fxhash", "indexmap 2.2.2", "itertools", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "purl", "rattler_conda_types", "rattler_digest", @@ -3674,8 +3701,8 @@ source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9 dependencies = [ "fs-err", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "regex", "serde", "thiserror", @@ -5088,7 +5115,7 @@ dependencies = [ "indoc", "itertools", "once_cell", - "pep508_rs", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-host", "pypi-types", "pyproject-toml", @@ -5144,8 +5171,8 @@ dependencies = [ "html-escape", "http", "install-wheel-rs", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-tags", "pypi-types", "reqwest", @@ -5183,7 +5210,7 @@ dependencies = [ "futures", "gourgeist", "itertools", - "pep508_rs", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-host", "platform-tags", "pypi-types", @@ -5213,8 +5240,8 @@ dependencies = [ "futures", "install-wheel-rs", "nanoid", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-tags", "pypi-types", "reqwest", @@ -5308,8 +5335,8 @@ dependencies = [ "futures", "install-wheel-rs", "once-map", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-tags", "pypi-types", "rayon", @@ -5339,8 +5366,8 @@ dependencies = [ "cache-key", "fs-err", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "platform-host", "platform-tags", "regex", @@ -5387,8 +5414,8 @@ dependencies = [ "once-map", "once_cell", "owo-colors", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "petgraph", "platform-host", "platform-tags", @@ -5425,7 +5452,7 @@ dependencies = [ "anyhow", "distribution-types", "once-map", - "pep508_rs", + "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", "tokio", "uv-cache", "uv-interpreter", diff --git a/Cargo.toml b/Cargo.toml index ff6c219b2..c6e09c24a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,9 +45,7 @@ console = { version = "0.15.8", features = ["windows-console-colors"] } deno_task_shell = "0.14.4" dialoguer = "0.11.0" dirs = "5.0.1" -distribution-filename = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } - -distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } dunce = "1.0.4" flate2 = "1.0.28" futures = "0.3.30" @@ -56,7 +54,7 @@ humantime = "2.1.0" indexmap = { version = "2.2.2", features = ["serde"] } indicatif = "0.17.7" insta = { version = "1.34.0", features = ["yaml"] } -install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } is_executable = "1.0.1" itertools = "0.12.1" lazy_static = "1.4.0" @@ -70,11 +68,10 @@ miette = { version = "7.0.0", features = [ ] } minijinja = { version = "1.0.12", features = ["builtins"] } once_cell = "1.19.0" -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } -pypi-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.6" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } rattler = { version = "0.18.0", default-features = false } rattler_conda_types = { version = "0.18.0", default-features = false } rattler_digest = { version = "0.18.0", default-features = false } @@ -93,13 +90,6 @@ rattler_virtual_packages = { version = "0.18.0", default-features = false } regex = "1.10.3" reqwest = { version = "0.11.24", default-features = false } reqwest-middleware = "0.2.4" -#rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rip", default-features = false } - -<<<<<<< HEAD -thiserror = "1.0.57" -======= - ->>>>>>> faf9af1 (wip: using own installation) self-replace = "1.3.7" serde = "1.0.196" serde-untagged = "0.1.5" @@ -112,12 +102,9 @@ strsim = "0.10.0" tabwriter = { version = "1.4.0", features = ["ansi_formatting"] } tar = "0.4.40" tempfile = "3.10.0" -tokio = { version = "1.36.0", features = [ - "macros", - "rt-multi-thread", - "signal", -] } -thiserror = "1.0.56" +#rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rip", default-features = false } + +thiserror = "1.0.57" tokio = { version = "1.36.0", features = [ "macros", "rt-multi-thread", @@ -128,12 +115,6 @@ toml_edit = { version = "0.21.1", features = ["serde"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" -distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } @@ -168,8 +149,6 @@ tokio = { version = "1.36.0", features = ["rt"] } toml = "0.8.10" [patch.crates-io] -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 48c556185..70ab7f320 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -337,6 +337,13 @@ pub async fn update_python_distributions( &mut registry_index, &uv_context.cache, )?; + tracing::debug!( + "Resolved install plan: local={}, remote={}, reinstalls={}, extraneous={}", + local.len(), + remote.len(), + reinstalls.len(), + extraneous.len() + ); // Nothing to do. if remote.is_empty() && local.is_empty() && reinstalls.is_empty() && extraneous.is_empty() { let s = if requirements.len() == 1 { "" } else { "s" }; From 846cd97899830ac2ef082041082a057016e11a9f Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Thu, 22 Feb 2024 13:53:11 +0100 Subject: [PATCH 31/55] fix: conda packages are taken from conda --- Cargo.lock | 322 ++++- Cargo.toml | 77 +- examples/pypi/pixi.lock | 2015 +++++++-------------------- examples/pypi/pixi.toml | 3 +- src/cli/mod.rs | 26 +- src/lock_file/package_identifier.rs | 18 +- src/lock_file/resolve.rs | 221 ++- 7 files changed, 976 insertions(+), 1706 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b4fa1b7f..9fc96b6c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -334,6 +334,28 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + [[package]] name = "async-task" version = "4.7.0" @@ -360,7 +382,7 @@ dependencies = [ "bisection", "futures", "http-content-range", - "itertools", + "itertools 0.12.1", "memmap2", "reqwest", "reqwest-middleware", @@ -397,6 +419,51 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.69" @@ -608,7 +675,6 @@ dependencies = [ [[package]] name = "cache-key" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "hex", "seahash", @@ -806,6 +872,43 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "console-api" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd326812b3fd01da5bb1af7d340d0d555fd3d4b641e7f1dfcf5962a902952787" +dependencies = [ + "futures-core", + "prost", + "prost-types", + "tonic", + "tracing-core", +] + +[[package]] +name = "console-subscriber" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7481d4c57092cd1c19dd541b92bdce883de840df30aa5d03fd48a3935c01842e" +dependencies = [ + "console-api", + "crossbeam-channel", + "crossbeam-utils", + "futures-task", + "hdrhistogram", + "humantime", + "prost-types", + "serde", + "serde_json", + "thread_local", + "tokio", + "tokio-stream", + "tonic", + "tracing", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -840,6 +943,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -1044,7 +1156,6 @@ dependencies = [ [[package]] name = "distribution-filename" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "pep440_rs", "platform-tags", @@ -1058,14 +1169,13 @@ dependencies = [ [[package]] name = "distribution-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "cache-key", "data-encoding", "distribution-filename", "fs-err", - "itertools", + "itertools 0.12.1", "once_cell", "pep440_rs", "pep508_rs", @@ -1562,7 +1672,6 @@ dependencies = [ [[package]] name = "gourgeist" version = "0.0.4" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anstream", "cachedir", @@ -1615,6 +1724,19 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "base64 0.21.7", + "byteorder", + "flate2", + "nom", + "num-traits", +] + [[package]] name = "heck" version = "0.4.1" @@ -1771,6 +1893,18 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -1897,7 +2031,6 @@ dependencies = [ [[package]] name = "install-wheel-rs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "clap", "configparser", @@ -1976,6 +2109,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -2220,6 +2362,12 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "md-5" version = "0.10.6" @@ -2553,7 +2701,6 @@ dependencies = [ [[package]] name = "once-map" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "dashmap", "tokio", @@ -2669,7 +2816,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b645dcde5f119c2c454a92d0dfa271a2a3b205da92e4292a68ead4bdbfde1f33" dependencies = [ "heck", - "itertools", + "itertools 0.12.1", "proc-macro2", "proc-macro2-diagnostics", "quote", @@ -2760,7 +2907,6 @@ dependencies = [ [[package]] name = "pep440_rs" version = "0.5.0" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "once_cell", "pubgrub", @@ -2773,7 +2919,6 @@ dependencies = [ [[package]] name = "pep508_rs" version = "0.4.2" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "derivative", "once_cell", @@ -2899,14 +3044,17 @@ dependencies = [ "async-once-cell", "async-recursion", "async-scoped", + "cfg-if", "chrono", "clap", "clap-verbosity-flag", "clap_complete", "console", + "console-subscriber", "deno_task_shell", "dialoguer", "dirs", + "distribution-filename", "distribution-types", "dunce", "flate2", @@ -2918,7 +3066,7 @@ dependencies = [ "insta", "install-wheel-rs", "is_executable", - "itertools", + "itertools 0.12.1", "lazy_static", "libc", "miette", @@ -2929,6 +3077,7 @@ dependencies = [ "pep508_rs", "platform-host", "platform-tags", + "pypi-types", "rattler", "rattler_conda_types", "rattler_digest", @@ -2991,7 +3140,6 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "platform-host" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "fs-err", "goblin", @@ -3018,7 +3166,6 @@ dependencies = [ [[package]] name = "platform-tags" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "platform-host", "rustc-hash", @@ -3129,6 +3276,38 @@ dependencies = [ "yansi", ] +[[package]] +name = "prost" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "prost-types" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +dependencies = [ + "prost", +] + [[package]] name = "ptr_meta" version = "0.1.4" @@ -3179,7 +3358,6 @@ dependencies = [ [[package]] name = "pypi-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "chrono", "mailparse", @@ -3271,7 +3449,6 @@ dependencies = [ [[package]] name = "rattler" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "async-compression", @@ -3285,7 +3462,7 @@ dependencies = [ "fxhash", "hex", "indexmap 2.2.2", - "itertools", + "itertools 0.12.1", "memchr", "memmap2", "nom", @@ -3316,14 +3493,13 @@ dependencies = [ [[package]] name = "rattler_conda_types" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "chrono", "fxhash", "glob", "hex", "indexmap 2.2.2", - "itertools", + "itertools 0.12.1", "lazy-regex", "nom", "purl", @@ -3345,7 +3521,6 @@ dependencies = [ [[package]] name = "rattler_digest" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "blake2", "digest", @@ -3360,12 +3535,11 @@ dependencies = [ [[package]] name = "rattler_lock" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "chrono", "fxhash", "indexmap 2.2.2", - "itertools", + "itertools 0.12.1", "pep440_rs", "pep508_rs", "purl", @@ -3384,7 +3558,6 @@ dependencies = [ [[package]] name = "rattler_macros" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "quote", "syn 2.0.48", @@ -3393,7 +3566,6 @@ dependencies = [ [[package]] name = "rattler_networking" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "async-trait", @@ -3401,7 +3573,7 @@ dependencies = [ "dirs", "fslock", "getrandom", - "itertools", + "itertools 0.12.1", "keyring", "lazy_static", "libc", @@ -3421,12 +3593,11 @@ dependencies = [ [[package]] name = "rattler_package_streaming" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "bzip2", "chrono", "futures-util", - "itertools", + "itertools 0.12.1", "num_cpus", "rattler_conda_types", "rattler_digest", @@ -3447,7 +3618,6 @@ dependencies = [ [[package]] name = "rattler_repodata_gateway" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "async-compression", @@ -3458,7 +3628,7 @@ dependencies = [ "hex", "humansize", "humantime", - "itertools", + "itertools 0.12.1", "json-patch", "libc", "md-5", @@ -3486,11 +3656,10 @@ dependencies = [ [[package]] name = "rattler_shell" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "enum_dispatch", "indexmap 2.2.2", - "itertools", + "itertools 0.12.1", "rattler_conda_types", "serde_json", "shlex", @@ -3503,13 +3672,12 @@ dependencies = [ [[package]] name = "rattler_solve" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "anyhow", "chrono", "futures", "hex", - "itertools", + "itertools 0.12.1", "rattler_conda_types", "rattler_digest", "resolvo", @@ -3523,7 +3691,6 @@ dependencies = [ [[package]] name = "rattler_virtual_packages" version = "0.18.0" -source = "git+https://github.com/baszalmstra/rattler?rev=c4bb4826e46f09009c7dbe4caaed905e03263881#c4bb4826e46f09009c7dbe4caaed905e03263881" dependencies = [ "cfg-if", "libloading", @@ -3668,7 +3835,6 @@ dependencies = [ [[package]] name = "requirements-txt" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "fs-err", "once_cell", @@ -3782,7 +3948,7 @@ dependencies = [ "elsa", "event-listener 5.0.0", "futures", - "itertools", + "itertools 0.12.1", "petgraph", "tracing", ] @@ -4741,9 +4907,20 @@ dependencies = [ "signal-hook-registry", "socket2 0.5.5", "tokio-macros", + "tracing", "windows-sys 0.48.0", ] +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-macros" version = "2.2.0" @@ -4875,6 +5052,59 @@ dependencies = [ "winnow", ] +[[package]] +name = "tonic" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.7", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand", + "slab", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -5077,14 +5307,13 @@ dependencies = [ [[package]] name = "uv-build" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-types", "fs-err", "gourgeist", "indoc", - "itertools", + "itertools 0.12.1", "once_cell", "pep508_rs", "platform-host", @@ -5107,7 +5336,6 @@ dependencies = [ [[package]] name = "uv-cache" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "cache-key", "cachedir", @@ -5128,7 +5356,6 @@ dependencies = [ [[package]] name = "uv-client" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "async-trait", "async_http_range_reader", @@ -5173,14 +5400,13 @@ dependencies = [ [[package]] name = "uv-dispatch" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-types", "fs-err", "futures", "gourgeist", - "itertools", + "itertools 0.12.1", "pep508_rs", "platform-host", "platform-tags", @@ -5201,7 +5427,6 @@ dependencies = [ [[package]] name = "uv-distribution" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "cache-key", @@ -5238,7 +5463,6 @@ dependencies = [ [[package]] name = "uv-extract" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "async-compression", "async_zip", @@ -5257,7 +5481,6 @@ dependencies = [ [[package]] name = "uv-fs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "dunce", "fs-err", @@ -5272,7 +5495,6 @@ dependencies = [ [[package]] name = "uv-git" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "base64 0.21.7", @@ -5297,7 +5519,6 @@ dependencies = [ [[package]] name = "uv-installer" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-filename", @@ -5332,7 +5553,6 @@ dependencies = [ [[package]] name = "uv-interpreter" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "cache-key", "fs-err", @@ -5357,7 +5577,6 @@ dependencies = [ [[package]] name = "uv-normalize" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "rkyv", "serde", @@ -5366,7 +5585,6 @@ dependencies = [ [[package]] name = "uv-resolver" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anstream", "anyhow", @@ -5381,7 +5599,7 @@ dependencies = [ "futures", "indexmap 2.2.2", "install-wheel-rs", - "itertools", + "itertools 0.12.1", "once-map", "once_cell", "owo-colors", @@ -5418,7 +5636,6 @@ dependencies = [ [[package]] name = "uv-traits" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anyhow", "distribution-types", @@ -5433,7 +5650,6 @@ dependencies = [ [[package]] name = "uv-warnings" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ "anstream", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 3d8b0e77e..707a952cf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ async-once-cell = "0.5.3" async-recursion = "1.0.5" async-scoped = { version = "0.8.0", features = ["use-tokio"] } chrono = "0.4.33" +cfg-if = "1.0.0" clap = { version = "4.5.0", default-features = false, features = ["derive", "usage", "wrap_help", "std", "color", "error-context", "env"] } clap-verbosity-flag = "2.1.2" clap_complete = "4.5.0" @@ -68,28 +69,32 @@ tabwriter = { version = "1.4.0", features = ["ansi_formatting"] } tar = "0.4.40" tempfile = "3.10.0" thiserror = "1.0.57" -tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread", "signal"] } +tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread", "signal", "tracing"] } tokio-util = "0.7.10" toml_edit = { version = "0.21.1", features = ["serde"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" -distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +distribution-types = { path = "../uv/crates/distribution-types" } +distribution-filename = { path = "../uv/crates/distribution-filename" } +install-wheel-rs = { path = "../uv/crates/install-wheel-rs" } +pep440_rs = { path = "../uv/crates/pep440-rs" } +pep508_rs = { path = "../uv/crates/pep508-rs" } +uv-normalize = { path = "../uv/crates/uv-normalize" } +platform-host = { path = "../uv/crates/platform-host" } +platform-tags = { path = "../uv/crates/platform-tags" } +pypi-types = { path = "../uv/crates/pypi-types" } +uv-cache = { path = "../uv/crates/uv-cache" } +uv-client = { path = "../uv/crates/uv-client" } +uv-dispatch = { path = "../uv/crates/uv-dispatch" } +uv-distribution = { path = "../uv/crates/uv-distribution" } +uv-installer = { path = "../uv/crates/uv-installer" } +uv-interpreter = { path = "../uv/crates/uv-interpreter" } +uv-resolver = { path = "../uv/crates/uv-resolver" } +uv-traits = { path = "../uv/crates/uv-traits" } + +console-subscriber = { version = "0.2.0", optional = true } zip = { version = "0.6.6", default-features = false, features = ["deflate", "time"] } @@ -107,29 +112,29 @@ tokio = { version = "1.36.0", features = ["rt"] } toml = "0.8.10" [patch.crates-io] -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep440_rs = { path = "../uv/crates/pep440-rs" } +pep508_rs = { path = "../uv/crates/pep508-rs" } -rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } +#rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } #rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rattler_installs_packages", branch = "main"} #resolvo = { git = "https://github.com/mamba-org/resolvo.git", branch = "main" } #deno_task_shell = { path = "../deno_task_shell" } -#rattler = { path = "../rattler/crates/rattler" } -#rattler_conda_types = { path = "../rattler/crates/rattler_conda_types" } -#rattler_digest = { path = "../rattler/crates/rattler_digest" } -#rattler_networking = { path = "../rattler/crates/rattler_networking" } -#rattler_repodata_gateway = { path = "../rattler/crates/rattler_repodata_gateway" } -#rattler_shell = { path = "../rattler/crates/rattler_shell" } -#rattler_solve = { path = "../rattler/crates/rattler_solve" } -#rattler_virtual_packages = { path = "../rattler/crates/rattler_virtual_packages" } -#rattler_lock = { path = "../rattler/crates/rattler_lock" } +rattler = { path = "../rattler/crates/rattler" } +rattler_conda_types = { path = "../rattler/crates/rattler_conda_types" } +rattler_digest = { path = "../rattler/crates/rattler_digest" } +rattler_networking = { path = "../rattler/crates/rattler_networking" } +rattler_repodata_gateway = { path = "../rattler/crates/rattler_repodata_gateway" } +rattler_shell = { path = "../rattler/crates/rattler_shell" } +rattler_solve = { path = "../rattler/crates/rattler_solve" } +rattler_virtual_packages = { path = "../rattler/crates/rattler_virtual_packages" } +rattler_lock = { path = "../rattler/crates/rattler_lock" } #rip = { package = "rattler_installs_packages", path = "../rip" } diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index 15618480b..8e539bd78 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -5,7 +5,6 @@ environments: - url: https://conda.anaconda.org/conda-forge/ packages: linux-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda @@ -36,7 +35,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.7-hab00c5b_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py311h64a7726_0.conda @@ -44,92 +43,55 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e - - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 - - pypi: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/06/96/8e836e2144d294fe2db06b0529c30f723d8b3c0d75a4834309a03a00d9dd/ipython-8.22.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl osx-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.2.2-h8857fd0_0.conda @@ -154,99 +116,62 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.4-h93d8f39_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.2.1-hd75f5a5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.7-h9f0c242_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.8-h9f0c242_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.11.4-py311he0bea55_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 - - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/06/96/8e836e2144d294fe2db06b0529c30f723d8b3c0d75a4834309a03a00d9dd/ipython-8.22.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl osx-arm64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda @@ -271,100 +196,97 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h463b476_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.2.1-h0d3ecfb_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.7-hdf0ec26_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.11.4-py311h2b215a9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e - - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/06/96/8e836e2144d294fe2db06b0529c30f723d8b3c0d75a4834309a03a00d9dd/ipython-8.22.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl win-64: - - pypi: git+https://github.com/schlatterbeck/pySmithPlot.git - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.2.2-h56e8100_0.conda @@ -385,7 +307,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.2.1-hcfcfb64_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.7-h2628c8c_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.8-h2628c8c_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-4_cp311.conda - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.11.4-py311h0b4df5a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.11.0-h91493d7_1.conda @@ -396,90 +318,88 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33130-hcb4865c_18.conda - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa - - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 - - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 - - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 - - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 - - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa - - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 - extras: - - jupyter - - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb - - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd - - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 - - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 - - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 - - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 - - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb - - pypi: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 - - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 - - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - - pypi: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c - - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 - - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 - - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 - - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb - - pypi: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc - - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 - - pypi: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - - pypi: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 - - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e - - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c - - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 - - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 - - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed - - pypi: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 - - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae - - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 - - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 - - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 - - pypi: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f - - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 - - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 - - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d - - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de - - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 - - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 - - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 - - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 - - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 - - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 - - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 - - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 - - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c - - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 - - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - - pypi: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 - - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/06/96/8e836e2144d294fe2db06b0529c30f723d8b3c0d75a4834309a03a00d9dd/ipython-8.22.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl packages: - kind: conda name: _libgcc_mutex @@ -513,13 +433,13 @@ packages: - kind: pypi name: absl-py version: 2.1.0 - url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl#sha256=526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl sha256: 526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 requires_python: '>=3.7' - kind: pypi name: asttokens version: 2.4.1 - url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl#sha256=051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl sha256: 051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 requires_dist: - six >=1.12.0 @@ -532,7 +452,7 @@ packages: - kind: pypi name: astunparse version: 1.6.3 - url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl#sha256=c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl sha256: c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 requires_dist: - wheel <1.0, >=0.23.0 @@ -540,27 +460,7 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b - sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b - requires_dist: - - click >=8.0.0 - - mypy-extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 ; python_version < '3.11' - - typing-extensions >=4.0.1 ; python_version < '3.11' - - colorama >=0.4.3 ; extra == 'colorama' - - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' - - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' - - ipython >=7.8.0 ; extra == 'jupyter' - - tokenize-rt >=3.2.0 ; extra == 'jupyter' - - uvloop >=0.15.2 ; extra == 'uvloop' - requires_python: '>=3.8' -- kind: pypi - name: black - version: 23.12.1 - url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl#sha256=0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 + url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 requires_dist: - click >=8.0.0 @@ -577,50 +477,10 @@ packages: - tokenize-rt >=3.2.0 ; extra == 'jupyter' - uvloop >=0.15.2 ; extra == 'uvloop' requires_python: '>=3.8' -- kind: pypi - name: black - version: 23.12.1 - url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 - requires_dist: - - click >=8.0.0 - - mypy-extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 ; python_version < '3.11' - - typing-extensions >=4.0.1 ; python_version < '3.11' - - colorama >=0.4.3 ; extra == 'colorama' - - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' - - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' - - ipython >=7.8.0 ; extra == 'jupyter' - - tokenize-rt >=3.2.0 ; extra == 'jupyter' - - uvloop >=0.15.2 ; extra == 'uvloop' - requires_python: '>=3.8' -- kind: pypi - name: black - version: 23.12.1 - url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba - requires_dist: - - click >=8.0.0 - - mypy-extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 ; python_version < '3.11' - - typing-extensions >=4.0.1 ; python_version < '3.11' - - colorama >=0.4.3 ; extra == 'colorama' - - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' - - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' - - ipython >=7.8.0 ; extra == 'jupyter' - - tokenize-rt >=3.2.0 ; extra == 'jupyter' - - uvloop >=0.15.2 ; extra == 'uvloop' - requires_python: '>=3.8' - kind: pypi name: blinker version: 1.7.0 - url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl#sha256=c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl sha256: c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 requires_python: '>=3.8' - kind: conda @@ -728,43 +588,25 @@ packages: - kind: pypi name: cachetools version: 5.3.2 - url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl#sha256=861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl sha256: 861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 requires_python: '>=3.7' - kind: pypi name: certifi version: 2024.2.2 - url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl#sha256=dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 requires_python: '>=3.6' - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl#sha256=549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e + url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl#sha256=663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 - sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 - requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - sha256: 753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl#sha256=573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 - requires_python: '>=3.7.0' - kind: pypi name: click version: 8.1.7 - url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl#sha256=ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl sha256: ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 requires_dist: - colorama ; platform_system == 'Windows' @@ -773,61 +615,13 @@ packages: - kind: pypi name: colorama version: 0.4.6 - url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl#sha256=4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7' - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd - sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd - requires_dist: - - numpy <2.0, >=1.20 - - furo ; extra == 'docs' - - sphinx >=7.2 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - bokeh ; extra == 'bokeh' - - selenium ; extra == 'bokeh' - - contourpy[bokeh,docs] ; extra == 'mypy' - - docutils-stubs ; extra == 'mypy' - - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' - - contourpy[test-no-images] ; extra == 'test' - - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' - - pytest ; extra == 'test-no-images' - - pytest-cov ; extra == 'test-no-images' - - pytest-xdist ; extra == 'test-no-images' - - wurlitzer ; extra == 'test-no-images' - requires_python: '>=3.9' -- kind: pypi - name: contourpy - version: 1.2.0 - url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl#sha256=99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de - sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de - requires_dist: - - numpy <2.0, >=1.20 - - furo ; extra == 'docs' - - sphinx >=7.2 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - bokeh ; extra == 'bokeh' - - selenium ; extra == 'bokeh' - - contourpy[bokeh,docs] ; extra == 'mypy' - - docutils-stubs ; extra == 'mypy' - - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' - - contourpy[test-no-images] ; extra == 'test' - - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' - - pytest ; extra == 'test-no-images' - - pytest-cov ; extra == 'test-no-images' - - pytest-xdist ; extra == 'test-no-images' - - wurlitzer ; extra == 'test-no-images' - requires_python: '>=3.9' -- kind: pypi - name: contourpy - version: 1.2.0 - url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 + url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 requires_dist: - numpy <2.0, >=1.20 @@ -839,34 +633,10 @@ packages: - contourpy[bokeh,docs] ; extra == 'mypy' - docutils-stubs ; extra == 'mypy' - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' - - contourpy[test-no-images] ; extra == 'test' - - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' - - pytest ; extra == 'test-no-images' - - pytest-cov ; extra == 'test-no-images' - - pytest-xdist ; extra == 'test-no-images' - - wurlitzer ; extra == 'test-no-images' - requires_python: '>=3.9' -- kind: pypi - name: contourpy - version: 1.2.0 - url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 - requires_dist: - - numpy <2.0, >=1.20 - - furo ; extra == 'docs' - - sphinx >=7.2 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - bokeh ; extra == 'bokeh' - - selenium ; extra == 'bokeh' - - contourpy[bokeh,docs] ; extra == 'mypy' - - docutils-stubs ; extra == 'mypy' - - mypy ==1.6.1 ; extra == 'mypy' - - types-Pillow ; extra == 'mypy' + - types-pillow ; extra == 'mypy' - contourpy[test-no-images] ; extra == 'test' - matplotlib ; extra == 'test' - - Pillow ; extra == 'test' + - pillow ; extra == 'test' - pytest ; extra == 'test-no-images' - pytest-cov ; extra == 'test-no-images' - pytest-xdist ; extra == 'test-no-images' @@ -875,7 +645,7 @@ packages: - kind: pypi name: cycler version: 0.12.1 - url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl#sha256=85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl sha256: 85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 requires_dist: - ipython ; extra == 'docs' @@ -889,13 +659,13 @@ packages: - kind: pypi name: decorator version: 5.1.1 - url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl#sha256=b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 requires_python: '>=3.5' - kind: pypi name: executing version: 2.0.1 - url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl#sha256=eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl sha256: eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc requires_dist: - asttokens >=2.1.0 ; extra == 'tests' @@ -909,11 +679,11 @@ packages: - kind: pypi name: flask version: 3.0.2 - url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl#sha256=3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl sha256: 3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e requires_dist: - - Werkzeug >=3.0.0 - - Jinja2 >=3.1.2 + - werkzeug >=3.0.0 + - jinja2 >=3.1.2 - itsdangerous >=2.1.2 - click >=8.1.3 - blinker >=1.6.2 @@ -924,87 +694,13 @@ packages: - kind: pypi name: flatbuffers version: 23.5.26 - url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl#sha256=c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 + url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl sha256: c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 - kind: pypi name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/ba/37/03ddf4b6ad57785c04a35173ad6121867226f5ff803a4893f7ec1a13e987/fonttools-4.48.1-cp311-cp311-macosx_10_9_universal2.whl#sha256=18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - sha256: 18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 - requires_dist: - - fs <3, >=2.2.0 ; extra == 'all' - - lxml >=4.0 ; extra == 'all' - - zopfli >=0.1.4 ; extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'all' - - pycairo ; extra == 'all' - - matplotlib ; extra == 'all' - - sympy ; extra == 'all' - - skia-pathops >=0.5.0 ; extra == 'all' - - uharfbuzz >=0.23.0 ; extra == 'all' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' - - xattr ; sys_platform == 'darwin' and extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'graphite' - - pycairo ; extra == 'interpolatable' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' - - lxml >=4.0 ; extra == 'lxml' - - skia-pathops >=0.5.0 ; extra == 'pathops' - - matplotlib ; extra == 'plot' - - uharfbuzz >=0.23.0 ; extra == 'repacker' - - sympy ; extra == 'symfont' - - xattr ; sys_platform == 'darwin' and extra == 'type1' - - fs <3, >=2.2.0 ; extra == 'ufo' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' - - zopfli >=0.1.4 ; extra == 'woff' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' - requires_python: '>=3.8' -- kind: pypi - name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/65/cf/491fe771ed235947f55a997435491cb4db314bdd55c250d21e301c774a9c/fonttools-4.48.1-cp311-cp311-win_amd64.whl#sha256=d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - sha256: d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a - requires_dist: - - fs <3, >=2.2.0 ; extra == 'all' - - lxml >=4.0 ; extra == 'all' - - zopfli >=0.1.4 ; extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'all' - - pycairo ; extra == 'all' - - matplotlib ; extra == 'all' - - sympy ; extra == 'all' - - skia-pathops >=0.5.0 ; extra == 'all' - - uharfbuzz >=0.23.0 ; extra == 'all' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' - - xattr ; sys_platform == 'darwin' and extra == 'all' - - lz4 >=1.7.4.2 ; extra == 'graphite' - - pycairo ; extra == 'interpolatable' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' - - lxml >=4.0 ; extra == 'lxml' - - skia-pathops >=0.5.0 ; extra == 'pathops' - - matplotlib ; extra == 'plot' - - uharfbuzz >=0.23.0 ; extra == 'repacker' - - sympy ; extra == 'symfont' - - xattr ; sys_platform == 'darwin' and extra == 'type1' - - fs <3, >=2.2.0 ; extra == 'ufo' - - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' - - zopfli >=0.1.4 ; extra == 'woff' - - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' - - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' - requires_python: '>=3.8' -- kind: pypi - name: fonttools - version: 4.48.1 - url: https://files.pythonhosted.org/packages/ec/9c/0e41b79c6fcd539532b2386a10313e9c4b2b53149630e623dcbd90b454c9/fonttools-4.48.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 - sha256: aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 + version: 4.49.0 + url: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1040,14 +736,14 @@ packages: - kind: pypi name: gast version: 0.5.4 - url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl#sha256=6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl sha256: 6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' - kind: pypi name: google-auth - version: 2.27.0 - url: https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl#sha256=8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 - sha256: 8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245 + version: 2.28.1 + url: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + sha256: 25141e2d7a14bfcba945f5e9827f98092716e99482562f15306e5b026e21aa72 requires_dist: - cachetools <6.0, >=2.0.0 - pyasn1-modules >=0.2.1 @@ -1064,7 +760,7 @@ packages: - kind: pypi name: google-auth-oauthlib version: 1.0.0 - url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl#sha256=95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl sha256: 95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb requires_dist: - google-auth >=2.15.0 @@ -1074,66 +770,26 @@ packages: - kind: pypi name: google-pasta version: 0.2.0 - url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl#sha256=b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl sha256: b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed requires_dist: - six - kind: pypi name: grpcio - version: 1.60.1 - url: https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl#sha256=4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - sha256: 4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87 - requires_dist: - - grpcio-tools >=1.60.1 ; extra == 'protobuf' - requires_python: '>=3.7' -- kind: pypi - name: grpcio - version: 1.60.1 - url: https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl#sha256=49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c - sha256: 49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c - requires_dist: - - grpcio-tools >=1.60.1 ; extra == 'protobuf' - requires_python: '>=3.7' -- kind: pypi - name: grpcio - version: 1.60.1 - url: https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 - sha256: cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7 + version: 1.62.0 + url: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl + sha256: eef1d16ac26c5325e7d39f5452ea98d6988c700c427c52cbc7ce3201e6d93334 requires_dist: - - grpcio-tools >=1.60.1 ; extra == 'protobuf' + - grpcio-tools >=1.62.0 ; extra == 'protobuf' requires_python: '>=3.7' - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd - sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd - requires_dist: - - numpy >=1.17.3 - requires_python: '>=3.8' -- kind: pypi - name: h5py - version: 3.10.0 - url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl#sha256=92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' -- kind: pypi - name: h5py - version: 3.10.0 - url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 - requires_dist: - - numpy >=1.17.3 - requires_python: '>=3.8' -- kind: pypi - name: h5py - version: 3.10.0 - url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc - requires_dist: - - numpy >=1.17.3 - requires_python: '>=3.8' - kind: conda name: icu version: '73.2' @@ -1176,7 +832,7 @@ packages: - kind: pypi name: idna version: '3.6' - url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl#sha256=c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl sha256: c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f requires_python: '>=3.5' - kind: conda @@ -1194,9 +850,9 @@ packages: timestamp: 1706182537883 - kind: pypi name: ipython - version: 8.21.0 - url: https://files.pythonhosted.org/packages/fb/e7/07dc8b6541affd4de15f0e8fc855f238cb93d04c4f8490757226d12cdb5a/ipython-8.21.0-py3-none-any.whl#sha256=1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 - sha256: 1050a3ab8473488d7eee163796b02e511d0735cf43a04ba2a8348bd0f2eaf8a5 + version: 8.22.0 + url: https://files.pythonhosted.org/packages/06/96/8e836e2144d294fe2db06b0529c30f723d8b3c0d75a4834309a03a00d9dd/ipython-8.22.0-py3-none-any.whl + sha256: a3e962e1d42927f5825dab048f4de617f5856cf3272fff1cb9245bea0c785a46 requires_dist: - decorator - jedi >=0.16 @@ -1207,47 +863,22 @@ packages: - traitlets >=5 - typing-extensions ; python_version < '3.10' - exceptiongroup ; python_version < '3.11' - - pexpect >4.3 ; sys_platform != 'win32' + - pexpect >4.3 ; sys_platform != 'win32' and sys_platform != 'emscripten' - colorama ; sys_platform == 'win32' - - black ; extra == 'all' - - ipykernel ; extra == 'all' - - setuptools >=18.5 ; extra == 'all' - - sphinx >=1.3 ; extra == 'all' - - sphinx-rtd-theme ; extra == 'all' - - docrepr ; extra == 'all' - - matplotlib ; extra == 'all' - - stack-data ; extra == 'all' - - typing-extensions ; extra == 'all' - - exceptiongroup ; extra == 'all' - - pytest <8 ; extra == 'all' - - pytest-asyncio <0.22 ; extra == 'all' - - testpath ; extra == 'all' - - pickleshare ; extra == 'all' - - nbconvert ; extra == 'all' - - nbformat ; extra == 'all' - - ipywidgets ; extra == 'all' - - notebook ; extra == 'all' - - ipyparallel ; extra == 'all' - - qtconsole ; extra == 'all' - - curio ; extra == 'all' - - matplotlib !=3.2.0 ; extra == 'all' - - numpy >=1.23 ; extra == 'all' - - pandas ; extra == 'all' - - trio ; extra == 'all' + - ipython[black,doc,kernel,nbconvert,nbformat,notebook,parallel,qtconsole,terminal] ; extra == 'all' + - ipython[test,test-extra] ; extra == 'all' - black ; extra == 'black' - ipykernel ; extra == 'doc' - setuptools >=18.5 ; extra == 'doc' - sphinx >=1.3 ; extra == 'doc' - sphinx-rtd-theme ; extra == 'doc' + - sphinxcontrib-jquery ; extra == 'doc' - docrepr ; extra == 'doc' - matplotlib ; extra == 'doc' - stack-data ; extra == 'doc' - typing-extensions ; extra == 'doc' - exceptiongroup ; extra == 'doc' - - pytest <8 ; extra == 'doc' - - pytest-asyncio <0.22 ; extra == 'doc' - - testpath ; extra == 'doc' - - pickleshare ; extra == 'doc' + - ipython[test] ; extra == 'doc' - ipykernel ; extra == 'kernel' - nbconvert ; extra == 'nbconvert' - nbformat ; extra == 'nbformat' @@ -1259,10 +890,7 @@ packages: - pytest-asyncio <0.22 ; extra == 'test' - testpath ; extra == 'test' - pickleshare ; extra == 'test' - - pytest <8 ; extra == 'test_extra' - - pytest-asyncio <0.22 ; extra == 'test_extra' - - testpath ; extra == 'test_extra' - - pickleshare ; extra == 'test_extra' + - ipython[test] ; extra == 'test_extra' - curio ; extra == 'test_extra' - matplotlib !=3.2.0 ; extra == 'test_extra' - nbformat ; extra == 'test_extra' @@ -1273,19 +901,19 @@ packages: - kind: pypi name: itsdangerous version: 2.1.2 - url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl#sha256=2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl sha256: 2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 requires_python: '>=3.7' - kind: pypi name: jedi version: 0.19.1 - url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl#sha256=e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl sha256: e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 requires_dist: - parso <0.9.0, >=0.8.3 - - Jinja2 ==2.11.3 ; extra == 'docs' - - MarkupSafe ==1.1.1 ; extra == 'docs' - - Pygments ==2.8.1 ; extra == 'docs' + - jinja2 ==2.11.3 ; extra == 'docs' + - markupsafe ==1.1.1 ; extra == 'docs' + - pygments ==2.8.1 ; extra == 'docs' - alabaster ==0.7.12 ; extra == 'docs' - babel ==2.9.1 ; extra == 'docs' - chardet ==4.0.0 ; extra == 'docs' @@ -1311,7 +939,7 @@ packages: - flake8 ==5.0.4 ; extra == 'qa' - mypy ==0.971 ; extra == 'qa' - types-setuptools ==67.2.0.1 ; extra == 'qa' - - Django ; extra == 'testing' + - django ; extra == 'testing' - attrs ; extra == 'testing' - colorama ; extra == 'testing' - docopt ; extra == 'testing' @@ -1320,50 +948,26 @@ packages: - kind: pypi name: jinja2 version: 3.1.3 - url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl#sha256=7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl sha256: 7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa requires_dist: - - MarkupSafe >=2.0 - - Babel >=2.7 ; extra == 'i18n' + - markupsafe >=2.0 + - babel >=2.7 ; extra == 'i18n' requires_python: '>=3.7' - kind: pypi name: keras version: 2.14.0 - url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl#sha256=d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl sha256: d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd requires_python: '>=3.9' - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl#sha256=fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl#sha256=6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 - sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e + url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl sha256: 040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl#sha256=8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -2485,7 +2089,7 @@ packages: - kind: pypi name: markdown version: 3.5.2 - url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl#sha256=d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl sha256: d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd requires_dist: - importlib-metadata >=4.4 ; python_version < '3.10' @@ -2502,26 +2106,14 @@ packages: - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl#sha256=629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f - requires_python: '>=3.7' -- kind: pypi - name: markupsafe - version: 2.1.5 - url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl#sha256=2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 + url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 requires_python: '>=3.7' -- kind: pypi - name: markupsafe - version: 2.1.5 - url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 - sha256: b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 - requires_python: '>=3.7' - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e - sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2535,61 +2127,10 @@ packages: - importlib-resources >=3.2.0 ; python_version < '3.10' requires_python: '>=3.9' - kind: pypi - name: matplotlib - version: 3.8.3 - url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl#sha256=40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 - requires_dist: - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - kiwisolver >=1.3.1 - - numpy <2, >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python-dateutil >=2.7 - - importlib-resources >=3.2.0 ; python_version < '3.10' - requires_python: '>=3.9' -- kind: pypi - name: matplotlib - version: 3.8.3 - url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 - requires_dist: - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - kiwisolver >=1.3.1 - - numpy <2, >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python-dateutil >=2.7 - - importlib-resources >=3.2.0 ; python_version < '3.10' - requires_python: '>=3.9' -- kind: pypi - name: matplotlib - version: 3.8.3 - url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl#sha256=5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 - sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 - requires_dist: - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - kiwisolver >=1.3.1 - - numpy <2, >=1.21 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python-dateutil >=2.7 - - importlib-resources >=3.2.0 ; python_version < '3.10' - requires_python: '>=3.9' -- kind: pypi - name: matplotlib-inline - version: 0.1.6 - url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl#sha256=f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 - sha256: f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + name: matplotlib-inline + version: 0.1.6 + url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + sha256: f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 requires_dist: - traitlets requires_python: '>=3.5' @@ -2612,22 +2153,7 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl#sha256=e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c - requires_dist: - - numpy >1.20 - - numpy >=1.23.3 ; python_version > '3.10' - - numpy >=1.21.2 ; python_version > '3.9' - - absl-py ; extra == 'dev' - - pytest ; extra == 'dev' - - pytest-xdist ; extra == 'dev' - - pylint >=2.6.0 ; extra == 'dev' - - pyink ; extra == 'dev' - requires_python: '>=3.7' -- kind: pypi - name: ml-dtypes - version: 0.2.0 - url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl#sha256=832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa + url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl sha256: 832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa requires_dist: - numpy >1.20 @@ -2639,25 +2165,10 @@ packages: - pylint >=2.6.0 ; extra == 'dev' - pyink ; extra == 'dev' requires_python: '>=3.7' -- kind: pypi - name: ml-dtypes - version: 0.2.0 - url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca - sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca - requires_dist: - - numpy >1.20 - - numpy >=1.23.3 ; python_version > '3.10' - - numpy >=1.21.2 ; python_version > '3.9' - - absl-py ; extra == 'dev' - - pytest ; extra == 'dev' - - pytest-xdist ; extra == 'dev' - - pylint >=2.6.0 ; extra == 'dev' - - pyink ; extra == 'dev' - requires_python: '>=3.7' - kind: pypi name: mypy-extensions version: 1.0.0 - url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl#sha256=4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl sha256: 4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d requires_python: '>=3.5' - kind: conda @@ -2801,7 +2312,7 @@ packages: - kind: pypi name: oauthlib version: 3.2.2 - url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl#sha256=8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl sha256: 8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca requires_dist: - cryptography >=3.0.0 ; extra == 'rsa' @@ -2880,7 +2391,7 @@ packages: - kind: pypi name: opt-einsum version: 3.3.0 - url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl#sha256=2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl sha256: 2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 requires_dist: - numpy >=1.7 @@ -2895,104 +2406,13 @@ packages: - kind: pypi name: packaging version: '23.2' - url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl#sha256=8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl sha256: 8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 requires_python: '>=3.7' - kind: pypi name: pandas version: 2.2.0 - url: https://files.pythonhosted.org/packages/6f/4e/63e6b79132e854a67df3d37a5c8560e45c79e2504fa57e032c1d61abb090/pandas-2.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b - sha256: 8ce2fbc8d9bf303ce54a476116165220a1fedf15985b09656b4b4275300e920b - requires_dist: - - numpy <2, >=1.22.4 ; python_version < '3.11' - - numpy <2, >=1.23.2 ; python_version == '3.11' - - numpy <2, >=1.26.0 ; python_version >= '3.12' - - python-dateutil >=2.8.2 - - pytz >=2020.1 - - tzdata >=2022.7 - - hypothesis >=6.46.1 ; extra == 'test' - - pytest >=7.3.2 ; extra == 'test' - - pytest-xdist >=2.2.0 ; extra == 'test' - - bottleneck >=1.3.6 ; extra == 'performance' - - numba >=0.56.4 ; extra == 'performance' - - numexpr >=2.8.4 ; extra == 'performance' - - scipy >=1.10.0 ; extra == 'computation' - - xarray >=2022.12.0 ; extra == 'computation' - - fsspec >=2022.11.0 ; extra == 'fss' - - s3fs >=2022.11.0 ; extra == 'aws' - - gcsfs >=2022.11.0 ; extra == 'gcp' - - pandas-gbq >=0.19.0 ; extra == 'gcp' - - odfpy >=1.4.1 ; extra == 'excel' - - openpyxl >=3.1.0 ; extra == 'excel' - - python-calamine >=0.1.7 ; extra == 'excel' - - pyxlsb >=1.0.10 ; extra == 'excel' - - xlrd >=2.0.1 ; extra == 'excel' - - xlsxwriter >=3.0.5 ; extra == 'excel' - - pyarrow >=10.0.1 ; extra == 'parquet' - - pyarrow >=10.0.1 ; extra == 'feather' - - tables >=3.8.0 ; extra == 'hdf5' - - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - - psycopg2 >=2.9.6 ; extra == 'postgresql' - - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' - - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - - beautifulsoup4 >=4.11.2 ; extra == 'html' - - html5lib >=1.1 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'xml' - - matplotlib >=3.6.3 ; extra == 'plot' - - jinja2 >=3.1.2 ; extra == 'output-formatting' - - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' - - qtpy >=2.3.0 ; extra == 'clipboard' - - zstandard >=0.19.0 ; extra == 'compression' - - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' - - adbc-driver-postgresql >=0.8.0 ; extra == 'all' - - adbc-driver-sqlite >=0.8.0 ; extra == 'all' - - beautifulsoup4 >=4.11.2 ; extra == 'all' - - bottleneck >=1.3.6 ; extra == 'all' - - dataframe-api-compat >=0.1.7 ; extra == 'all' - - fastparquet >=2022.12.0 ; extra == 'all' - - fsspec >=2022.11.0 ; extra == 'all' - - gcsfs >=2022.11.0 ; extra == 'all' - - html5lib >=1.1 ; extra == 'all' - - hypothesis >=6.46.1 ; extra == 'all' - - jinja2 >=3.1.2 ; extra == 'all' - - lxml >=4.9.2 ; extra == 'all' - - matplotlib >=3.6.3 ; extra == 'all' - - numba >=0.56.4 ; extra == 'all' - - numexpr >=2.8.4 ; extra == 'all' - - odfpy >=1.4.1 ; extra == 'all' - - openpyxl >=3.1.0 ; extra == 'all' - - pandas-gbq >=0.19.0 ; extra == 'all' - - psycopg2 >=2.9.6 ; extra == 'all' - - pyarrow >=10.0.1 ; extra == 'all' - - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' - - pyreadstat >=1.2.0 ; extra == 'all' - - pytest >=7.3.2 ; extra == 'all' - - pytest-xdist >=2.2.0 ; extra == 'all' - - python-calamine >=0.1.7 ; extra == 'all' - - pyxlsb >=1.0.10 ; extra == 'all' - - qtpy >=2.3.0 ; extra == 'all' - - scipy >=1.10.0 ; extra == 'all' - - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' - - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: pandas - version: 2.2.0 - url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl#sha256=fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 + url: https://files.pythonhosted.org/packages/77/62/8e11962934e024a093758992bc82711e3e30efd5ea355cbfdc6e1ab5de76/pandas-2.2.0-cp311-cp311-win_amd64.whl sha256: fbc1b53c0e1fdf16388c33c3cca160f798d38aea2978004dd3f4d3dec56454c9 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' @@ -3023,12 +2443,12 @@ packages: - pyarrow >=10.0.1 ; extra == 'feather' - tables >=3.8.0 ; extra == 'hdf5' - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' - psycopg2 >=2.9.6 ; extra == 'postgresql' - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - beautifulsoup4 >=4.11.2 ; extra == 'html' @@ -3038,7 +2458,7 @@ packages: - matplotlib >=3.6.3 ; extra == 'plot' - jinja2 >=3.1.2 ; extra == 'output-formatting' - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' + - pyqt5 >=5.15.9 ; extra == 'clipboard' - qtpy >=2.3.0 ; extra == 'clipboard' - zstandard >=0.19.0 ; extra == 'compression' - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' @@ -3063,318 +2483,52 @@ packages: - psycopg2 >=2.9.6 ; extra == 'all' - pyarrow >=10.0.1 ; extra == 'all' - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' - pyreadstat >=1.2.0 ; extra == 'all' - pytest >=7.3.2 ; extra == 'all' - pytest-xdist >=2.2.0 ; extra == 'all' - python-calamine >=0.1.7 ; extra == 'all' - pyxlsb >=1.0.10 ; extra == 'all' - qtpy >=2.3.0 ; extra == 'all' - - scipy >=1.10.0 ; extra == 'all' - - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' - - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: pandas - version: 2.2.0 - url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 - requires_dist: - - numpy <2, >=1.22.4 ; python_version < '3.11' - - numpy <2, >=1.23.2 ; python_version == '3.11' - - numpy <2, >=1.26.0 ; python_version >= '3.12' - - python-dateutil >=2.8.2 - - pytz >=2020.1 - - tzdata >=2022.7 - - hypothesis >=6.46.1 ; extra == 'test' - - pytest >=7.3.2 ; extra == 'test' - - pytest-xdist >=2.2.0 ; extra == 'test' - - bottleneck >=1.3.6 ; extra == 'performance' - - numba >=0.56.4 ; extra == 'performance' - - numexpr >=2.8.4 ; extra == 'performance' - - scipy >=1.10.0 ; extra == 'computation' - - xarray >=2022.12.0 ; extra == 'computation' - - fsspec >=2022.11.0 ; extra == 'fss' - - s3fs >=2022.11.0 ; extra == 'aws' - - gcsfs >=2022.11.0 ; extra == 'gcp' - - pandas-gbq >=0.19.0 ; extra == 'gcp' - - odfpy >=1.4.1 ; extra == 'excel' - - openpyxl >=3.1.0 ; extra == 'excel' - - python-calamine >=0.1.7 ; extra == 'excel' - - pyxlsb >=1.0.10 ; extra == 'excel' - - xlrd >=2.0.1 ; extra == 'excel' - - xlsxwriter >=3.0.5 ; extra == 'excel' - - pyarrow >=10.0.1 ; extra == 'parquet' - - pyarrow >=10.0.1 ; extra == 'feather' - - tables >=3.8.0 ; extra == 'hdf5' - - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - - psycopg2 >=2.9.6 ; extra == 'postgresql' - - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' - - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - - beautifulsoup4 >=4.11.2 ; extra == 'html' - - html5lib >=1.1 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'xml' - - matplotlib >=3.6.3 ; extra == 'plot' - - jinja2 >=3.1.2 ; extra == 'output-formatting' - - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' - - qtpy >=2.3.0 ; extra == 'clipboard' - - zstandard >=0.19.0 ; extra == 'compression' - - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' - - adbc-driver-postgresql >=0.8.0 ; extra == 'all' - - adbc-driver-sqlite >=0.8.0 ; extra == 'all' - - beautifulsoup4 >=4.11.2 ; extra == 'all' - - bottleneck >=1.3.6 ; extra == 'all' - - dataframe-api-compat >=0.1.7 ; extra == 'all' - - fastparquet >=2022.12.0 ; extra == 'all' - - fsspec >=2022.11.0 ; extra == 'all' - - gcsfs >=2022.11.0 ; extra == 'all' - - html5lib >=1.1 ; extra == 'all' - - hypothesis >=6.46.1 ; extra == 'all' - - jinja2 >=3.1.2 ; extra == 'all' - - lxml >=4.9.2 ; extra == 'all' - - matplotlib >=3.6.3 ; extra == 'all' - - numba >=0.56.4 ; extra == 'all' - - numexpr >=2.8.4 ; extra == 'all' - - odfpy >=1.4.1 ; extra == 'all' - - openpyxl >=3.1.0 ; extra == 'all' - - pandas-gbq >=0.19.0 ; extra == 'all' - - psycopg2 >=2.9.6 ; extra == 'all' - - pyarrow >=10.0.1 ; extra == 'all' - - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' - - pyreadstat >=1.2.0 ; extra == 'all' - - pytest >=7.3.2 ; extra == 'all' - - pytest-xdist >=2.2.0 ; extra == 'all' - - python-calamine >=0.1.7 ; extra == 'all' - - pyxlsb >=1.0.10 ; extra == 'all' - - qtpy >=2.3.0 ; extra == 'all' - - scipy >=1.10.0 ; extra == 'all' - - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' - - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: pandas - version: 2.2.0 - url: https://files.pythonhosted.org/packages/ac/6b/11c0e4f5dec878a5eca77aa3b24215c49d2eda8d2cfd654a3f03a9f9d33a/pandas-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl#sha256=a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - sha256: a1b438fa26b208005c997e78672f1aa8138f67002e833312e6230f3e57fa87d5 - requires_dist: - - numpy <2, >=1.22.4 ; python_version < '3.11' - - numpy <2, >=1.23.2 ; python_version == '3.11' - - numpy <2, >=1.26.0 ; python_version >= '3.12' - - python-dateutil >=2.8.2 - - pytz >=2020.1 - - tzdata >=2022.7 - - hypothesis >=6.46.1 ; extra == 'test' - - pytest >=7.3.2 ; extra == 'test' - - pytest-xdist >=2.2.0 ; extra == 'test' - - bottleneck >=1.3.6 ; extra == 'performance' - - numba >=0.56.4 ; extra == 'performance' - - numexpr >=2.8.4 ; extra == 'performance' - - scipy >=1.10.0 ; extra == 'computation' - - xarray >=2022.12.0 ; extra == 'computation' - - fsspec >=2022.11.0 ; extra == 'fss' - - s3fs >=2022.11.0 ; extra == 'aws' - - gcsfs >=2022.11.0 ; extra == 'gcp' - - pandas-gbq >=0.19.0 ; extra == 'gcp' - - odfpy >=1.4.1 ; extra == 'excel' - - openpyxl >=3.1.0 ; extra == 'excel' - - python-calamine >=0.1.7 ; extra == 'excel' - - pyxlsb >=1.0.10 ; extra == 'excel' - - xlrd >=2.0.1 ; extra == 'excel' - - xlsxwriter >=3.0.5 ; extra == 'excel' - - pyarrow >=10.0.1 ; extra == 'parquet' - - pyarrow >=10.0.1 ; extra == 'feather' - - tables >=3.8.0 ; extra == 'hdf5' - - pyreadstat >=1.2.0 ; extra == 'spss' - - SQLAlchemy >=2.0.0 ; extra == 'postgresql' - - psycopg2 >=2.9.6 ; extra == 'postgresql' - - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' - - SQLAlchemy >=2.0.0 ; extra == 'mysql' - - pymysql >=1.0.2 ; extra == 'mysql' - - SQLAlchemy >=2.0.0 ; extra == 'sql-other' - - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' - - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' - - beautifulsoup4 >=4.11.2 ; extra == 'html' - - html5lib >=1.1 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'html' - - lxml >=4.9.2 ; extra == 'xml' - - matplotlib >=3.6.3 ; extra == 'plot' - - jinja2 >=3.1.2 ; extra == 'output-formatting' - - tabulate >=0.9.0 ; extra == 'output-formatting' - - PyQt5 >=5.15.9 ; extra == 'clipboard' - - qtpy >=2.3.0 ; extra == 'clipboard' - - zstandard >=0.19.0 ; extra == 'compression' - - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' - - adbc-driver-postgresql >=0.8.0 ; extra == 'all' - - adbc-driver-sqlite >=0.8.0 ; extra == 'all' - - beautifulsoup4 >=4.11.2 ; extra == 'all' - - bottleneck >=1.3.6 ; extra == 'all' - - dataframe-api-compat >=0.1.7 ; extra == 'all' - - fastparquet >=2022.12.0 ; extra == 'all' - - fsspec >=2022.11.0 ; extra == 'all' - - gcsfs >=2022.11.0 ; extra == 'all' - - html5lib >=1.1 ; extra == 'all' - - hypothesis >=6.46.1 ; extra == 'all' - - jinja2 >=3.1.2 ; extra == 'all' - - lxml >=4.9.2 ; extra == 'all' - - matplotlib >=3.6.3 ; extra == 'all' - - numba >=0.56.4 ; extra == 'all' - - numexpr >=2.8.4 ; extra == 'all' - - odfpy >=1.4.1 ; extra == 'all' - - openpyxl >=3.1.0 ; extra == 'all' - - pandas-gbq >=0.19.0 ; extra == 'all' - - psycopg2 >=2.9.6 ; extra == 'all' - - pyarrow >=10.0.1 ; extra == 'all' - - pymysql >=1.0.2 ; extra == 'all' - - PyQt5 >=5.15.9 ; extra == 'all' - - pyreadstat >=1.2.0 ; extra == 'all' - - pytest >=7.3.2 ; extra == 'all' - - pytest-xdist >=2.2.0 ; extra == 'all' - - python-calamine >=0.1.7 ; extra == 'all' - - pyxlsb >=1.0.10 ; extra == 'all' - - qtpy >=2.3.0 ; extra == 'all' - - scipy >=1.10.0 ; extra == 'all' - - s3fs >=2022.11.0 ; extra == 'all' - - SQLAlchemy >=2.0.0 ; extra == 'all' - - tables >=3.8.0 ; extra == 'all' - - tabulate >=0.9.0 ; extra == 'all' - - xarray >=2022.12.0 ; extra == 'all' - - xlrd >=2.0.1 ; extra == 'all' - - xlsxwriter >=3.0.5 ; extra == 'all' - - zstandard >=0.19.0 ; extra == 'all' - requires_python: '>=3.9' -- kind: pypi - name: parso - version: 0.8.3 - url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl#sha256=c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - sha256: c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 - requires_dist: - - flake8 ==3.8.3 ; extra == 'qa' - - mypy ==0.782 ; extra == 'qa' - - docopt ; extra == 'testing' - - pytest <6.0.0 ; extra == 'testing' - requires_python: '>=3.6' -- kind: pypi - name: pathspec - version: 0.12.1 - url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl#sha256=a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - sha256: a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 - requires_python: '>=3.8' -- kind: pypi - name: pexpect - version: 4.9.0 - url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl#sha256=7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 - requires_dist: - - ptyprocess >=0.5 -- kind: pypi - name: pillow - version: 10.2.0 - url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl#sha256=9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 - sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 - requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx >=2.4 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinx-removed-in ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - check-manifest ; extra == 'tests' - - coverage ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - pyroma ; extra == 'tests' - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - typing-extensions ; python_version < '3.10' and extra == 'typing' - - defusedxml ; extra == 'xmp' - requires_python: '>=3.8' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' - kind: pypi - name: pillow - version: 10.2.0 - url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl#sha256=1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 - sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + name: parso + version: 0.8.3 + url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + sha256: c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx >=2.4 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinx-removed-in ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - check-manifest ; extra == 'tests' - - coverage ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - pyroma ; extra == 'tests' - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - typing-extensions ; python_version < '3.10' and extra == 'typing' - - defusedxml ; extra == 'xmp' + - flake8 ==3.8.3 ; extra == 'qa' + - mypy ==0.782 ; extra == 'qa' + - docopt ; extra == 'testing' + - pytest <6.0.0 ; extra == 'testing' + requires_python: '>=3.6' +- kind: pypi + name: pathspec + version: 0.12.1 + url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + sha256: a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 requires_python: '>=3.8' - kind: pypi - name: pillow - version: 10.2.0 - url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e - sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + name: pexpect + version: 4.9.0 + url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx >=2.4 ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinx-removed-in ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - check-manifest ; extra == 'tests' - - coverage ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - pyroma ; extra == 'tests' - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - typing-extensions ; python_version < '3.10' and extra == 'typing' - - defusedxml ; extra == 'xmp' - requires_python: '>=3.8' + - ptyprocess >=0.5 - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl#sha256=35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 - sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3401,7 +2555,7 @@ packages: - kind: pypi name: platformdirs version: 4.2.0 - url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl#sha256=0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl sha256: 0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 requires_dist: - furo >=2023.9.10 ; extra == 'docs' @@ -3416,52 +2570,39 @@ packages: requires_python: '>=3.8' - kind: pypi name: plot-antenna - version: '1.7' - url: https://files.pythonhosted.org/packages/52/79/47b50804b18e3aef1bef6d7f317cecb7cf07c28665868a7543c5c1dc335b/plot-antenna-1.7.tar.gz#sha256=ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 - sha256: ab58a77acab213a1b50a0c40cc848d1c2c470af26a126c2e210135392b638580 + version: '1.8' + url: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + sha256: f12c4cb90dea3fa0e41e904e4595959d727d933aa3292fbc89d1f9b15249bf48 requires_dist: - matplotlib - numpy - pandas - plotly - - pysmithplot @ git+https://github.com/schlatterbeck/pySmithPlot.git - pytest ; extra == 'test' - kaleido ; extra == 'test' requires_python: '>=3.7' - kind: pypi name: plotly - version: 5.18.0 - url: https://files.pythonhosted.org/packages/a8/07/72953cf70e3bd3a24cbc3e743e6f8539abe6e3e6d83c3c0c83426eaffd39/plotly-5.18.0-py3-none-any.whl#sha256=23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de - sha256: 23aa8ea2f4fb364a20d34ad38235524bd9d691bf5299e800bca608c31e8db8de + version: 5.19.0 + url: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + sha256: 906abcc5f15945765328c5d47edaa884bc99f5985fbc61e8cd4dc361f4ff8f5a requires_dist: - tenacity >=6.2.0 - packaging - requires_python: '>=3.6' + requires_python: '>=3.8' - kind: pypi name: prompt-toolkit version: 3.0.43 - url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl#sha256=a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl sha256: a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 requires_dist: - wcwidth requires_python: '>=3.7.0' - kind: pypi name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/b3/81/0017aefacf23273d4efd1154ef958a27eed9c177c4cc09d2d4ba398fb47f/protobuf-4.25.2-cp37-abi3-macosx_10_9_universal2.whl#sha256=2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - sha256: 2db9f8fa64fbdcdc93767d3cf81e0f2aef176284071507e3ede160811502fd3d - requires_python: '>=3.8' -- kind: pypi - name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/c1/00/c3ae19cabb36cfabc94ff0b102aac21b471c9f91a1357f8aafffb9efe8e0/protobuf-4.25.2-cp310-abi3-win_amd64.whl#sha256=8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - sha256: 8f62574857ee1de9f770baf04dde4165e30b15ad97ba03ceac65f760ff018ac9 - requires_python: '>=3.8' -- kind: pypi - name: protobuf - version: 4.25.2 - url: https://files.pythonhosted.org/packages/81/9e/63501b8d5b4e40c7260049836bd15ec3270c936e83bc57b85e4603cc212c/protobuf-4.25.2-cp37-abi3-manylinux2014_x86_64.whl#sha256=fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 - sha256: fc381d1dd0516343f1440019cedf08a7405f791cd49eef4ae1ea06520bc1c020 + version: 4.25.3 + url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 requires_python: '>=3.8' - kind: conda name: pthreads-win32 @@ -3480,25 +2621,25 @@ packages: - kind: pypi name: ptyprocess version: 0.7.0 - url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 + url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl sha256: 4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 - kind: pypi name: pure-eval version: 0.2.2 - url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl#sha256=01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl sha256: 01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 requires_dist: - pytest ; extra == 'tests' - kind: pypi name: pyasn1 version: 0.5.1 - url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl#sha256=4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl sha256: 4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7' - kind: pypi name: pyasn1-modules version: 0.3.0 - url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl#sha256=d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl sha256: d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d requires_dist: - pyasn1 <0.6.0, >=0.4.6 @@ -3506,21 +2647,7 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl#sha256=14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c - requires_dist: - - numpy - - pysdl2 - - pysdl2-dll - - pyopengl ; extra == 'all' - - markdown ; extra == 'all' - - pdoc3 ; extra == 'all' - - gym ; extra == 'all' - requires_python: '>=3.8' -- kind: pypi - name: pyboy - version: 1.6.6 - url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl#sha256=bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c + url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl sha256: bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c requires_dist: - numpy @@ -3531,29 +2658,15 @@ packages: - pdoc3 ; extra == 'all' - gym ; extra == 'all' requires_python: '>=3.8' -- kind: pypi - name: pyboy - version: 1.6.6 - url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl#sha256=4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 - sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 - requires_dist: - - numpy - - pysdl2 - - pysdl2-dll - - pyopengl ; extra == 'all' - - markdown ; extra == 'all' - - pdoc3 ; extra == 'all' - - gym ; extra == 'all' - requires_python: '>=3.8' - kind: pypi name: pycosat version: 0.6.6 - url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz#sha256=a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff + url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz sha256: a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff - kind: pypi name: pygments version: 2.17.2 - url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl#sha256=b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl sha256: b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c requires_dist: - importlib-metadata ; python_version < '3.8' and extra == 'plugins' @@ -3562,12 +2675,12 @@ packages: - kind: pypi name: pyliblzfse version: 0.4.1 - url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz#sha256=bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d + url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz sha256: bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d - kind: pypi name: pyparsing version: 3.1.1 - url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl#sha256=32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl sha256: 32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb requires_dist: - railroad-diagrams ; extra == 'diagrams' @@ -3576,48 +2689,28 @@ packages: - kind: pypi name: pysdl2 version: 0.9.16 - url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz#sha256=1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 + url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz sha256: 1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl#sha256=2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 -- kind: pypi - name: pysdl2-dll - version: 2.30.0 - url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl#sha256=79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 + url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 -- kind: pypi - name: pysdl2-dll - version: 2.30.0 - url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl#sha256=d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e - sha256: d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e -- kind: pypi - name: pysmithplot - version: 0.2.0 - url: git+https://github.com/schlatterbeck/pySmithPlot.git - sha256: 0da5fe6b19902c9f296544e2bfaab9d1e0d142d3bf576771d53d10f54830c12b - requires_dist: - - matplotlib >=1.2.0 - - numpy - - scipy - kind: conda name: python - version: 3.11.7 - build: h2628c8c_1_cpython - build_number: 1 + version: 3.11.8 + build: h2628c8c_0_cpython subdir: win-64 - url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.7-h2628c8c_1_cpython.conda - sha256: 668e9fd58e627c823e6e9d791e1fb8b372c76b5704a0c3b0cc94b3a34f5be582 - md5: c2f9a938fca6aa621b44afc8f5db79ab + url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.8-h2628c8c_0_cpython.conda + sha256: 8b2db64acfd351f4281d75465b09109f4b51096d5e58128cb7a4c1d2ade47203 + md5: 5af649cf283ec4c1ffff5c4fe0cec12b depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.5.0,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - ucrt >=10.0.20348.0 @@ -3627,25 +2720,24 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 18191531 - timestamp: 1703342117253 + size: 18096526 + timestamp: 1708116524168 - kind: conda name: python - version: 3.11.7 - build: h9f0c242_1_cpython - build_number: 1 + version: 3.11.8 + build: h9f0c242_0_cpython subdir: osx-64 - url: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.7-h9f0c242_1_cpython.conda - sha256: d234064dffa64715cf0a3f6c6a3665ead193f5a898614691b08d9c5afcdf11cc - md5: 686f211dcfbb8d27c6fe1ca905870189 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.8-h9f0c242_0_cpython.conda + sha256: 645dad20b46041ecd6a85eccbb3291fa1ad7921eea065c0081efff78c3d7e27a + md5: 22bda10a0f425564a538aed9a0e8a9df depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.5.0,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libzlib >=1.2.13,<1.3.0a0 - ncurses >=6.4,<7.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -3653,17 +2745,16 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 15452269 - timestamp: 1703343492323 + size: 14067894 + timestamp: 1708117836907 - kind: conda name: python - version: 3.11.7 - build: hab00c5b_1_cpython - build_number: 1 + version: 3.11.8 + build: hab00c5b_0_cpython subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.7-hab00c5b_1_cpython.conda - sha256: 8266801d3f21ae3018b997dcd05503b034016a3335aa3ab5b8c3f482af1e6580 - md5: 27cf681282c11dba7b0b1fd266e8f289 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda + sha256: f33559d7127b6a892854bc3b2b4be1406c3be9537d658cb13edae57c8c0b5a11 + md5: 2fdc314ee058eda0114738a9309d3683 depends: - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 @@ -3671,12 +2762,12 @@ packages: - libffi >=3.4,<4.0a0 - libgcc-ng >=12 - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libuuid >=2.38.1,<3.0a0 - libxcrypt >=4.4.36 - libzlib >=1.2.13,<1.3.0a0 - ncurses >=6.4,<7.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -3684,25 +2775,24 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 30830615 - timestamp: 1703344491543 + size: 30754113 + timestamp: 1708118457486 - kind: conda name: python - version: 3.11.7 - build: hdf0ec26_1_cpython - build_number: 1 + version: 3.11.8 + build: hdf0ec26_0_cpython subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.7-hdf0ec26_1_cpython.conda - sha256: 92ac26592b53ddb646237c0dd83fd073d2f181dd1553e7ac8428b4475ff5560b - md5: f0f1fcde592e067a5ca2187d6f232bd3 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda + sha256: 6c9bbac137759e013e6a50593c7cf10a06032fcb1ef3a994c598c7a95e73a8e1 + md5: 8f4076d960f17f19ae8b2f66727ea1c6 depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.5.0,<3.0a0 - libffi >=3.4,<4.0a0 - - libsqlite >=3.44.2,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 - libzlib >=1.2.13,<1.3.0a0 - ncurses >=6.4,<7.0a0 - - openssl >=3.2.0,<4.0a0 + - openssl >=3.2.1,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata @@ -3710,16 +2800,8 @@ packages: constrains: - python_abi 3.11.* *_cp311 license: Python-2.0 - size: 14567667 - timestamp: 1703342625860 -- kind: pypi - name: python-dateutil - version: 2.8.2 - url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl#sha256=961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - requires_dist: - - six >=1.5 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' + size: 14623079 + timestamp: 1708116925163 - kind: conda name: python_abi version: '3.11' @@ -3780,10 +2862,18 @@ packages: license_family: BSD size: 6755 timestamp: 1695147711935 +- kind: pypi + name: python-dateutil + version: 2.8.2 + url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + requires_dist: + - six >=1.5 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' - kind: pypi name: pytz version: '2024.1' - url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl#sha256=328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 + url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl sha256: 328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - kind: conda name: readline @@ -3834,20 +2924,20 @@ packages: - kind: pypi name: requests version: 2.31.0 - url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl#sha256=58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f requires_dist: - charset-normalizer <4, >=2 - idna <4, >=2.5 - urllib3 <3, >=1.21.1 - certifi >=2017.4.17 - - PySocks !=1.5.7, >=1.5.6 ; extra == 'socks' + - pysocks !=1.5.7, >=1.5.6 ; extra == 'socks' - chardet <6, >=3.0.2 ; extra == 'use_chardet_on_py3' requires_python: '>=3.7' - kind: pypi name: requests-oauthlib version: 1.3.1 - url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl#sha256=2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl sha256: 2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 requires_dist: - oauthlib >=3.0.0 @@ -3857,7 +2947,7 @@ packages: - kind: pypi name: rsa version: '4.9' - url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl#sha256=90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl sha256: 90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 requires_dist: - pyasn1 >=0.1.3 @@ -3971,16 +3061,16 @@ packages: - kind: pypi name: setuptools version: 69.1.0 - url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl#sha256=c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl sha256: c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 requires_dist: - sphinx >=3.5 ; extra == 'docs' - sphinx <7.2.5 ; extra == 'docs' - - jaraco.packaging >=9.3 ; extra == 'docs' - - rst.linker >=1.9 ; extra == 'docs' + - jaraco-packaging >=9.3 ; extra == 'docs' + - rst-linker >=1.9 ; extra == 'docs' - furo ; extra == 'docs' - sphinx-lint ; extra == 'docs' - - jaraco.tidelift >=1.4 ; extra == 'docs' + - jaraco-tidelift >=1.4 ; extra == 'docs' - pygments-github-lexers ==0.0.5 ; extra == 'docs' - sphinx-favicon ; extra == 'docs' - sphinx-inline-tabs ; extra == 'docs' @@ -3994,9 +3084,9 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing' - wheel ; extra == 'testing' - pip >=19.1 ; extra == 'testing' - - jaraco.envs >=2.2 ; extra == 'testing' + - jaraco-envs >=2.2 ; extra == 'testing' - pytest-xdist ; extra == 'testing' - - jaraco.path >=3.2.0 ; extra == 'testing' + - jaraco-path >=3.2.0 ; extra == 'testing' - build[virtualenv] ; extra == 'testing' - filelock >=3.4.0 ; extra == 'testing' - ini2toml[lite] >=0.9 ; extra == 'testing' @@ -4009,27 +3099,27 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing-integration' - tomli ; extra == 'testing-integration' - wheel ; extra == 'testing-integration' - - jaraco.path >=3.2.0 ; extra == 'testing-integration' - - jaraco.envs >=2.2 ; extra == 'testing-integration' + - jaraco-path >=3.2.0 ; extra == 'testing-integration' + - jaraco-envs >=2.2 ; extra == 'testing-integration' - build[virtualenv] >=1.0.3 ; extra == 'testing-integration' - filelock >=3.4.0 ; extra == 'testing-integration' - packaging >=23.1 ; extra == 'testing-integration' - pytest-cov ; platform_python_implementation != 'PyPy' and extra == 'testing' - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' - - jaraco.develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' + - jaraco-develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' - pytest-ruff >=0.2.1 ; sys_platform != 'cygwin' and extra == 'testing' - pytest-perf ; sys_platform != 'cygwin' and extra == 'testing' requires_python: '>=3.8' - kind: pypi name: six version: 1.16.0 - url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl#sha256=8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl sha256: 8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' - kind: pypi name: stack-data version: 0.6.3 - url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl#sha256=d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl sha256: d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 requires_dist: - executing >=1.2.0 @@ -4061,7 +3151,7 @@ packages: - kind: pypi name: tenacity version: 8.2.3 - url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl#sha256=ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl sha256: ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c requires_dist: - reno ; extra == 'doc' @@ -4071,7 +3161,7 @@ packages: - kind: pypi name: tensorboard version: 2.14.1 - url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl#sha256=3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl sha256: 3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 requires_dist: - absl-py >=0.4 @@ -4090,34 +3180,13 @@ packages: - kind: pypi name: tensorboard-data-server version: 0.7.2 - url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl#sha256=7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb requires_python: '>=3.7' - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - requires_dist: - - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl#sha256=0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 + url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 requires_dist: - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' @@ -4135,98 +3204,16 @@ packages: - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - tensorrt ==8.5.3.1 ; extra == 'and-cuda' requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa - requires_dist: - - absl-py >=1.0.0 - - astunparse >=1.6.0 - - flatbuffers >=23.5.26 - - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 - - google-pasta >=0.1.1 - - h5py >=2.9.0 - - libclang >=13.0.0 - - ml-dtypes ==0.2.0 - - numpy >=1.23.5 - - opt-einsum >=2.3.2 - - packaging - - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 - - setuptools - - six >=1.12.0 - - termcolor >=1.1.0 - - typing-extensions >=3.6.6 - - wrapt <1.15, >=1.11.0 - - tensorflow-io-gcs-filesystem >=0.23.1 - - grpcio <2.0, >=1.24.3 - - tensorboard <2.15, >=2.14 - - tensorflow-estimator <2.15, >=2.14.0 - - keras <2.15, >=2.14.0 - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl#sha256=00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 - requires_dist: - - absl-py >=1.0.0 - - astunparse >=1.6.0 - - flatbuffers >=23.5.26 - - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 - - google-pasta >=0.1.1 - - h5py >=2.9.0 - - libclang >=13.0.0 - - ml-dtypes ==0.2.0 - - numpy >=1.23.5 - - opt-einsum >=2.3.2 - - packaging - - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 - - setuptools - - six >=1.12.0 - - termcolor >=1.1.0 - - typing-extensions >=3.6.6 - - wrapt <1.15, >=1.11.0 - - tensorflow-io-gcs-filesystem >=0.23.1 - - grpcio <2.0, >=1.24.3 - - tensorboard <2.15, >=2.14 - - tensorflow-estimator <2.15, >=2.14.0 - - keras <2.15, >=2.14.0 - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' - kind: pypi name: tensorflow-estimator version: 2.14.0 - url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl#sha256=820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl sha256: 820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 requires_python: '>=3.7' - kind: pypi name: tensorflow-intel version: 2.14.0 - url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl#sha256=51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae + url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl sha256: 51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae requires_dist: - absl-py >=1.0.0 @@ -4266,7 +3253,7 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.31.0 - url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl#sha256=4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 + url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl sha256: 4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 requires_dist: - tensorflow <2.12.0, >=2.11.0 ; extra == 'tensorflow' @@ -4275,46 +3262,10 @@ packages: - tensorflow-gpu <2.12.0, >=2.11.0 ; extra == 'tensorflow-gpu' - tensorflow-rocm <2.12.0, >=2.11.0 ; extra == 'tensorflow-rocm' requires_python: '>=3.7,<3.12' -- kind: pypi - name: tensorflow-io-gcs-filesystem - version: 0.36.0 - url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 - sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 - requires_dist: - - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' - - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' - - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' - - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' - requires_python: '>=3.7,<3.12' -- kind: pypi - name: tensorflow-io-gcs-filesystem - version: 0.36.0 - url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 - requires_dist: - - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' - - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' - - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' - - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' - requires_python: '>=3.7,<3.12' -- kind: pypi - name: tensorflow-io-gcs-filesystem - version: 0.36.0 - url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl#sha256=72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 - requires_dist: - - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' - - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' - - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' - - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' - requires_python: '>=3.7,<3.12' - kind: pypi name: tensorflow-macos version: 2.14.0 - url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl#sha256=064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 + url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl sha256: 064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 requires_dist: - absl-py >=1.0.0 @@ -4354,7 +3305,7 @@ packages: - kind: pypi name: termcolor version: 2.4.0 - url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl#sha256=9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl sha256: 9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 requires_dist: - pytest ; extra == 'tests' @@ -4426,13 +3377,13 @@ packages: - kind: pypi name: tokenize-rt version: 5.2.0 - url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl#sha256=b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl sha256: b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 requires_python: '>=3.8' - kind: pypi name: traitlets version: 5.14.1 - url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl#sha256=2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl sha256: 2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 requires_dist: - myst-parser ; extra == 'docs' @@ -4448,7 +3399,7 @@ packages: - kind: pypi name: typing-extensions version: 4.9.0 - url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl#sha256=af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl sha256: af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd requires_python: '>=3.8' - kind: conda @@ -4479,9 +3430,9 @@ packages: timestamp: 1666630199266 - kind: pypi name: urllib3 - version: 2.2.0 - url: https://files.pythonhosted.org/packages/88/75/311454fd3317aefe18415f04568edc20218453b709c63c58b9292c71be17/urllib3-2.2.0-py3-none-any.whl#sha256=ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 - sha256: ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 + version: 2.2.1 + url: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + sha256: 450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d requires_dist: - brotli >=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli' - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli' @@ -4541,23 +3492,23 @@ packages: - kind: pypi name: wcwidth version: 0.2.13 - url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl#sha256=3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl sha256: 3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 requires_dist: - - backports.functools-lru-cache >=1.2.1 ; python_version < '3.2' + - backports-functools-lru-cache >=1.2.1 ; python_version < '3.2' - kind: pypi name: werkzeug version: 3.0.1 - url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl#sha256=90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl sha256: 90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 requires_dist: - - MarkupSafe >=2.1.1 + - markupsafe >=2.1.1 - watchdog >=2.3 ; extra == 'watchdog' requires_python: '>=3.8' - kind: pypi name: wheel version: 0.42.0 - url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl#sha256=177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl sha256: 177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d requires_dist: - pytest >=6.0.0 ; extra == 'test' @@ -4566,27 +3517,9 @@ packages: - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl#sha256=2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 - sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl#sha256=26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 + url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl#sha256=ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: conda name: xz version: 5.2.6 diff --git a/examples/pypi/pixi.toml b/examples/pypi/pixi.toml index 747b4e404..cb0cb5008 100644 --- a/examples/pypi/pixi.toml +++ b/examples/pypi/pixi.toml @@ -12,7 +12,7 @@ test = "python pycosat_example.py" [dependencies] python = "~=3.11.0" -numpy = "*" +numpy = "1.26.*" libclang = "~=16.0.6" scipy = "~=1.11.4" @@ -25,6 +25,7 @@ black = {version = "~=23.10", extras = ["jupyter"]} pyliblzfse = "*" pycosat = "*" plot-antenna = "==1.8" +numpy = "<1.26" [system-requirements] # Tensorflow on macOS arm64 requires macOS 12.0 or higher diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 8d8d83eda..ef9d83b48 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -5,6 +5,7 @@ use clap_complete; use clap_verbosity_flag::Verbosity; use miette::IntoDiagnostic; use std::{env, io::IsTerminal}; +use tracing_subscriber::prelude::__tracing_subscriber_SubscriberExt; use tracing_subscriber::{filter::LevelFilter, util::SubscriberInitExt, EnvFilter}; pub mod add; @@ -184,14 +185,27 @@ pub async fn execute() -> miette::Result<()> { ); // Setup the tracing subscriber - tracing_subscriber::fmt() + let fmt_layer = tracing_subscriber::fmt::layer() .with_ansi(use_colors) - .with_env_filter(env_filter) .with_writer(IndicatifWriter::new(progress::global_multi_progress())) - .without_time() - .finish() - .try_init() - .into_diagnostic()?; + .without_time(); + + cfg_if::cfg_if! { + if #[cfg(feature = "console-subscriber")] + { + let console_layer = console_subscriber::spawn(); + tracing_subscriber::registry() + .with(console_layer) + .with(env_filter) + .with(fmt_layer) + .init(); + } else { + tracing_subscriber::registry() + .with(env_filter) + .with(fmt_layer) + .init(); + } + } // Execute the command execute_command(args.command).await diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index 3bc0e6ab7..0ef1730aa 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -109,15 +109,15 @@ impl PypiPackageIdentifier { Ok(()) } - /// Given a list of conda package records, extract the python packages that will be installed - /// when these conda packages are installed. - pub fn from_records(records: &[RepoDataRecord]) -> Result, ConversionError> { - let mut result = Vec::new(); - for record in records { - Self::from_record_into(record, &mut result)?; - } - Ok(result) - } + // /// Given a list of conda package records, extract the python packages that will be installed + // /// when these conda packages are installed. + // pub fn from_records(records: &[RepoDataRecord]) -> Result, ConversionError> { + // let mut result = Vec::new(); + // for record in records { + // Self::from_record_into(record, &mut result)?; + // } + // Ok(result) + // } /// Tries to construct an instance from a generic PURL. /// diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 4e9d9f6bb..dff2f1fd8 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -4,8 +4,9 @@ use crate::config::get_cache_dir; use crate::consts::PROJECT_MANIFEST; -use std::collections::HashMap; -use std::future::Future; +use std::collections::{BTreeMap, HashMap}; +use std::future::{ready, Future}; +use std::iter::once; use crate::lock_file::{package_identifier, PypiPackageIdentifier}; use crate::pypi_marker_env::determine_marker_environment; @@ -15,16 +16,22 @@ use crate::{ project::manifest::{PyPiRequirement, SystemRequirements}, Project, }; +use distribution_filename::WheelFilename; +use distribution_types::Dist::Built; use distribution_types::{ - BuiltDist, Dist, FileLocation, IndexLocations, Name, Resolution, SourceDist, VersionOrUrl, + BuiltDist, DirectUrlBuiltDist, DirectUrlSourceDist, Dist, DistributionMetadata, FileLocation, + IndexLocations, Name, PrioritizedDist, Resolution, SourceDist, VersionOrUrl, + WheelCompatibility, }; +use futures::{FutureExt, TryFutureExt}; use indexmap::IndexMap; use indicatif::ProgressBar; -use itertools::Itertools; +use itertools::{Either, Itertools}; use miette::{Context, IntoDiagnostic}; use pep440_rs::{Operator, Version, VersionPattern, VersionSpecifier}; -use pep508_rs::Requirement; +use pep508_rs::{Requirement, VerbatimUrl}; use platform_host::Platform; +use pypi_types::Metadata21; use rattler_conda_types::{GenericVirtualPackage, MatchSpec, RepoDataRecord}; use rattler_digest::{parse_digest_from_hex, Md5, Sha256}; use rattler_lock::{PackageHashes, PypiPackageData, PypiPackageEnvironmentData}; @@ -34,13 +41,17 @@ use std::str::FromStr; use std::sync::Arc; use url::Url; use uv_cache::Cache; -use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; +use uv_client::{ + Connectivity, FlatDistributions, FlatIndex, FlatIndexClient, RegistryClient, + RegistryClientBuilder, +}; use uv_dispatch::BuildDispatch; use uv_distribution::{DistributionDatabase, Reporter}; use uv_interpreter::Interpreter; use uv_normalize::PackageName; use uv_resolver::{ - DefaultResolverProvider, InMemoryIndex, Manifest, Options, Resolver, ResolverProvider, + DefaultResolverProvider, InMemoryIndex, Manifest, Options, PackageVersionsResult, + PythonRequirement, Resolver, ResolverProvider, VersionMap, VersionsResponse, }; use uv_traits::{BuildContext, InFlight, NoBinary, NoBuild, SetupPyStrategy}; @@ -104,9 +115,13 @@ impl uv_resolver::ResolverReporter for ResolveReporter { self.0.set_message(format!("resolving {}{}", name, version)); } - fn on_complete(&self) {} + fn on_complete(&self) { + self.0.set_message(""); + } - fn on_build_start(&self, _dist: &SourceDist) -> usize { + fn on_build_start(&self, dist: &SourceDist) -> usize { + self.0 + .set_message(format!("building {}{}", dist.name(), dist.version_or_url())); 0 } @@ -119,31 +134,87 @@ impl uv_resolver::ResolverReporter for ResolveReporter { fn on_checkout_complete(&self, _url: &Url, _rev: &str, _index: usize) {} } -// struct CondaResolverProvider<'a, Context: BuildContext + Send + Sync> { -// fallback: DefaultResolverProvider<'a, Context>, -// conda_python_identifiers: Vec, -// } -// -// type PackageVersionsResult = Result; -// type WheelMetadataResult = Result<(Metadata21, Option), uv_distribution::Error>; -// -// impl<'a, Context: BuildContext + Send + Sync> ResolverProvider for CondaResolverProvider<'a, Context> { -// fn get_package_versions<'io>(&'io self, package_name: &'io PackageName) -> impl Future + Send + 'io { -// todo!() -// } -// -// fn get_or_build_wheel_metadata<'io>(&'io self, dist: &'io Dist) -> impl Future + Send + 'io { -// self.fallback.get_or_build_wheel_metadata(dist) -// } -// -// fn index_locations(&self) -> &IndexLocations { -// todo!() -// } -// -// fn with_reporter(self, reporter: impl Reporter + 'static) -> Self { -// todo!() -// } -// } +struct CondaResolverProvider<'a, Context: BuildContext + Send + Sync> { + fallback: DefaultResolverProvider<'a, Context>, + conda_python_identifiers: &'a HashMap, +} + +impl<'a, Context: BuildContext + Send + Sync> ResolverProvider + for CondaResolverProvider<'a, Context> +{ + fn get_package_versions<'io>( + &'io self, + package_name: &'io PackageName, + ) -> impl Future + Send + 'io { + if let Some((repodata_record, identifier)) = self.conda_python_identifiers.get(package_name) + { + // If we encounter a package that was installed by conda we simply return a single + // available version in the form of a source distribution with the URL of the + // conda package. + // + // Obviously this is not a valid source distribution but it easies debugging. + let dist = Dist::Source(SourceDist::DirectUrl(DirectUrlSourceDist { + name: identifier.name.clone(), + url: VerbatimUrl::unknown(repodata_record.url.clone()), + })); + + let prioritized_dist = + PrioritizedDist::from_source(dist, None, Default::default(), None); + + return ready(Ok(VersionsResponse::Found(VersionMap::from( + BTreeMap::from_iter([(identifier.version.clone(), prioritized_dist)]), + )))) + .right_future(); + } + + // Otherwise use the default implementation + self.fallback + .get_package_versions(package_name) + .left_future() + } + + fn get_or_build_wheel_metadata<'io>( + &'io self, + dist: &'io Dist, + ) -> impl Future + Send + 'io { + if let Dist::Source(SourceDist::DirectUrl(DirectUrlSourceDist { url, name })) = dist { + if let Some((_, iden)) = self.conda_python_identifiers.get(name) { + /// If this is a Source dist and the package is actually installed by conda we + /// create fake metadata with no dependencies. We assume that all conda installed + /// packages are properly installed including its dependencies. + return ready(Ok(( + Metadata21 { + metadata_version: "1.0".to_string(), + name: name.clone(), + version: iden.version.clone(), + requires_dist: vec![], + requires_python: None, + // TODO: This field is not actually properly used. + provides_extras: iden.extras.iter().cloned().collect(), + }, + Some(url.to_url()), + ))) + .left_future(); + } + } + + // Otherwise just call the default implementation + self.fallback + .get_or_build_wheel_metadata(dist) + .right_future() + } + + fn index_locations(&self) -> &IndexLocations { + self.fallback.index_locations() + } + + fn with_reporter(mut self, reporter: impl Reporter + 'static) -> Self { + Self { + fallback: self.fallback.with_reporter(reporter), + ..self + } + } +} fn single_version_requirement(name: PackageName, version: Version) -> Requirement { Requirement { @@ -178,13 +249,20 @@ pub async fn resolve_pypi( // Determine which pypi packages are already installed as conda package. // Determine the python packages that are installed by the conda packages - let conda_python_packages = - package_identifier::PypiPackageIdentifier::from_records(locked_conda_records) - .into_diagnostic() - .context("failed to extract python packages from conda metadata")? - .into_iter() - .map(|p| (p.name.clone(), p)) - .collect::>(); + let conda_python_packages = locked_conda_records + .iter() + .flat_map(|record| { + package_identifier::PypiPackageIdentifier::from_record(record).map_or_else( + |err| Either::Right(once(Err(err))), + |identifiers| { + Either::Left(identifiers.into_iter().map(|i| Ok((record.clone(), i)))) + }, + ) + }) + .map_ok(|(record, p)| (p.name.clone(), (record.clone(), p))) + .collect::, _>>() + .into_diagnostic() + .context("failed to extract python packages from conda metadata")?; if !conda_python_packages.is_empty() { tracing::info!( @@ -192,7 +270,7 @@ pub async fn resolve_pypi( conda_python_packages = conda_python_packages .values() - .format_with(", ", |p, f| f(&format_args!( + .format_with(", ", |(_, p), f| f(&format_args!( "{name} {version}", name = &p.name, version = &p.version @@ -256,7 +334,14 @@ pub async fn resolve_pypi( let constraints = conda_python_packages .values() - .map(|p| single_version_requirement(p.name.clone(), p.version.clone())) + .map(|(repo, p)| Requirement { + name: p.name.clone(), + extras: vec![], + version_or_url: Some(pep508_rs::VersionOrUrl::Url(VerbatimUrl::unknown( + repo.url.clone(), + ))), + marker: None, + }) .collect(); let preferences = locked_pypi_records @@ -264,23 +349,42 @@ pub async fn resolve_pypi( .map(|p| single_version_requirement(p.0.name.clone(), p.0.version.clone())) .collect(); - let resolution = Resolver::new( - Manifest::new( - requirements, - constraints, - Vec::new(), - preferences, - None, - Vec::new(), - ), - options.clone(), - &marker_environment, - &interpreter, - &tags, + let manifest = Manifest::new( + requirements, + // Vec::new(), + constraints, + Vec::new(), + preferences, + None, + Vec::new(), + ); + + let fallback_provider = DefaultResolverProvider::new( &context.registry_client, + DistributionDatabase::new( + &context.cache, + &tags, + &context.registry_client, + &build_dispatch, + ), &flat_index, + &tags, + PythonRequirement::new(&interpreter, &marker_environment), + options.exclude_newer, + build_dispatch.no_binary(), + ); + let provider = CondaResolverProvider { + fallback: fallback_provider, + conda_python_identifiers: &conda_python_packages, + }; + + let resolution = Resolver::new_custom_io( + manifest, + options, + &marker_environment, + PythonRequirement::new(&interpreter, &marker_environment), &context.in_memory_index, - &build_dispatch, + provider, ) .into_diagnostic() .context("failed to resolve pypi dependencies")? @@ -292,9 +396,6 @@ pub async fn resolve_pypi( let resolution = Resolution::from(resolution); - // Clear message - pb.set_message(""); - let database = DistributionDatabase::new( &context.cache, &tags, From e7dad83582fb5929f82311332a909c4dad247635 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Thu, 22 Feb 2024 14:00:18 +0100 Subject: [PATCH 32/55] fix: Cargo.toml again --- Cargo.lock | 89 +++++++++++++++++++----------------------------------- Cargo.toml | 20 +++++++----- 2 files changed, 43 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 14fe2b406..7af393781 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1046,7 +1046,7 @@ name = "distribution-filename" version = "0.0.1" source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9eebe9feffa94642d" dependencies = [ - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", "platform-tags", "rkyv", "serde", @@ -1067,8 +1067,8 @@ dependencies = [ "fs-err", "itertools", "once_cell", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "platform-tags", "pypi-types", "rkyv", @@ -1750,7 +1750,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -1909,7 +1909,7 @@ dependencies = [ "goblin", "mailparse", "once_cell", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", "platform-host", "platform-info", "plist", @@ -2757,18 +2757,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "pep440_rs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15efd4d885c29126cc93e12af3087896e2518bd5ca0fb328c19c4ef9cecfa8be" -dependencies = [ - "once_cell", - "serde", - "unicode-width", - "unscanny", -] - [[package]] name = "pep440_rs" version = "0.5.0" @@ -2782,23 +2770,6 @@ dependencies = [ "unscanny", ] -[[package]] -name = "pep508_rs" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1455babf8edd3eedcdfcb39700e455a4bb189e71b4f1fa0eacc9b244cc5a55e6" -dependencies = [ - "derivative", - "once_cell", - "pep440_rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex", - "serde", - "thiserror", - "unicode-width", - "url", - "urlencoding", -] - [[package]] name = "pep508_rs" version = "0.4.2" @@ -2806,7 +2777,7 @@ source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9 dependencies = [ "derivative", "once_cell", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", "regex", "rkyv", "serde", @@ -2936,6 +2907,7 @@ dependencies = [ "deno_task_shell", "dialoguer", "dirs", + "distribution-filename", "distribution-types", "dunce", "flate2", @@ -2954,10 +2926,11 @@ dependencies = [ "minijinja", "nix 0.27.1", "once_cell", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "platform-host", "platform-tags", + "pypi-types", "rattler", "rattler_conda_types", "rattler_digest", @@ -3213,8 +3186,8 @@ dependencies = [ "chrono", "mailparse", "once_cell", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "regex", "rkyv", "serde", @@ -3231,8 +3204,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898" dependencies = [ "indexmap 2.2.2", - "pep440_rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "pep508_rs 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "pep440_rs", + "pep508_rs", "serde", "toml", ] @@ -3395,8 +3368,8 @@ dependencies = [ "fxhash", "indexmap 2.2.2", "itertools", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "purl", "rattler_conda_types", "rattler_digest", @@ -3701,8 +3674,8 @@ source = "git+https://github.com/astral-sh/uv?tag=0.1.7#12462e57303d7071ccb0cee9 dependencies = [ "fs-err", "once_cell", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "regex", "serde", "thiserror", @@ -5115,7 +5088,7 @@ dependencies = [ "indoc", "itertools", "once_cell", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs", "platform-host", "pypi-types", "pyproject-toml", @@ -5171,8 +5144,8 @@ dependencies = [ "html-escape", "http", "install-wheel-rs", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "platform-tags", "pypi-types", "reqwest", @@ -5210,7 +5183,7 @@ dependencies = [ "futures", "gourgeist", "itertools", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs", "platform-host", "platform-tags", "pypi-types", @@ -5240,8 +5213,8 @@ dependencies = [ "futures", "install-wheel-rs", "nanoid", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "platform-tags", "pypi-types", "reqwest", @@ -5335,8 +5308,8 @@ dependencies = [ "futures", "install-wheel-rs", "once-map", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "platform-tags", "pypi-types", "rayon", @@ -5366,8 +5339,8 @@ dependencies = [ "cache-key", "fs-err", "once_cell", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "platform-host", "platform-tags", "regex", @@ -5414,8 +5387,8 @@ dependencies = [ "once-map", "once_cell", "owo-colors", - "pep440_rs 0.5.0 (git+https://github.com/astral-sh/uv?tag=0.1.7)", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep440_rs", + "pep508_rs", "petgraph", "platform-host", "platform-tags", @@ -5452,7 +5425,7 @@ dependencies = [ "anyhow", "distribution-types", "once-map", - "pep508_rs 0.4.2 (git+https://github.com/astral-sh/uv?tag=0.1.7)", + "pep508_rs", "tokio", "uv-cache", "uv-interpreter", diff --git a/Cargo.toml b/Cargo.toml index c6e09c24a..76f9617ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,7 +45,6 @@ console = { version = "0.15.8", features = ["windows-console-colors"] } deno_task_shell = "0.14.4" dialoguer = "0.11.0" dirs = "5.0.1" -distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } dunce = "1.0.4" flate2 = "1.0.28" futures = "0.3.30" @@ -54,7 +53,6 @@ humantime = "2.1.0" indexmap = { version = "2.2.2", features = ["serde"] } indicatif = "0.17.7" insta = { version = "1.34.0", features = ["yaml"] } -install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } is_executable = "1.0.1" itertools = "0.12.1" lazy_static = "1.4.0" @@ -68,10 +66,6 @@ miette = { version = "7.0.0", features = [ ] } minijinja = { version = "1.0.12", features = ["builtins"] } once_cell = "1.19.0" -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } -platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } rattler = { version = "0.18.0", default-features = false } rattler_conda_types = { version = "0.18.0", default-features = false } rattler_digest = { version = "0.18.0", default-features = false } @@ -90,6 +84,7 @@ rattler_virtual_packages = { version = "0.18.0", default-features = false } regex = "1.10.3" reqwest = { version = "0.11.24", default-features = false } reqwest-middleware = "0.2.4" +#rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rip", default-features = false } self-replace = "1.3.7" serde = "1.0.196" serde-untagged = "0.1.5" @@ -102,8 +97,6 @@ strsim = "0.10.0" tabwriter = { version = "1.4.0", features = ["ansi_formatting"] } tar = "0.4.40" tempfile = "3.10.0" -#rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rip", default-features = false } - thiserror = "1.0.57" tokio = { version = "1.36.0", features = [ "macros", @@ -115,6 +108,14 @@ toml_edit = { version = "0.21.1", features = ["serde"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" + +distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +distribution-filename = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } @@ -124,6 +125,7 @@ uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pypi-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } zip = { version = "0.6.6", default-features = false, features = [ "deflate", @@ -149,6 +151,8 @@ tokio = { version = "1.36.0", features = ["rt"] } toml = "0.8.10" [patch.crates-io] +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.7" } rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } From adbb0ed4db6ed3eaf02e7195a732022f599fea40 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Thu, 22 Feb 2024 14:20:50 +0100 Subject: [PATCH 33/55] fix: correct pixi.toml for example --- examples/pypi/pixi.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/pypi/pixi.toml b/examples/pypi/pixi.toml index cb0cb5008..acf1c4d64 100644 --- a/examples/pypi/pixi.toml +++ b/examples/pypi/pixi.toml @@ -25,7 +25,6 @@ black = {version = "~=23.10", extras = ["jupyter"]} pyliblzfse = "*" pycosat = "*" plot-antenna = "==1.8" -numpy = "<1.26" [system-requirements] # Tensorflow on macOS arm64 requires macOS 12.0 or higher From bd605f9a7510b5ee8bc29c919bcecf7871549e69 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Thu, 22 Feb 2024 20:34:18 +0100 Subject: [PATCH 34/55] bump: uv to 0.1.8 --- Cargo.lock | 37 ++++++++++++++++++++++++++ Cargo.toml | 78 +++++++++++++++++++++++++++--------------------------- 2 files changed, 76 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9fc96b6c1..93918046f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -675,6 +675,7 @@ dependencies = [ [[package]] name = "cache-key" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "hex", "seahash", @@ -1156,6 +1157,7 @@ dependencies = [ [[package]] name = "distribution-filename" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "pep440_rs", "platform-tags", @@ -1169,6 +1171,7 @@ dependencies = [ [[package]] name = "distribution-types" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anyhow", "cache-key", @@ -1672,6 +1675,7 @@ dependencies = [ [[package]] name = "gourgeist" version = "0.0.4" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anstream", "cachedir", @@ -2031,6 +2035,7 @@ dependencies = [ [[package]] name = "install-wheel-rs" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "clap", "configparser", @@ -2701,6 +2706,7 @@ dependencies = [ [[package]] name = "once-map" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "dashmap", "tokio", @@ -2907,6 +2913,7 @@ dependencies = [ [[package]] name = "pep440_rs" version = "0.5.0" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "once_cell", "pubgrub", @@ -2919,6 +2926,7 @@ dependencies = [ [[package]] name = "pep508_rs" version = "0.4.2" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "derivative", "once_cell", @@ -3140,6 +3148,7 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "platform-host" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "fs-err", "goblin", @@ -3166,6 +3175,7 @@ dependencies = [ [[package]] name = "platform-tags" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "platform-host", "rustc-hash", @@ -3358,6 +3368,7 @@ dependencies = [ [[package]] name = "pypi-types" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "chrono", "mailparse", @@ -3449,6 +3460,7 @@ dependencies = [ [[package]] name = "rattler" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "anyhow", "async-compression", @@ -3493,6 +3505,7 @@ dependencies = [ [[package]] name = "rattler_conda_types" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "chrono", "fxhash", @@ -3521,6 +3534,7 @@ dependencies = [ [[package]] name = "rattler_digest" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "blake2", "digest", @@ -3535,6 +3549,7 @@ dependencies = [ [[package]] name = "rattler_lock" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "chrono", "fxhash", @@ -3558,6 +3573,7 @@ dependencies = [ [[package]] name = "rattler_macros" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "quote", "syn 2.0.48", @@ -3566,6 +3582,7 @@ dependencies = [ [[package]] name = "rattler_networking" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "anyhow", "async-trait", @@ -3593,6 +3610,7 @@ dependencies = [ [[package]] name = "rattler_package_streaming" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "bzip2", "chrono", @@ -3618,6 +3636,7 @@ dependencies = [ [[package]] name = "rattler_repodata_gateway" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "anyhow", "async-compression", @@ -3656,6 +3675,7 @@ dependencies = [ [[package]] name = "rattler_shell" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "enum_dispatch", "indexmap 2.2.2", @@ -3672,6 +3692,7 @@ dependencies = [ [[package]] name = "rattler_solve" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "anyhow", "chrono", @@ -3691,6 +3712,7 @@ dependencies = [ [[package]] name = "rattler_virtual_packages" version = "0.18.0" +source = "git+https://github.com/baszalmstra/rattler?rev=e18356d674913385eb2c4ebb5a3407a329907409#e18356d674913385eb2c4ebb5a3407a329907409" dependencies = [ "cfg-if", "libloading", @@ -3835,6 +3857,7 @@ dependencies = [ [[package]] name = "requirements-txt" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "fs-err", "once_cell", @@ -5307,6 +5330,7 @@ dependencies = [ [[package]] name = "uv-build" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anyhow", "distribution-types", @@ -5336,6 +5360,7 @@ dependencies = [ [[package]] name = "uv-cache" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "cache-key", "cachedir", @@ -5356,6 +5381,7 @@ dependencies = [ [[package]] name = "uv-client" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "async-trait", "async_http_range_reader", @@ -5400,6 +5426,7 @@ dependencies = [ [[package]] name = "uv-dispatch" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anyhow", "distribution-types", @@ -5427,6 +5454,7 @@ dependencies = [ [[package]] name = "uv-distribution" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anyhow", "cache-key", @@ -5463,6 +5491,7 @@ dependencies = [ [[package]] name = "uv-extract" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "async-compression", "async_zip", @@ -5481,6 +5510,7 @@ dependencies = [ [[package]] name = "uv-fs" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "dunce", "fs-err", @@ -5495,6 +5525,7 @@ dependencies = [ [[package]] name = "uv-git" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anyhow", "base64 0.21.7", @@ -5519,6 +5550,7 @@ dependencies = [ [[package]] name = "uv-installer" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anyhow", "distribution-filename", @@ -5553,6 +5585,7 @@ dependencies = [ [[package]] name = "uv-interpreter" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "cache-key", "fs-err", @@ -5577,6 +5610,7 @@ dependencies = [ [[package]] name = "uv-normalize" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "rkyv", "serde", @@ -5585,6 +5619,7 @@ dependencies = [ [[package]] name = "uv-resolver" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anstream", "anyhow", @@ -5636,6 +5671,7 @@ dependencies = [ [[package]] name = "uv-traits" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anyhow", "distribution-types", @@ -5650,6 +5686,7 @@ dependencies = [ [[package]] name = "uv-warnings" version = "0.0.1" +source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" dependencies = [ "anstream", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 707a952cf..feb9dda4d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,23 +76,23 @@ tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } url = "2.5.0" -distribution-types = { path = "../uv/crates/distribution-types" } -distribution-filename = { path = "../uv/crates/distribution-filename" } -install-wheel-rs = { path = "../uv/crates/install-wheel-rs" } -pep440_rs = { path = "../uv/crates/pep440-rs" } -pep508_rs = { path = "../uv/crates/pep508-rs" } -uv-normalize = { path = "../uv/crates/uv-normalize" } -platform-host = { path = "../uv/crates/platform-host" } -platform-tags = { path = "../uv/crates/platform-tags" } -pypi-types = { path = "../uv/crates/pypi-types" } -uv-cache = { path = "../uv/crates/uv-cache" } -uv-client = { path = "../uv/crates/uv-client" } -uv-dispatch = { path = "../uv/crates/uv-dispatch" } -uv-distribution = { path = "../uv/crates/uv-distribution" } -uv-installer = { path = "../uv/crates/uv-installer" } -uv-interpreter = { path = "../uv/crates/uv-interpreter" } -uv-resolver = { path = "../uv/crates/uv-resolver" } -uv-traits = { path = "../uv/crates/uv-traits" } +distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +distribution-filename = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +install-wheel-rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-normalize = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +platform-host = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +platform-tags = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +pypi-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-cache = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-client = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-dispatch = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-distribution = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-installer = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-interpreter = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-resolver = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +uv-traits = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } console-subscriber = { version = "0.2.0", optional = true } @@ -112,29 +112,29 @@ tokio = { version = "1.36.0", features = ["rt"] } toml = "0.8.10" [patch.crates-io] -pep440_rs = { path = "../uv/crates/pep440-rs" } -pep508_rs = { path = "../uv/crates/pep508-rs" } +# For pyproject-toml +pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } + +rattler = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } +rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } -#rattler = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_digest = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_lock = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_networking = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "c4bb4826e46f09009c7dbe4caaed905e03263881" } -#rip = { package = "rattler_installs_packages", git = "https://github.com/prefix-dev/rattler_installs_packages", branch = "main"} -#resolvo = { git = "https://github.com/mamba-org/resolvo.git", branch = "main" } #deno_task_shell = { path = "../deno_task_shell" } -rattler = { path = "../rattler/crates/rattler" } -rattler_conda_types = { path = "../rattler/crates/rattler_conda_types" } -rattler_digest = { path = "../rattler/crates/rattler_digest" } -rattler_networking = { path = "../rattler/crates/rattler_networking" } -rattler_repodata_gateway = { path = "../rattler/crates/rattler_repodata_gateway" } -rattler_shell = { path = "../rattler/crates/rattler_shell" } -rattler_solve = { path = "../rattler/crates/rattler_solve" } -rattler_virtual_packages = { path = "../rattler/crates/rattler_virtual_packages" } -rattler_lock = { path = "../rattler/crates/rattler_lock" } +#rattler = { path = "../rattler/crates/rattler" } +#rattler_conda_types = { path = "../rattler/crates/rattler_conda_types" } +#rattler_digest = { path = "../rattler/crates/rattler_digest" } +#rattler_networking = { path = "../rattler/crates/rattler_networking" } +#rattler_repodata_gateway = { path = "../rattler/crates/rattler_repodata_gateway" } +#rattler_shell = { path = "../rattler/crates/rattler_shell" } +#rattler_solve = { path = "../rattler/crates/rattler_solve" } +#rattler_virtual_packages = { path = "../rattler/crates/rattler_virtual_packages" } +#rattler_lock = { path = "../rattler/crates/rattler_lock" } #rip = { package = "rattler_installs_packages", path = "../rip" } From 447d05713c4f6109b023eab94b24c7c01f48de3d Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Thu, 22 Feb 2024 15:44:21 +0100 Subject: [PATCH 35/55] wip: correctly install sdist --- src/install_pypi.rs | 46 ++++++++++++++++----------------------------- 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 70ab7f320..3f2c1c1f2 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -118,8 +118,11 @@ fn locked_data_to_file(pkg: &PypiPackageData) -> distribution_types::File { } fn convert_to_dist(pkg: &PypiPackageData) -> Dist { - let filename = DistFilename::try_from_normalized_filename(pkg.name.as_ref()) - .expect("could not convert to dist filename"); + tracing::warn!("{}", pkg.name.as_ref()); + let filename = DistFilename::try_from_normalized_filename(pkg.name.as_ref()).expect(&format!( + "{} - could not convert to dist filename", + pkg.name.as_ref() + )); // Bit of a hack to create the file type let file = locked_data_to_file(pkg); @@ -131,7 +134,7 @@ fn convert_to_dist(pkg: &PypiPackageData) -> Dist { /// and what we need to download from the registry. /// Also determine what we need to remove. /// Ignores re-installs for now. -pub fn whats_the_plan<'venv, 'a>( +fn whats_the_plan<'venv, 'a>( required: &'a [CombinedPypiPackageData], installed: &SitePackages<'venv>, registry_index: &'a mut RegistryWheelIndex<'a>, @@ -296,36 +299,14 @@ pub async fn update_python_distributions( &no_binary, ); - let site_packages = SitePackages::from_executable(&venv).unwrap(); - - let requirements = python_packages - .iter() - .map(|(pkg, _)| { - let name = pkg.name.clone(); - let version = pkg.version.clone(); - Requirement { - name, - version_or_url: Some(VersionOrUrl::VersionSpecifier( - VersionSpecifiers::from_str(&format!("=={}", version)).unwrap(), - )), - // TODO: add these - extras: vec![], - // TODO: add these - marker: None, - } - }) - .collect_vec(); - let _lock = venv.lock().into_diagnostic()?; // TODO: need to resolve editables? - // Partition into those that should be linked from the cache (`local`), those that need to be - // downloaded (`remote`), and those that should be removed (`extraneous`). - - // TODO: is it possible to use a cached resolve to actually avoid doing another resolve? let installed = SitePackages::from_executable(&venv).expect("could not create site-packages"); let mut registry_index = RegistryWheelIndex::new(&uv_context.cache, &tags, &uv_context.index_locations); + // Partition into those that should be linked from the cache (`local`), those that need to be + // downloaded (`remote`), and those that should be removed (`extraneous`). let PixiInstallPlan { local, remote, @@ -337,23 +318,28 @@ pub async fn update_python_distributions( &mut registry_index, &uv_context.cache, )?; - tracing::debug!( + tracing::warn!( "Resolved install plan: local={}, remote={}, reinstalls={}, extraneous={}", local.len(), remote.len(), reinstalls.len(), extraneous.len() ); + + for l in local.iter() { + tracing::warn!("{:?}", l); + } + // Nothing to do. if remote.is_empty() && local.is_empty() && reinstalls.is_empty() && extraneous.is_empty() { - let s = if requirements.len() == 1 { "" } else { "s" }; + let s = if python_packages.len() == 1 { "" } else { "s" }; tracing::debug!( "{}", format!( "Audited {} in {}", format!( "{num_requirements} package{s}", - num_requirements = requirements.len() + num_requirements = python_packages.len() ), elapsed(start.elapsed()) ) From 96539e6f4bdec826ea9bb22aafe110b5d6d7788c Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Fri, 23 Feb 2024 10:51:22 +0100 Subject: [PATCH 36/55] fix: use correct filename for install --- src/install_pypi.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 3f2c1c1f2..7b5b0c3eb 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -1,11 +1,7 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; -use std::io; - -use crate::EnvironmentName; use distribution_filename::DistFilename; -use itertools::Itertools; use miette::{IntoDiagnostic, WrapErr}; use uv_cache::Cache; @@ -72,7 +68,7 @@ struct PixiInstallPlan { } /// Converts our locked data to a file -fn locked_data_to_file(pkg: &PypiPackageData) -> distribution_types::File { +fn locked_data_to_file(pkg: &PypiPackageData, filename: &str) -> distribution_types::File { // Convert our url to a FileLocation let url = if pkg.url.scheme() == "file" { distribution_types::FileLocation::Path( @@ -106,7 +102,7 @@ fn locked_data_to_file(pkg: &PypiPackageData) -> distribution_types::File { }; distribution_types::File { - filename: pkg.name.as_ref().to_owned(), + filename: filename.to_string(), dist_info_metadata: None, hashes, requires_python: pkg.requires_python.clone(), @@ -118,14 +114,15 @@ fn locked_data_to_file(pkg: &PypiPackageData) -> distribution_types::File { } fn convert_to_dist(pkg: &PypiPackageData) -> Dist { - tracing::warn!("{}", pkg.name.as_ref()); - let filename = DistFilename::try_from_normalized_filename(pkg.name.as_ref()).expect(&format!( + // Extract last component from url + let filename_raw = pkg.url.path_segments().unwrap().last().unwrap(); + let filename = DistFilename::try_from_normalized_filename(filename_raw).expect(&format!( "{} - could not convert to dist filename", pkg.name.as_ref() )); // Bit of a hack to create the file type - let file = locked_data_to_file(pkg); + let file = locked_data_to_file(pkg, filename_raw); Dist::from_registry(filename, file, IndexUrl::Pypi) } @@ -330,6 +327,10 @@ pub async fn update_python_distributions( tracing::warn!("{:?}", l); } + for r in remote.iter() { + tracing::warn!("remote - {:?}", r); + } + // Nothing to do. if remote.is_empty() && local.is_empty() && reinstalls.is_empty() && extraneous.is_empty() { let s = if python_packages.len() == 1 { "" } else { "s" }; From e3760f66a1f1bb4dd15be1a7642ce02823079b09 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Fri, 23 Feb 2024 11:30:39 +0100 Subject: [PATCH 37/55] fix: does not re-install when not needed --- src/install_pypi.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 7b5b0c3eb..04efd09a6 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -146,7 +146,7 @@ fn whats_the_plan<'venv, 'a>( let installed = installed.iter().filter(|dist| { dist.installer() .unwrap_or_default() - .is_some_and(|installer| installer == "conda") + .is_some_and(|installer| installer != "conda") }); let mut extraneous = vec![]; @@ -155,6 +155,8 @@ fn whats_the_plan<'venv, 'a>( let mut reinstalls = vec![]; // TODO: Do something with editable packages + // TODO: Check WheelTag correctness for installed packages + // TODO: Add source dependency support // Walk over all installed packages and check if they are required for dist in installed { @@ -323,13 +325,13 @@ pub async fn update_python_distributions( extraneous.len() ); - for l in local.iter() { - tracing::warn!("{:?}", l); - } + // for l in local.iter() { + // tracing::warn!("{:?}", l); + // } - for r in remote.iter() { - tracing::warn!("remote - {:?}", r); - } + // for r in remote.iter() { + // tracing::warn!("remote - {:?}", r); + // } // Nothing to do. if remote.is_empty() && local.is_empty() && reinstalls.is_empty() && extraneous.is_empty() { From 2885f43d16383ed5ab53dd26c24a3176001b32b4 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Fri, 23 Feb 2024 16:38:52 +0100 Subject: [PATCH 38/55] wip: progress --- src/install_pypi.rs | 124 ++++++++++++++++++++++++++++++++++++++++++-- src/progress.rs | 29 ++++++++++- 2 files changed, 149 insertions(+), 4 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 04efd09a6..7e5fbdd2f 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -1,7 +1,9 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; +use crate::progress::{self, ProgressBarMessageFormatter, ScopedTask}; use distribution_filename::DistFilename; +use indicatif::ProgressBar; use miette::{IntoDiagnostic, WrapErr}; use uv_cache::Cache; @@ -17,8 +19,10 @@ use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; +use std::collections::HashMap; use std::str::FromStr; +use std::sync::Arc; use std::time::Duration; use uv_client::{FlatIndex, FlatIndexClient}; @@ -227,6 +231,120 @@ fn whats_the_plan<'venv, 'a>( }) } +fn create_progress(length: u64, message: &'static str) -> ProgressBar { + // Construct a progress bar to provide some indication on what is currently downloading. + // For instance if we could also show at what speed the downloads are progressing or the total + // size of the downloads that would really help the user I think. + let pb = progress::global_multi_progress().add(ProgressBar::new(length)); + pb.set_style(progress::default_progress_style()); + pb.set_prefix(message); + pb.enable_steady_tick(Duration::from_millis(100)); + pb +} + +/// Reports on download progress. +struct UvReporter { + pb: ProgressBar, + fmt: ProgressBarMessageFormatter, + scoped_tasks: Arc>>>, +} + +impl UvReporter { + fn new(length: u64, top_level_message: &'static str) -> Self { + let pb = create_progress(length, top_level_message); + let fmt = ProgressBarMessageFormatter::new(pb.clone()); + + Self { + pb, + fmt, + scoped_tasks: Arc::new(std::sync::Mutex::new(vec![])), + } + } + + fn lock(&self) -> std::sync::MutexGuard>> { + self.scoped_tasks.lock().expect("progress lock poison") + } + + fn start_sync(&self, message: String) -> usize { + let task = self.fmt.start_sync(message); + let mut lock = self.lock(); + lock.push(Some(task)); + lock.len() - 1 + } + + fn finish(&self, id: usize) { + let mut lock = self.lock(); + let len = lock.len(); + let task = lock + .get_mut(id) + .expect(&format!("progres bar error idx ({id}) > {len}")) + .take(); + if let Some(task) = task { + task.finish_sync(); + } + } + + fn finish_all(&self) { + self.pb.finish_and_clear() + } + + fn increment_progress(&self) { + self.pb.inc(1); + } +} + +impl uv_installer::DownloadReporter for UvReporter { + fn on_progress(&self, _dist: &CachedDist) { + self.increment_progress(); + } + + fn on_complete(&self) { + self.finish_all(); + } + + fn on_build_start(&self, dist: &distribution_types::SourceDist) -> usize { + self.start_sync(format!("building {}", dist.name().as_ref())) + } + + fn on_build_complete(&self, _dist: &distribution_types::SourceDist, id: usize) { + self.finish(id); + } + + fn on_editable_build_start(&self, dist: &distribution_types::LocalEditable) -> usize { + let path = dist.path.file_name(); + if let Some(path) = path { + self.start_sync(format!( + "building editable source {}", + path.to_string_lossy() + )) + } else { + self.start_sync("building editable source".to_string()) + } + } + + fn on_editable_build_complete(&self, dist: &distribution_types::LocalEditable, id: usize) { + self.finish(id); + } + + fn on_checkout_start(&self, url: &url::Url, rev: &str) -> usize { + self.start_sync(format!("cloning {}", url.to_string())) + } + + fn on_checkout_complete(&self, url: &url::Url, rev: &str, index: usize) { + self.finish(index); + } +} + +impl uv_installer::InstallReporter for UvReporter { + fn on_install_progress(&self, wheel: &CachedDist) { + self.increment_progress(); + } + + fn on_install_complete(&self) { + self.finish_all() + } +} + /// Installs and/or remove python distributions. // TODO: refactor arguments in struct #[allow(clippy::too_many_arguments)] @@ -269,7 +387,6 @@ pub async fn update_python_distributions( )?; // Resolve the flat indexes from `--find-links`. - let flat_index = { let client = FlatIndexClient::new(&uv_context.registry_client, &uv_context.cache); let entries = client @@ -361,7 +478,8 @@ pub async fn update_python_distributions( &tags, &uv_context.registry_client, &build_dispatch, - ); + ) + .with_reporter(UvReporter::new(remote.len() as u64, "Downloading")); let wheels = downloader .download(remote.clone(), &uv_context.in_flight) @@ -421,7 +539,7 @@ pub async fn update_python_distributions( let start = std::time::Instant::now(); uv_installer::Installer::new(&venv) .with_link_mode(LinkMode::default()) - // .with_reporter(InstallReporter::from(printer).with_length(wheels.len() as u64)) + .with_reporter(UvReporter::new(wheels.len() as u64, "Installing")) .install(&wheels) .unwrap(); diff --git a/src/progress.rs b/src/progress.rs index 485b00e00..341607fa0 100644 --- a/src/progress.rs +++ b/src/progress.rs @@ -138,6 +138,15 @@ impl ScopedTask { } self.pb.clone() } + /// Finishes the execution of the task. + pub fn finish_sync(mut self) -> ProgressBar { + // Send the finished operation. If this fails the receiving end was most likely already + // closed and we can just ignore the error. + if let Some(sender) = self.sender.take() { + let _ = sender.try_send(Operation::Finished(std::mem::take(&mut self.name))); + } + self.pb.clone() + } } impl ProgressBarMessageFormatter { @@ -163,7 +172,11 @@ impl ProgressBarMessageFormatter { } else if pending.len() == 1 { progress_bar.set_message(pending[0].clone()); } else { - progress_bar.set_message(format!("{} (+{})", pending[0], pending.len() - 1)); + progress_bar.set_message(format!( + "{} (+{})", + pending.back().unwrap(), + pending.len() - 1 + )); } } }); @@ -190,6 +203,20 @@ impl ProgressBarMessageFormatter { } } + /// Adds the start of another task to the progress bar and returns an object that is used to + /// mark the lifetime of the task. If the object is dropped the task is considered finished. + #[must_use] + pub fn start_sync(&self, op: String) -> ScopedTask { + self.sender + .try_send(Operation::Started(op.clone())) + .expect("could not send operation, channel full or closed"); + ScopedTask { + name: op, + sender: Some(self.sender.clone()), + pb: self.pb.clone(), + } + } + /// Wraps an future into a task which starts when the task starts and ends when the future /// returns. pub async fn wrap>(&self, name: impl Into, fut: F) -> T { From a90bd3f52df245c6cb5236cc1f670864ea52f1eb Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Fri, 23 Feb 2024 16:56:30 +0100 Subject: [PATCH 39/55] fix: dist finder --- examples/pypi/pixi.lock | 1268 +++++++++++++++++++++++++++++++++++--- src/install_pypi.rs | 5 +- src/lock_file/resolve.rs | 28 +- src/lock_file/update.rs | 11 +- 4 files changed, 1202 insertions(+), 110 deletions(-) diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index 58771839f..f1246c0cc 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -45,44 +45,76 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - - pypi: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/61/79618621c56244d4778811f98737af8be4af1c0b034261c270cdfbda0762/grpcio-1.62.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/47/1ccf9f62d2674d3ca3e95452c5f9dd114234d1535dec77c96528bf6a31fc/pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -90,7 +122,9 @@ environments: - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl osx-64: - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda @@ -126,51 +160,85 @@ environments: - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - pypi: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/d0/5911ad3cecb896588202e3e90bd97c0c7381718a6ccb2eaeebb70d7fe2ce/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_x86_64.whl - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d3/8a/4e997c40be25c54b4c46140175052c996a9ca99ae7f563dce29112e5dbcf/grpcio-1.62.0-cp311-cp311-macosx_10_10_universal2.whl - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda @@ -204,14 +272,16 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - - pypi: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl @@ -219,68 +289,66 @@ environments: - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/d3/8a/4e997c40be25c54b4c46140175052c996a9ca99ae7f563dce29112e5dbcf/grpcio-1.62.0-cp311-cp311-macosx_10_10_universal2.whl - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl @@ -324,7 +392,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz - - pypi: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl @@ -336,13 +404,15 @@ environments: - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/61/11/1812ef6cbd7433ad240f72161ce5f84c4c450cede4db080365d371d29117/pandas-2.2.1-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl @@ -354,17 +424,15 @@ environments: - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl @@ -374,12 +442,13 @@ environments: - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl @@ -388,11 +457,10 @@ environments: - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl @@ -477,6 +545,66 @@ packages: - tokenize-rt >=3.2.0 ; extra == 'jupyter' - uvloop >=0.15.2 ; extra == 'uvloop' requires_python: '>=3.8' +- kind: pypi + name: black + version: 23.12.1 + url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 + requires_dist: + - click >=8.0.0 + - mypy-extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 ; python_version < '3.11' + - typing-extensions >=4.0.1 ; python_version < '3.11' + - colorama >=0.4.3 ; extra == 'colorama' + - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' + - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' + - ipython >=7.8.0 ; extra == 'jupyter' + - tokenize-rt >=3.2.0 ; extra == 'jupyter' + - uvloop >=0.15.2 ; extra == 'uvloop' + requires_python: '>=3.8' +- kind: pypi + name: black + version: 23.12.1 + url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba + requires_dist: + - click >=8.0.0 + - mypy-extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 ; python_version < '3.11' + - typing-extensions >=4.0.1 ; python_version < '3.11' + - colorama >=0.4.3 ; extra == 'colorama' + - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' + - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' + - ipython >=7.8.0 ; extra == 'jupyter' + - tokenize-rt >=3.2.0 ; extra == 'jupyter' + - uvloop >=0.15.2 ; extra == 'uvloop' + requires_python: '>=3.8' +- kind: pypi + name: black + version: 23.12.1 + url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b + requires_dist: + - click >=8.0.0 + - mypy-extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 ; python_version < '3.11' + - typing-extensions >=4.0.1 ; python_version < '3.11' + - colorama >=0.4.3 ; extra == 'colorama' + - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' + - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' + - ipython >=7.8.0 ; extra == 'jupyter' + - tokenize-rt >=3.2.0 ; extra == 'jupyter' + - uvloop >=0.15.2 ; extra == 'uvloop' + requires_python: '>=3.8' - kind: pypi name: blinker version: 1.7.0 @@ -597,6 +725,24 @@ packages: url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 requires_python: '>=3.6' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 + requires_python: '>=3.7.0' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 + requires_python: '>=3.7.0' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 + requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer version: 3.3.2 @@ -618,6 +764,54 @@ packages: url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7' +- kind: pypi + name: contourpy + version: 1.2.0 + url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de + requires_dist: + - numpy <2.0, >=1.20 + - furo ; extra == 'docs' + - sphinx >=7.2 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - bokeh ; extra == 'bokeh' + - selenium ; extra == 'bokeh' + - contourpy[bokeh,docs] ; extra == 'mypy' + - docutils-stubs ; extra == 'mypy' + - mypy ==1.6.1 ; extra == 'mypy' + - types-pillow ; extra == 'mypy' + - contourpy[test-no-images] ; extra == 'test' + - matplotlib ; extra == 'test' + - pillow ; extra == 'test' + - pytest ; extra == 'test-no-images' + - pytest-cov ; extra == 'test-no-images' + - pytest-xdist ; extra == 'test-no-images' + - wurlitzer ; extra == 'test-no-images' + requires_python: '>=3.9' +- kind: pypi + name: contourpy + version: 1.2.0 + url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 + requires_dist: + - numpy <2.0, >=1.20 + - furo ; extra == 'docs' + - sphinx >=7.2 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - bokeh ; extra == 'bokeh' + - selenium ; extra == 'bokeh' + - contourpy[bokeh,docs] ; extra == 'mypy' + - docutils-stubs ; extra == 'mypy' + - mypy ==1.6.1 ; extra == 'mypy' + - types-pillow ; extra == 'mypy' + - contourpy[test-no-images] ; extra == 'test' + - matplotlib ; extra == 'test' + - pillow ; extra == 'test' + - pytest ; extra == 'test-no-images' + - pytest-cov ; extra == 'test-no-images' + - pytest-xdist ; extra == 'test-no-images' + - wurlitzer ; extra == 'test-no-images' + requires_python: '>=3.9' - kind: pypi name: contourpy version: 1.2.0 @@ -642,6 +836,30 @@ packages: - pytest-xdist ; extra == 'test-no-images' - wurlitzer ; extra == 'test-no-images' requires_python: '>=3.9' +- kind: pypi + name: contourpy + version: 1.2.0 + url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd + requires_dist: + - numpy <2.0, >=1.20 + - furo ; extra == 'docs' + - sphinx >=7.2 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - bokeh ; extra == 'bokeh' + - selenium ; extra == 'bokeh' + - contourpy[bokeh,docs] ; extra == 'mypy' + - docutils-stubs ; extra == 'mypy' + - mypy ==1.6.1 ; extra == 'mypy' + - types-pillow ; extra == 'mypy' + - contourpy[test-no-images] ; extra == 'test' + - matplotlib ; extra == 'test' + - pillow ; extra == 'test' + - pytest ; extra == 'test-no-images' + - pytest-cov ; extra == 'test-no-images' + - pytest-xdist ; extra == 'test-no-images' + - wurlitzer ; extra == 'test-no-images' + requires_python: '>=3.9' - kind: pypi name: cycler version: 0.12.1 @@ -699,8 +917,8 @@ packages: - kind: pypi name: fonttools version: 4.49.0 - url: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 + url: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + sha256: fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -734,39 +952,150 @@ packages: - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' requires_python: '>=3.8' - kind: pypi - name: gast - version: 0.5.4 - url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - sha256: 6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 - requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' -- kind: pypi - name: google-auth - version: 2.28.1 - url: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl - sha256: 25141e2d7a14bfcba945f5e9827f98092716e99482562f15306e5b026e21aa72 - requires_dist: - - cachetools <6.0, >=2.0.0 - - pyasn1-modules >=0.2.1 - - rsa <5, >=3.1.4 - - aiohttp <4.0.0.dev0, >=3.6.2 ; extra == 'aiohttp' - - requests <3.0.0.dev0, >=2.20.0 ; extra == 'aiohttp' - - cryptography ==36.0.2 ; extra == 'enterprise_cert' - - pyopenssl ==22.0.0 ; extra == 'enterprise_cert' - - pyopenssl >=20.0.0 ; extra == 'pyopenssl' - - cryptography >=38.0.3 ; extra == 'pyopenssl' - - pyu2f >=0.1.5 ; extra == 'reauth' - - requests <3.0.0.dev0, >=2.20.0 ; extra == 'requests' - requires_python: '>=3.7' -- kind: pypi - name: google-auth-oauthlib - version: 1.0.0 - url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl - sha256: 95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + name: fonttools + version: 4.49.0 + url: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 requires_dist: - - google-auth >=2.15.0 - - requests-oauthlib >=0.7.0 - - click >=6.0.0 ; extra == 'tool' - requires_python: '>=3.6' + - fs <3, >=2.2.0 ; extra == 'all' + - lxml >=4.0 ; extra == 'all' + - zopfli >=0.1.4 ; extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - skia-pathops >=0.5.0 ; extra == 'all' + - uharfbuzz >=0.23.0 ; extra == 'all' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'graphite' + - pycairo ; extra == 'interpolatable' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - lxml >=4.0 ; extra == 'lxml' + - skia-pathops >=0.5.0 ; extra == 'pathops' + - matplotlib ; extra == 'plot' + - uharfbuzz >=0.23.0 ; extra == 'repacker' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - fs <3, >=2.2.0 ; extra == 'ufo' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' + - zopfli >=0.1.4 ; extra == 'woff' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + requires_python: '>=3.8' +- kind: pypi + name: fonttools + version: 4.49.0 + url: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 + requires_dist: + - fs <3, >=2.2.0 ; extra == 'all' + - lxml >=4.0 ; extra == 'all' + - zopfli >=0.1.4 ; extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - skia-pathops >=0.5.0 ; extra == 'all' + - uharfbuzz >=0.23.0 ; extra == 'all' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'graphite' + - pycairo ; extra == 'interpolatable' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - lxml >=4.0 ; extra == 'lxml' + - skia-pathops >=0.5.0 ; extra == 'pathops' + - matplotlib ; extra == 'plot' + - uharfbuzz >=0.23.0 ; extra == 'repacker' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - fs <3, >=2.2.0 ; extra == 'ufo' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' + - zopfli >=0.1.4 ; extra == 'woff' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + requires_python: '>=3.8' +- kind: pypi + name: fonttools + version: 4.49.0 + url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e + requires_dist: + - fs <3, >=2.2.0 ; extra == 'all' + - lxml >=4.0 ; extra == 'all' + - zopfli >=0.1.4 ; extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - skia-pathops >=0.5.0 ; extra == 'all' + - uharfbuzz >=0.23.0 ; extra == 'all' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'graphite' + - pycairo ; extra == 'interpolatable' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - lxml >=4.0 ; extra == 'lxml' + - skia-pathops >=0.5.0 ; extra == 'pathops' + - matplotlib ; extra == 'plot' + - uharfbuzz >=0.23.0 ; extra == 'repacker' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - fs <3, >=2.2.0 ; extra == 'ufo' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' + - zopfli >=0.1.4 ; extra == 'woff' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + requires_python: '>=3.8' +- kind: pypi + name: gast + version: 0.5.4 + url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + sha256: 6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' +- kind: pypi + name: google-auth + version: 2.28.1 + url: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + sha256: 25141e2d7a14bfcba945f5e9827f98092716e99482562f15306e5b026e21aa72 + requires_dist: + - cachetools <6.0, >=2.0.0 + - pyasn1-modules >=0.2.1 + - rsa <5, >=3.1.4 + - aiohttp <4.0.0.dev0, >=3.6.2 ; extra == 'aiohttp' + - requests <3.0.0.dev0, >=2.20.0 ; extra == 'aiohttp' + - cryptography ==36.0.2 ; extra == 'enterprise_cert' + - pyopenssl ==22.0.0 ; extra == 'enterprise_cert' + - pyopenssl >=20.0.0 ; extra == 'pyopenssl' + - cryptography >=38.0.3 ; extra == 'pyopenssl' + - pyu2f >=0.1.5 ; extra == 'reauth' + - requests <3.0.0.dev0, >=2.20.0 ; extra == 'requests' + requires_python: '>=3.7' +- kind: pypi + name: google-auth-oauthlib + version: 1.0.0 + url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + sha256: 95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + requires_dist: + - google-auth >=2.15.0 + - requests-oauthlib >=0.7.0 + - click >=6.0.0 ; extra == 'tool' + requires_python: '>=3.6' - kind: pypi name: google-pasta version: 0.2.0 @@ -782,6 +1111,22 @@ packages: requires_dist: - grpcio-tools >=1.62.0 ; extra == 'protobuf' requires_python: '>=3.7' +- kind: pypi + name: grpcio + version: 1.62.0 + url: https://files.pythonhosted.org/packages/7e/61/79618621c56244d4778811f98737af8be4af1c0b034261c270cdfbda0762/grpcio-1.62.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 7f9d6c3223914abb51ac564dc9c3782d23ca445d2864321b9059d62d47144021 + requires_dist: + - grpcio-tools >=1.62.0 ; extra == 'protobuf' + requires_python: '>=3.7' +- kind: pypi + name: grpcio + version: 1.62.0 + url: https://files.pythonhosted.org/packages/d3/8a/4e997c40be25c54b4c46140175052c996a9ca99ae7f563dce29112e5dbcf/grpcio-1.62.0-cp311-cp311-macosx_10_10_universal2.whl + sha256: 36df33080cd7897623feff57831eb83c98b84640b016ce443305977fac7566fb + requires_dist: + - grpcio-tools >=1.62.0 ; extra == 'protobuf' + requires_python: '>=3.7' - kind: pypi name: h5py version: 3.10.0 @@ -790,6 +1135,30 @@ packages: requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' - kind: conda name: icu version: '73.2' @@ -960,6 +1329,22 @@ packages: url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl sha256: d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd requires_python: '>=3.9' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' - kind: pypi name: kiwisolver version: 1.4.5 @@ -968,6 +1353,14 @@ packages: requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl + sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -2109,6 +2502,41 @@ packages: url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 requires_python: '>=3.7' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 + requires_python: '>=3.7' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 + requires_python: '>=3.7' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f + requires_python: '>=3.7' +- kind: pypi + name: matplotlib + version: 3.8.3 + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 + requires_dist: + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - kiwisolver >=1.3.1 + - numpy <2, >=1.21 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python-dateutil >=2.7 + - importlib-resources >=3.2.0 ; python_version < '3.10' + requires_python: '>=3.9' - kind: pypi name: matplotlib version: 3.8.3 @@ -2126,6 +2554,40 @@ packages: - python-dateutil >=2.7 - importlib-resources >=3.2.0 ; python_version < '3.10' requires_python: '>=3.9' +- kind: pypi + name: matplotlib + version: 3.8.3 + url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + requires_dist: + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - kiwisolver >=1.3.1 + - numpy <2, >=1.21 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python-dateutil >=2.7 + - importlib-resources >=3.2.0 ; python_version < '3.10' + requires_python: '>=3.9' +- kind: pypi + name: matplotlib + version: 3.8.3 + url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl + sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e + requires_dist: + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - kiwisolver >=1.3.1 + - numpy <2, >=1.21 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python-dateutil >=2.7 + - importlib-resources >=3.2.0 ; python_version < '3.10' + requires_python: '>=3.9' - kind: pypi name: matplotlib-inline version: 0.1.6 @@ -2166,20 +2628,50 @@ packages: - pyink ; extra == 'dev' requires_python: '>=3.7' - kind: pypi - name: mypy-extensions - version: 1.0.0 - url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl - sha256: 4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d - requires_python: '>=3.5' -- kind: conda - name: ncurses - version: '6.4' - build: h463b476_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h463b476_2.conda - sha256: f6890634f815e8408d08f36503353f8dfd7b055e4c3b9ea2ee52180255cf4b0a - md5: 52b6f254a7b9663e854f44b6570ed982 + name: ml-dtypes + version: 0.2.0 + url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca + requires_dist: + - numpy >1.20 + - numpy >=1.23.3 ; python_version > '3.10' + - numpy >=1.21.2 ; python_version > '3.9' + - absl-py ; extra == 'dev' + - pytest ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - pylint >=2.6.0 ; extra == 'dev' + - pyink ; extra == 'dev' + requires_python: '>=3.7' +- kind: pypi + name: ml-dtypes + version: 0.2.0 + url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c + requires_dist: + - numpy >1.20 + - numpy >=1.23.3 ; python_version > '3.10' + - numpy >=1.21.2 ; python_version > '3.9' + - absl-py ; extra == 'dev' + - pytest ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - pylint >=2.6.0 ; extra == 'dev' + - pyink ; extra == 'dev' + requires_python: '>=3.7' +- kind: pypi + name: mypy-extensions + version: 1.0.0 + url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + sha256: 4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + requires_python: '>=3.5' +- kind: conda + name: ncurses + version: '6.4' + build: h463b476_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h463b476_2.conda + sha256: f6890634f815e8408d08f36503353f8dfd7b055e4c3b9ea2ee52180255cf4b0a + md5: 52b6f254a7b9663e854f44b6570ed982 depends: - __osx >=10.9 license: X11 AND BSD-3-Clause @@ -2411,9 +2903,285 @@ packages: requires_python: '>=3.7' - kind: pypi name: pandas - version: 2.2.0 - url: https://files.pythonhosted.org/packages/5b/7e/9fd11ba8e86a8add8f2ff4e11c7111f65ec6fd1b547222160bb969e2bf5e/pandas-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 85793cbdc2d5bc32620dc8ffa715423f0c680dacacf55056ba13454a5be5de88 + version: 2.2.1 + url: https://files.pythonhosted.org/packages/61/11/1812ef6cbd7433ad240f72161ce5f84c4c450cede4db080365d371d29117/pandas-2.2.1-cp311-cp311-win_amd64.whl + sha256: 06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e + requires_dist: + - numpy <2, >=1.22.4 ; python_version < '3.11' + - numpy <2, >=1.23.2 ; python_version == '3.11' + - numpy <2, >=1.26.0 ; python_version >= '3.12' + - python-dateutil >=2.8.2 + - pytz >=2020.1 + - tzdata >=2022.7 + - hypothesis >=6.46.1 ; extra == 'test' + - pytest >=7.3.2 ; extra == 'test' + - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' + - bottleneck >=1.3.6 ; extra == 'performance' + - numba >=0.56.4 ; extra == 'performance' + - numexpr >=2.8.4 ; extra == 'performance' + - scipy >=1.10.0 ; extra == 'computation' + - xarray >=2022.12.0 ; extra == 'computation' + - fsspec >=2022.11.0 ; extra == 'fss' + - s3fs >=2022.11.0 ; extra == 'aws' + - gcsfs >=2022.11.0 ; extra == 'gcp' + - pandas-gbq >=0.19.0 ; extra == 'gcp' + - odfpy >=1.4.1 ; extra == 'excel' + - openpyxl >=3.1.0 ; extra == 'excel' + - python-calamine >=0.1.7 ; extra == 'excel' + - pyxlsb >=1.0.10 ; extra == 'excel' + - xlrd >=2.0.1 ; extra == 'excel' + - xlsxwriter >=3.0.5 ; extra == 'excel' + - pyarrow >=10.0.1 ; extra == 'parquet' + - pyarrow >=10.0.1 ; extra == 'feather' + - tables >=3.8.0 ; extra == 'hdf5' + - pyreadstat >=1.2.0 ; extra == 'spss' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - psycopg2 >=2.9.6 ; extra == 'postgresql' + - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' + - pymysql >=1.0.2 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' + - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' + - beautifulsoup4 >=4.11.2 ; extra == 'html' + - html5lib >=1.1 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'xml' + - matplotlib >=3.6.3 ; extra == 'plot' + - jinja2 >=3.1.2 ; extra == 'output-formatting' + - tabulate >=0.9.0 ; extra == 'output-formatting' + - pyqt5 >=5.15.9 ; extra == 'clipboard' + - qtpy >=2.3.0 ; extra == 'clipboard' + - zstandard >=0.19.0 ; extra == 'compression' + - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' + - adbc-driver-postgresql >=0.8.0 ; extra == 'all' + - adbc-driver-sqlite >=0.8.0 ; extra == 'all' + - beautifulsoup4 >=4.11.2 ; extra == 'all' + - bottleneck >=1.3.6 ; extra == 'all' + - dataframe-api-compat >=0.1.7 ; extra == 'all' + - fastparquet >=2022.12.0 ; extra == 'all' + - fsspec >=2022.11.0 ; extra == 'all' + - gcsfs >=2022.11.0 ; extra == 'all' + - html5lib >=1.1 ; extra == 'all' + - hypothesis >=6.46.1 ; extra == 'all' + - jinja2 >=3.1.2 ; extra == 'all' + - lxml >=4.9.2 ; extra == 'all' + - matplotlib >=3.6.3 ; extra == 'all' + - numba >=0.56.4 ; extra == 'all' + - numexpr >=2.8.4 ; extra == 'all' + - odfpy >=1.4.1 ; extra == 'all' + - openpyxl >=3.1.0 ; extra == 'all' + - pandas-gbq >=0.19.0 ; extra == 'all' + - psycopg2 >=2.9.6 ; extra == 'all' + - pyarrow >=10.0.1 ; extra == 'all' + - pymysql >=1.0.2 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' + - pyreadstat >=1.2.0 ; extra == 'all' + - pytest >=7.3.2 ; extra == 'all' + - pytest-xdist >=2.2.0 ; extra == 'all' + - python-calamine >=0.1.7 ; extra == 'all' + - pyxlsb >=1.0.10 ; extra == 'all' + - qtpy >=2.3.0 ; extra == 'all' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' +- kind: pypi + name: pandas + version: 2.2.1 + url: https://files.pythonhosted.org/packages/d4/47/1ccf9f62d2674d3ca3e95452c5f9dd114234d1535dec77c96528bf6a31fc/pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403 + requires_dist: + - numpy <2, >=1.22.4 ; python_version < '3.11' + - numpy <2, >=1.23.2 ; python_version == '3.11' + - numpy <2, >=1.26.0 ; python_version >= '3.12' + - python-dateutil >=2.8.2 + - pytz >=2020.1 + - tzdata >=2022.7 + - hypothesis >=6.46.1 ; extra == 'test' + - pytest >=7.3.2 ; extra == 'test' + - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' + - bottleneck >=1.3.6 ; extra == 'performance' + - numba >=0.56.4 ; extra == 'performance' + - numexpr >=2.8.4 ; extra == 'performance' + - scipy >=1.10.0 ; extra == 'computation' + - xarray >=2022.12.0 ; extra == 'computation' + - fsspec >=2022.11.0 ; extra == 'fss' + - s3fs >=2022.11.0 ; extra == 'aws' + - gcsfs >=2022.11.0 ; extra == 'gcp' + - pandas-gbq >=0.19.0 ; extra == 'gcp' + - odfpy >=1.4.1 ; extra == 'excel' + - openpyxl >=3.1.0 ; extra == 'excel' + - python-calamine >=0.1.7 ; extra == 'excel' + - pyxlsb >=1.0.10 ; extra == 'excel' + - xlrd >=2.0.1 ; extra == 'excel' + - xlsxwriter >=3.0.5 ; extra == 'excel' + - pyarrow >=10.0.1 ; extra == 'parquet' + - pyarrow >=10.0.1 ; extra == 'feather' + - tables >=3.8.0 ; extra == 'hdf5' + - pyreadstat >=1.2.0 ; extra == 'spss' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - psycopg2 >=2.9.6 ; extra == 'postgresql' + - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' + - pymysql >=1.0.2 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' + - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' + - beautifulsoup4 >=4.11.2 ; extra == 'html' + - html5lib >=1.1 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'xml' + - matplotlib >=3.6.3 ; extra == 'plot' + - jinja2 >=3.1.2 ; extra == 'output-formatting' + - tabulate >=0.9.0 ; extra == 'output-formatting' + - pyqt5 >=5.15.9 ; extra == 'clipboard' + - qtpy >=2.3.0 ; extra == 'clipboard' + - zstandard >=0.19.0 ; extra == 'compression' + - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' + - adbc-driver-postgresql >=0.8.0 ; extra == 'all' + - adbc-driver-sqlite >=0.8.0 ; extra == 'all' + - beautifulsoup4 >=4.11.2 ; extra == 'all' + - bottleneck >=1.3.6 ; extra == 'all' + - dataframe-api-compat >=0.1.7 ; extra == 'all' + - fastparquet >=2022.12.0 ; extra == 'all' + - fsspec >=2022.11.0 ; extra == 'all' + - gcsfs >=2022.11.0 ; extra == 'all' + - html5lib >=1.1 ; extra == 'all' + - hypothesis >=6.46.1 ; extra == 'all' + - jinja2 >=3.1.2 ; extra == 'all' + - lxml >=4.9.2 ; extra == 'all' + - matplotlib >=3.6.3 ; extra == 'all' + - numba >=0.56.4 ; extra == 'all' + - numexpr >=2.8.4 ; extra == 'all' + - odfpy >=1.4.1 ; extra == 'all' + - openpyxl >=3.1.0 ; extra == 'all' + - pandas-gbq >=0.19.0 ; extra == 'all' + - psycopg2 >=2.9.6 ; extra == 'all' + - pyarrow >=10.0.1 ; extra == 'all' + - pymysql >=1.0.2 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' + - pyreadstat >=1.2.0 ; extra == 'all' + - pytest >=7.3.2 ; extra == 'all' + - pytest-xdist >=2.2.0 ; extra == 'all' + - python-calamine >=0.1.7 ; extra == 'all' + - pyxlsb >=1.0.10 ; extra == 'all' + - qtpy >=2.3.0 ; extra == 'all' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' +- kind: pypi + name: pandas + version: 2.2.1 + url: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b + requires_dist: + - numpy <2, >=1.22.4 ; python_version < '3.11' + - numpy <2, >=1.23.2 ; python_version == '3.11' + - numpy <2, >=1.26.0 ; python_version >= '3.12' + - python-dateutil >=2.8.2 + - pytz >=2020.1 + - tzdata >=2022.7 + - hypothesis >=6.46.1 ; extra == 'test' + - pytest >=7.3.2 ; extra == 'test' + - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' + - bottleneck >=1.3.6 ; extra == 'performance' + - numba >=0.56.4 ; extra == 'performance' + - numexpr >=2.8.4 ; extra == 'performance' + - scipy >=1.10.0 ; extra == 'computation' + - xarray >=2022.12.0 ; extra == 'computation' + - fsspec >=2022.11.0 ; extra == 'fss' + - s3fs >=2022.11.0 ; extra == 'aws' + - gcsfs >=2022.11.0 ; extra == 'gcp' + - pandas-gbq >=0.19.0 ; extra == 'gcp' + - odfpy >=1.4.1 ; extra == 'excel' + - openpyxl >=3.1.0 ; extra == 'excel' + - python-calamine >=0.1.7 ; extra == 'excel' + - pyxlsb >=1.0.10 ; extra == 'excel' + - xlrd >=2.0.1 ; extra == 'excel' + - xlsxwriter >=3.0.5 ; extra == 'excel' + - pyarrow >=10.0.1 ; extra == 'parquet' + - pyarrow >=10.0.1 ; extra == 'feather' + - tables >=3.8.0 ; extra == 'hdf5' + - pyreadstat >=1.2.0 ; extra == 'spss' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - psycopg2 >=2.9.6 ; extra == 'postgresql' + - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' + - pymysql >=1.0.2 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' + - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' + - beautifulsoup4 >=4.11.2 ; extra == 'html' + - html5lib >=1.1 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'xml' + - matplotlib >=3.6.3 ; extra == 'plot' + - jinja2 >=3.1.2 ; extra == 'output-formatting' + - tabulate >=0.9.0 ; extra == 'output-formatting' + - pyqt5 >=5.15.9 ; extra == 'clipboard' + - qtpy >=2.3.0 ; extra == 'clipboard' + - zstandard >=0.19.0 ; extra == 'compression' + - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' + - adbc-driver-postgresql >=0.8.0 ; extra == 'all' + - adbc-driver-sqlite >=0.8.0 ; extra == 'all' + - beautifulsoup4 >=4.11.2 ; extra == 'all' + - bottleneck >=1.3.6 ; extra == 'all' + - dataframe-api-compat >=0.1.7 ; extra == 'all' + - fastparquet >=2022.12.0 ; extra == 'all' + - fsspec >=2022.11.0 ; extra == 'all' + - gcsfs >=2022.11.0 ; extra == 'all' + - html5lib >=1.1 ; extra == 'all' + - hypothesis >=6.46.1 ; extra == 'all' + - jinja2 >=3.1.2 ; extra == 'all' + - lxml >=4.9.2 ; extra == 'all' + - matplotlib >=3.6.3 ; extra == 'all' + - numba >=0.56.4 ; extra == 'all' + - numexpr >=2.8.4 ; extra == 'all' + - odfpy >=1.4.1 ; extra == 'all' + - openpyxl >=3.1.0 ; extra == 'all' + - pandas-gbq >=0.19.0 ; extra == 'all' + - psycopg2 >=2.9.6 ; extra == 'all' + - pyarrow >=10.0.1 ; extra == 'all' + - pymysql >=1.0.2 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' + - pyreadstat >=1.2.0 ; extra == 'all' + - pytest >=7.3.2 ; extra == 'all' + - pytest-xdist >=2.2.0 ; extra == 'all' + - python-calamine >=0.1.7 ; extra == 'all' + - pyxlsb >=1.0.10 ; extra == 'all' + - qtpy >=2.3.0 ; extra == 'all' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' +- kind: pypi + name: pandas + version: 2.2.1 + url: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -2424,6 +3192,7 @@ packages: - hypothesis >=6.46.1 ; extra == 'test' - pytest >=7.3.2 ; extra == 'test' - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' - bottleneck >=1.3.6 ; extra == 'performance' - numba >=0.56.4 ; extra == 'performance' - numexpr >=2.8.4 ; extra == 'performance' @@ -2524,6 +3293,62 @@ packages: sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 requires_dist: - ptyprocess >=0.5 +- kind: pypi + name: pillow + version: 10.2.0 + url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx >=2.4 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-removed-in ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - check-manifest ; extra == 'tests' + - coverage ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - pyroma ; extra == 'tests' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - typing-extensions ; python_version < '3.10' and extra == 'typing' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.8' +- kind: pypi + name: pillow + version: 10.2.0 + url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx >=2.4 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-removed-in ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - check-manifest ; extra == 'tests' + - coverage ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - pyroma ; extra == 'tests' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - typing-extensions ; python_version < '3.10' and extra == 'typing' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.8' - kind: pypi name: pillow version: 10.2.0 @@ -2552,6 +3377,34 @@ packages: - typing-extensions ; python_version < '3.10' and extra == 'typing' - defusedxml ; extra == 'xmp' requires_python: '>=3.8' +- kind: pypi + name: pillow + version: 10.2.0 + url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx >=2.4 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-removed-in ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - check-manifest ; extra == 'tests' + - coverage ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - pyroma ; extra == 'tests' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - typing-extensions ; python_version < '3.10' and extra == 'typing' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.8' - kind: pypi name: platformdirs version: 4.2.0 @@ -2604,6 +3457,18 @@ packages: url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 requires_python: '>=3.8' +- kind: pypi + name: protobuf + version: 4.25.3 + url: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl + sha256: 7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d + requires_python: '>=3.8' +- kind: pypi + name: protobuf + version: 4.25.3 + url: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl + sha256: f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c + requires_python: '>=3.8' - kind: conda name: pthreads-win32 version: 2.9.1 @@ -2658,6 +3523,34 @@ packages: - pdoc3 ; extra == 'all' - gym ; extra == 'all' requires_python: '>=3.8' +- kind: pypi + name: pyboy + version: 1.6.6 + url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl + sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 + requires_dist: + - numpy + - pysdl2 + - pysdl2-dll + - pyopengl ; extra == 'all' + - markdown ; extra == 'all' + - pdoc3 ; extra == 'all' + - gym ; extra == 'all' + requires_python: '>=3.8' +- kind: pypi + name: pyboy + version: 1.6.6 + url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c + requires_dist: + - numpy + - pysdl2 + - pysdl2-dll + - pyopengl ; extra == 'all' + - markdown ; extra == 'all' + - pdoc3 ; extra == 'all' + - gym ; extra == 'all' + requires_python: '>=3.8' - kind: pypi name: pycosat version: 0.6.6 @@ -2696,6 +3589,21 @@ packages: version: 2.30.0 url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl + sha256: d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/93/d0/5911ad3cecb896588202e3e90bd97c0c7381718a6ccb2eaeebb70d7fe2ce/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_x86_64.whl + sha256: e873d823c206b92680575a62466e02717ce81ece7e433c818fb660154eda083f +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl + sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - kind: conda name: python version: 3.11.8 @@ -3060,9 +3968,9 @@ packages: timestamp: 1700814198750 - kind: pypi name: setuptools - version: 69.1.0 - url: https://files.pythonhosted.org/packages/bb/0a/203797141ec9727344c7649f6d5f6cf71b89a6c28f8f55d4f18de7a1d352/setuptools-69.1.0-py3-none-any.whl - sha256: c054629b81b946d63a9c6e732bc8b2513a7c3ea645f11d0139a2191d735c60c6 + version: 69.1.1 + url: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + sha256: 02fa291a0471b3a18b2b2481ed902af520c69e8ae0919c13da936542754b4c56 requires_dist: - sphinx >=3.5 ; extra == 'docs' - sphinx <7.2.5 ; extra == 'docs' @@ -3084,6 +3992,7 @@ packages: - virtualenv >=13.0.0 ; extra == 'testing' - wheel ; extra == 'testing' - pip >=19.1 ; extra == 'testing' + - packaging >=23.2 ; extra == 'testing' - jaraco-envs >=2.2 ; extra == 'testing' - pytest-xdist ; extra == 'testing' - jaraco-path >=3.2.0 ; extra == 'testing' @@ -3103,7 +4012,7 @@ packages: - jaraco-envs >=2.2 ; extra == 'testing-integration' - build[virtualenv] >=1.0.3 ; extra == 'testing-integration' - filelock >=3.4.0 ; extra == 'testing-integration' - - packaging >=23.1 ; extra == 'testing-integration' + - packaging >=23.2 ; extra == 'testing-integration' - pytest-cov ; platform_python_implementation != 'PyPy' and extra == 'testing' - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' - jaraco-develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' @@ -3183,6 +4092,12 @@ packages: url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb requires_python: '>=3.7' +- kind: pypi + name: tensorboard-data-server + version: 0.7.2 + url: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl + sha256: 9fe5d24221b29625dbc7328b0436ca7fc1c23de4acf4d272f1180856e32f9f60 + requires_python: '>=3.7' - kind: pypi name: tensorflow version: 2.14.0 @@ -3204,6 +4119,109 @@ packages: - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - tensorrt ==8.5.3.1 ; extra == 'and-cuda' requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa + requires_dist: + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=23.5.26 + - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 + - google-pasta >=0.1.1 + - h5py >=2.9.0 + - libclang >=13.0.0 + - ml-dtypes ==0.2.0 + - numpy >=1.23.5 + - opt-einsum >=2.3.2 + - packaging + - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 + - setuptools + - six >=1.12.0 + - termcolor >=1.1.0 + - typing-extensions >=3.6.6 + - wrapt <1.15, >=1.11.0 + - tensorflow-io-gcs-filesystem >=0.23.1 + - grpcio <2.0, >=1.24.3 + - tensorboard <2.15, >=2.14 + - tensorflow-estimator <2.15, >=2.14.0 + - keras <2.15, >=2.14.0 + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 + requires_dist: + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=23.5.26 + - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 + - google-pasta >=0.1.1 + - h5py >=2.9.0 + - libclang >=13.0.0 + - ml-dtypes ==0.2.0 + - numpy >=1.23.5 + - opt-einsum >=2.3.2 + - packaging + - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 + - setuptools + - six >=1.12.0 + - termcolor >=1.1.0 + - typing-extensions >=3.6.6 + - wrapt <1.15, >=1.11.0 + - tensorflow-io-gcs-filesystem >=0.23.1 + - grpcio <2.0, >=1.24.3 + - tensorboard <2.15, >=2.14 + - tensorflow-estimator <2.15, >=2.14.0 + - keras <2.15, >=2.14.0 + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c + requires_dist: + - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' - kind: pypi name: tensorflow-estimator version: 2.14.0 @@ -3262,6 +4280,42 @@ packages: - tensorflow-gpu <2.12.0, >=2.11.0 ; extra == 'tensorflow-gpu' - tensorflow-rocm <2.12.0, >=2.11.0 ; extra == 'tensorflow-rocm' requires_python: '>=3.7,<3.12' +- kind: pypi + name: tensorflow-io-gcs-filesystem + version: 0.36.0 + url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 + requires_dist: + - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' + - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' + - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' + - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' + - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' + requires_python: '>=3.7,<3.12' +- kind: pypi + name: tensorflow-io-gcs-filesystem + version: 0.36.0 + url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 + requires_dist: + - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' + - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' + - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' + - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' + - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' + requires_python: '>=3.7,<3.12' +- kind: pypi + name: tensorflow-io-gcs-filesystem + version: 0.36.0 + url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl + sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 + requires_dist: + - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' + - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' + - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' + - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' + - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' + requires_python: '>=3.7,<3.12' - kind: pypi name: tensorflow-macos version: 2.14.0 @@ -3520,6 +4574,24 @@ packages: url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: conda name: xz version: 5.2.6 diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 7e5fbdd2f..3995af26a 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -6,6 +6,7 @@ use distribution_filename::DistFilename; use indicatif::ProgressBar; use miette::{IntoDiagnostic, WrapErr}; use uv_cache::Cache; +use uv_resolver::InMemoryIndex; use crate::consts::PROJECT_MANIFEST; use crate::lock_file::UvResolutionContext; @@ -400,6 +401,8 @@ pub async fn update_python_distributions( let no_build = NoBuild::None; let no_binary = NoBinary::None; + let in_memory_index = InMemoryIndex::default(); + // Prep the build context. let build_dispatch = BuildDispatch::new( &uv_context.registry_client, @@ -407,7 +410,7 @@ pub async fn update_python_distributions( venv.interpreter(), &uv_context.index_locations, &flat_index, - &uv_context.in_memory_index, + &in_memory_index, &uv_context.in_flight, venv.python_executable(), SetupPyStrategy::default(), diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index dff2f1fd8..16171b68f 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -50,7 +50,7 @@ use uv_distribution::{DistributionDatabase, Reporter}; use uv_interpreter::Interpreter; use uv_normalize::PackageName; use uv_resolver::{ - DefaultResolverProvider, InMemoryIndex, Manifest, Options, PackageVersionsResult, + DefaultResolverProvider, DistFinder, InMemoryIndex, Manifest, Options, PackageVersionsResult, PythonRequirement, Resolver, ResolverProvider, VersionMap, VersionsResponse, }; use uv_traits::{BuildContext, InFlight, NoBinary, NoBuild, SetupPyStrategy}; @@ -62,7 +62,6 @@ pub struct UvResolutionContext { pub registry_client: Arc, pub in_flight: Arc, pub index_locations: Arc, - pub in_memory_index: Arc, } impl UvResolutionContext { @@ -78,13 +77,11 @@ impl UvResolutionContext { ); let in_flight = Arc::new(InFlight::default()); let index_locations = Arc::new(project.pypi_index_locations()); - let in_memory_index = Arc::new(InMemoryIndex::default()); Ok(Self { cache, registry_client, in_flight, index_locations, - in_memory_index, }) } } @@ -115,9 +112,7 @@ impl uv_resolver::ResolverReporter for ResolveReporter { self.0.set_message(format!("resolving {}{}", name, version)); } - fn on_complete(&self) { - self.0.set_message(""); - } + fn on_complete(&self) {} fn on_build_start(&self, dist: &SourceDist) -> usize { self.0 @@ -315,6 +310,8 @@ pub async fn resolve_pypi( FlatIndex::from_entries(entries, &tags) }; + let in_memory_index = InMemoryIndex::default(); + // Create a shared in-memory index. let options = Options::default(); let build_dispatch = BuildDispatch::new( @@ -323,7 +320,7 @@ pub async fn resolve_pypi( &interpreter, &context.index_locations, &flat_index, - &context.in_memory_index, + &in_memory_index, &context.in_flight, interpreter.sys_executable().to_path_buf(), SetupPyStrategy::default(), @@ -383,7 +380,7 @@ pub async fn resolve_pypi( options, &marker_environment, PythonRequirement::new(&interpreter, &marker_environment), - &context.in_memory_index, + &in_memory_index, provider, ) .into_diagnostic() @@ -402,6 +399,19 @@ pub async fn resolve_pypi( &context.registry_client, &build_dispatch, ); + + let resolution = DistFinder::new( + &tags, + &context.registry_client, + &interpreter, + &flat_index, + build_dispatch.no_binary(), + ) + .resolve(&resolution.requirements()) + .await + .into_diagnostic() + .context("failed to find matching pypi distributions for the resolution")?; + let mut locked_packages = LockedPypiPackages::with_capacity(resolution.len()); for dist in resolution.into_distributions() { // If this refers to a conda package we can skip it diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 320c2cb9d..42f5cbc4a 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1282,7 +1282,7 @@ async fn spawn_solve_pypi_task( let pb = SolveProgressBar::new( global_multi_progress().add(ProgressBar::hidden()), platform, - environment_name, + environment_name.clone(), ); pb.start(); @@ -1304,7 +1304,14 @@ async fn spawn_solve_pypi_task( &python_path, prefix.root(), ) - .await?; + .await + .with_context(|| { + format!( + "failed to solve the conda requirements of '{}' '{}'", + environment_name.fancy_display(), + consts::PLATFORM_STYLE.apply_to(platform) + ) + })?; let end = Instant::now(); From 4a1a8c5aa11628a00db9233d61a3187130dfce2d Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 26 Feb 2024 12:01:30 +0100 Subject: [PATCH 40/55] feat: change the way progress is displayed --- examples/pypi/pixi.lock | 278 ++++++++-------- src/environment.rs | 2 +- src/install_pypi.rs | 679 ++------------------------------------- src/lib.rs | 1 + src/lock_file/resolve.rs | 32 +- src/progress.rs | 10 +- src/uv_reporter.rs | 226 +++++++++++++ 7 files changed, 411 insertions(+), 817 deletions(-) create mode 100644 src/uv_reporter.rs diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index f1246c0cc..7f3262d69 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -96,7 +96,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl @@ -121,6 +120,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl @@ -209,7 +209,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl @@ -235,6 +234,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl @@ -325,7 +325,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl @@ -350,6 +349,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl @@ -439,7 +439,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl - - pypi: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl @@ -464,6 +463,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl @@ -528,8 +528,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl - sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 + url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -548,8 +548,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 + url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -568,8 +568,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba + url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -588,8 +588,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl - sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b + url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -725,12 +725,6 @@ packages: url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 requires_python: '>=3.6' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl - sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 - requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer version: 3.3.2 @@ -749,6 +743,12 @@ packages: url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e requires_python: '>=3.7.0' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 + requires_python: '>=3.7.0' - kind: pypi name: click version: 8.1.7 @@ -767,8 +767,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl - sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de + url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -791,8 +791,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 + url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -815,8 +815,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 + url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -839,8 +839,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl - sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd + url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -917,8 +917,8 @@ packages: - kind: pypi name: fonttools version: 4.49.0 - url: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl - sha256: fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 + url: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -954,8 +954,8 @@ packages: - kind: pypi name: fonttools version: 4.49.0 - url: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 + url: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -991,8 +991,8 @@ packages: - kind: pypi name: fonttools version: 4.49.0 - url: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 + url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1028,8 +1028,8 @@ packages: - kind: pypi name: fonttools version: 4.49.0 - url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl - sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e + url: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + sha256: fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1103,14 +1103,6 @@ packages: sha256: b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed requires_dist: - six -- kind: pypi - name: grpcio - version: 1.62.0 - url: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl - sha256: eef1d16ac26c5325e7d39f5452ea98d6988c700c427c52cbc7ce3201e6d93334 - requires_dist: - - grpcio-tools >=1.62.0 ; extra == 'protobuf' - requires_python: '>=3.7' - kind: pypi name: grpcio version: 1.62.0 @@ -1128,13 +1120,13 @@ packages: - grpcio-tools >=1.62.0 ; extra == 'protobuf' requires_python: '>=3.7' - kind: pypi - name: h5py - version: 3.10.0 - url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl - sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + name: grpcio + version: 1.62.0 + url: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl + sha256: eef1d16ac26c5325e7d39f5452ea98d6988c700c427c52cbc7ce3201e6d93334 requires_dist: - - numpy >=1.17.3 - requires_python: '>=3.8' + - grpcio-tools >=1.62.0 ; extra == 'protobuf' + requires_python: '>=3.7' - kind: pypi name: h5py version: 3.10.0 @@ -1159,6 +1151,14 @@ packages: requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' - kind: conda name: icu version: '73.2' @@ -1329,14 +1329,6 @@ packages: url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl sha256: d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd requires_python: '>=3.9' -- kind: pypi - name: kiwisolver - version: 1.4.5 - url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl - sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' - kind: pypi name: kiwisolver version: 1.4.5 @@ -1361,6 +1353,14 @@ packages: requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' - kind: conda name: ld_impl_linux-64 version: '2.40' @@ -2496,12 +2496,6 @@ packages: - coverage ; extra == 'testing' - pyyaml ; extra == 'testing' requires_python: '>=3.8' -- kind: pypi - name: markupsafe - version: 2.1.5 - url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl - sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 - requires_python: '>=3.7' - kind: pypi name: markupsafe version: 2.1.5 @@ -2520,11 +2514,17 @@ packages: url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f requires_python: '>=3.7' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 + requires_python: '>=3.7' - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl - sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 + url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2540,8 +2540,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 + url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2557,8 +2557,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl - sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl + sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2574,8 +2574,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl - sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2615,8 +2615,8 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl - sha256: 832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa + url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca requires_dist: - numpy >1.20 - numpy >=1.23.3 ; python_version > '3.10' @@ -2630,8 +2630,8 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca + url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c requires_dist: - numpy >1.20 - numpy >=1.23.3 ; python_version > '3.10' @@ -2645,8 +2645,8 @@ packages: - kind: pypi name: ml-dtypes version: 0.2.0 - url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl - sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c + url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + sha256: 832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa requires_dist: - numpy >1.20 - numpy >=1.23.3 ; python_version > '3.10' @@ -2904,8 +2904,8 @@ packages: - kind: pypi name: pandas version: 2.2.1 - url: https://files.pythonhosted.org/packages/61/11/1812ef6cbd7433ad240f72161ce5f84c4c450cede4db080365d371d29117/pandas-2.2.1-cp311-cp311-win_amd64.whl - sha256: 06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e + url: https://files.pythonhosted.org/packages/d4/47/1ccf9f62d2674d3ca3e95452c5f9dd114234d1535dec77c96528bf6a31fc/pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403 requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -2996,8 +2996,8 @@ packages: - kind: pypi name: pandas version: 2.2.1 - url: https://files.pythonhosted.org/packages/d4/47/1ccf9f62d2674d3ca3e95452c5f9dd114234d1535dec77c96528bf6a31fc/pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403 + url: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3088,8 +3088,8 @@ packages: - kind: pypi name: pandas version: 2.2.1 - url: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl - sha256: f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b + url: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3180,8 +3180,8 @@ packages: - kind: pypi name: pandas version: 2.2.1 - url: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl - sha256: c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a + url: https://files.pythonhosted.org/packages/61/11/1812ef6cbd7433ad240f72161ce5f84c4c450cede4db080365d371d29117/pandas-2.2.1-cp311-cp311-win_amd64.whl + sha256: 06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3296,8 +3296,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl - sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3324,8 +3324,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3352,8 +3352,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl - sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3380,8 +3380,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl - sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 + url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3451,12 +3451,6 @@ packages: requires_dist: - wcwidth requires_python: '>=3.7.0' -- kind: pypi - name: protobuf - version: 4.25.3 - url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl - sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 - requires_python: '>=3.8' - kind: pypi name: protobuf version: 4.25.3 @@ -3469,6 +3463,12 @@ packages: url: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl sha256: f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c requires_python: '>=3.8' +- kind: pypi + name: protobuf + version: 4.25.3 + url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 + requires_python: '>=3.8' - kind: conda name: pthreads-win32 version: 2.9.1 @@ -3512,8 +3512,8 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl - sha256: bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c + url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl + sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 requires_dist: - numpy - pysdl2 @@ -3526,8 +3526,8 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl - sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 + url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c requires_dist: - numpy - pysdl2 @@ -3540,8 +3540,8 @@ packages: - kind: pypi name: pyboy version: 1.6.6 - url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl - sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c + url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + sha256: bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c requires_dist: - numpy - pysdl2 @@ -3584,11 +3584,6 @@ packages: version: 0.9.16 url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz sha256: 1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 -- kind: pypi - name: pysdl2-dll - version: 2.30.0 - url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl - sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 - kind: pypi name: pysdl2-dll version: 2.30.0 @@ -3604,6 +3599,11 @@ packages: version: 2.30.0 url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 - kind: conda name: python version: 3.11.8 @@ -4098,27 +4098,6 @@ packages: url: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl sha256: 9fe5d24221b29625dbc7328b0436ca7fc1c23de4acf4d272f1180856e32f9f60 requires_python: '>=3.7' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl - sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 - requires_dist: - - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' - kind: pypi name: tensorflow version: 2.14.0 @@ -4222,6 +4201,27 @@ packages: - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - tensorrt ==8.5.3.1 ; extra == 'and-cuda' requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 + requires_dist: + - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' - kind: pypi name: tensorflow-estimator version: 2.14.0 @@ -4452,9 +4452,9 @@ packages: requires_python: '>=3.8' - kind: pypi name: typing-extensions - version: 4.9.0 - url: https://files.pythonhosted.org/packages/b7/f4/6a90020cd2d93349b442bfcb657d0dc91eee65491600b2cb1d388bc98e6b/typing_extensions-4.9.0-py3-none-any.whl - sha256: af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd + version: 4.10.0 + url: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl + sha256: 69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475 requires_python: '>=3.8' - kind: conda name: tzdata @@ -4568,12 +4568,6 @@ packages: - pytest >=6.0.0 ; extra == 'test' - setuptools >=65 ; extra == 'test' requires_python: '>=3.7' -- kind: pypi - name: wrapt - version: 1.14.1 - url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl - sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 - requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt version: 1.14.1 @@ -4592,6 +4586,12 @@ packages: url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: conda name: xz version: 5.2.6 diff --git a/src/environment.rs b/src/environment.rs index 1393d6904..d18ccb521 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -173,7 +173,7 @@ pub async fn get_up_to_date_prefix( pub async fn update_prefix_pypi( environment_name: &EnvironmentName, prefix: &Prefix, - platform: Platform, + _platform: Platform, conda_records: &[RepoDataRecord], pypi_records: &[(PypiPackageData, PypiPackageEnvironmentData)], status: &PythonStatus, diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 3995af26a..aa04770ac 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -1,9 +1,10 @@ use crate::environment::PythonStatus; use crate::prefix::Prefix; -use crate::progress::{self, ProgressBarMessageFormatter, ScopedTask}; + +use crate::uv_reporter::{UvReporter, UvReporterOptions}; use distribution_filename::DistFilename; -use indicatif::ProgressBar; + use miette::{IntoDiagnostic, WrapErr}; use uv_cache::Cache; use uv_resolver::InMemoryIndex; @@ -11,33 +12,25 @@ use uv_resolver::InMemoryIndex; use crate::consts::PROJECT_MANIFEST; use crate::lock_file::UvResolutionContext; use crate::project::manifest::SystemRequirements; -use crate::pypi_marker_env::determine_marker_environment; + use crate::pypi_tags::{get_pypi_tags, is_python_record}; -use distribution_types::{CachedDist, Dist, IndexLocations, IndexUrl, InstalledDist, Name}; +use distribution_types::{CachedDist, Dist, IndexUrl, InstalledDist, Name}; use install_wheel_rs::linker::LinkMode; -use pep440_rs::VersionSpecifiers; -use pep508_rs::{Requirement, VersionOrUrl}; + use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; -use std::collections::HashMap; -use std::str::FromStr; - -use std::sync::Arc; use std::time::Duration; use uv_client::{FlatIndex, FlatIndexClient}; use uv_dispatch::BuildDispatch; use uv_distribution::RegistryWheelIndex; -use uv_installer::{Downloader, Plan, Planner, Reinstall, SitePackages}; +use uv_installer::{Downloader, SitePackages}; use uv_interpreter::{Interpreter, Virtualenv}; use uv_normalize::PackageName; use uv_traits::{NoBinary, NoBuild, SetupPyStrategy}; -/// The installer name for pypi packages installed by pixi. -pub(crate) const PIXI_PYPI_INSTALLER: &str = env!("CARGO_PKG_NAME"); - type CombinedPypiPackageData = (PypiPackageData, PypiPackageEnvironmentData); pub(super) fn elapsed(duration: Duration) -> String { @@ -232,120 +225,6 @@ fn whats_the_plan<'venv, 'a>( }) } -fn create_progress(length: u64, message: &'static str) -> ProgressBar { - // Construct a progress bar to provide some indication on what is currently downloading. - // For instance if we could also show at what speed the downloads are progressing or the total - // size of the downloads that would really help the user I think. - let pb = progress::global_multi_progress().add(ProgressBar::new(length)); - pb.set_style(progress::default_progress_style()); - pb.set_prefix(message); - pb.enable_steady_tick(Duration::from_millis(100)); - pb -} - -/// Reports on download progress. -struct UvReporter { - pb: ProgressBar, - fmt: ProgressBarMessageFormatter, - scoped_tasks: Arc>>>, -} - -impl UvReporter { - fn new(length: u64, top_level_message: &'static str) -> Self { - let pb = create_progress(length, top_level_message); - let fmt = ProgressBarMessageFormatter::new(pb.clone()); - - Self { - pb, - fmt, - scoped_tasks: Arc::new(std::sync::Mutex::new(vec![])), - } - } - - fn lock(&self) -> std::sync::MutexGuard>> { - self.scoped_tasks.lock().expect("progress lock poison") - } - - fn start_sync(&self, message: String) -> usize { - let task = self.fmt.start_sync(message); - let mut lock = self.lock(); - lock.push(Some(task)); - lock.len() - 1 - } - - fn finish(&self, id: usize) { - let mut lock = self.lock(); - let len = lock.len(); - let task = lock - .get_mut(id) - .expect(&format!("progres bar error idx ({id}) > {len}")) - .take(); - if let Some(task) = task { - task.finish_sync(); - } - } - - fn finish_all(&self) { - self.pb.finish_and_clear() - } - - fn increment_progress(&self) { - self.pb.inc(1); - } -} - -impl uv_installer::DownloadReporter for UvReporter { - fn on_progress(&self, _dist: &CachedDist) { - self.increment_progress(); - } - - fn on_complete(&self) { - self.finish_all(); - } - - fn on_build_start(&self, dist: &distribution_types::SourceDist) -> usize { - self.start_sync(format!("building {}", dist.name().as_ref())) - } - - fn on_build_complete(&self, _dist: &distribution_types::SourceDist, id: usize) { - self.finish(id); - } - - fn on_editable_build_start(&self, dist: &distribution_types::LocalEditable) -> usize { - let path = dist.path.file_name(); - if let Some(path) = path { - self.start_sync(format!( - "building editable source {}", - path.to_string_lossy() - )) - } else { - self.start_sync("building editable source".to_string()) - } - } - - fn on_editable_build_complete(&self, dist: &distribution_types::LocalEditable, id: usize) { - self.finish(id); - } - - fn on_checkout_start(&self, url: &url::Url, rev: &str) -> usize { - self.start_sync(format!("cloning {}", url.to_string())) - } - - fn on_checkout_complete(&self, url: &url::Url, rev: &str, index: usize) { - self.finish(index); - } -} - -impl uv_installer::InstallReporter for UvReporter { - fn on_install_progress(&self, wheel: &CachedDist) { - self.increment_progress(); - } - - fn on_install_complete(&self) { - self.finish_all() - } -} - /// Installs and/or remove python distributions. // TODO: refactor arguments in struct #[allow(clippy::too_many_arguments)] @@ -437,7 +316,7 @@ pub async fn update_python_distributions( &mut registry_index, &uv_context.cache, )?; - tracing::warn!( + tracing::debug!( "Resolved install plan: local={}, remote={}, reinstalls={}, extraneous={}", local.len(), remote.len(), @@ -445,14 +324,6 @@ pub async fn update_python_distributions( extraneous.len() ); - // for l in local.iter() { - // tracing::warn!("{:?}", l); - // } - - // for r in remote.iter() { - // tracing::warn!("remote - {:?}", r); - // } - // Nothing to do. if remote.is_empty() && local.is_empty() && reinstalls.is_empty() && extraneous.is_empty() { let s = if python_packages.len() == 1 { "" } else { "s" }; @@ -476,13 +347,19 @@ pub async fn update_python_distributions( } else { let start = std::time::Instant::now(); + let options = UvReporterOptions::new() + .with_length(remote.len() as u64) + .with_capacity(remote.len() + 30) + .with_starting_tasks(remote.iter().map(|d| format!("{}", d.name()))) + .with_top_level_message("Downloading"); + let downloader = Downloader::new( &uv_context.cache, &tags, &uv_context.registry_client, &build_dispatch, ) - .with_reporter(UvReporter::new(remote.len() as u64, "Downloading")); + .with_reporter(UvReporter::new(options)); let wheels = downloader .download(remote.clone(), &uv_context.in_flight) @@ -538,11 +415,16 @@ pub async fn update_python_distributions( // Install the resolved distributions. let wheels = wheels.into_iter().chain(local).collect::>(); + let options = UvReporterOptions::new() + .with_length(wheels.len() as u64) + .with_capacity(wheels.len() + 30) + .with_starting_tasks(wheels.iter().map(|d| format!("{}", d.name()))) + .with_top_level_message("Installing distributions"); if !wheels.is_empty() { let start = std::time::Instant::now(); uv_installer::Installer::new(&venv) .with_link_mode(LinkMode::default()) - .with_reporter(UvReporter::new(wheels.len() as u64, "Installing")) + .with_reporter(UvReporter::new(options)) .install(&wheels) .unwrap(); @@ -557,524 +439,5 @@ pub async fn update_python_distributions( ); } - // // Determine the current python distributions in those locations - // let current_python_packages = find_distributions_in_venv(prefix.root(), &install_paths) - // .into_diagnostic() - // .context( - // "failed to locate python packages that have not been installed as conda packages", - // )?; - // - // // Determine the python packages that are part of the lock-file - // let python_packages = python_packages.iter().collect_vec(); - // - // // Determine the python packages to remove before we start installing anything new. If the - // // python version changed between installations we will have to remove any previous distribution - // // regardless. - // let (python_distributions_to_remove, python_distributions_to_install) = - // determine_python_distributions_to_remove_and_install( - // prefix.root(), - // current_python_packages, - // python_packages, - // ); - // - // // Determine the python interpreter that is installed as part of the conda packages. - // let python_record = conda_package - // .iter() - // .find(|r| is_python_record(r)) - // .ok_or_else(|| miette::miette!("could not resolve pypi dependencies because no python interpreter is added to the dependencies of the project.\nMake sure to add a python interpreter to the [dependencies] section of the {PROJECT_MANIFEST}, or run:\n\n\tpixi add python"))?; - // - // // Determine the environment markers - // let marker_environment = Arc::new(determine_marker_environment( - // platform, - // python_record.as_ref(), - // )?); - // - // // Determine the compatible tags - // let compatible_tags = Arc::new(project_platform_tags( - // platform, - // system_requirements, - // python_record.as_ref(), - // )); - // - // // Define the resolve options for local wheel building - // let resolve_options = Arc::new(ResolveOptions { - // sdist_resolution, - // python_location: PythonLocation::Custom(python_location), - // ..Default::default() - // }); - // - // // Start downloading the python packages that we want in the background. - // let (package_stream, package_stream_pb) = stream_python_artifacts( - // package_db, - // marker_environment, - // compatible_tags, - // resolve_options, - // python_distributions_to_install.clone(), - // ); - // - // // Remove python packages that need to be removed - // if !python_distributions_to_remove.is_empty() { - // let site_package_path = install_paths.site_packages(); - // - // for python_distribution in python_distributions_to_remove { - // uninstall_pixi_installed_distribution(prefix, site_package_path, &python_distribution)?; - // } - // } - // - // // Install the individual python packages that we want - // let package_install_pb = install_python_distributions( - // prefix, - // install_paths, - // &prefix.root().join(python_info.path()), - // package_stream, - // ) - // .await?; - // - // // Clear any pending progress bar - // for pb in package_install_pb - // .into_iter() - // .chain(package_stream_pb.into_iter()) - // { - // pb.finish_and_clear(); - // } - // Ok(()) } - -// Concurrently installs python wheels as they become available. -// async fn install_python_distributions( -// prefix: &Prefix, -// install_paths: InstallPaths, -// python_executable_path: &Path, -// package_stream: impl Stream, HashSet, Wheel)>> + Sized, -// ) -> miette::Result> { -// // Determine the number of packages that we are going to install -// let len = { -// let (lower_bound, upper_bound) = package_stream.size_hint(); -// upper_bound.unwrap_or(lower_bound) -// }; -// if len == 0 { -// return Ok(None); -// } -// -// // Create a progress bar to show the progress of the installation -// let pb = progress::global_multi_progress().add(ProgressBar::new(len as u64)); -// pb.set_style(progress::default_progress_style()); -// pb.set_prefix("unpacking wheels"); -// pb.enable_steady_tick(Duration::from_millis(100)); -// -// // Create a message formatter to show the current operation -// let message_formatter = ProgressBarMessageFormatter::new(pb.clone()); -// -// // Concurrently unpack the wheels as they become available in the stream. -// let install_pb = pb.clone(); -// package_stream -// .try_for_each_concurrent(Some(20), move |(hash, extras, wheel)| { -// let install_paths = install_paths.clone(); -// let root = prefix.root().to_path_buf(); -// let message_formatter = message_formatter.clone(); -// let pb = install_pb.clone(); -// let python_executable_path = python_executable_path.to_owned(); -// async move { -// let pb_task = message_formatter.start(wheel.name().to_string()).await; -// let unpack_result = tokio::task::spawn_blocking(move || { -// install_wheel( -// &wheel, -// &root, -// &install_paths, -// &python_executable_path, -// &InstallWheelOptions { -// installer: Some(PIXI_PYPI_INSTALLER.into()), -// extras: Some(extras), -// ..Default::default() -// }, -// ) -// .into_diagnostic() -// .and_then(|unpacked_wheel| { -// if let Some(hash) = hash { -// std::fs::write(unpacked_wheel.dist_info.join("HASH"), hash) -// .into_diagnostic() -// } else { -// Ok(()) -// } -// }) -// }) -// .map_err(JoinError::try_into_panic) -// .await; -// -// pb_task.finish().await; -// pb.inc(1); -// -// match unpack_result { -// Ok(unpack_result) => unpack_result, -// Err(Ok(panic)) => std::panic::resume_unwind(panic), -// Err(Err(e)) => Err(miette::miette!("{e}")), -// } -// } -// }) -// .await?; -// -// // Update the progress bar -// pb.set_style(progress::finished_progress_style()); -// pb.finish(); -// -// Ok(Some(pb)) -// } -// -// /// Creates a stream which downloads the specified python packages. The stream will download the -// /// packages in parallel and yield them as soon as they become available. -// fn stream_python_artifacts( -// package_db: Arc, -// marker_environment: Arc, -// compatible_tags: Arc, -// resolve_options: Arc, -// packages_to_download: Vec<&CombinedPypiPackageData>, -// ) -> ( -// impl Stream, HashSet, Wheel)>> + '_, -// Option, -// ) { -// if packages_to_download.is_empty() { -// return (stream::empty().left_stream(), None); -// } -// -// // Construct a progress bar to provide some indication on what is currently downloading. -// // TODO: It would be much nicer if we can provide more information with regards to the progress. -// // For instance if we could also show at what speed the downloads are progressing or the total -// // size of the downloads that would really help the user I think. -// let pb = -// progress::global_multi_progress().add(ProgressBar::new(packages_to_download.len() as u64)); -// pb.set_style(progress::default_progress_style()); -// pb.set_prefix("acquiring wheels"); -// pb.enable_steady_tick(Duration::from_millis(100)); -// -// // Construct a message formatter -// let message_formatter = ProgressBarMessageFormatter::new(pb.clone()); -// -// let stream_pb = pb.clone(); -// let total_packages = packages_to_download.len(); -// -// let wheel_builder = WheelBuilder::new( -// package_db.clone(), -// marker_environment, -// Some(compatible_tags), -// resolve_options.deref().clone(), -// ) -// .into_diagnostic() -// .context("error in construction of WheelBuilder for `pypi-dependencies` installation") -// .expect("die"); -// -// let download_stream = stream::iter(packages_to_download) -// .map(move |(pkg_data, pkg_env_data)| { -// let pb = stream_pb.clone(); -// let message_formatter = message_formatter.clone(); -// let package_db = package_db.clone(); -// let wheel_builder = wheel_builder.clone(); -// -// async move { -// // Determine the filename from the -// let filename = pkg_data -// .url -// .path_segments() -// .and_then(|s| s.last()) -// .expect("url is missing a path"); -// let name = NormalizedPackageName::from_str(&pkg_data.name) -// .into_diagnostic() -// .with_context(|| { -// format!("'{}' is not a valid python package name", &pkg_data.name) -// })?; -// -// let artifact_name = -// ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) -// .expect("failed to convert filename to artifact name"); -// -// let (artifact_name, is_direct_url) = -// if let ArtifactName::STree(mut stree) = artifact_name { -// // populate resolved version of direct dependency -// stree.version = pkg_data.version.clone(); -// (ArtifactName::STree(stree), true) -// } else { -// (artifact_name, false) -// }; -// -// // Log out intent to install this python package. -// tracing::info!("downloading python package {filename}"); -// let pb_task = message_formatter.start(filename.to_string()).await; -// -// // Reconstruct the ArtifactInfo from the data in the lockfile. -// let artifact_info = ArtifactInfo { -// filename: artifact_name, -// url: pkg_data.url.clone(), -// hashes: pkg_data.hash.as_ref().map(|hash| ArtifactHashes { -// sha256: hash.sha256().cloned(), -// }), -// requires_python: pkg_data.requires_python.clone(), -// dist_info_metadata: Default::default(), -// yanked: Default::default(), -// is_direct_url, -// }; -// -// let (wheel, _) = tokio::spawn({ -// let wheel_builder = wheel_builder.clone(); -// let package_db = package_db.clone(); -// async move { -// // TODO: Maybe we should have a cache of wheels separate from the package_db. Since a -// // wheel can just be identified by its hash or url. -// package_db -// .get_wheel(&artifact_info, Some(wheel_builder.clone())) -// .await -// } -// }) -// .await -// .unwrap_or_else(|e| match e.try_into_panic() { -// Ok(panic) => std::panic::resume_unwind(panic), -// Err(_) => Err(miette::miette!("operation was cancelled")), -// })?; -// -// // Update the progress bar -// pb_task.finish().await; -// pb.inc(1); -// if pb.position() == total_packages as u64 { -// pb.set_style(progress::finished_progress_style()); -// pb.finish(); -// } -// -// let hash = pkg_data -// .hash -// .as_ref() -// .and_then(|h| h.sha256()) -// .map(|sha256| format!("sha256-{:x}", sha256)); -// -// Ok(( -// hash, -// pkg_env_data -// .extras -// .iter() -// .filter_map(|e| Extra::from_str(e).ok()) -// .collect(), -// wheel, -// )) -// } -// }) -// .buffer_unordered(20) -// .right_stream(); -// -// (download_stream, Some(pb)) -// } -// -// /// If there was a previous version of python installed, remove any distribution installed in that -// /// environment. -// pub fn remove_old_python_distributions( -// prefix: &Prefix, -// platform: Platform, -// python_changed: &PythonStatus, -// ) -> miette::Result<()> { -// // If the python version didn't change, there is nothing to do here. -// let python_version = match python_changed { -// PythonStatus::Removed { old } | PythonStatus::Changed { old, .. } => old, -// PythonStatus::Added { .. } | PythonStatus::DoesNotExist | PythonStatus::Unchanged(_) => { -// return Ok(()); -// } -// }; -// -// // Get the interpreter version from the info -// let python_version = ( -// python_version.short_version.0 as u32, -// python_version.short_version.1 as u32, -// 0, -// ); -// let install_paths = InstallPaths::for_venv(python_version, platform.is_windows()); -// -// // Locate the packages that are installed in the previous environment -// let current_python_packages = find_distributions_in_venv(prefix.root(), &install_paths) -// .into_diagnostic() -// .with_context(|| format!("failed to determine the python packages installed for a previous version of python ({}.{})", python_version.0, python_version.1))? -// .into_iter().filter(|d| d.installer.as_deref() != Some("conda") && d.installer.is_some()).collect_vec(); -// -// let pb = progress::global_multi_progress() -// .add(ProgressBar::new(current_python_packages.len() as u64)); -// pb.set_style(progress::default_progress_style()); -// pb.set_message("removing old python packages"); -// pb.enable_steady_tick(Duration::from_millis(100)); -// -// // Remove the python packages -// let site_package_path = install_paths.site_packages(); -// for python_package in current_python_packages { -// pb.set_message(format!( -// "{} {}", -// &python_package.name, &python_package.version -// )); -// -// uninstall_pixi_installed_distribution(prefix, site_package_path, &python_package)?; -// -// pb.inc(1); -// } -// -// Ok(()) -// } -// -// /// Uninstalls a python distribution that was previously installed by pixi. -// fn uninstall_pixi_installed_distribution( -// prefix: &Prefix, -// site_package_path: &Path, -// python_package: &Distribution, -// ) -> miette::Result<()> { -// tracing::info!( -// "uninstalling python package {}-{}", -// &python_package.name, -// &python_package.version -// ); -// let relative_dist_info = python_package -// .dist_info -// .strip_prefix(site_package_path) -// .expect("the dist-info path must be a sub-path of the site-packages path"); -// -// // HACK: Also remove the HASH file that pixi writes. Ignore the error if its there. We -// // should probably actually add this file to the RECORD. -// let _ = std::fs::remove_file(prefix.root().join(&python_package.dist_info).join("HASH")); -// -// uninstall_distribution(&prefix.root().join(site_package_path), relative_dist_info) -// .into_diagnostic() -// .with_context(|| format!("could not uninstall python package {}-{}. Manually remove the `.pixi/env` folder and try again.", &python_package.name, &python_package.version))?; -// -// Ok(()) -// } -// -// /// Determine which python packages we can leave untouched and which python packages should be -// /// removed. -// fn determine_python_distributions_to_remove_and_install<'p>( -// prefix: &Path, -// mut current_python_packages: Vec, -// desired_python_packages: Vec<&'p CombinedPypiPackageData>, -// ) -> (Vec, Vec<&'p CombinedPypiPackageData>) { -// // Determine the artifact tags associated with the locked dependencies. -// let mut desired_python_packages = extract_locked_tags(desired_python_packages); -// -// // Any package that is currently installed that is not part of the locked dependencies should be -// // removed. So we keep it in the `current_python_packages` list. -// // Any package that is in the currently installed list that is NOT found in the lockfile is -// // retained in the list to mark it for removal. -// current_python_packages.retain(|current_python_packages| { -// if current_python_packages.installer.is_none() { -// // If this package has no installer, we can't make a reliable decision on whether to -// // keep it or not. So we do not uninstall it. -// return false; -// } -// -// if let Some(found_desired_packages_idx) = -// desired_python_packages -// .iter() -// .position(|(pkg, artifact_name)| { -// does_installed_match_locked_package( -// prefix, -// current_python_packages, -// (pkg, artifact_name.as_ref()), -// ) -// }) -// { -// // Remove from the desired list of packages to install & from the packages to uninstall. -// desired_python_packages.remove(found_desired_packages_idx); -// false -// } else { -// // Only if this package was previously installed by us do we remove it. -// current_python_packages.installer.as_deref() == Some(PIXI_PYPI_INSTALLER) -// } -// }); -// -// ( -// current_python_packages, -// desired_python_packages -// .into_iter() -// .map(|(pkg, _)| pkg) -// .collect(), -// ) -// } -// -// /// Determine the wheel tags for the locked dependencies. These are extracted by looking at the url -// /// of the locked dependency. The filename of the URL is converted to a wheel name and the tags are -// /// extract from that. -// /// -// /// If the locked dependency is not a wheel distribution `None` is returned for the tags. If the -// /// the wheel name could not be parsed `None` is returned for the tags and a warning is emitted. -// fn extract_locked_tags( -// desired_python_packages: Vec<&CombinedPypiPackageData>, -// ) -> Vec<(&CombinedPypiPackageData, Option>)> { -// desired_python_packages -// .into_iter() -// .map(|pkg @ (pkg_data, _pkg_env_data)| { -// // Extract the filename from the url and the name from the package name. -// let Some(filename) = pkg_data.url.path_segments().and_then(|s| s.last()) else { -// tracing::warn!( -// "failed to determine the artifact name of the python package {}-{} from url {}: the url has no filename.", -// &pkg_data.name, pkg_data.version, &pkg_data.url); -// return (pkg, None); -// }; -// let Ok(name) = NormalizedPackageName::from_str(&pkg_data.name) else { -// tracing::warn!( -// "failed to determine the artifact name of the python package {}-{} from url {}: {} is not a valid package name.", -// &pkg_data.name, pkg_data.version, &pkg_data.url, &pkg_data.name); -// return (pkg, None); -// }; -// -// // Determine the artifact type from the name and filename -// match ArtifactName::from_filename(filename, Some(pkg_data.url.clone()), &name) { -// Ok(ArtifactName::Wheel(name)) => (pkg, Some(IndexSet::from_iter(name.all_tags_iter()))), -// Ok(_) => (pkg, None), -// Err(err) => { -// tracing::warn!( -// "failed to determine the artifact name of the python package {}-{}. Could not determine the name from the url {}: {err}", -// &pkg_data.name, pkg_data.version, &pkg_data.url); -// (pkg, None) -// } -// } -// }) -// .collect() -// } -// -// /// Returns true if the installed python package matches the locked python package. If that is the -// /// case we can assume that the locked python package is already installed. -// fn does_installed_match_locked_package( -// prefix_root: &Path, -// installed_python_package: &Distribution, -// locked_python_package: (&CombinedPypiPackageData, Option<&IndexSet>), -// ) -> bool { -// let ((pkg_data, _), artifact_tags) = locked_python_package; -// -// // Match on name and version -// if pkg_data.name != installed_python_package.name.as_str() -// || pkg_data.version != installed_python_package.version -// { -// return false; -// } -// -// // If this distribution is installed with pixi we can assume that there is a URL file that -// // contains the original URL. -// if installed_python_package.installer.as_deref() == Some(PIXI_PYPI_INSTALLER) { -// let expected_hash = pkg_data -// .hash -// .as_ref() -// .and_then(|hash| hash.sha256()) -// .map(|sha256| format!("sha256-{:x}", sha256)); -// if let Some(expected_hash) = expected_hash { -// let hash_path = prefix_root -// .join(&installed_python_package.dist_info) -// .join("HASH"); -// if let Ok(actual_hash) = std::fs::read_to_string(hash_path) { -// return actual_hash == expected_hash; -// } -// } -// } -// -// // Try to match the tags of both packages. This turns out to be pretty unreliable because -// // there are many WHEELS that do not report the tags of their filename correctly in the -// // WHEEL file. -// match (artifact_tags, &installed_python_package.tags) { -// (None, _) | (_, None) => { -// // One, or both, of the artifacts are not a wheel distribution so we cannot -// // currently compare them. In that case we always just reinstall. -// // TODO: Maybe log some info here? -// // TODO: Add support for more distribution types. -// false -// } -// (Some(locked_tags), Some(installed_tags)) => locked_tags == installed_tags, -// } -// } diff --git a/src/lib.rs b/src/lib.rs index ff1d43b94..6457f44c1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,6 +19,7 @@ pub mod utils; mod pypi_marker_env; mod pypi_tags; +mod uv_reporter; mod pypi_name_mapping; diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 16171b68f..2f20dc367 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -4,6 +4,7 @@ use crate::config::get_cache_dir; use crate::consts::PROJECT_MANIFEST; +use crate::uv_reporter::{UvReporter, UvReporterOptions}; use std::collections::{BTreeMap, HashMap}; use std::future::{ready, Future}; use std::iter::once; @@ -16,14 +17,12 @@ use crate::{ project::manifest::{PyPiRequirement, SystemRequirements}, Project, }; -use distribution_filename::WheelFilename; -use distribution_types::Dist::Built; + use distribution_types::{ - BuiltDist, DirectUrlBuiltDist, DirectUrlSourceDist, Dist, DistributionMetadata, FileLocation, - IndexLocations, Name, PrioritizedDist, Resolution, SourceDist, VersionOrUrl, - WheelCompatibility, + BuiltDist, DirectUrlSourceDist, Dist, DistributionMetadata, FileLocation, IndexLocations, Name, + PrioritizedDist, Resolution, SourceDist, VersionOrUrl, }; -use futures::{FutureExt, TryFutureExt}; +use futures::FutureExt; use indexmap::IndexMap; use indicatif::ProgressBar; use itertools::{Either, Itertools}; @@ -41,17 +40,14 @@ use std::str::FromStr; use std::sync::Arc; use url::Url; use uv_cache::Cache; -use uv_client::{ - Connectivity, FlatDistributions, FlatIndex, FlatIndexClient, RegistryClient, - RegistryClientBuilder, -}; +use uv_client::{Connectivity, FlatIndex, FlatIndexClient, RegistryClient, RegistryClientBuilder}; use uv_dispatch::BuildDispatch; use uv_distribution::{DistributionDatabase, Reporter}; use uv_interpreter::Interpreter; use uv_normalize::PackageName; use uv_resolver::{ - DefaultResolverProvider, DistFinder, InMemoryIndex, Manifest, Options, PackageVersionsResult, - PythonRequirement, Resolver, ResolverProvider, VersionMap, VersionsResponse, + DefaultResolverProvider, DistFinder, InMemoryIndex, Manifest, Options, PythonRequirement, + Resolver, ResolverProvider, VersionMap, VersionsResponse, }; use uv_traits::{BuildContext, InFlight, NoBinary, NoBuild, SetupPyStrategy}; @@ -174,9 +170,9 @@ impl<'a, Context: BuildContext + Send + Sync> ResolverProvider ) -> impl Future + Send + 'io { if let Dist::Source(SourceDist::DirectUrl(DirectUrlSourceDist { url, name })) = dist { if let Some((_, iden)) = self.conda_python_identifiers.get(name) { - /// If this is a Source dist and the package is actually installed by conda we - /// create fake metadata with no dependencies. We assume that all conda installed - /// packages are properly installed including its dependencies. + // If this is a Source dist and the package is actually installed by conda we + // create fake metadata with no dependencies. We assume that all conda installed + // packages are properly installed including its dependencies. return ready(Ok(( Metadata21 { metadata_version: "1.0".to_string(), @@ -203,7 +199,7 @@ impl<'a, Context: BuildContext + Send + Sync> ResolverProvider self.fallback.index_locations() } - fn with_reporter(mut self, reporter: impl Reporter + 'static) -> Self { + fn with_reporter(self, reporter: impl Reporter + 'static) -> Self { Self { fallback: self.fallback.with_reporter(reporter), ..self @@ -385,7 +381,9 @@ pub async fn resolve_pypi( ) .into_diagnostic() .context("failed to resolve pypi dependencies")? - .with_reporter(ResolveReporter(pb.clone())) + .with_reporter(UvReporter::new( + UvReporterOptions::new().with_existing(pb.clone()), + )) .resolve() .await .into_diagnostic() diff --git a/src/progress.rs b/src/progress.rs index 341607fa0..8b8e1dbc2 100644 --- a/src/progress.rs +++ b/src/progress.rs @@ -152,10 +152,16 @@ impl ScopedTask { impl ProgressBarMessageFormatter { /// Construct a new instance that will update the given progress bar. pub fn new(progress_bar: ProgressBar) -> Self { + Self::new_with_capacity(progress_bar, 50) + } + + /// Construct a new instance that will update the given progress bar. + /// Allows the user to specify a custom capacity for the internal channel. + pub fn new_with_capacity(progress_bar: ProgressBar, capacity: usize) -> Self { let pb = progress_bar.clone(); - let (tx, mut rx) = channel::(20); + let (tx, mut rx) = channel::(capacity); tokio::spawn(async move { - let mut pending = VecDeque::with_capacity(20); + let mut pending = VecDeque::with_capacity(capacity); while let Some(msg) = rx.recv().await { match msg { Operation::Started(op) => pending.push_back(op), diff --git a/src/uv_reporter.rs b/src/uv_reporter.rs new file mode 100644 index 000000000..1306e0ab1 --- /dev/null +++ b/src/uv_reporter.rs @@ -0,0 +1,226 @@ +use crate::progress::{self, ProgressBarMessageFormatter, ScopedTask}; +use distribution_filename::WheelFilename; +use distribution_types::{CachedDist, DistributionMetadata, Name, SourceDist, VersionOrUrl}; +use indicatif::ProgressBar; +use itertools::Itertools; +use std::{collections::HashMap, ops::Deref, sync::Arc, time::Duration}; +use url::Url; +use uv_normalize::PackageName; + +fn create_progress(length: u64, message: &'static str) -> ProgressBar { + // Construct a progress bar to provide some indication on what is currently downloading. + // For instance if we could also show at what speed the downloads are progressing or the total + // size of the downloads that would really help the user I think. + let pb = progress::global_multi_progress().add(ProgressBar::new(length)); + pb.set_style(progress::default_progress_style()); + pb.set_prefix(message); + pb.enable_steady_tick(Duration::from_millis(100)); + pb +} + +pub struct UvReporterOptions { + length: Option, + top_level_message: &'static str, + progress_bar: Option, + starting_tasks: Vec, + capacity: Option, +} + +impl UvReporterOptions { + pub fn new() -> Self { + Self { + length: None, + top_level_message: "", + progress_bar: None, + starting_tasks: Vec::new(), + capacity: None, + } + } + + pub fn with_length(mut self, length: u64) -> Self { + self.length = Some(length); + self + } + + pub fn with_top_level_message(mut self, message: &'static str) -> Self { + self.top_level_message = message; + self + } + + pub fn with_existing(mut self, progress_bar: ProgressBar) -> Self { + self.progress_bar = Some(progress_bar); + self + } + + pub fn with_capacity(mut self, capacity: usize) -> Self { + self.capacity = Some(capacity); + self + } + + pub fn with_starting_tasks(mut self, tasks: impl Iterator) -> Self { + self.starting_tasks = tasks.collect_vec(); + self + } +} + +/// Reports on download progress. +pub struct UvReporter { + pb: ProgressBar, + fmt: ProgressBarMessageFormatter, + scoped_tasks: Arc>>>, + name_to_id: HashMap, +} + +impl UvReporter { + /// Create a new instance that will report on the progress the given uv reporter + /// This uses a set size and message + pub fn new(options: UvReporterOptions) -> Self { + // Use a new progress bar if none was provided. + let pb = if let Some(pb) = options.progress_bar { + pb + } else { + create_progress( + options.length.unwrap_or_default(), + options.top_level_message, + ) + }; + + // Create the formatter + let fmt = ProgressBarMessageFormatter::new_with_capacity( + pb.clone(), + options.capacity.unwrap_or(20), + ); + + let mut name_to_id = std::collections::HashMap::new(); + let mut starting_tasks = vec![]; + // Add the starting tasks + for task in options.starting_tasks { + let scoped_task = fmt.start_sync(task.clone()); + starting_tasks.push(Some(scoped_task)); + name_to_id.insert(task, starting_tasks.len() - 1); + } + + Self { + pb, + fmt, + scoped_tasks: Arc::new(std::sync::Mutex::new(starting_tasks)), + name_to_id, + } + } + + fn lock(&self) -> std::sync::MutexGuard>> { + self.scoped_tasks.lock().expect("progress lock poison") + } + + pub fn start_sync(&self, message: String) -> usize { + let task = self.fmt.start_sync(message); + let mut lock = self.lock(); + lock.push(Some(task)); + lock.len() - 1 + } + + pub fn finish(&self, id: usize) { + let mut lock = self.lock(); + let len = lock.len(); + let task = lock + .get_mut(id) + .expect(&format!("progres bar error idx ({id}) > {len}")) + .take(); + if let Some(task) = task { + task.finish_sync(); + } + } + + pub fn finish_all(&self) { + self.pb.finish_and_clear() + } + + pub fn increment_progress(&self) { + self.pb.inc(1); + } +} + +impl uv_installer::DownloadReporter for UvReporter { + fn on_progress(&self, dist: &CachedDist) { + if let Some(id) = self.name_to_id.get(&format!("{}", dist.name())) { + self.finish(*id); + } + self.increment_progress(); + } + + fn on_complete(&self) { + self.finish_all(); + } + + fn on_build_start(&self, dist: &distribution_types::SourceDist) -> usize { + self.start_sync(format!("building {}", dist.name().as_ref())) + } + + fn on_build_complete(&self, _dist: &distribution_types::SourceDist, id: usize) { + self.finish(id); + } + + fn on_editable_build_start(&self, dist: &distribution_types::LocalEditable) -> usize { + let path = dist.path.file_name(); + if let Some(path) = path { + self.start_sync(format!( + "building editable source {}", + path.to_string_lossy() + )) + } else { + self.start_sync("building editable source".to_string()) + } + } + + fn on_editable_build_complete(&self, _dist: &distribution_types::LocalEditable, id: usize) { + self.finish(id); + } + + fn on_checkout_start(&self, url: &url::Url, _rev: &str) -> usize { + self.start_sync(format!("cloning {}", url.to_string())) + } + + fn on_checkout_complete(&self, _url: &url::Url, _rev: &str, index: usize) { + self.finish(index); + } +} + +impl uv_installer::InstallReporter for UvReporter { + fn on_install_progress(&self, wheel: &CachedDist) { + if let Some(id) = self.name_to_id.get(&format!("{}", wheel.name())) { + self.finish(*id); + } + self.increment_progress(); + } + + fn on_install_complete(&self) { + self.finish_all() + } +} + +impl uv_resolver::ResolverReporter for UvReporter { + fn on_progress(&self, name: &PackageName, version: VersionOrUrl) { + self.pb + .set_message(format!("resolving {}{}", name, version)); + } + + fn on_build_start(&self, dist: &distribution_types::SourceDist) -> usize { + self.start_sync(format!("building {}", dist.name().as_ref())) + } + + fn on_build_complete(&self, _dist: &distribution_types::SourceDist, id: usize) { + self.finish(id); + } + + fn on_checkout_start(&self, url: &url::Url, _rev: &str) -> usize { + self.start_sync(format!("cloning {}", url.to_string())) + } + + fn on_checkout_complete(&self, _url: &url::Url, _rev: &str, index: usize) { + self.finish(index); + } + + fn on_complete(&self) { + self.finish_all() + } +} From 33a21fcbf4d6f41b61df1c4da67ca4955bf084ba Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 26 Feb 2024 13:28:25 +0100 Subject: [PATCH 41/55] fix: clippy --- src/install_pypi.rs | 12 +++++------- src/lock_file/resolve.rs | 2 +- src/lock_file/update.rs | 2 +- src/uv_reporter.rs | 12 +++++------- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index aa04770ac..dd53bf84b 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -114,10 +114,8 @@ fn locked_data_to_file(pkg: &PypiPackageData, filename: &str) -> distribution_ty fn convert_to_dist(pkg: &PypiPackageData) -> Dist { // Extract last component from url let filename_raw = pkg.url.path_segments().unwrap().last().unwrap(); - let filename = DistFilename::try_from_normalized_filename(filename_raw).expect(&format!( - "{} - could not convert to dist filename", - pkg.name.as_ref() - )); + let filename = DistFilename::try_from_normalized_filename(filename_raw) + .unwrap_or_else(|| panic!("{} - could not convert to dist filename", pkg.name.as_ref())); // Bit of a hack to create the file type let file = locked_data_to_file(pkg, filename_raw); @@ -129,9 +127,9 @@ fn convert_to_dist(pkg: &PypiPackageData) -> Dist { /// and what we need to download from the registry. /// Also determine what we need to remove. /// Ignores re-installs for now. -fn whats_the_plan<'venv, 'a>( +fn whats_the_plan<'a>( required: &'a [CombinedPypiPackageData], - installed: &SitePackages<'venv>, + installed: &SitePackages<'_>, registry_index: &'a mut RegistryWheelIndex<'a>, uv_cache: &Cache, ) -> miette::Result { @@ -262,7 +260,7 @@ pub async fn update_python_distributions( // Determine the current environment markers. let tags = get_pypi_tags( Platform::current(), - &system_requirements, + system_requirements, &python_record.package_record, )?; diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 2f20dc367..0d7ef415b 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -323,7 +323,7 @@ pub async fn resolve_pypi( &NoBuild::None, &NoBinary::None, ) - .with_options(options.clone()); + .with_options(options); let constraints = conda_python_packages .values() diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 42f5cbc4a..924949a91 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1233,7 +1233,7 @@ async fn spawn_extract_pypi_environment_task( .iter() .filter_map(|record| PypiPackageIdentifier::from_record(record).ok()) .flatten() - .map(|identifier| (identifier.name.clone().into(), identifier)) + .map(|identifier| (identifier.name.clone(), identifier)) .collect::>(); Arc::new( diff --git a/src/uv_reporter.rs b/src/uv_reporter.rs index 1306e0ab1..6ad48ce8a 100644 --- a/src/uv_reporter.rs +++ b/src/uv_reporter.rs @@ -1,10 +1,8 @@ use crate::progress::{self, ProgressBarMessageFormatter, ScopedTask}; -use distribution_filename::WheelFilename; -use distribution_types::{CachedDist, DistributionMetadata, Name, SourceDist, VersionOrUrl}; +use distribution_types::{CachedDist, Name, VersionOrUrl}; use indicatif::ProgressBar; use itertools::Itertools; -use std::{collections::HashMap, ops::Deref, sync::Arc, time::Duration}; -use url::Url; +use std::{collections::HashMap, sync::Arc, time::Duration}; use uv_normalize::PackageName; fn create_progress(length: u64, message: &'static str) -> ProgressBar { @@ -124,7 +122,7 @@ impl UvReporter { let len = lock.len(); let task = lock .get_mut(id) - .expect(&format!("progres bar error idx ({id}) > {len}")) + .unwrap_or_else(|| panic!("progress bar error idx ({id}) > {len}")) .take(); if let Some(task) = task { task.finish_sync(); @@ -177,7 +175,7 @@ impl uv_installer::DownloadReporter for UvReporter { } fn on_checkout_start(&self, url: &url::Url, _rev: &str) -> usize { - self.start_sync(format!("cloning {}", url.to_string())) + self.start_sync(format!("cloning {}", url)) } fn on_checkout_complete(&self, _url: &url::Url, _rev: &str, index: usize) { @@ -213,7 +211,7 @@ impl uv_resolver::ResolverReporter for UvReporter { } fn on_checkout_start(&self, url: &url::Url, _rev: &str) -> usize { - self.start_sync(format!("cloning {}", url.to_string())) + self.start_sync(format!("cloning {}", url)) } fn on_checkout_complete(&self, _url: &url::Url, _rev: &str, index: usize) { From e6d7387ad5e4dd5b070ee37569665051cac0a3a0 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 26 Feb 2024 13:31:32 +0100 Subject: [PATCH 42/55] fix: lock --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 264fb6ae3..783673ec7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -592,9 +592,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", "serde", @@ -1865,7 +1865,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -4775,9 +4775,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.13" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "task-local-extensions" From 82670014bd61d410c58adb938cdca4cfd1deb395 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 26 Feb 2024 16:18:37 +0100 Subject: [PATCH 43/55] feat: update example --- examples/pypi/pixi.lock | 4704 +++++++++++++++++++++++++++++++++++++++ examples/pypi/pixi.toml | 3 +- 2 files changed, 4706 insertions(+), 1 deletion(-) create mode 100644 examples/pypi/pixi.lock diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock new file mode 100644 index 000000000..e787c8237 --- /dev/null +++ b/examples/pypi/pixi.lock @@ -0,0 +1,4704 @@ +version: 4 +environments: + default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-20_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-20_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-16.0.6-default_hb11cfb5_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-16.0.6-default_ha2b6cf4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.5.0-hcb278e6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-20_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm16-16.0.6-hb3ce162_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.25-pthreads_h413a1c8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.1-h2797004_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.5-h232c23b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py311h64a7726_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/61/79618621c56244d4778811f98737af8be4af1c0b034261c270cdfbda0762/grpcio-1.62.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d4/47/1ccf9f62d2674d3ca3e95452c5f9dd114234d1535dec77c96528bf6a31fc/pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + osx-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.2.2-h8857fd0_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-20_osx64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-20_osx64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-16.0.6-default_h7151d67_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang13-16.0.6-default_h0edc4dd_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-16.0.6-hd57cbcb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.5.0-hf0c8a7f_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-20_osx64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm16-16.0.6-hbedff68_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.25-openmp_hfef2a42_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.45.1-h92b6c6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.5-hc0ae0f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.2.13-h8a1eda9_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-17.0.6-hb6ac08f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.4-h93d8f39_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.2.1-hd75f5a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.8-h9f0c242_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-4_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.11.4-py311he0bea55_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/d0/5911ad3cecb896588202e3e90bd97c0c7381718a6ccb2eaeebb70d7fe2ce/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d3/8a/4e997c40be25c54b4c46140175052c996a9ca99ae7f563dce29112e5dbcf/grpcio-1.62.0-cp311-cp311-macosx_10_10_universal2.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-20_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-20_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-16.0.6-default_he012953_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-16.0.6-default_h83d0a53_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-16.0.6-h4653b0c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.5.0-hb7217d7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-20_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm16-16.0.6-haab561b_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.25-openmp_h6c19121_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.45.1-h091b4b1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.5-h0d0cfa8_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.2.13-h53f4e23_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-17.0.6-hcd81f8e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h463b476_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.2.1-h0d3ecfb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.11.4-py311h2b215a9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl + - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/d3/8a/4e997c40be25c54b4c46140175052c996a9ca99ae7f563dce29112e5dbcf/grpcio-1.62.0-cp311-cp311-macosx_10_10_universal2.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + win-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.2.2-h56e8100_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.0.0-h57928b3_49841.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-21_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-21_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang-16.0.6-default_h3a3e6c3_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-16.0.6-default_hf64faad_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.5.0-h63175ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.9.3-default_haede6df_1009.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-21_win64_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.45.1-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.5-hc3477c8_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.0.0-h66d3029_49657.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.2.1-hcfcfb64_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.8-h2628c8c_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-4_cp311.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.11.4-py311h0b4df5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.11.0-h91493d7_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-hcf57466_18.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.38.33130-h82b7239_18.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33130-hcb4865c_18.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda + - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + - pypi: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + - pypi: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + - pypi: https://files.pythonhosted.org/packages/61/11/1812ef6cbd7433ad240f72161ce5f84c4c450cede4db080365d371d29117/pandas-2.2.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl +packages: +- kind: conda + name: _libgcc_mutex + version: '0.1' + build: conda_forge + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + md5: d7c89558ba9fa0495403155b64376d81 + license: None + size: 2562 + timestamp: 1578324546067 +- kind: conda + name: _openmp_mutex + version: '4.5' + build: 2_gnu + build_number: 16 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + md5: 73aaf86a425cc6e73fcf236a5a46396d + depends: + - _libgcc_mutex 0.1 conda_forge + - libgomp >=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + size: 23621 + timestamp: 1650670423406 +- kind: pypi + name: absl-py + version: 2.1.0 + url: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl + sha256: 526a04eadab8b4ee719ce68f204172ead1027549089702d99b9059f129ff1308 + requires_python: '>=3.7' +- kind: pypi + name: asttokens + version: 2.4.1 + url: https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl + sha256: 051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24 + requires_dist: + - six >=1.12.0 + - typing ; python_version < '3.5' + - astroid <2, >=1 ; python_version < '3' and extra == 'astroid' + - astroid <4, >=2 ; python_version >= '3' and extra == 'astroid' + - pytest ; extra == 'test' + - astroid <2, >=1 ; python_version < '3' and extra == 'test' + - astroid <4, >=2 ; python_version >= '3' and extra == 'test' +- kind: pypi + name: astunparse + version: 1.6.3 + url: https://files.pythonhosted.org/packages/2b/03/13dde6512ad7b4557eb792fbcf0c653af6076b81e5941d36ec61f7ce6028/astunparse-1.6.3-py2.py3-none-any.whl + sha256: c2652417f2c8b5bb325c885ae329bdf3f86424075c4fd1a128674bc6fba4b8e8 + requires_dist: + - wheel <1.0, >=0.23.0 + - six <2.0, >=1.6.1 +- kind: pypi + name: black + version: 23.12.1 + url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba + requires_dist: + - click >=8.0.0 + - mypy-extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 ; python_version < '3.11' + - typing-extensions >=4.0.1 ; python_version < '3.11' + - colorama >=0.4.3 ; extra == 'colorama' + - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' + - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' + - ipython >=7.8.0 ; extra == 'jupyter' + - tokenize-rt >=3.2.0 ; extra == 'jupyter' + - uvloop >=0.15.2 ; extra == 'uvloop' + requires_python: '>=3.8' +- kind: pypi + name: black + version: 23.12.1 + url: https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59 + requires_dist: + - click >=8.0.0 + - mypy-extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 ; python_version < '3.11' + - typing-extensions >=4.0.1 ; python_version < '3.11' + - colorama >=0.4.3 ; extra == 'colorama' + - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' + - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' + - ipython >=7.8.0 ; extra == 'jupyter' + - tokenize-rt >=3.2.0 ; extra == 'jupyter' + - uvloop >=0.15.2 ; extra == 'uvloop' + requires_python: '>=3.8' +- kind: pypi + name: black + version: 23.12.1 + url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b + requires_dist: + - click >=8.0.0 + - mypy-extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 ; python_version < '3.11' + - typing-extensions >=4.0.1 ; python_version < '3.11' + - colorama >=0.4.3 ; extra == 'colorama' + - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' + - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' + - ipython >=7.8.0 ; extra == 'jupyter' + - tokenize-rt >=3.2.0 ; extra == 'jupyter' + - uvloop >=0.15.2 ; extra == 'uvloop' + requires_python: '>=3.8' +- kind: pypi + name: black + version: 23.12.1 + url: https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl + sha256: 0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50 + requires_dist: + - click >=8.0.0 + - mypy-extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 ; python_version < '3.11' + - typing-extensions >=4.0.1 ; python_version < '3.11' + - colorama >=0.4.3 ; extra == 'colorama' + - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd' + - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd' + - ipython >=7.8.0 ; extra == 'jupyter' + - tokenize-rt >=3.2.0 ; extra == 'jupyter' + - uvloop >=0.15.2 ; extra == 'uvloop' + requires_python: '>=3.8' +- kind: pypi + name: blinker + version: 1.7.0 + url: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl + sha256: c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 + requires_python: '>=3.8' +- kind: conda + name: bzip2 + version: 1.0.8 + build: h10d778d_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h10d778d_5.conda + sha256: 61fb2b488928a54d9472113e1280b468a309561caa54f33825a3593da390b242 + md5: 6097a6ca9ada32699b5fc4312dd6ef18 + license: bzip2-1.0.6 + license_family: BSD + size: 127885 + timestamp: 1699280178474 +- kind: conda + name: bzip2 + version: 1.0.8 + build: h93a5062_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda + sha256: bfa84296a638bea78a8bb29abc493ee95f2a0218775642474a840411b950fe5f + md5: 1bbc659ca658bfd49a481b5ef7a0f40f + license: bzip2-1.0.6 + license_family: BSD + size: 122325 + timestamp: 1699280294368 +- kind: conda + name: bzip2 + version: 1.0.8 + build: hcfcfb64_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-hcfcfb64_5.conda + sha256: ae5f47a5c86fd6db822931255dcf017eb12f60c77f07dc782ccb477f7808aab2 + md5: 26eb8ca6ea332b675e11704cce84a3be + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: bzip2-1.0.6 + license_family: BSD + size: 124580 + timestamp: 1699280668742 +- kind: conda + name: bzip2 + version: 1.0.8 + build: hd590300_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda + sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8 + md5: 69b8b6202a07720f448be700e300ccf4 + depends: + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + size: 254228 + timestamp: 1699279927352 +- kind: conda + name: ca-certificates + version: 2024.2.2 + build: h56e8100_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2024.2.2-h56e8100_0.conda + sha256: 4d587088ecccd393fec3420b64f1af4ee1a0e6897a45cfd5ef38055322cea5d0 + md5: 63da060240ab8087b60d1357051ea7d6 + license: ISC + size: 155886 + timestamp: 1706843918052 +- kind: conda + name: ca-certificates + version: 2024.2.2 + build: h8857fd0_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2024.2.2-h8857fd0_0.conda + sha256: 54a794aedbb4796afeabdf54287b06b1d27f7b13b3814520925f4c2c80f58ca9 + md5: f2eacee8c33c43692f1ccfd33d0f50b1 + license: ISC + size: 155665 + timestamp: 1706843838227 +- kind: conda + name: ca-certificates + version: 2024.2.2 + build: hbcca054_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda + sha256: 91d81bfecdbb142c15066df70cc952590ae8991670198f92c66b62019b251aeb + md5: 2f4327a1cbe7f022401b236e915a5fef + license: ISC + size: 155432 + timestamp: 1706843687645 +- kind: conda + name: ca-certificates + version: 2024.2.2 + build: hf0a4a13_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda + sha256: 49bc3439816ac72d0c0e0f144b8cc870fdcc4adec2e861407ec818d8116b2204 + md5: fb416a1795f18dcc5a038bc2dc54edf9 + license: ISC + size: 155725 + timestamp: 1706844034242 +- kind: pypi + name: cachetools + version: 5.3.2 + url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl + sha256: 861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + requires_python: '>=3.7' +- kind: pypi + name: certifi + version: 2024.2.2 + url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl + sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 + requires_python: '>=3.6' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 + requires_python: '>=3.7.0' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 + requires_python: '>=3.7.0' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl + sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e + requires_python: '>=3.7.0' +- kind: pypi + name: charset-normalizer + version: 3.3.2 + url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl + sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 + requires_python: '>=3.7.0' +- kind: pypi + name: click + version: 8.1.7 + url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl + sha256: ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 + requires_dist: + - colorama ; platform_system == 'Windows' + - importlib-metadata ; python_version < '3.8' + requires_python: '>=3.7' +- kind: pypi + name: colorama + version: 0.4.6 + url: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl + sha256: 4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7' +- kind: pypi + name: contourpy + version: 1.2.0 + url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 + requires_dist: + - numpy <2.0, >=1.20 + - furo ; extra == 'docs' + - sphinx >=7.2 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - bokeh ; extra == 'bokeh' + - selenium ; extra == 'bokeh' + - contourpy[bokeh,docs] ; extra == 'mypy' + - docutils-stubs ; extra == 'mypy' + - mypy ==1.6.1 ; extra == 'mypy' + - types-pillow ; extra == 'mypy' + - contourpy[test-no-images] ; extra == 'test' + - matplotlib ; extra == 'test' + - pillow ; extra == 'test' + - pytest ; extra == 'test-no-images' + - pytest-cov ; extra == 'test-no-images' + - pytest-xdist ; extra == 'test-no-images' + - wurlitzer ; extra == 'test-no-images' + requires_python: '>=3.9' +- kind: pypi + name: contourpy + version: 1.2.0 + url: https://files.pythonhosted.org/packages/e2/83/29a63bbc72839cc6b24b5a0e3d004d4ed4e8439f26460ad9a34e39251904/contourpy-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 + requires_dist: + - numpy <2.0, >=1.20 + - furo ; extra == 'docs' + - sphinx >=7.2 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - bokeh ; extra == 'bokeh' + - selenium ; extra == 'bokeh' + - contourpy[bokeh,docs] ; extra == 'mypy' + - docutils-stubs ; extra == 'mypy' + - mypy ==1.6.1 ; extra == 'mypy' + - types-pillow ; extra == 'mypy' + - contourpy[test-no-images] ; extra == 'test' + - matplotlib ; extra == 'test' + - pillow ; extra == 'test' + - pytest ; extra == 'test-no-images' + - pytest-cov ; extra == 'test-no-images' + - pytest-xdist ; extra == 'test-no-images' + - wurlitzer ; extra == 'test-no-images' + requires_python: '>=3.9' +- kind: pypi + name: contourpy + version: 1.2.0 + url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd + requires_dist: + - numpy <2.0, >=1.20 + - furo ; extra == 'docs' + - sphinx >=7.2 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - bokeh ; extra == 'bokeh' + - selenium ; extra == 'bokeh' + - contourpy[bokeh,docs] ; extra == 'mypy' + - docutils-stubs ; extra == 'mypy' + - mypy ==1.6.1 ; extra == 'mypy' + - types-pillow ; extra == 'mypy' + - contourpy[test-no-images] ; extra == 'test' + - matplotlib ; extra == 'test' + - pillow ; extra == 'test' + - pytest ; extra == 'test-no-images' + - pytest-cov ; extra == 'test-no-images' + - pytest-xdist ; extra == 'test-no-images' + - wurlitzer ; extra == 'test-no-images' + requires_python: '>=3.9' +- kind: pypi + name: contourpy + version: 1.2.0 + url: https://files.pythonhosted.org/packages/ca/2a/d197a412ec474391ee878b1218cf2fe9c6e963903755887fc5654c06636a/contourpy-1.2.0-cp311-cp311-win_amd64.whl + sha256: 99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de + requires_dist: + - numpy <2.0, >=1.20 + - furo ; extra == 'docs' + - sphinx >=7.2 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - bokeh ; extra == 'bokeh' + - selenium ; extra == 'bokeh' + - contourpy[bokeh,docs] ; extra == 'mypy' + - docutils-stubs ; extra == 'mypy' + - mypy ==1.6.1 ; extra == 'mypy' + - types-pillow ; extra == 'mypy' + - contourpy[test-no-images] ; extra == 'test' + - matplotlib ; extra == 'test' + - pillow ; extra == 'test' + - pytest ; extra == 'test-no-images' + - pytest-cov ; extra == 'test-no-images' + - pytest-xdist ; extra == 'test-no-images' + - wurlitzer ; extra == 'test-no-images' + requires_python: '>=3.9' +- kind: pypi + name: cycler + version: 0.12.1 + url: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + sha256: 85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 + requires_dist: + - ipython ; extra == 'docs' + - matplotlib ; extra == 'docs' + - numpydoc ; extra == 'docs' + - sphinx ; extra == 'docs' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-xdist ; extra == 'tests' + requires_python: '>=3.8' +- kind: pypi + name: decorator + version: 5.1.1 + url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl + sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 + requires_python: '>=3.5' +- kind: pypi + name: executing + version: 2.0.1 + url: https://files.pythonhosted.org/packages/80/03/6ea8b1b2a5ab40a7a60dc464d3daa7aa546e0a74d74a9f8ff551ea7905db/executing-2.0.1-py2.py3-none-any.whl + sha256: eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc + requires_dist: + - asttokens >=2.1.0 ; extra == 'tests' + - ipython ; extra == 'tests' + - pytest ; extra == 'tests' + - coverage ; extra == 'tests' + - coverage-enable-subprocess ; extra == 'tests' + - littleutils ; extra == 'tests' + - rich ; python_version >= '3.11' and extra == 'tests' + requires_python: '>=3.5' +- kind: pypi + name: flask + version: 3.0.2 + url: https://files.pythonhosted.org/packages/93/a6/aa98bfe0eb9b8b15d36cdfd03c8ca86a03968a87f27ce224fb4f766acb23/flask-3.0.2-py3-none-any.whl + sha256: 3232e0e9c850d781933cf0207523d1ece087eb8d87b23777ae38456e2fbe7c6e + requires_dist: + - werkzeug >=3.0.0 + - jinja2 >=3.1.2 + - itsdangerous >=2.1.2 + - click >=8.1.3 + - blinker >=1.6.2 + - importlib-metadata >=3.6.0 ; python_version < '3.10' + - asgiref >=3.2 ; extra == 'async' + - python-dotenv ; extra == 'dotenv' + requires_python: '>=3.8' +- kind: pypi + name: flatbuffers + version: 23.5.26 + url: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl + sha256: c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1 +- kind: pypi + name: fonttools + version: 4.49.0 + url: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 + requires_dist: + - fs <3, >=2.2.0 ; extra == 'all' + - lxml >=4.0 ; extra == 'all' + - zopfli >=0.1.4 ; extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - skia-pathops >=0.5.0 ; extra == 'all' + - uharfbuzz >=0.23.0 ; extra == 'all' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'graphite' + - pycairo ; extra == 'interpolatable' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - lxml >=4.0 ; extra == 'lxml' + - skia-pathops >=0.5.0 ; extra == 'pathops' + - matplotlib ; extra == 'plot' + - uharfbuzz >=0.23.0 ; extra == 'repacker' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - fs <3, >=2.2.0 ; extra == 'ufo' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' + - zopfli >=0.1.4 ; extra == 'woff' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + requires_python: '>=3.8' +- kind: pypi + name: fonttools + version: 4.49.0 + url: https://files.pythonhosted.org/packages/ac/cb/f42c5b07b14e9bccc5515f8584e613aed25c4a3ab064627b3b1369264d46/fonttools-4.49.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 33037d9e56e2562c710c8954d0f20d25b8386b397250d65581e544edc9d6b942 + requires_dist: + - fs <3, >=2.2.0 ; extra == 'all' + - lxml >=4.0 ; extra == 'all' + - zopfli >=0.1.4 ; extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - skia-pathops >=0.5.0 ; extra == 'all' + - uharfbuzz >=0.23.0 ; extra == 'all' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'graphite' + - pycairo ; extra == 'interpolatable' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - lxml >=4.0 ; extra == 'lxml' + - skia-pathops >=0.5.0 ; extra == 'pathops' + - matplotlib ; extra == 'plot' + - uharfbuzz >=0.23.0 ; extra == 'repacker' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - fs <3, >=2.2.0 ; extra == 'ufo' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' + - zopfli >=0.1.4 ; extra == 'woff' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + requires_python: '>=3.8' +- kind: pypi + name: fonttools + version: 4.49.0 + url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e + requires_dist: + - fs <3, >=2.2.0 ; extra == 'all' + - lxml >=4.0 ; extra == 'all' + - zopfli >=0.1.4 ; extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - skia-pathops >=0.5.0 ; extra == 'all' + - uharfbuzz >=0.23.0 ; extra == 'all' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'graphite' + - pycairo ; extra == 'interpolatable' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - lxml >=4.0 ; extra == 'lxml' + - skia-pathops >=0.5.0 ; extra == 'pathops' + - matplotlib ; extra == 'plot' + - uharfbuzz >=0.23.0 ; extra == 'repacker' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - fs <3, >=2.2.0 ; extra == 'ufo' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' + - zopfli >=0.1.4 ; extra == 'woff' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + requires_python: '>=3.8' +- kind: pypi + name: fonttools + version: 4.49.0 + url: https://files.pythonhosted.org/packages/ea/69/89f4bb69e28bb293b95abb0a66d49a841580451a584adb1aba59f39b6dff/fonttools-4.49.0-cp311-cp311-win_amd64.whl + sha256: fc11e5114f3f978d0cea7e9853627935b30d451742eeb4239a81a677bdee6bf6 + requires_dist: + - fs <3, >=2.2.0 ; extra == 'all' + - lxml >=4.0 ; extra == 'all' + - zopfli >=0.1.4 ; extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - skia-pathops >=0.5.0 ; extra == 'all' + - uharfbuzz >=0.23.0 ; extra == 'all' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - lz4 >=1.7.4.2 ; extra == 'graphite' + - pycairo ; extra == 'interpolatable' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - lxml >=4.0 ; extra == 'lxml' + - skia-pathops >=0.5.0 ; extra == 'pathops' + - matplotlib ; extra == 'plot' + - uharfbuzz >=0.23.0 ; extra == 'repacker' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - fs <3, >=2.2.0 ; extra == 'ufo' + - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode' + - zopfli >=0.1.4 ; extra == 'woff' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + requires_python: '>=3.8' +- kind: pypi + name: gast + version: 0.5.4 + url: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + sha256: 6fc4fa5fa10b72fb8aab4ae58bcb023058386e67b6fa2e3e34cec5c769360316 + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' +- kind: pypi + name: google-auth + version: 2.28.1 + url: https://files.pythonhosted.org/packages/b7/1d/f152a5f6d243b6acbb2a710ed19aa47154d678359bed995abdd9daf0cff0/google_auth-2.28.1-py2.py3-none-any.whl + sha256: 25141e2d7a14bfcba945f5e9827f98092716e99482562f15306e5b026e21aa72 + requires_dist: + - cachetools <6.0, >=2.0.0 + - pyasn1-modules >=0.2.1 + - rsa <5, >=3.1.4 + - aiohttp <4.0.0.dev0, >=3.6.2 ; extra == 'aiohttp' + - requests <3.0.0.dev0, >=2.20.0 ; extra == 'aiohttp' + - cryptography ==36.0.2 ; extra == 'enterprise_cert' + - pyopenssl ==22.0.0 ; extra == 'enterprise_cert' + - pyopenssl >=20.0.0 ; extra == 'pyopenssl' + - cryptography >=38.0.3 ; extra == 'pyopenssl' + - pyu2f >=0.1.5 ; extra == 'reauth' + - requests <3.0.0.dev0, >=2.20.0 ; extra == 'requests' + requires_python: '>=3.7' +- kind: pypi + name: google-auth-oauthlib + version: 1.0.0 + url: https://files.pythonhosted.org/packages/4a/07/8d9a8186e6768b55dfffeb57c719bc03770cf8a970a074616ae6f9e26a57/google_auth_oauthlib-1.0.0-py2.py3-none-any.whl + sha256: 95880ca704928c300f48194d1770cf5b1462835b6e49db61445a520f793fd5fb + requires_dist: + - google-auth >=2.15.0 + - requests-oauthlib >=0.7.0 + - click >=6.0.0 ; extra == 'tool' + requires_python: '>=3.6' +- kind: pypi + name: google-pasta + version: 0.2.0 + url: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl + sha256: b32482794a366b5366a32c92a9a9201b107821889935a02b3e51f6b432ea84ed + requires_dist: + - six +- kind: pypi + name: grpcio + version: 1.62.0 + url: https://files.pythonhosted.org/packages/d3/8a/4e997c40be25c54b4c46140175052c996a9ca99ae7f563dce29112e5dbcf/grpcio-1.62.0-cp311-cp311-macosx_10_10_universal2.whl + sha256: 36df33080cd7897623feff57831eb83c98b84640b016ce443305977fac7566fb + requires_dist: + - grpcio-tools >=1.62.0 ; extra == 'protobuf' + requires_python: '>=3.7' +- kind: pypi + name: grpcio + version: 1.62.0 + url: https://files.pythonhosted.org/packages/7e/61/79618621c56244d4778811f98737af8be4af1c0b034261c270cdfbda0762/grpcio-1.62.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 7f9d6c3223914abb51ac564dc9c3782d23ca445d2864321b9059d62d47144021 + requires_dist: + - grpcio-tools >=1.62.0 ; extra == 'protobuf' + requires_python: '>=3.7' +- kind: pypi + name: grpcio + version: 1.62.0 + url: https://files.pythonhosted.org/packages/02/2b/f1a3b06576a33f3a5b7b2f53cafaf3c2f11a1886c1ae7056ae17e82e4573/grpcio-1.62.0-cp311-cp311-win_amd64.whl + sha256: eef1d16ac26c5325e7d39f5452ea98d6988c700c427c52cbc7ce3201e6d93334 + requires_dist: + - grpcio-tools >=1.62.0 ; extra == 'protobuf' + requires_python: '>=3.7' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/1e/e9/61d7338e503d63d2ce733373fa86256614f579b173cf3d0571d4f46cb561/h5py-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 6c013d2e79c00f28ffd0cc24e68665ea03ae9069e167087b2adb5727d2736a52 + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' +- kind: pypi + name: h5py + version: 3.10.0 + url: https://files.pythonhosted.org/packages/b6/35/ed21094eb4d8acf31ccc7666a4d8701c1ce38f8d1fa3c7036f24416f6337/h5py-3.10.0-cp311-cp311-win_amd64.whl + sha256: 92273ce69ae4983dadb898fd4d3bea5eb90820df953b401282ee69ad648df684 + requires_dist: + - numpy >=1.17.3 + requires_python: '>=3.8' +- kind: conda + name: icu + version: '73.2' + build: h59595ed_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda + sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 + md5: cc47e1facc155f91abd89b11e48e72ff + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: MIT + license_family: MIT + size: 12089150 + timestamp: 1692900650789 +- kind: conda + name: icu + version: '73.2' + build: hc8870d7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda + sha256: ff9cd0c6cd1349954c801fb443c94192b637e1b414514539f3c49c56a39f51b1 + md5: 8521bd47c0e11c5902535bb1a17c565f + license: MIT + license_family: MIT + size: 11997841 + timestamp: 1692902104771 +- kind: conda + name: icu + version: '73.2' + build: hf5e326d_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/icu-73.2-hf5e326d_0.conda + sha256: f66362dc36178ac9b7c7a9b012948a9d2d050b3debec24bbd94aadbc44854185 + md5: 5cc301d759ec03f28328428e28f65591 + license: MIT + license_family: MIT + size: 11787527 + timestamp: 1692901622519 +- kind: pypi + name: idna + version: '3.6' + url: https://files.pythonhosted.org/packages/c2/e7/a82b05cf63a603df6e68d59ae6a68bf5064484a0718ea5033660af4b54a9/idna-3.6-py3-none-any.whl + sha256: c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f + requires_python: '>=3.5' +- kind: conda + name: intel-openmp + version: 2024.0.0 + build: h57928b3_49841 + build_number: 49841 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.0.0-h57928b3_49841.conda + sha256: 6ee8eb9080bb3268654e015dd17ad79d0c1ea98b2eee6b928ecd27f01d6b38e8 + md5: e3255c8cdaf1d52f15816d1970f9c77a + license: LicenseRef-ProprietaryIntel + license_family: Proprietary + size: 2325424 + timestamp: 1706182537883 +- kind: pypi + name: ipython + version: 8.22.1 + url: https://files.pythonhosted.org/packages/11/3e/956d40991c152010d71b38b1a9763edc8fe5944d360e1c256fae60cb9165/ipython-8.22.1-py3-none-any.whl + sha256: 869335e8cded62ffb6fac8928e5287a05433d6462e3ebaac25f4216474dd6bc4 + requires_dist: + - decorator + - jedi >=0.16 + - matplotlib-inline + - prompt-toolkit <3.1.0, >=3.0.41 + - pygments >=2.4.0 + - stack-data + - traitlets >=5.13.0 + - typing-extensions ; python_version < '3.10' + - exceptiongroup ; python_version < '3.11' + - pexpect >4.3 ; sys_platform != 'win32' and sys_platform != 'emscripten' + - colorama ; sys_platform == 'win32' + - ipython[black,doc,kernel,nbconvert,nbformat,notebook,parallel,qtconsole,terminal] ; extra == 'all' + - ipython[test,test-extra] ; extra == 'all' + - black ; extra == 'black' + - ipykernel ; extra == 'doc' + - setuptools >=18.5 ; extra == 'doc' + - sphinx >=1.3 ; extra == 'doc' + - sphinx-rtd-theme ; extra == 'doc' + - sphinxcontrib-jquery ; extra == 'doc' + - docrepr ; extra == 'doc' + - matplotlib ; extra == 'doc' + - stack-data ; extra == 'doc' + - typing-extensions ; extra == 'doc' + - exceptiongroup ; extra == 'doc' + - ipython[test] ; extra == 'doc' + - ipykernel ; extra == 'kernel' + - nbconvert ; extra == 'nbconvert' + - nbformat ; extra == 'nbformat' + - ipywidgets ; extra == 'notebook' + - notebook ; extra == 'notebook' + - ipyparallel ; extra == 'parallel' + - qtconsole ; extra == 'qtconsole' + - pytest <8 ; extra == 'test' + - pytest-asyncio <0.22 ; extra == 'test' + - testpath ; extra == 'test' + - pickleshare ; extra == 'test' + - ipython[test] ; extra == 'test_extra' + - curio ; extra == 'test_extra' + - matplotlib !=3.2.0 ; extra == 'test_extra' + - nbformat ; extra == 'test_extra' + - numpy >=1.23 ; extra == 'test_extra' + - pandas ; extra == 'test_extra' + - trio ; extra == 'test_extra' + requires_python: '>=3.10' +- kind: pypi + name: itsdangerous + version: 2.1.2 + url: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + sha256: 2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 + requires_python: '>=3.7' +- kind: pypi + name: jedi + version: 0.19.1 + url: https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl + sha256: e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0 + requires_dist: + - parso <0.9.0, >=0.8.3 + - jinja2 ==2.11.3 ; extra == 'docs' + - markupsafe ==1.1.1 ; extra == 'docs' + - pygments ==2.8.1 ; extra == 'docs' + - alabaster ==0.7.12 ; extra == 'docs' + - babel ==2.9.1 ; extra == 'docs' + - chardet ==4.0.0 ; extra == 'docs' + - commonmark ==0.8.1 ; extra == 'docs' + - docutils ==0.17.1 ; extra == 'docs' + - future ==0.18.2 ; extra == 'docs' + - idna ==2.10 ; extra == 'docs' + - imagesize ==1.2.0 ; extra == 'docs' + - mock ==1.0.1 ; extra == 'docs' + - packaging ==20.9 ; extra == 'docs' + - pyparsing ==2.4.7 ; extra == 'docs' + - pytz ==2021.1 ; extra == 'docs' + - readthedocs-sphinx-ext ==2.1.4 ; extra == 'docs' + - recommonmark ==0.5.0 ; extra == 'docs' + - requests ==2.25.1 ; extra == 'docs' + - six ==1.15.0 ; extra == 'docs' + - snowballstemmer ==2.1.0 ; extra == 'docs' + - sphinx-rtd-theme ==0.4.3 ; extra == 'docs' + - sphinx ==1.8.5 ; extra == 'docs' + - sphinxcontrib-serializinghtml ==1.1.4 ; extra == 'docs' + - sphinxcontrib-websupport ==1.2.4 ; extra == 'docs' + - urllib3 ==1.26.4 ; extra == 'docs' + - flake8 ==5.0.4 ; extra == 'qa' + - mypy ==0.971 ; extra == 'qa' + - types-setuptools ==67.2.0.1 ; extra == 'qa' + - django ; extra == 'testing' + - attrs ; extra == 'testing' + - colorama ; extra == 'testing' + - docopt ; extra == 'testing' + - pytest <7.0.0 ; extra == 'testing' + requires_python: '>=3.6' +- kind: pypi + name: jinja2 + version: 3.1.3 + url: https://files.pythonhosted.org/packages/30/6d/6de6be2d02603ab56e72997708809e8a5b0fbfee080735109b40a3564843/Jinja2-3.1.3-py3-none-any.whl + sha256: 7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa + requires_dist: + - markupsafe >=2.0 + - babel >=2.7 ; extra == 'i18n' + requires_python: '>=3.7' +- kind: pypi + name: keras + version: 2.14.0 + url: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl + sha256: d7429d1d2131cc7eb1f2ea2ec330227c7d9d38dab3dfdf2e78defee4ecc43fcd + requires_python: '>=3.9' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl + sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' +- kind: pypi + name: kiwisolver + version: 1.4.5 + url: https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl + sha256: 6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 + requires_dist: + - typing-extensions ; python_version < '3.8' + requires_python: '>=3.7' +- kind: conda + name: ld_impl_linux-64 + version: '2.40' + build: h41732ed_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda + sha256: f6cc89d887555912d6c61b295d398cff9ec982a3417d38025c45d5dd9b9e79cd + md5: 7aca3059a1729aa76c597603f10b0dd3 + constrains: + - binutils_impl_linux-64 2.40 + license: GPL-3.0-only + license_family: GPL + size: 704696 + timestamp: 1674833944779 +- kind: conda + name: libblas + version: 3.9.0 + build: 20_linux64_openblas + build_number: 20 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-20_linux64_openblas.conda + sha256: 8a0ee1de693a9b3da4a11b95ec81b40dd434bd01fa1f5f38f8268cd2146bf8f0 + md5: 2b7bb4f7562c8cf334fc2e20c2d28abc + depends: + - libopenblas >=0.3.25,<0.3.26.0a0 + - libopenblas >=0.3.25,<1.0a0 + constrains: + - liblapacke 3.9.0 20_linux64_openblas + - libcblas 3.9.0 20_linux64_openblas + - blas * openblas + - liblapack 3.9.0 20_linux64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14433 + timestamp: 1700568383457 +- kind: conda + name: libblas + version: 3.9.0 + build: 20_osx64_openblas + build_number: 20 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-20_osx64_openblas.conda + sha256: 89cac4653b52817d44802d96c13e5f194320e2e4ea805596641d0f3e22e32525 + md5: 1673476d205d14a9042172be795f63cb + depends: + - libopenblas >=0.3.25,<0.3.26.0a0 + - libopenblas >=0.3.25,<1.0a0 + constrains: + - blas * openblas + - liblapack 3.9.0 20_osx64_openblas + - liblapacke 3.9.0 20_osx64_openblas + - libcblas 3.9.0 20_osx64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14739 + timestamp: 1700568675962 +- kind: conda + name: libblas + version: 3.9.0 + build: 20_osxarm64_openblas + build_number: 20 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-20_osxarm64_openblas.conda + sha256: 5b5b8394352c8ca06b15dcc9319d0af3e9f1dc03fc0a6f6deef05d664d6b763a + md5: 49bc8dec26663241ee064b2d7116ec2d + depends: + - libopenblas >=0.3.25,<0.3.26.0a0 + - libopenblas >=0.3.25,<1.0a0 + constrains: + - liblapack 3.9.0 20_osxarm64_openblas + - liblapacke 3.9.0 20_osxarm64_openblas + - libcblas 3.9.0 20_osxarm64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 14722 + timestamp: 1700568881837 +- kind: conda + name: libblas + version: 3.9.0 + build: 21_win64_mkl + build_number: 21 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-21_win64_mkl.conda + sha256: ad47053cee17802df875203aba191b04d97a50d820dbf75a114a50972c517334 + md5: ebba3846d11201fe54277e4965ba5250 + depends: + - mkl 2024.0.0 h66d3029_49657 + constrains: + - liblapack 3.9.0 21_win64_mkl + - blas * mkl + - libcblas 3.9.0 21_win64_mkl + - liblapacke 3.9.0 21_win64_mkl + license: BSD-3-Clause + license_family: BSD + size: 5017135 + timestamp: 1705980415163 +- kind: conda + name: libcblas + version: 3.9.0 + build: 20_linux64_openblas + build_number: 20 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-20_linux64_openblas.conda + sha256: 0e34fb0f82262f02fcb279ab4a1db8d50875dc98e3019452f8f387e6bf3c0247 + md5: 36d486d72ab64ffea932329a1d3729a3 + depends: + - libblas 3.9.0 20_linux64_openblas + constrains: + - liblapacke 3.9.0 20_linux64_openblas + - blas * openblas + - liblapack 3.9.0 20_linux64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14383 + timestamp: 1700568410580 +- kind: conda + name: libcblas + version: 3.9.0 + build: 20_osx64_openblas + build_number: 20 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-20_osx64_openblas.conda + sha256: b0a4eab6d22b865d9b0e39f358f17438602621709db66b8da159197bedd2c5eb + md5: b324ad206d39ce529fb9073f9d062062 + depends: + - libblas 3.9.0 20_osx64_openblas + constrains: + - liblapack 3.9.0 20_osx64_openblas + - liblapacke 3.9.0 20_osx64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 14648 + timestamp: 1700568722960 +- kind: conda + name: libcblas + version: 3.9.0 + build: 20_osxarm64_openblas + build_number: 20 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-20_osxarm64_openblas.conda + sha256: d3a74638f60e034202e373cf2950c69a8d831190d497881d13cbf789434d2489 + md5: 89f4718753c08afe8cda4dd5791ba94c + depends: + - libblas 3.9.0 20_osxarm64_openblas + constrains: + - liblapack 3.9.0 20_osxarm64_openblas + - liblapacke 3.9.0 20_osxarm64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 14642 + timestamp: 1700568912840 +- kind: conda + name: libcblas + version: 3.9.0 + build: 21_win64_mkl + build_number: 21 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-21_win64_mkl.conda + sha256: 886505d0a4a5b508b2255991395aadecdad140719ba0d413411fec86491a9283 + md5: 38e5ec23bc2b62f9dd971143aa9dddb7 + depends: + - libblas 3.9.0 21_win64_mkl + constrains: + - liblapack 3.9.0 21_win64_mkl + - blas * mkl + - liblapacke 3.9.0 21_win64_mkl + license: BSD-3-Clause + license_family: BSD + size: 5017024 + timestamp: 1705980469944 +- kind: conda + name: libclang + version: 16.0.6 + build: default_h3a3e6c3_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libclang-16.0.6-default_h3a3e6c3_5.conda + sha256: 102a75269dbefc24a6d51bdbcfaa7d8b0f3a5e1ca473e542c9b84962d5f0a1c9 + md5: e0aea760853f78f70a282a066027ce97 + depends: + - libclang13 16.0.6 default_hf64faad_5 + - libxml2 >=2.12.4,<3.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.5,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 36486 + timestamp: 1706895593334 +- kind: conda + name: libclang + version: 16.0.6 + build: default_h7151d67_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libclang-16.0.6-default_h7151d67_5.conda + sha256: 892532fe2f9463c8805201aec56c0a5e81c9d49cbe0e8fddf4f5afa886354fb3 + md5: 678ae8bfc8a689d8493fa6044014dd00 + depends: + - libclang13 16.0.6 default_h0edc4dd_5 + - libcxx >=16.0.6 + - libllvm16 >=16.0.6,<16.1.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 21824 + timestamp: 1706894508104 +- kind: conda + name: libclang + version: 16.0.6 + build: default_hb11cfb5_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang-16.0.6-default_hb11cfb5_4.conda + sha256: 53640400acd4ef2b17698162d1a551ed7020daa17e1a4b470f9c6bc16ad26266 + md5: e06fe84e14eed39835bfea0048d0345d + depends: + - libclang13 16.0.6 default_ha2b6cf4_4 + - libgcc-ng >=12 + - libllvm16 >=16.0.6,<16.1.0a0 + - libstdcxx-ng >=12 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 21614 + timestamp: 1704262596801 +- kind: conda + name: libclang + version: 16.0.6 + build: default_he012953_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-16.0.6-default_he012953_5.conda + sha256: 5b58d8a0b7db131bccedc632b1604afa3d9121220aae338865715648029a9a42 + md5: 9a97004fc0b4e31e72656a203ec784d7 + depends: + - libclang13 16.0.6 default_h83d0a53_5 + - libcxx >=16.0.6 + - libllvm16 >=16.0.6,<16.1.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 21874 + timestamp: 1706894489921 +- kind: conda + name: libclang13 + version: 16.0.6 + build: default_h0edc4dd_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libclang13-16.0.6-default_h0edc4dd_5.conda + sha256: 59aad470edd4e8b54bfe07e077ba4703481071d57513b6529d6faff29accfcdd + md5: 4b8113d203f3dcd2072917b7f2ee008d + depends: + - libcxx >=16.0.6 + - libllvm16 >=16.0.6,<16.1.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 7374897 + timestamp: 1706894398919 +- kind: conda + name: libclang13 + version: 16.0.6 + build: default_h83d0a53_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-16.0.6-default_h83d0a53_5.conda + sha256: fddaf143f9e444b1bbfecdb779850e3c1da7ac9c1614ab24daafc1e870c201aa + md5: 0fd9fdf27f7def9d4b09c3dc0b3c4570 + depends: + - libcxx >=16.0.6 + - libllvm16 >=16.0.6,<16.1.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 6825844 + timestamp: 1706894372126 +- kind: conda + name: libclang13 + version: 16.0.6 + build: default_ha2b6cf4_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libclang13-16.0.6-default_ha2b6cf4_4.conda + sha256: 8fb9d7334c55025f48e5b64f008780de7c974793fd600ff8de18ad6f1c6729c5 + md5: e5440abd8f558c242c37b72d4e8f4e90 + depends: + - libgcc-ng >=12 + - libllvm16 >=16.0.6,<16.1.0a0 + - libstdcxx-ng >=12 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 10255187 + timestamp: 1704262463504 +- kind: conda + name: libclang13 + version: 16.0.6 + build: default_hf64faad_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libclang13-16.0.6-default_hf64faad_5.conda + sha256: cb790e8038ce246e5153fbbd29c63a408b3c06d1b31d9bd8c69d33cf4c1282b8 + md5: 0d6fb8cd3148da6b85de66ad27e0d758 + depends: + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - zstd >=1.5.5,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 23180944 + timestamp: 1706895383563 +- kind: conda + name: libcxx + version: 16.0.6 + build: h4653b0c_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-16.0.6-h4653b0c_0.conda + sha256: 11d3fb51c14832d9e4f6d84080a375dec21ea8a3a381a1910e67ff9cedc20355 + md5: 9d7d724faf0413bf1dbc5a85935700c8 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 1160232 + timestamp: 1686896993785 +- kind: conda + name: libcxx + version: 16.0.6 + build: hd57cbcb_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libcxx-16.0.6-hd57cbcb_0.conda + sha256: 9063271847cf05f3a6cc6cae3e7f0ced032ab5f3a3c9d3f943f876f39c5c2549 + md5: 7d6972792161077908b62971802f289a + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 1142172 + timestamp: 1686896907750 +- kind: conda + name: libexpat + version: 2.5.0 + build: h63175ca_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.5.0-h63175ca_1.conda + sha256: 794b2a9be72f176a2767c299574d330ffb76b2ed75d7fd20bee3bbadce5886cf + md5: 636cc3cbbd2e28bcfd2f73b2044aac2c + constrains: + - expat 2.5.0.* + license: MIT + license_family: MIT + size: 138689 + timestamp: 1680190844101 +- kind: conda + name: libexpat + version: 2.5.0 + build: hb7217d7_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.5.0-hb7217d7_1.conda + sha256: 7d143a9c991579ad4207f84c632650a571c66329090daa32b3c87cf7311c3381 + md5: 5a097ad3d17e42c148c9566280481317 + constrains: + - expat 2.5.0.* + license: MIT + license_family: MIT + size: 63442 + timestamp: 1680190916539 +- kind: conda + name: libexpat + version: 2.5.0 + build: hcb278e6_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.5.0-hcb278e6_1.conda + sha256: 74c98a563777ae2ad71f1f74d458a8ab043cee4a513467c159ccf159d0e461f3 + md5: 6305a3dd2752c76335295da4e581f2fd + depends: + - libgcc-ng >=12 + constrains: + - expat 2.5.0.* + license: MIT + license_family: MIT + size: 77980 + timestamp: 1680190528313 +- kind: conda + name: libexpat + version: 2.5.0 + build: hf0c8a7f_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.5.0-hf0c8a7f_1.conda + sha256: 80024bd9f44d096c4cc07fb2bac76b5f1f7553390112dab3ad6acb16a05f0b96 + md5: 6c81cb022780ee33435cca0127dd43c9 + constrains: + - expat 2.5.0.* + license: MIT + license_family: MIT + size: 69602 + timestamp: 1680191040160 +- kind: conda + name: libffi + version: 3.4.2 + build: h0d85af4_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2 + sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f + md5: ccb34fb14960ad8b125962d3d79b31a9 + license: MIT + license_family: MIT + size: 51348 + timestamp: 1636488394370 +- kind: conda + name: libffi + version: 3.4.2 + build: h3422bc3_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca + md5: 086914b672be056eb70fd4285b6783b6 + license: MIT + license_family: MIT + size: 39020 + timestamp: 1636488587153 +- kind: conda + name: libffi + version: 3.4.2 + build: h7f98852_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + size: 58292 + timestamp: 1636488182923 +- kind: conda + name: libffi + version: 3.4.2 + build: h8ffe710_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2 + sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5 + md5: 2c96d1b6915b408893f9472569dee135 + depends: + - vc >=14.1,<15.0a0 + - vs2015_runtime >=14.16.27012 + license: MIT + license_family: MIT + size: 42063 + timestamp: 1636489106777 +- kind: conda + name: libgcc-ng + version: 13.2.0 + build: h807b86a_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda + sha256: d32f78bfaac282cfe5205f46d558704ad737b8dbf71f9227788a5ca80facaba4 + md5: d4ff227c46917d3b4565302a2bbb276b + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 13.2.0 h807b86a_5 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 770506 + timestamp: 1706819192021 +- kind: conda + name: libgfortran + version: 5.0.0 + build: 13_2_0_h97931a8_3 + build_number: 3 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda + sha256: 4874422e567b68334705c135c17e5acdca1404de8255673ce30ad3510e00be0d + md5: 0b6e23a012ee7a9a5f6b244f5a92c1d5 + depends: + - libgfortran5 13.2.0 h2873a65_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 110106 + timestamp: 1707328956438 +- kind: conda + name: libgfortran + version: 5.0.0 + build: 13_2_0_hd922786_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda + sha256: 44e541b4821c96b28b27fef5630883a60ce4fee91fd9c79f25a199f8f73f337b + md5: 4a55d9e169114b2b90d3ec4604cd7bbf + depends: + - libgfortran5 13.2.0 hf226fd6_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 110233 + timestamp: 1707330749033 +- kind: conda + name: libgfortran-ng + version: 13.2.0 + build: h69a702a_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-13.2.0-h69a702a_5.conda + sha256: 238c16c84124d58307376715839aa152bd4a1bf5a043052938ad6c3137d30245 + md5: e73e9cfd1191783392131e6238bdb3e9 + depends: + - libgfortran5 13.2.0 ha4646dd_5 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 23829 + timestamp: 1706819413770 +- kind: conda + name: libgfortran5 + version: 13.2.0 + build: h2873a65_3 + build_number: 3 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda + sha256: da3db4b947e30aec7596a3ef92200d17e774cccbbf7efc47802529a4ca5ca31b + md5: e4fb4d23ec2870ff3c40d10afe305aec + depends: + - llvm-openmp >=8.0.0 + constrains: + - libgfortran 5.0.0 13_2_0_*_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1571379 + timestamp: 1707328880361 +- kind: conda + name: libgfortran5 + version: 13.2.0 + build: ha4646dd_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-13.2.0-ha4646dd_5.conda + sha256: ba8d94e8493222ce155bb264d9de4200e41498a458e866fedf444de809bde8b6 + md5: 7a6bd7a12a4bd359e2afe6c0fa1acace + depends: + - libgcc-ng >=13.2.0 + constrains: + - libgfortran-ng 13.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1442769 + timestamp: 1706819209473 +- kind: conda + name: libgfortran5 + version: 13.2.0 + build: hf226fd6_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda + sha256: bafc679eedb468a86aa4636061c55966186399ee0a04b605920d208d97ac579a + md5: 66ac81d54e95c534ae488726c1f698ea + depends: + - llvm-openmp >=8.0.0 + constrains: + - libgfortran 5.0.0 13_2_0_*_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 997381 + timestamp: 1707330687590 +- kind: conda + name: libgomp + version: 13.2.0 + build: h807b86a_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda + sha256: 0d3d4b1b0134283ea02d58e8eb5accf3655464cf7159abf098cc694002f8d34e + md5: d211c42b9ce49aee3734fdc828731689 + depends: + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 419751 + timestamp: 1706819107383 +- kind: conda + name: libhwloc + version: 2.9.3 + build: default_haede6df_1009 + build_number: 1009 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.9.3-default_haede6df_1009.conda + sha256: 2e8c4bb7173f281a8e13f333a23c9fb7a1c86d342d7dccdd74f2eb583ddde450 + md5: 87da045f6d26ce9fe20ad76a18f6a18a + depends: + - libxml2 >=2.11.5,<3.0.0a0 + - pthreads-win32 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + size: 2578462 + timestamp: 1694533393675 +- kind: conda + name: libiconv + version: '1.17' + build: h0d3ecfb_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda + sha256: bc7de5097b97bcafcf7deaaed505f7ce02f648aac8eccc0d5a47cc599a1d0304 + md5: 69bda57310071cf6d2b86caf11573d2d + license: LGPL-2.1-only + size: 676469 + timestamp: 1702682458114 +- kind: conda + name: libiconv + version: '1.17' + build: hcfcfb64_2 + build_number: 2 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.17-hcfcfb64_2.conda + sha256: 5f844dd19b046d43174ad80c6ea75b5d504020e3b63cfbc4ace97b8730d35c7b + md5: e1eb10b1cca179f2baa3601e4efc8712 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: LGPL-2.1-only + size: 636146 + timestamp: 1702682547199 +- kind: conda + name: libiconv + version: '1.17' + build: hd590300_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + md5: d66573916ffcf376178462f1b61c941e + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + size: 705775 + timestamp: 1702682170569 +- kind: conda + name: libiconv + version: '1.17' + build: hd75f5a5_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.17-hd75f5a5_2.conda + sha256: 23d4923baeca359423a7347c2ed7aaf48c68603df0cf8b87cc94a10b0d4e9a23 + md5: 6c3628d047e151efba7cf08c5e54d1ca + license: LGPL-2.1-only + size: 666538 + timestamp: 1702682713201 +- kind: conda + name: liblapack + version: 3.9.0 + build: 20_linux64_openblas + build_number: 20 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-20_linux64_openblas.conda + sha256: ad7745b8d0f2ccb9c3ba7aaa7167d62fc9f02e45eb67172ae5f0dfb5a3b1a2cc + md5: 6fabc51f5e647d09cc010c40061557e0 + depends: + - libblas 3.9.0 20_linux64_openblas + constrains: + - liblapacke 3.9.0 20_linux64_openblas + - libcblas 3.9.0 20_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 14350 + timestamp: 1700568424034 +- kind: conda + name: liblapack + version: 3.9.0 + build: 20_osx64_openblas + build_number: 20 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-20_osx64_openblas.conda + sha256: d64e11b93dada339cd0dcc057b3f3f6a5114b8c9bdf90cf6c04cbfa75fb02104 + md5: 704bfc2af1288ea973b6755281e6ad32 + depends: + - libblas 3.9.0 20_osx64_openblas + constrains: + - blas * openblas + - liblapacke 3.9.0 20_osx64_openblas + - libcblas 3.9.0 20_osx64_openblas + license: BSD-3-Clause + license_family: BSD + size: 14658 + timestamp: 1700568740660 +- kind: conda + name: liblapack + version: 3.9.0 + build: 20_osxarm64_openblas + build_number: 20 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-20_osxarm64_openblas.conda + sha256: e13f79828a7752f6e0a74cbe62df80c551285f6c37de86bc3bd9987c97faca57 + md5: 1fefac78f2315455ce2d7f34782eac0a + depends: + - libblas 3.9.0 20_osxarm64_openblas + constrains: + - liblapacke 3.9.0 20_osxarm64_openblas + - libcblas 3.9.0 20_osxarm64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 14648 + timestamp: 1700568930669 +- kind: conda + name: liblapack + version: 3.9.0 + build: 21_win64_mkl + build_number: 21 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-21_win64_mkl.conda + sha256: 3fa7c08dd4edf59cb0907d2e5b74e6be890e0671f845e1bae892d212d118a7e9 + md5: c4740f091cb75987390087934354a621 + depends: + - libblas 3.9.0 21_win64_mkl + constrains: + - blas * mkl + - libcblas 3.9.0 21_win64_mkl + - liblapacke 3.9.0 21_win64_mkl + license: BSD-3-Clause + license_family: BSD + size: 5017043 + timestamp: 1705980523462 +- kind: conda + name: libllvm16 + version: 16.0.6 + build: haab561b_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm16-16.0.6-haab561b_3.conda + sha256: f240f3776b02c39a32ce7397d6f2de072510321c835f4def452fc62e5c3babc0 + md5: 9900d62ede9ce25b569beeeab1da094e + depends: + - libcxx >=16 + - libxml2 >=2.12.1,<3.0.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 23347663 + timestamp: 1701374993634 +- kind: conda + name: libllvm16 + version: 16.0.6 + build: hb3ce162_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libllvm16-16.0.6-hb3ce162_3.conda + sha256: 624fa4012397bc5a8c9269247bf9baa7d907eb59079aefc6f6fa6a40f10fd0ba + md5: a4d48c40dd5c60edbab7fd69c9a88967 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libxml2 >=2.12.1,<3.0.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 35359734 + timestamp: 1701375139881 +- kind: conda + name: libllvm16 + version: 16.0.6 + build: hbedff68_3 + build_number: 3 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libllvm16-16.0.6-hbedff68_3.conda + sha256: ad848dc0bb02b1dbe54324ee5700b050a2e5f63c095f5229b2de58249a3e268e + md5: 8fd56c0adc07a37f93bd44aa61a97c90 + depends: + - libcxx >=16 + - libxml2 >=2.12.1,<3.0.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - zstd >=1.5.5,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 25196932 + timestamp: 1701379796962 +- kind: conda + name: libnsl + version: 2.0.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + size: 33408 + timestamp: 1697359010159 +- kind: conda + name: libopenblas + version: 0.3.25 + build: openmp_h6c19121_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.25-openmp_h6c19121_0.conda + sha256: b112e0d500bc0314ea8d393efac3ab8c67857e5a2b345348c98e703ee92723e5 + md5: a1843550403212b9dedeeb31466ade03 + depends: + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - llvm-openmp >=16.0.6 + constrains: + - openblas >=0.3.25,<0.3.26.0a0 + license: BSD-3-Clause + license_family: BSD + size: 2896390 + timestamp: 1700535987588 +- kind: conda + name: libopenblas + version: 0.3.25 + build: openmp_hfef2a42_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.25-openmp_hfef2a42_0.conda + sha256: 9895bccdbaa34958ab7dd1f29de66d1dfb94c551c7bb5a663666a500c67ee93c + md5: a01b96f00c3155c830d98a518c7dcbfb + depends: + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - llvm-openmp >=16.0.6 + constrains: + - openblas >=0.3.25,<0.3.26.0a0 + license: BSD-3-Clause + license_family: BSD + size: 6019426 + timestamp: 1700537709900 +- kind: conda + name: libopenblas + version: 0.3.25 + build: pthreads_h413a1c8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.25-pthreads_h413a1c8_0.conda + sha256: 628564517895ee1b09cf72c817548bd80ef1acce6a8214a8520d9f7b44c4cfaf + md5: d172b34a443b95f86089e8229ddc9a17 + depends: + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=12.3.0 + constrains: + - openblas >=0.3.25,<0.3.26.0a0 + license: BSD-3-Clause + license_family: BSD + size: 5545169 + timestamp: 1700536004164 +- kind: conda + name: libsqlite + version: 3.45.1 + build: h091b4b1_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.45.1-h091b4b1_0.conda + sha256: 64befc456a38907d1334fb58eb604a96625d3a23a2f34fbd203e0b307a4a141e + md5: a153a40a253962373b5330eb9d182da9 + depends: + - libzlib >=1.2.13,<1.3.0a0 + license: Unlicense + size: 824677 + timestamp: 1707495428497 +- kind: conda + name: libsqlite + version: 3.45.1 + build: h2797004_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.1-h2797004_0.conda + sha256: 1b379d1c652b25d0540251d422ef767472e768fd36b77261045e97f9ba6d3faa + md5: fc4ccadfbf6d4784de88c41704792562 + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + license: Unlicense + size: 859346 + timestamp: 1707495156652 +- kind: conda + name: libsqlite + version: 3.45.1 + build: h92b6c6a_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.45.1-h92b6c6a_0.conda + sha256: d65ce7093ecf5884b241a5ca8d26f80d21eaebf14ca67923b50c249f47a84cf9 + md5: e451d14a5412cdc68be50493df251f55 + depends: + - libzlib >=1.2.13,<1.3.0a0 + license: Unlicense + size: 902313 + timestamp: 1707495366004 +- kind: conda + name: libsqlite + version: 3.45.1 + build: hcfcfb64_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.45.1-hcfcfb64_0.conda + sha256: e1010f4ac7b056d85d91e6cb6137ef118f920eba88059261689e543780b230df + md5: c583c1d6999b7aa148eff3089e13c44b + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Unlicense + size: 870045 + timestamp: 1707495642340 +- kind: conda + name: libstdcxx-ng + version: 13.2.0 + build: h7e041cc_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_5.conda + sha256: a56c5b11f1e73a86e120e6141a42d9e935a99a2098491ac9e15347a1476ce777 + md5: f6f6600d18a4047b54f803cf708b868a + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 3834139 + timestamp: 1706819252496 +- kind: conda + name: libuuid + version: 2.38.1 + build: h0b41bf4_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + size: 33601 + timestamp: 1680112270483 +- kind: conda + name: libxcrypt + version: 4.4.36 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + size: 100393 + timestamp: 1702724383534 +- kind: conda + name: libxml2 + version: 2.12.5 + build: h0d0cfa8_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.12.5-h0d0cfa8_0.conda + sha256: 34daea04dc08af703effe424527505789f8a50fa71b447c7cac6f0d36a02cce3 + md5: 6aef67f18bef799926bc05948a1239e3 + depends: + - icu >=73.2,<74.0a0 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xz >=5.2.6,<6.0a0 + license: MIT + license_family: MIT + size: 587894 + timestamp: 1707084537489 +- kind: conda + name: libxml2 + version: 2.12.5 + build: h232c23b_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.12.5-h232c23b_0.conda + sha256: db9bf97e9e367985204331b58a059ebd5a4e0cb9e1c8754e9ecb23046b7b7bc1 + md5: c442ebfda7a475f5e78f1c8e45f1e919 + depends: + - icu >=73.2,<74.0a0 + - libgcc-ng >=12 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xz >=5.2.6,<6.0a0 + license: MIT + license_family: MIT + size: 704829 + timestamp: 1707084502281 +- kind: conda + name: libxml2 + version: 2.12.5 + build: hc0ae0f7_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.12.5-hc0ae0f7_0.conda + sha256: a84f355dcf9039ae54e21bf8833c16200f848fd333a5e68c143e142cc55dc07d + md5: abe27e7ab68b95e8d0e41cd5018ec8ae + depends: + - icu >=73.2,<74.0a0 + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - xz >=5.2.6,<6.0a0 + license: MIT + license_family: MIT + size: 619351 + timestamp: 1707084558935 +- kind: conda + name: libxml2 + version: 2.12.5 + build: hc3477c8_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.12.5-hc3477c8_0.conda + sha256: 15696b049911b3ea5d37672408e500fb27e375d865f8cceac9cb02f9349e6804 + md5: d8c3c1c8242db352f38cd1dc0bf44f77 + depends: + - libiconv >=1.17,<2.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: MIT + license_family: MIT + size: 1567894 + timestamp: 1707084720091 +- kind: conda + name: libzlib + version: 1.2.13 + build: h53f4e23_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.2.13-h53f4e23_5.conda + sha256: ab1c8aefa2d54322a63aaeeefe9cf877411851738616c4068e0dccc66b9c758a + md5: 1a47f5236db2e06a320ffa0392f81bd8 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 48102 + timestamp: 1686575426584 +- kind: conda + name: libzlib + version: 1.2.13 + build: h8a1eda9_5 + build_number: 5 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.2.13-h8a1eda9_5.conda + sha256: fc58ad7f47ffea10df1f2165369978fba0a1cc32594aad778f5eec725f334867 + md5: 4a3ad23f6e16f99c04e166767193d700 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 59404 + timestamp: 1686575566695 +- kind: conda + name: libzlib + version: 1.2.13 + build: hcfcfb64_5 + build_number: 5 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.2.13-hcfcfb64_5.conda + sha256: c161822ee8130b71e08b6d282b9919c1de2c5274b29921a867bca0f7d30cad26 + md5: 5fdb9c6a113b6b6cb5e517fd972d5f41 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 55800 + timestamp: 1686575452215 +- kind: conda + name: libzlib + version: 1.2.13 + build: hd590300_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda + sha256: 370c7c5893b737596fd6ca0d9190c9715d89d888b8c88537ae1ef168c25e82e4 + md5: f36c115f1ee199da648e0597ec2047ad + depends: + - libgcc-ng >=12 + constrains: + - zlib 1.2.13 *_5 + license: Zlib + license_family: Other + size: 61588 + timestamp: 1686575217516 +- kind: conda + name: llvm-openmp + version: 17.0.6 + build: hb6ac08f_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-17.0.6-hb6ac08f_0.conda + sha256: 9ea2f7018f335fdc55bc9b21a388eb94ea47a243d9cbf6ec3d8862d4df9fb49b + md5: f260ab897df05f729fc3e65dbb0850ef + constrains: + - openmp 17.0.6|17.0.6.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + size: 299706 + timestamp: 1701222810938 +- kind: conda + name: llvm-openmp + version: 17.0.6 + build: hcd81f8e_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-17.0.6-hcd81f8e_0.conda + sha256: 0c217326c5931c1416b82f98169b8a8a52139f6f5f299dbb2efa7b21f65f225a + md5: 52019d2fa0eddbbc4e6dcd30fae0c0a4 + constrains: + - openmp 17.0.6|17.0.6.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + size: 274631 + timestamp: 1701222947083 +- kind: pypi + name: markdown + version: 3.5.2 + url: https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl + sha256: d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd + requires_dist: + - importlib-metadata >=4.4 ; python_version < '3.10' + - mkdocs >=1.5 ; extra == 'docs' + - mkdocs-nature >=0.6 ; extra == 'docs' + - mdx-gh-links >=0.2 ; extra == 'docs' + - mkdocstrings[python] ; extra == 'docs' + - mkdocs-gen-files ; extra == 'docs' + - mkdocs-section-index ; extra == 'docs' + - mkdocs-literate-nav ; extra == 'docs' + - coverage ; extra == 'testing' + - pyyaml ; extra == 'testing' + requires_python: '>=3.8' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 + requires_python: '>=3.7' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 + requires_python: '>=3.7' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f + requires_python: '>=3.7' +- kind: pypi + name: markupsafe + version: 2.1.5 + url: https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl + sha256: 2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 + requires_python: '>=3.7' +- kind: pypi + name: matplotlib + version: 3.8.3 + url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + requires_dist: + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - kiwisolver >=1.3.1 + - numpy <2, >=1.21 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python-dateutil >=2.7 + - importlib-resources >=3.2.0 ; python_version < '3.10' + requires_python: '>=3.9' +- kind: pypi + name: matplotlib + version: 3.8.3 + url: https://files.pythonhosted.org/packages/ef/1d/bf1d78126c3d106100232d3a18b7f3732e7dc3b71ee38ab735e4064b19cc/matplotlib-3.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 7c42dae72a62f14982f1474f7e5c9959fc4bc70c9de11cc5244c6e766200ba65 + requires_dist: + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - kiwisolver >=1.3.1 + - numpy <2, >=1.21 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python-dateutil >=2.7 + - importlib-resources >=3.2.0 ; python_version < '3.10' + requires_python: '>=3.9' +- kind: pypi + name: matplotlib + version: 3.8.3 + url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl + sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e + requires_dist: + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - kiwisolver >=1.3.1 + - numpy <2, >=1.21 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python-dateutil >=2.7 + - importlib-resources >=3.2.0 ; python_version < '3.10' + requires_python: '>=3.9' +- kind: pypi + name: matplotlib + version: 3.8.3 + url: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl + sha256: 40321634e3a05ed02abf7c7b47a50be50b53ef3eaa3a573847431a545585b407 + requires_dist: + - contourpy >=1.0.1 + - cycler >=0.10 + - fonttools >=4.22.0 + - kiwisolver >=1.3.1 + - numpy <2, >=1.21 + - packaging >=20.0 + - pillow >=8 + - pyparsing >=2.3.1 + - python-dateutil >=2.7 + - importlib-resources >=3.2.0 ; python_version < '3.10' + requires_python: '>=3.9' +- kind: pypi + name: matplotlib-inline + version: 0.1.6 + url: https://files.pythonhosted.org/packages/f2/51/c34d7a1d528efaae3d8ddb18ef45a41f284eacf9e514523b191b7d0872cc/matplotlib_inline-0.1.6-py3-none-any.whl + sha256: f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311 + requires_dist: + - traitlets + requires_python: '>=3.5' +- kind: conda + name: mkl + version: 2024.0.0 + build: h66d3029_49657 + build_number: 49657 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.0.0-h66d3029_49657.conda + sha256: 928bed978827e4c891d0879d79ecda6c9104ed7df1f1d4e2e392c9c80b471be7 + md5: 006b65d9cd436247dfe053df772e041d + depends: + - intel-openmp 2024.* + - tbb 2021.* + license: LicenseRef-ProprietaryIntel + license_family: Proprietary + size: 108505947 + timestamp: 1701973497498 +- kind: pypi + name: ml-dtypes + version: 0.2.0 + url: https://files.pythonhosted.org/packages/15/da/43bee505963da0c730ee50e951c604bfdb90d4cccc9c0044c946b10e68a7/ml_dtypes-0.2.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: e70047ec2c83eaee01afdfdabee2c5b0c133804d90d0f7db4dd903360fcc537c + requires_dist: + - numpy >1.20 + - numpy >=1.23.3 ; python_version > '3.10' + - numpy >=1.21.2 ; python_version > '3.9' + - absl-py ; extra == 'dev' + - pytest ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - pylint >=2.6.0 ; extra == 'dev' + - pyink ; extra == 'dev' + requires_python: '>=3.7' +- kind: pypi + name: ml-dtypes + version: 0.2.0 + url: https://files.pythonhosted.org/packages/87/91/d57c2d22e4801edeb7f3e7939214c0ea8a28c6e16f85208c2df2145e0213/ml_dtypes-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: e85ba8e24cf48d456e564688e981cf379d4c8e644db0a2f719b78de281bac2ca + requires_dist: + - numpy >1.20 + - numpy >=1.23.3 ; python_version > '3.10' + - numpy >=1.21.2 ; python_version > '3.9' + - absl-py ; extra == 'dev' + - pytest ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - pylint >=2.6.0 ; extra == 'dev' + - pyink ; extra == 'dev' + requires_python: '>=3.7' +- kind: pypi + name: ml-dtypes + version: 0.2.0 + url: https://files.pythonhosted.org/packages/08/89/c727fde1a3d12586e0b8c01abf53754707d76beaa9987640e70807d4545f/ml_dtypes-0.2.0-cp311-cp311-win_amd64.whl + sha256: 832a019a1b6db5c4422032ca9940a990fa104eee420f643713241b3a518977fa + requires_dist: + - numpy >1.20 + - numpy >=1.23.3 ; python_version > '3.10' + - numpy >=1.21.2 ; python_version > '3.9' + - absl-py ; extra == 'dev' + - pytest ; extra == 'dev' + - pytest-xdist ; extra == 'dev' + - pylint >=2.6.0 ; extra == 'dev' + - pyink ; extra == 'dev' + requires_python: '>=3.7' +- kind: pypi + name: mypy-extensions + version: 1.0.0 + url: https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl + sha256: 4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d + requires_python: '>=3.5' +- kind: conda + name: ncurses + version: '6.4' + build: h463b476_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4-h463b476_2.conda + sha256: f6890634f815e8408d08f36503353f8dfd7b055e4c3b9ea2ee52180255cf4b0a + md5: 52b6f254a7b9663e854f44b6570ed982 + depends: + - __osx >=10.9 + license: X11 AND BSD-3-Clause + size: 794741 + timestamp: 1698751574074 +- kind: conda + name: ncurses + version: '6.4' + build: h59595ed_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4-h59595ed_2.conda + sha256: 91cc03f14caf96243cead96c76fe91ab5925a695d892e83285461fb927dece5e + md5: 7dbaa197d7ba6032caf7ae7f32c1efa0 + depends: + - libgcc-ng >=12 + license: X11 AND BSD-3-Clause + size: 884434 + timestamp: 1698751260967 +- kind: conda + name: ncurses + version: '6.4' + build: h93d8f39_2 + build_number: 2 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.4-h93d8f39_2.conda + sha256: ea0fca66bbb52a1ef0687d466518fe120b5f279684effd6fd336a7b0dddc423a + md5: e58f366bd4d767e9ab97ab8b272e7670 + depends: + - __osx >=10.9 + license: X11 AND BSD-3-Clause + size: 822031 + timestamp: 1698751567986 +- kind: conda + name: numpy + version: 1.26.4 + build: py311h0b4df5a_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/numpy-1.26.4-py311h0b4df5a_0.conda + sha256: 14116e72107de3089cc58119a5ce5905c22abf9a715c9fe41f8ac14db0992326 + md5: 7b240edd44fd7a0991aa409b07cee776 + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/numpy + size: 7104093 + timestamp: 1707226459646 +- kind: conda + name: numpy + version: 1.26.4 + build: py311h64a7726_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py311h64a7726_0.conda + sha256: 3f4365e11b28e244c95ba8579942b0802761ba7bb31c026f50d1a9ea9c728149 + md5: a502d7aad449a1206efb366d6a12c52d + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/numpy + size: 8065890 + timestamp: 1707225944355 +- kind: conda + name: numpy + version: 1.26.4 + build: py311h7125741_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py311h7125741_0.conda + sha256: 160a52a01fea44fe9753a2ed22cf13d7b55c8a89ea0b8738546fdbf4795d6514 + md5: 3160b93669a0def35a7a8158ebb33816 + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=16 + - liblapack >=3.9.0,<4.0a0 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/numpy + size: 6652352 + timestamp: 1707226297967 +- kind: conda + name: numpy + version: 1.26.4 + build: py311hc43a94b_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/numpy-1.26.4-py311hc43a94b_0.conda + sha256: dc9628197125ee1d02b2e7a859a769d26291d747ed79337309b8a9e67a8b8e00 + md5: bb02b8801d17265160e466cf8bbf28da + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=16 + - liblapack >=3.9.0,<4.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/numpy + size: 7504319 + timestamp: 1707226235372 +- kind: pypi + name: oauthlib + version: 3.2.2 + url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl + sha256: 8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca + requires_dist: + - cryptography >=3.0.0 ; extra == 'rsa' + - blinker >=1.4.0 ; extra == 'signals' + - cryptography >=3.0.0 ; extra == 'signedtoken' + - pyjwt <3, >=2.0.0 ; extra == 'signedtoken' + requires_python: '>=3.6' +- kind: conda + name: openssl + version: 3.2.1 + build: h0d3ecfb_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.2.1-h0d3ecfb_0.conda + sha256: 13663fcd4abc8681b31ccbad39800fee2127cb6159b51a989ed48a816af36cf5 + md5: 421cc6e8715447b73c2c57dcf78cb9d2 + depends: + - ca-certificates + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 2862719 + timestamp: 1706635779319 +- kind: conda + name: openssl + version: 3.2.1 + build: hcfcfb64_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/openssl-3.2.1-hcfcfb64_0.conda + sha256: 1df1c43136f863d5e9ba20b703001caf9a4d0ea56bdc3eeb948c977e3d4f91d3 + md5: 158df8eead8092cf0e27167c8761a8dd + depends: + - ca-certificates + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 8229619 + timestamp: 1706638014697 +- kind: conda + name: openssl + version: 3.2.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_0.conda + sha256: c02c12bdb898daacf7eb3d09859f93ea8f285fd1a6132ff6ff0493ab52c7fe57 + md5: 51a753e64a3027bd7e23a189b1f6e91e + depends: + - ca-certificates + - libgcc-ng >=12 + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 2863069 + timestamp: 1706635653339 +- kind: conda + name: openssl + version: 3.2.1 + build: hd75f5a5_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.2.1-hd75f5a5_0.conda + sha256: 20c1b1a34a1831c24d37ed1500ca07300171184af0c66598f3c5ca901634d713 + md5: 3033be9a59fd744172b03971b9ccd081 + depends: + - ca-certificates + constrains: + - pyopenssl >=22.1 + license: Apache-2.0 + license_family: Apache + size: 2509168 + timestamp: 1706636810736 +- kind: pypi + name: opt-einsum + version: 3.3.0 + url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl + sha256: 2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147 + requires_dist: + - numpy >=1.7 + - sphinx ==1.2.3 ; extra == 'docs' + - sphinxcontrib-napoleon ; extra == 'docs' + - sphinx-rtd-theme ; extra == 'docs' + - numpydoc ; extra == 'docs' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-pep8 ; extra == 'tests' + requires_python: '>=3.5' +- kind: pypi + name: packaging + version: '23.2' + url: https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl + sha256: 8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 + requires_python: '>=3.7' +- kind: pypi + name: pandas + version: 2.2.1 + url: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b + requires_dist: + - numpy <2, >=1.22.4 ; python_version < '3.11' + - numpy <2, >=1.23.2 ; python_version == '3.11' + - numpy <2, >=1.26.0 ; python_version >= '3.12' + - python-dateutil >=2.8.2 + - pytz >=2020.1 + - tzdata >=2022.7 + - hypothesis >=6.46.1 ; extra == 'test' + - pytest >=7.3.2 ; extra == 'test' + - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' + - bottleneck >=1.3.6 ; extra == 'performance' + - numba >=0.56.4 ; extra == 'performance' + - numexpr >=2.8.4 ; extra == 'performance' + - scipy >=1.10.0 ; extra == 'computation' + - xarray >=2022.12.0 ; extra == 'computation' + - fsspec >=2022.11.0 ; extra == 'fss' + - s3fs >=2022.11.0 ; extra == 'aws' + - gcsfs >=2022.11.0 ; extra == 'gcp' + - pandas-gbq >=0.19.0 ; extra == 'gcp' + - odfpy >=1.4.1 ; extra == 'excel' + - openpyxl >=3.1.0 ; extra == 'excel' + - python-calamine >=0.1.7 ; extra == 'excel' + - pyxlsb >=1.0.10 ; extra == 'excel' + - xlrd >=2.0.1 ; extra == 'excel' + - xlsxwriter >=3.0.5 ; extra == 'excel' + - pyarrow >=10.0.1 ; extra == 'parquet' + - pyarrow >=10.0.1 ; extra == 'feather' + - tables >=3.8.0 ; extra == 'hdf5' + - pyreadstat >=1.2.0 ; extra == 'spss' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - psycopg2 >=2.9.6 ; extra == 'postgresql' + - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' + - pymysql >=1.0.2 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' + - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' + - beautifulsoup4 >=4.11.2 ; extra == 'html' + - html5lib >=1.1 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'xml' + - matplotlib >=3.6.3 ; extra == 'plot' + - jinja2 >=3.1.2 ; extra == 'output-formatting' + - tabulate >=0.9.0 ; extra == 'output-formatting' + - pyqt5 >=5.15.9 ; extra == 'clipboard' + - qtpy >=2.3.0 ; extra == 'clipboard' + - zstandard >=0.19.0 ; extra == 'compression' + - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' + - adbc-driver-postgresql >=0.8.0 ; extra == 'all' + - adbc-driver-sqlite >=0.8.0 ; extra == 'all' + - beautifulsoup4 >=4.11.2 ; extra == 'all' + - bottleneck >=1.3.6 ; extra == 'all' + - dataframe-api-compat >=0.1.7 ; extra == 'all' + - fastparquet >=2022.12.0 ; extra == 'all' + - fsspec >=2022.11.0 ; extra == 'all' + - gcsfs >=2022.11.0 ; extra == 'all' + - html5lib >=1.1 ; extra == 'all' + - hypothesis >=6.46.1 ; extra == 'all' + - jinja2 >=3.1.2 ; extra == 'all' + - lxml >=4.9.2 ; extra == 'all' + - matplotlib >=3.6.3 ; extra == 'all' + - numba >=0.56.4 ; extra == 'all' + - numexpr >=2.8.4 ; extra == 'all' + - odfpy >=1.4.1 ; extra == 'all' + - openpyxl >=3.1.0 ; extra == 'all' + - pandas-gbq >=0.19.0 ; extra == 'all' + - psycopg2 >=2.9.6 ; extra == 'all' + - pyarrow >=10.0.1 ; extra == 'all' + - pymysql >=1.0.2 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' + - pyreadstat >=1.2.0 ; extra == 'all' + - pytest >=7.3.2 ; extra == 'all' + - pytest-xdist >=2.2.0 ; extra == 'all' + - python-calamine >=0.1.7 ; extra == 'all' + - pyxlsb >=1.0.10 ; extra == 'all' + - qtpy >=2.3.0 ; extra == 'all' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' +- kind: pypi + name: pandas + version: 2.2.1 + url: https://files.pythonhosted.org/packages/d4/47/1ccf9f62d2674d3ca3e95452c5f9dd114234d1535dec77c96528bf6a31fc/pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403 + requires_dist: + - numpy <2, >=1.22.4 ; python_version < '3.11' + - numpy <2, >=1.23.2 ; python_version == '3.11' + - numpy <2, >=1.26.0 ; python_version >= '3.12' + - python-dateutil >=2.8.2 + - pytz >=2020.1 + - tzdata >=2022.7 + - hypothesis >=6.46.1 ; extra == 'test' + - pytest >=7.3.2 ; extra == 'test' + - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' + - bottleneck >=1.3.6 ; extra == 'performance' + - numba >=0.56.4 ; extra == 'performance' + - numexpr >=2.8.4 ; extra == 'performance' + - scipy >=1.10.0 ; extra == 'computation' + - xarray >=2022.12.0 ; extra == 'computation' + - fsspec >=2022.11.0 ; extra == 'fss' + - s3fs >=2022.11.0 ; extra == 'aws' + - gcsfs >=2022.11.0 ; extra == 'gcp' + - pandas-gbq >=0.19.0 ; extra == 'gcp' + - odfpy >=1.4.1 ; extra == 'excel' + - openpyxl >=3.1.0 ; extra == 'excel' + - python-calamine >=0.1.7 ; extra == 'excel' + - pyxlsb >=1.0.10 ; extra == 'excel' + - xlrd >=2.0.1 ; extra == 'excel' + - xlsxwriter >=3.0.5 ; extra == 'excel' + - pyarrow >=10.0.1 ; extra == 'parquet' + - pyarrow >=10.0.1 ; extra == 'feather' + - tables >=3.8.0 ; extra == 'hdf5' + - pyreadstat >=1.2.0 ; extra == 'spss' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - psycopg2 >=2.9.6 ; extra == 'postgresql' + - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' + - pymysql >=1.0.2 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' + - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' + - beautifulsoup4 >=4.11.2 ; extra == 'html' + - html5lib >=1.1 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'xml' + - matplotlib >=3.6.3 ; extra == 'plot' + - jinja2 >=3.1.2 ; extra == 'output-formatting' + - tabulate >=0.9.0 ; extra == 'output-formatting' + - pyqt5 >=5.15.9 ; extra == 'clipboard' + - qtpy >=2.3.0 ; extra == 'clipboard' + - zstandard >=0.19.0 ; extra == 'compression' + - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' + - adbc-driver-postgresql >=0.8.0 ; extra == 'all' + - adbc-driver-sqlite >=0.8.0 ; extra == 'all' + - beautifulsoup4 >=4.11.2 ; extra == 'all' + - bottleneck >=1.3.6 ; extra == 'all' + - dataframe-api-compat >=0.1.7 ; extra == 'all' + - fastparquet >=2022.12.0 ; extra == 'all' + - fsspec >=2022.11.0 ; extra == 'all' + - gcsfs >=2022.11.0 ; extra == 'all' + - html5lib >=1.1 ; extra == 'all' + - hypothesis >=6.46.1 ; extra == 'all' + - jinja2 >=3.1.2 ; extra == 'all' + - lxml >=4.9.2 ; extra == 'all' + - matplotlib >=3.6.3 ; extra == 'all' + - numba >=0.56.4 ; extra == 'all' + - numexpr >=2.8.4 ; extra == 'all' + - odfpy >=1.4.1 ; extra == 'all' + - openpyxl >=3.1.0 ; extra == 'all' + - pandas-gbq >=0.19.0 ; extra == 'all' + - psycopg2 >=2.9.6 ; extra == 'all' + - pyarrow >=10.0.1 ; extra == 'all' + - pymysql >=1.0.2 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' + - pyreadstat >=1.2.0 ; extra == 'all' + - pytest >=7.3.2 ; extra == 'all' + - pytest-xdist >=2.2.0 ; extra == 'all' + - python-calamine >=0.1.7 ; extra == 'all' + - pyxlsb >=1.0.10 ; extra == 'all' + - qtpy >=2.3.0 ; extra == 'all' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' +- kind: pypi + name: pandas + version: 2.2.1 + url: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a + requires_dist: + - numpy <2, >=1.22.4 ; python_version < '3.11' + - numpy <2, >=1.23.2 ; python_version == '3.11' + - numpy <2, >=1.26.0 ; python_version >= '3.12' + - python-dateutil >=2.8.2 + - pytz >=2020.1 + - tzdata >=2022.7 + - hypothesis >=6.46.1 ; extra == 'test' + - pytest >=7.3.2 ; extra == 'test' + - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' + - bottleneck >=1.3.6 ; extra == 'performance' + - numba >=0.56.4 ; extra == 'performance' + - numexpr >=2.8.4 ; extra == 'performance' + - scipy >=1.10.0 ; extra == 'computation' + - xarray >=2022.12.0 ; extra == 'computation' + - fsspec >=2022.11.0 ; extra == 'fss' + - s3fs >=2022.11.0 ; extra == 'aws' + - gcsfs >=2022.11.0 ; extra == 'gcp' + - pandas-gbq >=0.19.0 ; extra == 'gcp' + - odfpy >=1.4.1 ; extra == 'excel' + - openpyxl >=3.1.0 ; extra == 'excel' + - python-calamine >=0.1.7 ; extra == 'excel' + - pyxlsb >=1.0.10 ; extra == 'excel' + - xlrd >=2.0.1 ; extra == 'excel' + - xlsxwriter >=3.0.5 ; extra == 'excel' + - pyarrow >=10.0.1 ; extra == 'parquet' + - pyarrow >=10.0.1 ; extra == 'feather' + - tables >=3.8.0 ; extra == 'hdf5' + - pyreadstat >=1.2.0 ; extra == 'spss' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - psycopg2 >=2.9.6 ; extra == 'postgresql' + - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' + - pymysql >=1.0.2 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' + - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' + - beautifulsoup4 >=4.11.2 ; extra == 'html' + - html5lib >=1.1 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'xml' + - matplotlib >=3.6.3 ; extra == 'plot' + - jinja2 >=3.1.2 ; extra == 'output-formatting' + - tabulate >=0.9.0 ; extra == 'output-formatting' + - pyqt5 >=5.15.9 ; extra == 'clipboard' + - qtpy >=2.3.0 ; extra == 'clipboard' + - zstandard >=0.19.0 ; extra == 'compression' + - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' + - adbc-driver-postgresql >=0.8.0 ; extra == 'all' + - adbc-driver-sqlite >=0.8.0 ; extra == 'all' + - beautifulsoup4 >=4.11.2 ; extra == 'all' + - bottleneck >=1.3.6 ; extra == 'all' + - dataframe-api-compat >=0.1.7 ; extra == 'all' + - fastparquet >=2022.12.0 ; extra == 'all' + - fsspec >=2022.11.0 ; extra == 'all' + - gcsfs >=2022.11.0 ; extra == 'all' + - html5lib >=1.1 ; extra == 'all' + - hypothesis >=6.46.1 ; extra == 'all' + - jinja2 >=3.1.2 ; extra == 'all' + - lxml >=4.9.2 ; extra == 'all' + - matplotlib >=3.6.3 ; extra == 'all' + - numba >=0.56.4 ; extra == 'all' + - numexpr >=2.8.4 ; extra == 'all' + - odfpy >=1.4.1 ; extra == 'all' + - openpyxl >=3.1.0 ; extra == 'all' + - pandas-gbq >=0.19.0 ; extra == 'all' + - psycopg2 >=2.9.6 ; extra == 'all' + - pyarrow >=10.0.1 ; extra == 'all' + - pymysql >=1.0.2 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' + - pyreadstat >=1.2.0 ; extra == 'all' + - pytest >=7.3.2 ; extra == 'all' + - pytest-xdist >=2.2.0 ; extra == 'all' + - python-calamine >=0.1.7 ; extra == 'all' + - pyxlsb >=1.0.10 ; extra == 'all' + - qtpy >=2.3.0 ; extra == 'all' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' +- kind: pypi + name: pandas + version: 2.2.1 + url: https://files.pythonhosted.org/packages/61/11/1812ef6cbd7433ad240f72161ce5f84c4c450cede4db080365d371d29117/pandas-2.2.1-cp311-cp311-win_amd64.whl + sha256: 06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e + requires_dist: + - numpy <2, >=1.22.4 ; python_version < '3.11' + - numpy <2, >=1.23.2 ; python_version == '3.11' + - numpy <2, >=1.26.0 ; python_version >= '3.12' + - python-dateutil >=2.8.2 + - pytz >=2020.1 + - tzdata >=2022.7 + - hypothesis >=6.46.1 ; extra == 'test' + - pytest >=7.3.2 ; extra == 'test' + - pytest-xdist >=2.2.0 ; extra == 'test' + - pyarrow >=10.0.1 ; extra == 'pyarrow' + - bottleneck >=1.3.6 ; extra == 'performance' + - numba >=0.56.4 ; extra == 'performance' + - numexpr >=2.8.4 ; extra == 'performance' + - scipy >=1.10.0 ; extra == 'computation' + - xarray >=2022.12.0 ; extra == 'computation' + - fsspec >=2022.11.0 ; extra == 'fss' + - s3fs >=2022.11.0 ; extra == 'aws' + - gcsfs >=2022.11.0 ; extra == 'gcp' + - pandas-gbq >=0.19.0 ; extra == 'gcp' + - odfpy >=1.4.1 ; extra == 'excel' + - openpyxl >=3.1.0 ; extra == 'excel' + - python-calamine >=0.1.7 ; extra == 'excel' + - pyxlsb >=1.0.10 ; extra == 'excel' + - xlrd >=2.0.1 ; extra == 'excel' + - xlsxwriter >=3.0.5 ; extra == 'excel' + - pyarrow >=10.0.1 ; extra == 'parquet' + - pyarrow >=10.0.1 ; extra == 'feather' + - tables >=3.8.0 ; extra == 'hdf5' + - pyreadstat >=1.2.0 ; extra == 'spss' + - sqlalchemy >=2.0.0 ; extra == 'postgresql' + - psycopg2 >=2.9.6 ; extra == 'postgresql' + - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql' + - sqlalchemy >=2.0.0 ; extra == 'mysql' + - pymysql >=1.0.2 ; extra == 'mysql' + - sqlalchemy >=2.0.0 ; extra == 'sql-other' + - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other' + - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other' + - beautifulsoup4 >=4.11.2 ; extra == 'html' + - html5lib >=1.1 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'html' + - lxml >=4.9.2 ; extra == 'xml' + - matplotlib >=3.6.3 ; extra == 'plot' + - jinja2 >=3.1.2 ; extra == 'output-formatting' + - tabulate >=0.9.0 ; extra == 'output-formatting' + - pyqt5 >=5.15.9 ; extra == 'clipboard' + - qtpy >=2.3.0 ; extra == 'clipboard' + - zstandard >=0.19.0 ; extra == 'compression' + - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard' + - adbc-driver-postgresql >=0.8.0 ; extra == 'all' + - adbc-driver-sqlite >=0.8.0 ; extra == 'all' + - beautifulsoup4 >=4.11.2 ; extra == 'all' + - bottleneck >=1.3.6 ; extra == 'all' + - dataframe-api-compat >=0.1.7 ; extra == 'all' + - fastparquet >=2022.12.0 ; extra == 'all' + - fsspec >=2022.11.0 ; extra == 'all' + - gcsfs >=2022.11.0 ; extra == 'all' + - html5lib >=1.1 ; extra == 'all' + - hypothesis >=6.46.1 ; extra == 'all' + - jinja2 >=3.1.2 ; extra == 'all' + - lxml >=4.9.2 ; extra == 'all' + - matplotlib >=3.6.3 ; extra == 'all' + - numba >=0.56.4 ; extra == 'all' + - numexpr >=2.8.4 ; extra == 'all' + - odfpy >=1.4.1 ; extra == 'all' + - openpyxl >=3.1.0 ; extra == 'all' + - pandas-gbq >=0.19.0 ; extra == 'all' + - psycopg2 >=2.9.6 ; extra == 'all' + - pyarrow >=10.0.1 ; extra == 'all' + - pymysql >=1.0.2 ; extra == 'all' + - pyqt5 >=5.15.9 ; extra == 'all' + - pyreadstat >=1.2.0 ; extra == 'all' + - pytest >=7.3.2 ; extra == 'all' + - pytest-xdist >=2.2.0 ; extra == 'all' + - python-calamine >=0.1.7 ; extra == 'all' + - pyxlsb >=1.0.10 ; extra == 'all' + - qtpy >=2.3.0 ; extra == 'all' + - scipy >=1.10.0 ; extra == 'all' + - s3fs >=2022.11.0 ; extra == 'all' + - sqlalchemy >=2.0.0 ; extra == 'all' + - tables >=3.8.0 ; extra == 'all' + - tabulate >=0.9.0 ; extra == 'all' + - xarray >=2022.12.0 ; extra == 'all' + - xlrd >=2.0.1 ; extra == 'all' + - xlsxwriter >=3.0.5 ; extra == 'all' + - zstandard >=0.19.0 ; extra == 'all' + requires_python: '>=3.9' +- kind: pypi + name: parso + version: 0.8.3 + url: https://files.pythonhosted.org/packages/05/63/8011bd08a4111858f79d2b09aad86638490d62fbf881c44e434a6dfca87b/parso-0.8.3-py2.py3-none-any.whl + sha256: c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75 + requires_dist: + - flake8 ==3.8.3 ; extra == 'qa' + - mypy ==0.782 ; extra == 'qa' + - docopt ; extra == 'testing' + - pytest <6.0.0 ; extra == 'testing' + requires_python: '>=3.6' +- kind: pypi + name: pathspec + version: 0.12.1 + url: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl + sha256: a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 + requires_python: '>=3.8' +- kind: pypi + name: pexpect + version: 4.9.0 + url: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl + sha256: 7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523 + requires_dist: + - ptyprocess >=0.5 +- kind: pypi + name: pillow + version: 10.2.0 + url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx >=2.4 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-removed-in ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - check-manifest ; extra == 'tests' + - coverage ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - pyroma ; extra == 'tests' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - typing-extensions ; python_version < '3.10' and extra == 'typing' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.8' +- kind: pypi + name: pillow + version: 10.2.0 + url: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx >=2.4 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-removed-in ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - check-manifest ; extra == 'tests' + - coverage ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - pyroma ; extra == 'tests' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - typing-extensions ; python_version < '3.10' and extra == 'typing' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.8' +- kind: pypi + name: pillow + version: 10.2.0 + url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx >=2.4 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-removed-in ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - check-manifest ; extra == 'tests' + - coverage ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - pyroma ; extra == 'tests' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - typing-extensions ; python_version < '3.10' and extra == 'typing' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.8' +- kind: pypi + name: pillow + version: 10.2.0 + url: https://files.pythonhosted.org/packages/43/56/f92715a873187b5eff72a4a0d2ac6258e18e9bfb0e136aafde65c49a841a/pillow-10.2.0-cp311-cp311-win_amd64.whl + sha256: 1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx >=2.4 ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-removed-in ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - check-manifest ; extra == 'tests' + - coverage ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - pyroma ; extra == 'tests' + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - typing-extensions ; python_version < '3.10' and extra == 'typing' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.8' +- kind: pypi + name: platformdirs + version: 4.2.0 + url: https://files.pythonhosted.org/packages/55/72/4898c44ee9ea6f43396fbc23d9bfaf3d06e01b83698bdf2e4c919deceb7c/platformdirs-4.2.0-py3-none-any.whl + sha256: 0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 + requires_dist: + - furo >=2023.9.10 ; extra == 'docs' + - proselint >=0.13 ; extra == 'docs' + - sphinx-autodoc-typehints >=1.25.2 ; extra == 'docs' + - sphinx >=7.2.6 ; extra == 'docs' + - appdirs ==1.4.4 ; extra == 'test' + - covdefaults >=2.3 ; extra == 'test' + - pytest-cov >=4.1 ; extra == 'test' + - pytest-mock >=3.12 ; extra == 'test' + - pytest >=7.4.3 ; extra == 'test' + requires_python: '>=3.8' +- kind: pypi + name: plot-antenna + version: '1.8' + url: https://files.pythonhosted.org/packages/16/e8/b6a5affd7c071b2006dad64e10d82aa63673830d2189214d91501a56003d/plot-antenna-1.8.tar.gz + sha256: f12c4cb90dea3fa0e41e904e4595959d727d933aa3292fbc89d1f9b15249bf48 + requires_dist: + - matplotlib + - numpy + - pandas + - plotly + - pytest ; extra == 'test' + - kaleido ; extra == 'test' + requires_python: '>=3.7' +- kind: pypi + name: plotly + version: 5.19.0 + url: https://files.pythonhosted.org/packages/27/ae/c9fb759b36bc55ccc382b647d1afc23c2a860be8e835f96249996d0aa4df/plotly-5.19.0-py3-none-any.whl + sha256: 906abcc5f15945765328c5d47edaa884bc99f5985fbc61e8cd4dc361f4ff8f5a + requires_dist: + - tenacity >=6.2.0 + - packaging + requires_python: '>=3.8' +- kind: pypi + name: prompt-toolkit + version: 3.0.43 + url: https://files.pythonhosted.org/packages/ee/fd/ca7bf3869e7caa7a037e23078539467b433a4e01eebd93f77180ab927766/prompt_toolkit-3.0.43-py3-none-any.whl + sha256: a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6 + requires_dist: + - wcwidth + requires_python: '>=3.7.0' +- kind: pypi + name: protobuf + version: 4.25.3 + url: https://files.pythonhosted.org/packages/f3/bf/26deba06a4c910a85f78245cac7698f67cedd7efe00d04f6b3e1b3506a59/protobuf-4.25.3-cp37-abi3-macosx_10_9_universal2.whl + sha256: f1279ab38ecbfae7e456a108c5c0681e4956d5b1090027c1de0f934dfdb4b35c + requires_python: '>=3.8' +- kind: pypi + name: protobuf + version: 4.25.3 + url: https://files.pythonhosted.org/packages/15/db/7f731524fe0e56c6b2eb57d05b55d3badd80ef7d1f1ed59db191b2fdd8ab/protobuf-4.25.3-cp37-abi3-manylinux2014_x86_64.whl + sha256: 7c8daa26095f82482307bc717364e7c13f4f1c99659be82890dcfc215194554d + requires_python: '>=3.8' +- kind: pypi + name: protobuf + version: 4.25.3 + url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl + sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8 + requires_python: '>=3.8' +- kind: conda + name: pthreads-win32 + version: 2.9.1 + build: hfa6e2cd_3 + build_number: 3 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/pthreads-win32-2.9.1-hfa6e2cd_3.tar.bz2 + sha256: 576a228630a72f25d255a5e345e5f10878e153221a96560f2498040cd6f54005 + md5: e2da8758d7d51ff6aa78a14dfb9dbed4 + depends: + - vc 14.* + license: LGPL 2 + size: 144301 + timestamp: 1537755684331 +- kind: pypi + name: ptyprocess + version: 0.7.0 + url: https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl + sha256: 4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35 +- kind: pypi + name: pure-eval + version: 0.2.2 + url: https://files.pythonhosted.org/packages/2b/27/77f9d5684e6bce929f5cfe18d6cfbe5133013c06cb2fbf5933670e60761d/pure_eval-0.2.2-py3-none-any.whl + sha256: 01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350 + requires_dist: + - pytest ; extra == 'tests' +- kind: pypi + name: pyasn1 + version: 0.5.1 + url: https://files.pythonhosted.org/packages/d1/75/4686d2872bf2fc0b37917cbc8bbf0dd3a5cdb0990799be1b9cbf1e1eb733/pyasn1-0.5.1-py2.py3-none-any.whl + sha256: 4439847c58d40b1d0a573d07e3856e95333f1976294494c325775aeca506eb58 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7' +- kind: pypi + name: pyasn1-modules + version: 0.3.0 + url: https://files.pythonhosted.org/packages/cd/8e/bea464350e1b8c6ed0da3a312659cb648804a08af6cacc6435867f74f8bd/pyasn1_modules-0.3.0-py2.py3-none-any.whl + sha256: d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d + requires_dist: + - pyasn1 <0.6.0, >=0.4.6 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7' +- kind: pypi + name: pyboy + version: 1.6.6 + url: https://files.pythonhosted.org/packages/57/0f/85fbc988095c614ebec2ea471dac5fc777bd9083e235cbcc45cea4275c06/pyboy-1.6.6-cp311-cp311-macosx_10_9_universal2.whl + sha256: 14c56a005c8272b4e9e956ab6e6f3c8855a2fab5732d2367dd84c08460367c2c + requires_dist: + - numpy + - pysdl2 + - pysdl2-dll + - pyopengl ; extra == 'all' + - markdown ; extra == 'all' + - pdoc3 ; extra == 'all' + - gym ; extra == 'all' + requires_python: '>=3.8' +- kind: pypi + name: pyboy + version: 1.6.6 + url: https://files.pythonhosted.org/packages/b8/50/7425532d3e3ea4107a095617c16484b88f507fd77f172ce90bab366d32c6/pyboy-1.6.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl + sha256: 4e60e8faf92836c91123529dcbb1daf5d686d16d8bc23009d4d69db722bdeae6 + requires_dist: + - numpy + - pysdl2 + - pysdl2-dll + - pyopengl ; extra == 'all' + - markdown ; extra == 'all' + - pdoc3 ; extra == 'all' + - gym ; extra == 'all' + requires_python: '>=3.8' +- kind: pypi + name: pyboy + version: 1.6.6 + url: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl + sha256: bc10363e3b83330c1bb19fc9a16590a6308f94f37df12b0db93ff1c164c1a43c + requires_dist: + - numpy + - pysdl2 + - pysdl2-dll + - pyopengl ; extra == 'all' + - markdown ; extra == 'all' + - pdoc3 ; extra == 'all' + - gym ; extra == 'all' + requires_python: '>=3.8' +- kind: pypi + name: pycosat + version: 0.6.6 + url: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz + sha256: a376cfae20b16fcfbef24bf3c047a8a294c35032bb051fa98842c12bbab6f0ff +- kind: pypi + name: pygments + version: 2.17.2 + url: https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl + sha256: b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c + requires_dist: + - importlib-metadata ; python_version < '3.8' and extra == 'plugins' + - colorama >=0.4.6 ; extra == 'windows-terminal' + requires_python: '>=3.7' +- kind: pypi + name: pyliblzfse + version: 0.4.1 + url: https://files.pythonhosted.org/packages/2c/ba/a4bc465d36f6aafbff89da1bf67bcc6a97475b1d2300a74a778dcb293cef/pyliblzfse-0.4.1.tar.gz + sha256: bb0b899b3830c02fdf3dbde48ea59611833f366fef836e5c32cf8145134b7d3d +- kind: pypi + name: pyparsing + version: 3.1.1 + url: https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl + sha256: 32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb + requires_dist: + - railroad-diagrams ; extra == 'diagrams' + - jinja2 ; extra == 'diagrams' + requires_python: '>=3.6.8' +- kind: pypi + name: pysdl2 + version: 0.9.16 + url: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz + sha256: 1027406badbecdd30fe56e800a5a76ad7d7271a3aec0b7acf780ee26a00f2d40 +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/93/d0/5911ad3cecb896588202e3e90bd97c0c7381718a6ccb2eaeebb70d7fe2ce/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_x86_64.whl + sha256: e873d823c206b92680575a62466e02717ce81ece7e433c818fb660154eda083f +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/ab/79/fb333705e94ed4e2b41ac099528dabf5f25bc1232568f42df0c31c3621e5/pysdl2_dll-2.30.0-py2.py3-none-manylinux2014_x86_64.whl + sha256: d5ecdbe6152a345091478b44785141f33079fb14d3538b5917ae06cb7166515e +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl + sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 +- kind: pypi + name: pysdl2-dll + version: 2.30.0 + url: https://files.pythonhosted.org/packages/c5/b4/bab7181a7682f782e1fd2a2a52af913222ce71928068833c1709ce85019d/pysdl2_dll-2.30.0-py2.py3-none-win_amd64.whl + sha256: 79a5aff8389a8b03f602b32e22c9051c96ab6cb6fb83ce29ddcb0ea3a08cb321 +- kind: conda + name: python + version: 3.11.8 + build: h2628c8c_0_cpython + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python-3.11.8-h2628c8c_0_cpython.conda + sha256: 8b2db64acfd351f4281d75465b09109f4b51096d5e58128cb7a4c1d2ade47203 + md5: 5af649cf283ec4c1ffff5c4fe0cec12b + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.5.0,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - openssl >=3.2.1,<4.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 18096526 + timestamp: 1708116524168 +- kind: conda + name: python + version: 3.11.8 + build: h9f0c242_0_cpython + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.8-h9f0c242_0_cpython.conda + sha256: 645dad20b46041ecd6a85eccbb3291fa1ad7921eea065c0081efff78c3d7e27a + md5: 22bda10a0f425564a538aed9a0e8a9df + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.5.0,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ncurses >=6.4,<7.0a0 + - openssl >=3.2.1,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 14067894 + timestamp: 1708117836907 +- kind: conda + name: python + version: 3.11.8 + build: hab00c5b_0_cpython + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda + sha256: f33559d7127b6a892854bc3b2b4be1406c3be9537d658cb13edae57c8c0b5a11 + md5: 2fdc314ee058eda0114738a9309d3683 + depends: + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.5.0,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc-ng >=12 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.45.1,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.2.13,<1.3.0a0 + - ncurses >=6.4,<7.0a0 + - openssl >=3.2.1,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 30754113 + timestamp: 1708118457486 +- kind: conda + name: python + version: 3.11.8 + build: hdf0ec26_0_cpython + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda + sha256: 6c9bbac137759e013e6a50593c7cf10a06032fcb1ef3a994c598c7a95e73a8e1 + md5: 8f4076d960f17f19ae8b2f66727ea1c6 + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.5.0,<3.0a0 + - libffi >=3.4,<4.0a0 + - libsqlite >=3.45.1,<4.0a0 + - libzlib >=1.2.13,<1.3.0a0 + - ncurses >=6.4,<7.0a0 + - openssl >=3.2.1,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.11.* *_cp311 + license: Python-2.0 + size: 14623079 + timestamp: 1708116925163 +- kind: conda + name: python_abi + version: '3.11' + build: 4_cp311 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda + sha256: 0be3ac1bf852d64f553220c7e6457e9c047dfb7412da9d22fbaa67e60858b3cf + md5: d786502c97404c94d7d58d258a445a65 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6385 + timestamp: 1695147338551 +- kind: conda + name: python_abi + version: '3.11' + build: 4_cp311 + build_number: 4 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.11-4_cp311.conda + sha256: f56dfe2a57b3b27bad3f9527f943548e8b2526e949d9d6fc0a383020d9359afe + md5: fef7a52f0eca6bae9e8e2e255bc86394 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6478 + timestamp: 1695147518012 +- kind: conda + name: python_abi + version: '3.11' + build: 4_cp311 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda + sha256: 4837089c477b9b84fa38a17f453e6634e68237267211b27a8a2f5ccd847f4e55 + md5: 8d3751bc73d3bbb66f216fa2331d5649 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6492 + timestamp: 1695147509940 +- kind: conda + name: python_abi + version: '3.11' + build: 4_cp311 + build_number: 4 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.11-4_cp311.conda + sha256: 67c2aade3e2160642eec0742384e766b20c766055e3d99335681e3e05d88ed7b + md5: 70513332c71b56eace4ee6441e66c012 + constrains: + - python 3.11.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6755 + timestamp: 1695147711935 +- kind: pypi + name: python-dateutil + version: 2.8.2 + url: https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl + sha256: 961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + requires_dist: + - six >=1.5 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7' +- kind: pypi + name: pytz + version: '2024.1' + url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl + sha256: 328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 +- kind: conda + name: readline + version: '8.2' + build: h8228510_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + md5: 47d31b792659ce70f470b5c82fdfb7a4 + depends: + - libgcc-ng >=12 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 281456 + timestamp: 1679532220005 +- kind: conda + name: readline + version: '8.2' + build: h92ec313_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 + md5: 8cbb776a2f641b943d413b3e19df71f4 + depends: + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 250351 + timestamp: 1679532511311 +- kind: conda + name: readline + version: '8.2' + build: h9e318b2_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda + sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568 + md5: f17f77f2acf4d344734bda76829ce14e + depends: + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 255870 + timestamp: 1679532707590 +- kind: pypi + name: requests + version: 2.31.0 + url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl + sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f + requires_dist: + - charset-normalizer <4, >=2 + - idna <4, >=2.5 + - urllib3 <3, >=1.21.1 + - certifi >=2017.4.17 + - pysocks !=1.5.7, >=1.5.6 ; extra == 'socks' + - chardet <6, >=3.0.2 ; extra == 'use_chardet_on_py3' + requires_python: '>=3.7' +- kind: pypi + name: requests-oauthlib + version: 1.3.1 + url: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl + sha256: 2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5 + requires_dist: + - oauthlib >=3.0.0 + - requests >=2.0.0 + - oauthlib[signedtoken] >=3.0.0 ; extra == 'rsa' + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' +- kind: pypi + name: rsa + version: '4.9' + url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl + sha256: 90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 + requires_dist: + - pyasn1 >=0.1.3 + requires_python: '>=3.6,<4' +- kind: conda + name: scipy + version: 1.11.4 + build: py311h0b4df5a_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/scipy-1.11.4-py311h0b4df5a_0.conda + sha256: a3ab79cf0c209b03b8cf95b9520d7a9afffaa9a803d9f33ede355ed98731239c + md5: 7e367331519517cc9ba4635ceba0414c + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + - numpy >=1.23.5,<1.28 + - numpy >=1.23.5,<2.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + constrains: + - libopenblas <0.3.26 + license: BSD-3-Clause + license_family: BSD + size: 14921421 + timestamp: 1700815001090 +- kind: conda + name: scipy + version: 1.11.4 + build: py311h2b215a9_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.11.4-py311h2b215a9_0.conda + sha256: a76f172fc8e76c319b9d93c81829fcb3b498ee057e82117a744b37e751e66569 + md5: eeb78a4ed07acf5636a0cba7b16c8a89 + depends: + - __osx >=10.9 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=16.0.6 + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - libgfortran5 >=13.2.0 + - liblapack >=3.9.0,<4.0a0 + - numpy >=1.23.5,<1.28 + - numpy >=1.23.5,<2.0a0 + - python >=3.11,<3.12.0a0 + - python >=3.11,<3.12.0a0 *_cpython + - python_abi 3.11.* *_cp311 + constrains: + - libopenblas <0.3.26 + license: BSD-3-Clause + license_family: BSD + size: 14854215 + timestamp: 1700814446442 +- kind: conda + name: scipy + version: 1.11.4 + build: py311h64a7726_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.11.4-py311h64a7726_0.conda + sha256: 29b2fd4ce8ed591df89b6a1c4f598a414322f94ea1a973b366267d43ecf40ffd + md5: 9ac5334f1b5ed072d3dbc342503d7868 + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - libgfortran-ng + - libgfortran5 >=12.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - numpy >=1.23.5,<1.28 + - numpy >=1.23.5,<2.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - libopenblas <0.3.26 + license: BSD-3-Clause + license_family: BSD + size: 16045599 + timestamp: 1700813453003 +- kind: conda + name: scipy + version: 1.11.4 + build: py311he0bea55_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.11.4-py311he0bea55_0.conda + sha256: f174683a50833c463ec1cf23198970294f4e3a12f5df8f3997a4d4cee640bc08 + md5: baee74d27482a81394b088b3517e2143 + depends: + - __osx >=10.9 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=16.0.6 + - libgfortran 5.* + - libgfortran5 >=12.3.0 + - libgfortran5 >=13.2.0 + - liblapack >=3.9.0,<4.0a0 + - numpy >=1.23.5,<1.28 + - numpy >=1.23.5,<2.0a0 + - python >=3.11,<3.12.0a0 + - python_abi 3.11.* *_cp311 + constrains: + - libopenblas <0.3.26 + license: BSD-3-Clause + license_family: BSD + size: 15934429 + timestamp: 1700814198750 +- kind: pypi + name: setuptools + version: 69.1.1 + url: https://files.pythonhosted.org/packages/c0/7a/3da654f49c95d0cc6e9549a855b5818e66a917e852ec608e77550c8dc08b/setuptools-69.1.1-py3-none-any.whl + sha256: 02fa291a0471b3a18b2b2481ed902af520c69e8ae0919c13da936542754b4c56 + requires_dist: + - sphinx >=3.5 ; extra == 'docs' + - sphinx <7.2.5 ; extra == 'docs' + - jaraco-packaging >=9.3 ; extra == 'docs' + - rst-linker >=1.9 ; extra == 'docs' + - furo ; extra == 'docs' + - sphinx-lint ; extra == 'docs' + - jaraco-tidelift >=1.4 ; extra == 'docs' + - pygments-github-lexers ==0.0.5 ; extra == 'docs' + - sphinx-favicon ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinx-reredirects ; extra == 'docs' + - sphinxcontrib-towncrier ; extra == 'docs' + - sphinx-notfound-page <2, >=1 ; extra == 'docs' + - pytest >=6 ; extra == 'testing' + - pytest-checkdocs >=2.4 ; extra == 'testing' + - pytest-enabler >=2.2 ; extra == 'testing' + - flake8-2020 ; extra == 'testing' + - virtualenv >=13.0.0 ; extra == 'testing' + - wheel ; extra == 'testing' + - pip >=19.1 ; extra == 'testing' + - packaging >=23.2 ; extra == 'testing' + - jaraco-envs >=2.2 ; extra == 'testing' + - pytest-xdist ; extra == 'testing' + - jaraco-path >=3.2.0 ; extra == 'testing' + - build[virtualenv] ; extra == 'testing' + - filelock >=3.4.0 ; extra == 'testing' + - ini2toml[lite] >=0.9 ; extra == 'testing' + - tomli-w >=1.0.0 ; extra == 'testing' + - pytest-timeout ; extra == 'testing' + - pytest-home >=0.5 ; extra == 'testing' + - pytest ; extra == 'testing-integration' + - pytest-xdist ; extra == 'testing-integration' + - pytest-enabler ; extra == 'testing-integration' + - virtualenv >=13.0.0 ; extra == 'testing-integration' + - tomli ; extra == 'testing-integration' + - wheel ; extra == 'testing-integration' + - jaraco-path >=3.2.0 ; extra == 'testing-integration' + - jaraco-envs >=2.2 ; extra == 'testing-integration' + - build[virtualenv] >=1.0.3 ; extra == 'testing-integration' + - filelock >=3.4.0 ; extra == 'testing-integration' + - packaging >=23.2 ; extra == 'testing-integration' + - pytest-cov ; platform_python_implementation != 'PyPy' and extra == 'testing' + - pytest-mypy >=0.9.1 ; platform_python_implementation != 'PyPy' and extra == 'testing' + - jaraco-develop >=7.21 ; (python_version >= '3.9' and sys_platform != 'cygwin') and extra == 'testing' + - pytest-ruff >=0.2.1 ; sys_platform != 'cygwin' and extra == 'testing' + - pytest-perf ; sys_platform != 'cygwin' and extra == 'testing' + requires_python: '>=3.8' +- kind: pypi + name: six + version: 1.16.0 + url: https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl + sha256: 8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' +- kind: pypi + name: stack-data + version: 0.6.3 + url: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl + sha256: d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695 + requires_dist: + - executing >=1.2.0 + - asttokens >=2.1.0 + - pure-eval + - pytest ; extra == 'tests' + - typeguard ; extra == 'tests' + - pygments ; extra == 'tests' + - littleutils ; extra == 'tests' + - cython ; extra == 'tests' +- kind: conda + name: tbb + version: 2021.11.0 + build: h91493d7_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.11.0-h91493d7_1.conda + sha256: aa30c089fdd6f66c7808592362e29963586e094159964a5fb61fb8efa9e349bc + md5: 21069f3ed16812f9f4f2700667b6ec86 + depends: + - libhwloc >=2.9.3,<2.9.4.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: Apache-2.0 + license_family: APACHE + size: 161382 + timestamp: 1706164225098 +- kind: pypi + name: tenacity + version: 8.2.3 + url: https://files.pythonhosted.org/packages/f4/f1/990741d5bb2487d529d20a433210ffa136a367751e454214013b441c4575/tenacity-8.2.3-py3-none-any.whl + sha256: ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c + requires_dist: + - reno ; extra == 'doc' + - sphinx ; extra == 'doc' + - tornado >=4.5 ; extra == 'doc' + requires_python: '>=3.7' +- kind: pypi + name: tensorboard + version: 2.14.1 + url: https://files.pythonhosted.org/packages/73/a2/66ed644f6ed1562e0285fcd959af17670ea313c8f331c46f79ee77187eb9/tensorboard-2.14.1-py3-none-any.whl + sha256: 3db108fb58f023b6439880e177743c5f1e703e9eeb5fb7d597871f949f85fd58 + requires_dist: + - absl-py >=0.4 + - grpcio >=1.48.2 + - google-auth <3, >=1.6.3 + - google-auth-oauthlib <1.1, >=0.5 + - markdown >=2.6.8 + - numpy >=1.12.0 + - protobuf >=3.19.6 + - requests <3, >=2.21.0 + - setuptools >=41.0.0 + - six >1.9 + - tensorboard-data-server <0.8.0, >=0.7.0 + - werkzeug >=1.0.1 + requires_python: '>=3.9' +- kind: pypi + name: tensorboard-data-server + version: 0.7.2 + url: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl + sha256: 9fe5d24221b29625dbc7328b0436ca7fc1c23de4acf4d272f1180856e32f9f60 + requires_python: '>=3.7' +- kind: pypi + name: tensorboard-data-server + version: 0.7.2 + url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + requires_python: '>=3.7' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 + requires_dist: + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=23.5.26 + - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 + - google-pasta >=0.1.1 + - h5py >=2.9.0 + - libclang >=13.0.0 + - ml-dtypes ==0.2.0 + - numpy >=1.23.5 + - opt-einsum >=2.3.2 + - packaging + - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 + - setuptools + - six >=1.12.0 + - termcolor >=1.1.0 + - typing-extensions >=3.6.6 + - wrapt <1.15, >=1.11.0 + - tensorflow-io-gcs-filesystem >=0.23.1 + - grpcio <2.0, >=1.24.3 + - tensorboard <2.15, >=2.14 + - tensorflow-estimator <2.15, >=2.14.0 + - keras <2.15, >=2.14.0 + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa + requires_dist: + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=23.5.26 + - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 + - google-pasta >=0.1.1 + - h5py >=2.9.0 + - libclang >=13.0.0 + - ml-dtypes ==0.2.0 + - numpy >=1.23.5 + - opt-einsum >=2.3.2 + - packaging + - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 + - setuptools + - six >=1.12.0 + - termcolor >=1.1.0 + - typing-extensions >=3.6.6 + - wrapt <1.15, >=1.11.0 + - tensorflow-io-gcs-filesystem >=0.23.1 + - grpcio <2.0, >=1.24.3 + - tensorboard <2.15, >=2.14 + - tensorflow-estimator <2.15, >=2.14.0 + - keras <2.15, >=2.14.0 + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c + requires_dist: + - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/80/6f/57d36f6507e432d7fc1956b2e9e8530c5c2d2bfcd8821bcbfae271cd6688/tensorflow-2.14.0-cp311-cp311-win_amd64.whl + sha256: 0587ece626c4f7c4fcb2132525ea6c77ad2f2f5659a9b0f4451b1000be1b5e16 + requires_dist: + - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow-estimator + version: 2.14.0 + url: https://files.pythonhosted.org/packages/d1/da/4f264c196325bb6e37a6285caec5b12a03def489b57cc1fdac02bb6272cd/tensorflow_estimator-2.14.0-py2.py3-none-any.whl + sha256: 820bf57c24aa631abb1bbe4371739ed77edb11361d61381fd8e790115ac0fd57 + requires_python: '>=3.7' +- kind: pypi + name: tensorflow-intel + version: 2.14.0 + url: https://files.pythonhosted.org/packages/ad/6e/1bfe367855dd87467564f7bf9fa14f3b17889988e79598bc37bf18f5ffb6/tensorflow_intel-2.14.0-cp311-cp311-win_amd64.whl + sha256: 51f96c729d61ff8e2e340df5b3b4db81a938258f1c9282ab09277896d0c408ae + requires_dist: + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=23.5.26 + - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 + - google-pasta >=0.1.1 + - h5py >=2.9.0 + - libclang >=13.0.0 + - ml-dtypes ==0.2.0 + - numpy >=1.23.5 + - opt-einsum >=2.3.2 + - packaging + - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 + - setuptools + - six >=1.12.0 + - termcolor >=1.1.0 + - typing-extensions >=3.6.6 + - wrapt <1.15, >=1.11.0 + - tensorflow-io-gcs-filesystem >=0.23.1 + - grpcio <2.0, >=1.24.3 + - tensorboard <2.15, >=2.14 + - tensorflow-estimator <2.15, >=2.14.0 + - keras <2.15, >=2.14.0 + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow-io-gcs-filesystem + version: 0.31.0 + url: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl + sha256: 4bb37d23f21c434687b11059cb7ffd094d52a7813368915ba1b7057e3c16e414 + requires_dist: + - tensorflow <2.12.0, >=2.11.0 ; extra == 'tensorflow' + - tensorflow-aarch64 <2.12.0, >=2.11.0 ; extra == 'tensorflow-aarch64' + - tensorflow-cpu <2.12.0, >=2.11.0 ; extra == 'tensorflow-cpu' + - tensorflow-gpu <2.12.0, >=2.11.0 ; extra == 'tensorflow-gpu' + - tensorflow-rocm <2.12.0, >=2.11.0 ; extra == 'tensorflow-rocm' + requires_python: '>=3.7,<3.12' +- kind: pypi + name: tensorflow-io-gcs-filesystem + version: 0.36.0 + url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 + requires_dist: + - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' + - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' + - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' + - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' + - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' + requires_python: '>=3.7,<3.12' +- kind: pypi + name: tensorflow-io-gcs-filesystem + version: 0.36.0 + url: https://files.pythonhosted.org/packages/44/66/10773d9ea847ba0ae5c36478333d92c6dae3396205bf18091910f63f3ee9/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 1bd4d946b5fa23220daa473a80e511a5fb27493d7e49d17dff0bb43bb0a31f32 + requires_dist: + - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' + - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' + - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' + - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' + - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' + requires_python: '>=3.7,<3.12' +- kind: pypi + name: tensorflow-io-gcs-filesystem + version: 0.36.0 + url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl + sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 + requires_dist: + - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' + - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' + - tensorflow-cpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-cpu' + - tensorflow-gpu <2.16.0, >=2.15.0 ; extra == 'tensorflow-gpu' + - tensorflow-rocm <2.16.0, >=2.15.0 ; extra == 'tensorflow-rocm' + requires_python: '>=3.7,<3.12' +- kind: pypi + name: tensorflow-macos + version: 2.14.0 + url: https://files.pythonhosted.org/packages/d3/4b/ae9037ea22ba94eb2cf267e991384c3444f3e6142fa49923352b4ab73e14/tensorflow_macos-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + sha256: 064e98b67d7a89e72c37c90254c0a322a0b8d0ce9b68f23286816210e3ef6685 + requires_dist: + - absl-py >=1.0.0 + - astunparse >=1.6.0 + - flatbuffers >=23.5.26 + - gast !=0.5.0, !=0.5.1, !=0.5.2, >=0.2.1 + - google-pasta >=0.1.1 + - h5py >=2.9.0 + - libclang >=13.0.0 + - ml-dtypes ==0.2.0 + - numpy >=1.23.5 + - opt-einsum >=2.3.2 + - packaging + - protobuf !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.20.3 + - setuptools + - six >=1.12.0 + - termcolor >=1.1.0 + - typing-extensions >=3.6.6 + - wrapt <1.15, >=1.11.0 + - tensorflow-io-gcs-filesystem >=0.23.1 + - grpcio <2.0, >=1.24.3 + - tensorboard <2.15, >=2.14 + - tensorflow-estimator <2.15, >=2.14.0 + - keras <2.15, >=2.14.0 + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: termcolor + version: 2.4.0 + url: https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl + sha256: 9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63 + requires_dist: + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + requires_python: '>=3.8' +- kind: conda + name: tk + version: 8.6.13 + build: h1abcd95_1 + build_number: 1 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda + sha256: 30412b2e9de4ff82d8c2a7e5d06a15f4f4fef1809a72138b6ccb53a33b26faf5 + md5: bf830ba5afc507c6232d4ef0fb1a882d + depends: + - libzlib >=1.2.13,<1.3.0a0 + license: TCL + license_family: BSD + size: 3270220 + timestamp: 1699202389792 +- kind: conda + name: tk + version: 8.6.13 + build: h5083fa2_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 + md5: b50a57ba89c32b62428b71a875291c9b + depends: + - libzlib >=1.2.13,<1.3.0a0 + license: TCL + license_family: BSD + size: 3145523 + timestamp: 1699202432999 +- kind: conda + name: tk + version: 8.6.13 + build: h5226925_1 + build_number: 1 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda + sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1 + md5: fc048363eb8f03cd1737600a5d08aafe + depends: + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: TCL + license_family: BSD + size: 3503410 + timestamp: 1699202577803 +- kind: conda + name: tk + version: 8.6.13 + build: noxft_h4845f30_101 + build_number: 101 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: d453b98d9c83e71da0741bb0ff4d76bc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + license: TCL + license_family: BSD + size: 3318875 + timestamp: 1699202167581 +- kind: pypi + name: tokenize-rt + version: 5.2.0 + url: https://files.pythonhosted.org/packages/8d/35/78f03aa48cfebd13646707f64477bc7eacf1081edcdcd1b4d57cb1b5d0a8/tokenize_rt-5.2.0-py2.py3-none-any.whl + sha256: b79d41a65cfec71285433511b50271b05da3584a1da144a0752e9c621a285289 + requires_python: '>=3.8' +- kind: pypi + name: traitlets + version: 5.14.1 + url: https://files.pythonhosted.org/packages/45/34/5dc77fdc7bb4bd198317eea5679edf9cc0a186438b5b19dbb9062fb0f4d5/traitlets-5.14.1-py3-none-any.whl + sha256: 2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74 + requires_dist: + - myst-parser ; extra == 'docs' + - pydata-sphinx-theme ; extra == 'docs' + - sphinx ; extra == 'docs' + - argcomplete >=3.0.3 ; extra == 'test' + - mypy >=1.7.0 ; extra == 'test' + - pre-commit ; extra == 'test' + - pytest-mock ; extra == 'test' + - pytest-mypy-testing ; extra == 'test' + - pytest <7.5, >=7.0 ; extra == 'test' + requires_python: '>=3.8' +- kind: pypi + name: typing-extensions + version: 4.10.0 + url: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl + sha256: 69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475 + requires_python: '>=3.8' +- kind: conda + name: tzdata + version: 2024a + build: h0c530f3_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 + md5: 161081fc7cec0bfda0d86d7cb595f8d8 + license: LicenseRef-Public-Domain + size: 119815 + timestamp: 1706886945727 +- kind: conda + name: ucrt + version: 10.0.22621.0 + build: h57928b3_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_0.tar.bz2 + sha256: f29cdaf8712008f6b419b8b1a403923b00ab2504bfe0fb2ba8eb60e72d4f14c6 + md5: 72608f6cd3e5898229c3ea16deb1ac43 + constrains: + - vs2015_runtime >=14.29.30037 + license: LicenseRef-Proprietary + license_family: PROPRIETARY + size: 1283972 + timestamp: 1666630199266 +- kind: pypi + name: urllib3 + version: 2.2.1 + url: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl + sha256: 450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d + requires_dist: + - brotli >=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli' + - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli' + - h2 <5, >=4 ; extra == 'h2' + - pysocks !=1.5.7, <2.0, >=1.5.6 ; extra == 'socks' + - zstandard >=0.18.0 ; extra == 'zstd' + requires_python: '>=3.8' +- kind: conda + name: vc + version: '14.3' + build: hcf57466_18 + build_number: 18 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-hcf57466_18.conda + sha256: 447a8d8292a7b2107dcc18afb67f046824711a652725fc0f522c368e7a7b8318 + md5: 20e1e652a4c740fa719002a8449994a2 + depends: + - vc14_runtime >=14.38.33130 + track_features: + - vc14 + license: BSD-3-Clause + license_family: BSD + size: 16977 + timestamp: 1702511255313 +- kind: conda + name: vc14_runtime + version: 14.38.33130 + build: h82b7239_18 + build_number: 18 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.38.33130-h82b7239_18.conda + sha256: bf94c9af4b2e9cba88207001197e695934eadc96a5c5e4cd7597e950aae3d8ff + md5: 8be79fdd2725ddf7bbf8a27a4c1f79ba + depends: + - ucrt >=10.0.20348.0 + constrains: + - vs2015_runtime 14.38.33130.* *_18 + license: LicenseRef-ProprietaryMicrosoft + license_family: Proprietary + size: 749868 + timestamp: 1702511239004 +- kind: conda + name: vs2015_runtime + version: 14.38.33130 + build: hcb4865c_18 + build_number: 18 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.38.33130-hcb4865c_18.conda + sha256: a2fec221f361d6263c117f4ea6d772b21c90a2f8edc6f3eb0eadec6bfe8843db + md5: 10d42885e3ed84e575b454db30f1aa93 + depends: + - vc14_runtime >=14.38.33130 + license: BSD-3-Clause + license_family: BSD + size: 16988 + timestamp: 1702511261442 +- kind: pypi + name: wcwidth + version: 0.2.13 + url: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl + sha256: 3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 + requires_dist: + - backports-functools-lru-cache >=1.2.1 ; python_version < '3.2' +- kind: pypi + name: werkzeug + version: 3.0.1 + url: https://files.pythonhosted.org/packages/c3/fc/254c3e9b5feb89ff5b9076a23218dafbc99c96ac5941e900b71206e6313b/werkzeug-3.0.1-py3-none-any.whl + sha256: 90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 + requires_dist: + - markupsafe >=2.1.1 + - watchdog >=2.3 ; extra == 'watchdog' + requires_python: '>=3.8' +- kind: pypi + name: wheel + version: 0.42.0 + url: https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl + sha256: 177f9c9b0d45c47873b619f5b650346d632cdc35fb5e4d25058e09c9e581433d + requires_dist: + - pytest >=6.0.0 ; extra == 'test' + - setuptools >=65 ; extra == 'test' + requires_python: '>=3.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/7f/1b/e0439eec0db6520968c751bc7e12480bb80bb8d939190e0e55ed762f3c7a/wrapt-1.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a9008dad07d71f68487c91e96579c8567c98ca4c3881b9b113bc7b33e9fd78b8 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: pypi + name: wrapt + version: 1.14.1 + url: https://files.pythonhosted.org/packages/ba/7e/14113996bc6ee68eb987773b4139c87afd3ceff60e27e37648aa5eb2798a/wrapt-1.14.1-cp311-cp311-win_amd64.whl + sha256: 26046cd03936ae745a502abf44dac702a5e6880b2b01c29aea8ddf3353b68224 + requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' +- kind: conda + name: xz + version: 5.2.6 + build: h166bdaf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 + sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 + md5: 2161070d867d1b1204ea749c8eec4ef0 + depends: + - libgcc-ng >=12 + license: LGPL-2.1 and GPL-2.0 + size: 418368 + timestamp: 1660346797927 +- kind: conda + name: xz + version: 5.2.6 + build: h57fd34a_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 + sha256: 59d78af0c3e071021cfe82dc40134c19dab8cdf804324b62940f5c8cd71803ec + md5: 39c6b54e94014701dd157f4f576ed211 + license: LGPL-2.1 and GPL-2.0 + size: 235693 + timestamp: 1660346961024 +- kind: conda + name: xz + version: 5.2.6 + build: h775f41a_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.6-h775f41a_0.tar.bz2 + sha256: eb09823f34cc2dd663c0ec4ab13f246f45dcd52e5b8c47b9864361de5204a1c8 + md5: a72f9d4ea13d55d745ff1ed594747f10 + license: LGPL-2.1 and GPL-2.0 + size: 238119 + timestamp: 1660346964847 +- kind: conda + name: xz + version: 5.2.6 + build: h8d14728_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/xz-5.2.6-h8d14728_0.tar.bz2 + sha256: 54d9778f75a02723784dc63aff4126ff6e6749ba21d11a6d03c1f4775f269fe0 + md5: 515d77642eaa3639413c6b1bc3f94219 + depends: + - vc >=14.1,<15 + - vs2015_runtime >=14.16.27033 + license: LGPL-2.1 and GPL-2.0 + size: 217804 + timestamp: 1660346976440 +- kind: conda + name: zstd + version: 1.5.5 + build: h12be248_0 + subdir: win-64 + url: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.5-h12be248_0.conda + sha256: d540dd56c5ec772b60e4ce7d45f67f01c6614942225885911964ea1e70bb99e3 + md5: 792bb5da68bf0a6cac6a6072ecb8dbeb + depends: + - libzlib >=1.2.13,<1.3.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.2,<15 + - vc14_runtime >=14.29.30139 + license: BSD-3-Clause + license_family: BSD + size: 343428 + timestamp: 1693151615801 +- kind: conda + name: zstd + version: 1.5.5 + build: h4f39d0f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda + sha256: 7e1fe6057628bbb56849a6741455bbb88705bae6d6646257e57904ac5ee5a481 + md5: 5b212cfb7f9d71d603ad891879dc7933 + depends: + - libzlib >=1.2.13,<1.3.0a0 + license: BSD-3-Clause + license_family: BSD + size: 400508 + timestamp: 1693151393180 +- kind: conda + name: zstd + version: 1.5.5 + build: h829000d_0 + subdir: osx-64 + url: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.5-h829000d_0.conda + sha256: d54e31d3d8de5e254c0804abd984807b8ae5cd3708d758a8bf1adff1f5df166c + md5: 80abc41d0c48b82fe0f04e7f42f5cb7e + depends: + - libzlib >=1.2.13,<1.3.0a0 + license: BSD-3-Clause + license_family: BSD + size: 499383 + timestamp: 1693151312586 +- kind: conda + name: zstd + version: 1.5.5 + build: hfc55251_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda + sha256: 607cbeb1a533be98ba96cf5cdf0ddbb101c78019f1fda063261871dad6248609 + md5: 04b88013080254850d6c01ed54810589 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<1.3.0a0 + license: BSD-3-Clause + license_family: BSD + size: 545199 + timestamp: 1693151163452 diff --git a/examples/pypi/pixi.toml b/examples/pypi/pixi.toml index 76a78cfb0..f5d4f2c5e 100644 --- a/examples/pypi/pixi.toml +++ b/examples/pypi/pixi.toml @@ -31,7 +31,8 @@ black = { version = "~=23.10", extras = ["jupyter"] } # sdists: pyliblzfse = "*" pycosat = "*" -env_test_package = "==0.0.3" +# TODO(tim): fix env-passing in uv +#env_test_package = "==0.0.3" plot-antenna = "==1.8" [system-requirements] From 55e8069dfcad7681ee365cab9a76348cc3d18f07 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 26 Feb 2024 16:26:05 +0100 Subject: [PATCH 44/55] fix: snapshot tests --- ...test_import_from_env_yaml.cockpit.yml.snap | 57 ++-- ..._test_import_from_env_yaml.crnnft.yml.snap | 70 ++-- ...est_import_from_env_yaml.let-plot.yml.snap | 24 +- ...est_import_from_env_yaml.test_env.yml.snap | 312 ++++++------------ 4 files changed, 184 insertions(+), 279 deletions(-) diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap index 62a22729f..fb5b584e1 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap @@ -1,6 +1,6 @@ --- source: src/cli/init.rs -expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_channels(env_info.channels), env_info.name)" +expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n parse_channels(env_info.channels().clone()), env_info.name())" --- ( ( @@ -848,57 +848,62 @@ expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_cha ], [ ( - PackageName { - source: "memory-profiler", - normalized: "memory-profiler", - }, + PackageName( + "memory-profiler", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "pre-commit", - normalized: "pre-commit", - }, + PackageName( + "pre-commit", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "graphviz", - normalized: "graphviz", - }, + PackageName( + "graphviz", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "sphinx-notfound-page", - normalized: "sphinx-notfound-page", - }, + PackageName( + "sphinx-notfound-page", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "DeepOBS", - normalized: "deepobs", - }, + PackageName( + "deepobs", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap index 6df4fa076..e88dc0925 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap @@ -1,6 +1,6 @@ --- source: src/cli/init.rs -expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_channels(env_info.channels), env_info.name)" +expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n parse_channels(env_info.channels().clone()), env_info.name())" --- ( ( @@ -133,77 +133,71 @@ expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_cha ], [ ( - PackageName { - source: "tensorflow_gpu", - normalized: "tensorflow-gpu", - }, + PackageName( + "tensorflow-gpu", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: Equal, - version: Version { - epoch: 0, - release: [ - 1, - 15, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.15.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "numpy", - normalized: "numpy", - }, + PackageName( + "numpy", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "opencv_python", - normalized: "opencv-python", - }, + PackageName( + "opencv-python", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "matplotlib", - normalized: "matplotlib", - }, + PackageName( + "matplotlib", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "easydict", - normalized: "easydict", - }, + PackageName( + "easydict", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap index 548a1c656..ca48e99f6 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap @@ -1,6 +1,6 @@ --- source: src/cli/init.rs -expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_channels(env_info.channels), env_info.name)" +expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n parse_channels(env_info.channels().clone()), env_info.name())" --- ( ( @@ -221,24 +221,26 @@ expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_cha ], [ ( - PackageName { - source: "pypng", - normalized: "pypng", - }, + PackageName( + "pypng", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "palettable", - normalized: "palettable", - }, + PackageName( + "palettable", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap index 3acbfb536..09d577615 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap @@ -1,6 +1,6 @@ --- source: src/cli/init.rs -expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_channels(env_info.channels), env_info.name)" +expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n parse_channels(env_info.channels().clone()), env_info.name())" --- ( ( @@ -102,395 +102,299 @@ expression: "(parse_dependencies(env_info.dependencies).unwrap(),\n parse_cha ], [ ( - PackageName { - source: "package1", - normalized: "package1", - }, + PackageName( + "package1", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: Equal, - version: Version { - epoch: 0, - release: [ - 1, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "1.0.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package2", - normalized: "package2", - }, + PackageName( + "package2", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: Equal, - version: Version { - epoch: 0, - release: [ - 2, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "2.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package3", - normalized: "package3", - }, + PackageName( + "package3", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: Equal, - version: Version { - epoch: 0, - release: [ - 3, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "3", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package4", - normalized: "package4", - }, + PackageName( + "package4", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: LessThanEqual, - version: Version { - epoch: 0, - release: [ - 4, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "4.0.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package5", - normalized: "package5", - }, + PackageName( + "package5", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 5, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "5.0.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package6", - normalized: "package6", - }, + PackageName( + "package6", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThan, - version: Version { - epoch: 0, - release: [ - 6, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "6.0.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package7", - normalized: "package7", - }, + PackageName( + "package7", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: LessThan, - version: Version { - epoch: 0, - release: [ - 7, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "7.0.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package8", - normalized: "package8", - }, + PackageName( + "package8", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: NotEqual, - version: Version { - epoch: 0, - release: [ - 8, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "8.0.0", }, ], ), ), - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package9", - normalized: "package9", - }, + PackageName( + "package9", + ), PyPiRequirement { version: None, - extras: None, + extras: Some( + [], + ), index: None, }, ), ( - PackageName { - source: "package10", - normalized: "package10", - }, + PackageName( + "package10", + ), PyPiRequirement { version: None, extras: Some( [ - "extra", + ExtraName( + "extra", + ), ], ), index: None, }, ), ( - PackageName { - source: "package11", - normalized: "package11", - }, + PackageName( + "package11", + ), PyPiRequirement { version: None, extras: Some( [ - "extra1", - "extra2", + ExtraName( + "extra1", + ), + ExtraName( + "extra2", + ), ], ), index: None, }, ), ( - PackageName { - source: "package12", - normalized: "package12", - }, + PackageName( + "package12", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: Equal, - version: Version { - epoch: 0, - release: [ - 12, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "12.0.0", }, ], ), ), extras: Some( [ - "extra1", - "extra2", + ExtraName( + "extra1", + ), + ExtraName( + "extra2", + ), ], ), index: None, }, ), ( - PackageName { - source: "package13", - normalized: "package13", - }, + PackageName( + "package13", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: GreaterThanEqual, - version: Version { - epoch: 0, - release: [ - 13, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "13.0.0", }, ], ), ), extras: Some( [ - "extra1", - "extra2", + ExtraName( + "extra1", + ), + ExtraName( + "extra2", + ), ], ), index: None, }, ), ( - PackageName { - source: "package14", - normalized: "package14", - }, + PackageName( + "package14", + ), PyPiRequirement { version: Some( VersionSpecifiers( [ VersionSpecifier { operator: LessThanEqual, - version: Version { - epoch: 0, - release: [ - 14, - 0, - 0, - ], - pre: None, - post: None, - dev: None, - local: None, - }, + version: "14.0.0", }, ], ), ), extras: Some( [ - "extra1", - "extra2", + ExtraName( + "extra1", + ), + ExtraName( + "extra2", + ), ], ), index: None, From 5f128e4fb7f833087494088700113b364e34523e Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Mon, 26 Feb 2024 16:29:39 +0100 Subject: [PATCH 45/55] fix: fix first test --- src/cli/init.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cli/init.rs b/src/cli/init.rs index 1a67d7c47..480ea6122 100644 --- a/src/cli/init.rs +++ b/src/cli/init.rs @@ -437,7 +437,7 @@ mod tests { PackageName::from_str("requests").unwrap(), PyPiRequirement { version: None, - extras: None, + extras: Some(vec![]), index: None, } ), @@ -445,7 +445,7 @@ mod tests { PackageName::from_str("DeepOBS").unwrap(), PyPiRequirement { version: None, - extras: None, + extras: Some(vec![]), index: None, }, ), @@ -453,7 +453,7 @@ mod tests { PackageName::from_str("torch").unwrap(), PyPiRequirement { version: pep440_rs::VersionSpecifiers::from_str("==1.8.1").ok(), - extras: None, + extras: Some(vec![]), index: None, } ), From 2dc97534e5eeffb52d397ec0e7878b978c767ef0 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 27 Feb 2024 10:10:35 +0100 Subject: [PATCH 46/55] feat: chance cache directory --- src/lock_file/resolve.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 0d7ef415b..6e0f28b1b 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -62,9 +62,13 @@ pub struct UvResolutionContext { impl UvResolutionContext { pub fn from_project(project: &Project) -> miette::Result { - let cache = Cache::from_path(get_cache_dir().expect("missing caching directory")) - .into_diagnostic() - .context("failed to create uv cache")?; + let cache = Cache::from_path( + get_cache_dir() + .expect("missing caching directory") + .join("uv-cache"), + ) + .into_diagnostic() + .context("failed to create uv cache")?; let registry_client = Arc::new( RegistryClientBuilder::new(cache.clone()) .client(project.client().clone()) From 6d70a089761adc581cf613e6b114a31043980984 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 27 Feb 2024 10:28:22 +0100 Subject: [PATCH 47/55] feat: debugging and show version when building --- src/install_pypi.rs | 2 ++ src/lock_file/resolve.rs | 2 ++ src/uv_reporter.rs | 16 ++++++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index dd53bf84b..11b42eb9c 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -254,6 +254,8 @@ pub async fn update_python_distributions( let interpreter = Interpreter::query(&python_location, &platform, &uv_context.cache).into_diagnostic()?; + tracing::debug!("[Install] Using Python Interpreter: {:?}", interpreter); + // Create a custom venv let venv = Virtualenv::from_interpreter(interpreter, prefix.root()); diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 6e0f28b1b..c5b9dc07e 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -300,6 +300,8 @@ pub async fn resolve_pypi( let interpreter = Interpreter::query(python_location, &platform, &context.cache).into_diagnostic()?; + tracing::debug!("[Resolve] Using Python Interpreter: {:?}", interpreter); + // Resolve the flat indexes from `--find-links`. let flat_index = { let client = FlatIndexClient::new(&context.registry_client, &context.cache); diff --git a/src/uv_reporter.rs b/src/uv_reporter.rs index 6ad48ce8a..b33e25dc3 100644 --- a/src/uv_reporter.rs +++ b/src/uv_reporter.rs @@ -151,7 +151,13 @@ impl uv_installer::DownloadReporter for UvReporter { } fn on_build_start(&self, dist: &distribution_types::SourceDist) -> usize { - self.start_sync(format!("building {}", dist.name().as_ref())) + self.start_sync(format!( + "building {}=={}", + dist.name().as_ref(), + dist.version() + .map(|s| s.to_string()) + .unwrap_or_else(|| "unknown".to_string()) + )) } fn on_build_complete(&self, _dist: &distribution_types::SourceDist, id: usize) { @@ -203,7 +209,13 @@ impl uv_resolver::ResolverReporter for UvReporter { } fn on_build_start(&self, dist: &distribution_types::SourceDist) -> usize { - self.start_sync(format!("building {}", dist.name().as_ref())) + self.start_sync(format!( + "building {}=={}", + dist.name().as_ref(), + dist.version() + .map(|s| s.to_string()) + .unwrap_or_else(|| "unknown".to_string()) + )) } fn on_build_complete(&self, _dist: &distribution_types::SourceDist, id: usize) { From 5ce9889a94b4d2e90aa231ebe8bd829c228d1c51 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Tue, 27 Feb 2024 10:50:00 +0100 Subject: [PATCH 48/55] fix: remove unused code --- src/lock_file/resolve.rs | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index c5b9dc07e..80343eeb6 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -18,9 +18,10 @@ use crate::{ Project, }; +use distribution_types::FileLocation; use distribution_types::{ - BuiltDist, DirectUrlSourceDist, Dist, DistributionMetadata, FileLocation, IndexLocations, Name, - PrioritizedDist, Resolution, SourceDist, VersionOrUrl, + BuiltDist, DirectUrlSourceDist, Dist, IndexLocations, Name, PrioritizedDist, Resolution, + SourceDist, }; use futures::FutureExt; use indexmap::IndexMap; @@ -105,30 +106,6 @@ fn parse_hashes_from_hex(sha256: &Option, md5: &Option) -> Optio } } -struct ResolveReporter(ProgressBar); - -impl uv_resolver::ResolverReporter for ResolveReporter { - fn on_progress(&self, name: &PackageName, version: VersionOrUrl) { - self.0.set_message(format!("resolving {}{}", name, version)); - } - - fn on_complete(&self) {} - - fn on_build_start(&self, dist: &SourceDist) -> usize { - self.0 - .set_message(format!("building {}{}", dist.name(), dist.version_or_url())); - 0 - } - - fn on_build_complete(&self, _dist: &SourceDist, _id: usize) {} - - fn on_checkout_start(&self, _url: &Url, _rev: &str) -> usize { - 0 - } - - fn on_checkout_complete(&self, _url: &Url, _rev: &str, _index: usize) {} -} - struct CondaResolverProvider<'a, Context: BuildContext + Send + Sync> { fallback: DefaultResolverProvider<'a, Context>, conda_python_identifiers: &'a HashMap, From 5520a851233176416b0c8bae8e65f7ba93a8c43f Mon Sep 17 00:00:00 2001 From: Ruben Arts Date: Tue, 27 Feb 2024 10:27:29 +0100 Subject: [PATCH 49/55] fix: typo in pypi solve --- src/lock_file/update.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 142e8e528..77b106604 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1313,7 +1313,7 @@ async fn spawn_solve_pypi_task( .await .with_context(|| { format!( - "failed to solve the conda requirements of '{}' '{}'", + "failed to solve the pypi requirements of '{}' '{}'", environment_name.fancy_display(), consts::PLATFORM_STYLE.apply_to(platform) ) From 1bb13c87169619587102b38b00cc1e23b962b006 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Wed, 28 Feb 2024 09:31:07 +0100 Subject: [PATCH 50/55] feat: use my own branch for testing --- Cargo.lock | 188 +++++++++++++++++++++++++++++++++-------------------- Cargo.toml | 27 ++++++-- 2 files changed, 139 insertions(+), 76 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e95159d8..7d10c1d90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,9 +364,9 @@ dependencies = [ [[package]] name = "async_http_range_reader" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5143aaae4ec035a5d7cfda666eab896fe5428a2a8ab09ca651a2dce3a8f06912" +checksum = "cf8eeab30c68da4dc2c51f3afc4327ab06fe0f3f028ca423f7ca398c7ed8c5e7" dependencies = [ "bisection", "futures", @@ -700,7 +700,7 @@ dependencies = [ [[package]] name = "cache-key" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "hex", "seahash", @@ -832,7 +832,6 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", "terminal_size", ] @@ -1053,7 +1052,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", + "strsim", "syn 2.0.51", ] @@ -1181,9 +1180,9 @@ dependencies = [ [[package]] name = "distribution-filename" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ - "pep440_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-tags", "rkyv", "serde", @@ -1195,7 +1194,7 @@ dependencies = [ [[package]] name = "distribution-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anyhow", "cache-key", @@ -1204,8 +1203,8 @@ dependencies = [ "fs-err", "itertools 0.12.1", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-tags", "pypi-types", "rkyv", @@ -1217,6 +1216,7 @@ dependencies = [ "tracing", "url", "urlencoding", + "uv-auth", "uv-fs", "uv-git", "uv-normalize", @@ -1699,7 +1699,7 @@ dependencies = [ [[package]] name = "gourgeist" version = "0.0.4" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anstream", "cachedir", @@ -1956,7 +1956,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.6", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -2115,31 +2115,27 @@ dependencies = [ [[package]] name = "install-wheel-rs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ - "clap", "configparser", "csv", "data-encoding", "distribution-filename", "fs-err", - "fs2", - "goblin", "mailparse", "once_cell", - "pep440_rs", + "pathdiff", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-host", "platform-info", "plist", "pypi-types", - "rayon", "reflink-copy", "regex", "rustc-hash", "serde", "serde_json", "sha2", - "target-lexicon", "tempfile", "thiserror", "tracing", @@ -2818,7 +2814,7 @@ dependencies = [ [[package]] name = "once-map" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "dashmap", "tokio", @@ -3022,10 +3018,28 @@ dependencies = [ "once_cell", ] +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + [[package]] name = "pep440_rs" version = "0.5.0" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15efd4d885c29126cc93e12af3087896e2518bd5ca0fb328c19c4ef9cecfa8be" +dependencies = [ + "once_cell", + "serde", + "unicode-width", + "unscanny", +] + +[[package]] +name = "pep440_rs" +version = "0.5.0" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "once_cell", "pubgrub", @@ -3038,11 +3052,28 @@ dependencies = [ [[package]] name = "pep508_rs" version = "0.4.2" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1455babf8edd3eedcdfcb39700e455a4bb189e71b4f1fa0eacc9b244cc5a55e6" dependencies = [ "derivative", "once_cell", - "pep440_rs", + "pep440_rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex", + "serde", + "thiserror", + "unicode-width", + "url", + "urlencoding", +] + +[[package]] +name = "pep508_rs" +version = "0.4.2" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" +dependencies = [ + "derivative", + "once_cell", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "regex", "rkyv", "serde", @@ -3193,8 +3224,8 @@ dependencies = [ "minijinja", "nix 0.27.1", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-host", "platform-tags", "pypi-types", @@ -3223,7 +3254,7 @@ dependencies = [ "shlex", "signal-hook", "spdx", - "strsim 0.10.0", + "strsim", "tabwriter", "tar", "tempfile", @@ -3262,7 +3293,7 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "platform-host" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "fs-err", "goblin", @@ -3289,7 +3320,7 @@ dependencies = [ [[package]] name = "platform-tags" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "platform-host", "rustc-hash", @@ -3482,13 +3513,13 @@ dependencies = [ [[package]] name = "pypi-types" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "chrono", "mailparse", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "regex", "rkyv", "serde", @@ -3505,8 +3536,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898" dependencies = [ "indexmap 2.2.3", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "pep508_rs 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "toml", ] @@ -3669,8 +3700,8 @@ dependencies = [ "fxhash", "indexmap 2.2.3", "itertools 0.12.1", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "purl", "rattler_conda_types", "rattler_digest", @@ -3971,12 +4002,12 @@ dependencies = [ [[package]] name = "requirements-txt" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "fs-err", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "regex", "serde", "thiserror", @@ -4777,12 +4808,6 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strsim" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" - [[package]] name = "strum" version = "0.26.1" @@ -5470,10 +5495,19 @@ dependencies = [ "rand", ] +[[package]] +name = "uv-auth" +version = "0.0.1" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" +dependencies = [ + "tracing", + "url", +] + [[package]] name = "uv-build" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anyhow", "distribution-types", @@ -5482,11 +5516,12 @@ dependencies = [ "indoc", "itertools 0.12.1", "once_cell", - "pep508_rs", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-host", "pypi-types", "pyproject-toml", "regex", + "rustc-hash", "serde", "serde_json", "tempfile", @@ -5503,7 +5538,7 @@ dependencies = [ [[package]] name = "uv-cache" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "cache-key", "cachedir", @@ -5524,7 +5559,7 @@ dependencies = [ [[package]] name = "uv-client" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "async-trait", "async_http_range_reader", @@ -5538,8 +5573,8 @@ dependencies = [ "html-escape", "http", "install-wheel-rs", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-tags", "pypi-types", "reqwest", @@ -5560,6 +5595,7 @@ dependencies = [ "tracing", "url", "urlencoding", + "uv-auth", "uv-cache", "uv-fs", "uv-normalize", @@ -5569,7 +5605,7 @@ dependencies = [ [[package]] name = "uv-dispatch" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anyhow", "distribution-types", @@ -5577,10 +5613,11 @@ dependencies = [ "futures", "gourgeist", "itertools 0.12.1", - "pep508_rs", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-host", "platform-tags", "pypi-types", + "rustc-hash", "tempfile", "tokio", "tracing", @@ -5597,7 +5634,7 @@ dependencies = [ [[package]] name = "uv-distribution" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anyhow", "cache-key", @@ -5607,8 +5644,8 @@ dependencies = [ "futures", "install-wheel-rs", "nanoid", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-tags", "pypi-types", "reqwest", @@ -5634,7 +5671,7 @@ dependencies = [ [[package]] name = "uv-extract" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "async-compression", "async_zip", @@ -5647,13 +5684,14 @@ dependencies = [ "tokio", "tokio-tar", "tokio-util", + "tracing", "zip", ] [[package]] name = "uv-fs" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "dunce", "fs-err", @@ -5668,12 +5706,13 @@ dependencies = [ [[package]] name = "uv-git" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anyhow", "base64 0.21.7", "cache-key", "cargo-util", + "fs-err", "git2", "glob", "hex", @@ -5693,7 +5732,7 @@ dependencies = [ [[package]] name = "uv-installer" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anyhow", "distribution-filename", @@ -5702,16 +5741,19 @@ dependencies = [ "futures", "install-wheel-rs", "once-map", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-tags", "pypi-types", + "pyproject-toml", "rayon", "requirements-txt", "rustc-hash", + "serde", "tempfile", "thiserror", "tokio", + "toml", "tracing", "url", "uv-cache", @@ -5728,13 +5770,15 @@ dependencies = [ [[package]] name = "uv-interpreter" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "cache-key", + "configparser", "fs-err", + "install-wheel-rs", "once_cell", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "platform-host", "platform-tags", "regex", @@ -5753,7 +5797,7 @@ dependencies = [ [[package]] name = "uv-normalize" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "rkyv", "serde", @@ -5762,7 +5806,7 @@ dependencies = [ [[package]] name = "uv-resolver" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anstream", "anyhow", @@ -5781,8 +5825,8 @@ dependencies = [ "once-map", "once_cell", "owo-colors", - "pep440_rs", - "pep508_rs", + "pep440_rs 0.5.0 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", "petgraph", "platform-host", "platform-tags", @@ -5814,12 +5858,14 @@ dependencies = [ [[package]] name = "uv-traits" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anyhow", "distribution-types", "once-map", - "pep508_rs", + "pep508_rs 0.4.2 (git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building)", + "serde", + "serde_json", "tokio", "uv-cache", "uv-interpreter", @@ -5829,7 +5875,7 @@ dependencies = [ [[package]] name = "uv-warnings" version = "0.0.1" -source = "git+https://github.com/astral-sh/uv?tag=0.1.8#f0b39a36b46786891042100ecdf4837c73b9d3cb" +source = "git+https://github.com/tdejager/uv?branch=feat/env-variables-for-sdist-building#2b6411c4fc87a6619f26f65918a7b075685eae17" dependencies = [ "anstream", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 0e57bbbf1..4a1de4d01 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,6 @@ deno_task_shell = "0.14.4" dialoguer = "0.11.0" dirs = "5.0.1" distribution-filename = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } - distribution-types = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } dunce = "1.0.4" flate2 = "1.0.28" @@ -157,8 +156,8 @@ toml = "0.8.10" [patch.crates-io] # For pyproject-toml -pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } -pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +# pep440_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } +# pep508_rs = { git = "https://github.com/astral-sh/uv", tag = "0.1.8" } rattler = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } rattler_conda_types = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } @@ -169,9 +168,7 @@ rattler_repodata_gateway = { git = "https://github.com/baszalmstra/rattler", rev rattler_shell = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } rattler_solve = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev = "e18356d674913385eb2c4ebb5a3407a329907409" } - #deno_task_shell = { path = "../deno_task_shell" } - #rattler = { path = "../rattler/crates/rattler" } #rattler_conda_types = { path = "../rattler/crates/rattler_conda_types" } #rattler_digest = { path = "../rattler/crates/rattler_digest" } @@ -182,3 +179,23 @@ rattler_virtual_packages = { git = "https://github.com/baszalmstra/rattler", rev #rattler_virtual_packages = { path = "../rattler/crates/rattler_virtual_packages" } #rattler_lock = { path = "../rattler/crates/rattler_lock" } #rip = { package = "rattler_installs_packages", path = "../rip" } + +# When using a local version of uv, the following lines should be used instead of the above +[patch.'https://github.com/astral-sh/uv'] +pep440_rs = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +pep508_rs = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-cache = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-client = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-dispatch = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-distribution = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-installer = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-interpreter = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-normalize = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-resolver = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +uv-traits = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +distribution-filename = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +distribution-types = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +install-wheel-rs = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +platform-host = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +platform-tags = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } +pypi-types = { git = "https://github.com/tdejager/uv", branch = "feat/env-variables-for-sdist-building" } From a3db62ab7228e262703fcc326155d4720e99cc34 Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Wed, 28 Feb 2024 09:31:38 +0100 Subject: [PATCH 51/55] feat: use modified branch with environment variable passing --- examples/pypi/pixi.lock | 190 ++++++++++++++++++++------------------- examples/pypi/pixi.toml | 2 +- src/environment.rs | 5 +- src/install_pypi.rs | 12 ++- src/lock_file/resolve.rs | 12 +-- src/lock_file/update.rs | 9 +- 6 files changed, 125 insertions(+), 105 deletions(-) diff --git a/examples/pypi/pixi.lock b/examples/pypi/pixi.lock index e787c8237..819382bd0 100644 --- a/examples/pypi/pixi.lock +++ b/examples/pypi/pixi.lock @@ -72,6 +72,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6a/e8/cf2872a1a625b1c08d5f908110876ac1098610e59bab728244a7cd7820dc/env_test_package-0.0.3.tar.gz - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl @@ -89,7 +90,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a5/23/3c59ba2bb48f2ab2f11c3597f50458f63ed46dcc4cedd3308f6e4ec7271f/pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl @@ -123,6 +123,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/2b/a64c2d25a37aeb921fddb929111413049fc5f8b9a4c1aefaffaafe768d54/cachetools-5.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl osx-64: @@ -185,6 +186,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5b/81/cf8ebf77fc4f06f680ad3ee43d0d01826f6d6054828f1cf3b42d944b82a1/pycosat-0.6.6.tar.gz - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6a/e8/cf2872a1a625b1c08d5f908110876ac1098610e59bab728244a7cd7820dc/env_test_package-0.0.3.tar.gz - pypi: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl @@ -202,7 +204,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl @@ -237,6 +238,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/2b/a64c2d25a37aeb921fddb929111413049fc5f8b9a4c1aefaffaafe768d54/cachetools-5.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl osx-arm64: @@ -304,6 +306,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6a/e8/cf2872a1a625b1c08d5f908110876ac1098610e59bab728244a7cd7820dc/env_test_package-0.0.3.tar.gz - pypi: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl @@ -320,7 +323,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl @@ -352,6 +354,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/2b/a64c2d25a37aeb921fddb929111413049fc5f8b9a4c1aefaffaafe768d54/cachetools-5.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl win-64: @@ -416,6 +419,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/63/ae/f40e4c4738fb39ce140950ed7d9bc21358826416d91a5426a190c612f789/PySDL2-0.9.16.tar.gz - pypi: https://files.pythonhosted.org/packages/66/e7/1c223e5e749fe568a0c8e24def8e0004da1fbc48e3f4cabb449ee655deaa/pyboy-1.6.6-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/6a/e8/cf2872a1a625b1c08d5f908110876ac1098610e59bab728244a7cd7820dc/env_test_package-0.0.3.tar.gz - pypi: https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl @@ -430,7 +434,6 @@ environments: - pypi: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a1/27/8a807464b0cf47fdf3ba8cbb542d4f3a551da0254d7588667857f8a8a88a/matplotlib-3.8.3-cp311-cp311-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a2/ad/e0d3c824784ff121c03cc031f944bc7e139a8f1870ffd2845cc2dd76f6c4/absl_py-2.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/a3/de/c648ef6835192e6e2cc03f40b19eeda4382c49b5bafb43d88b931c4c74ac/google_pasta-0.2.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/ac/4e/9566a313927be582ca99455a9523a097c7888fc819695bdc08415432b202/tensorflow_io_gcs_filesystem-0.31.0-cp311-cp311-win_amd64.whl @@ -466,6 +469,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/f9/de/dc04a3ea60b22624b51c703a84bbe0184abcd1d0b9bc8074b5d6b7ab90bb/typing_extensions-4.10.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/2a/7f3714cbc6356a0efec525ce7a0613d581072ed6eb53eb7b9754f33db807/blinker-1.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fa/39/5aae571e5a5f4de9c3445dae08a530498e5c53b0e74410eeeb0991c79047/gast-0.5.4-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/fb/2b/a64c2d25a37aeb921fddb929111413049fc5f8b9a4c1aefaffaafe768d54/cachetools-5.3.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/fe/58/34d4d8f1aa11120c2d36d7ad27d0526164b1a8ae45990a2fede31d0e59bf/keras-2.14.0-py3-none-any.whl packages: @@ -528,8 +532,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba + url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -568,8 +572,8 @@ packages: - kind: pypi name: black version: 23.12.1 - url: https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl - sha256: 602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b + url: https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba requires_dist: - click >=8.0.0 - mypy-extensions >=0.4.3 @@ -715,9 +719,9 @@ packages: timestamp: 1706844034242 - kind: pypi name: cachetools - version: 5.3.2 - url: https://files.pythonhosted.org/packages/a2/91/2d843adb9fbd911e0da45fbf6f18ca89d07a087c3daa23e955584f90ebf4/cachetools-5.3.2-py3-none-any.whl - sha256: 861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1 + version: 5.3.3 + url: https://files.pythonhosted.org/packages/fb/2b/a64c2d25a37aeb921fddb929111413049fc5f8b9a4c1aefaffaafe768d54/cachetools-5.3.3-py3-none-any.whl + sha256: 0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945 requires_python: '>=3.7' - kind: pypi name: certifi @@ -728,8 +732,8 @@ packages: - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 + url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl + sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer @@ -740,8 +744,8 @@ packages: - kind: pypi name: charset-normalizer version: 3.3.2 - url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl - sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e + url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 requires_python: '>=3.7.0' - kind: pypi name: charset-normalizer @@ -767,8 +771,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 + url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -815,8 +819,8 @@ packages: - kind: pypi name: contourpy version: 1.2.0 - url: https://files.pythonhosted.org/packages/5b/ac/26fa1057f62beaa2af4c55c6ac733b114a403b746cfe0ce3dc6e4aec921a/contourpy-1.2.0-cp311-cp311-macosx_11_0_arm64.whl - sha256: 5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd + url: https://files.pythonhosted.org/packages/9b/54/1dafec3c84df1d29119037330f7289db84a679cb2d5283af4ef24d89f532/contourpy-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 requires_dist: - numpy <2.0, >=1.20 - furo ; extra == 'docs' @@ -880,6 +884,12 @@ packages: url: https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl sha256: b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 requires_python: '>=3.5' +- kind: pypi + name: env-test-package + version: 0.0.3 + url: https://files.pythonhosted.org/packages/6a/e8/cf2872a1a625b1c08d5f908110876ac1098610e59bab728244a7cd7820dc/env_test_package-0.0.3.tar.gz + sha256: c4d5ddc7e1c6e4d0d4e3588f804489d2142066cc80ed4b5e4dc7cc5f9d8de322 + requires_python: '>=3.8' - kind: pypi name: executing version: 2.0.1 @@ -917,8 +927,8 @@ packages: - kind: pypi name: fonttools version: 4.49.0 - url: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 + url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl + sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -991,8 +1001,8 @@ packages: - kind: pypi name: fonttools version: 4.49.0 - url: https://files.pythonhosted.org/packages/1a/26/837f5e58e90f53eab27acf30fc878a933d8ca8e35e1f2f82f9b39385f830/fonttools-4.49.0-cp311-cp311-macosx_10_9_universal2.whl - sha256: edc0cce355984bb3c1d1e89d6a661934d39586bb32191ebff98c600f8957c63e + url: https://files.pythonhosted.org/packages/1f/73/9464c338482c5ebb865585276f27997d66dc459ce3a2df6fc0e0df222019/fonttools-4.49.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 83a0d9336de2cba86d886507dd6e0153df333ac787377325a39a2797ec529814 requires_dist: - fs <3, >=2.2.0 ; extra == 'all' - lxml >=4.0 ; extra == 'all' @@ -1130,8 +1140,8 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc + url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' @@ -1146,8 +1156,8 @@ packages: - kind: pypi name: h5py version: 3.10.0 - url: https://files.pythonhosted.org/packages/8d/70/2b0b99507287f66e71a6b2e66c5ad2ec2461ef2c534668eef96c3b48eb6d/h5py-3.10.0-cp311-cp311-macosx_11_0_arm64.whl - sha256: 667fe23ab33d5a8a6b77970b229e14ae3bb84e4ea3382cc08567a02e1499eedd + url: https://files.pythonhosted.org/packages/c3/99/570fedd40048daeb04d4738ed4f1d0e77259fb631387f7f188aac3d85c31/h5py-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 2381e98af081b6df7f6db300cd88f88e740649d77736e4b53db522d8874bf2dc requires_dist: - numpy >=1.17.3 requires_python: '>=3.8' @@ -1332,8 +1342,8 @@ packages: - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 + url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl + sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' @@ -1348,8 +1358,8 @@ packages: - kind: pypi name: kiwisolver version: 1.4.5 - url: https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl - sha256: fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 + url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 requires_dist: - typing-extensions ; python_version < '3.8' requires_python: '>=3.7' @@ -2499,8 +2509,8 @@ packages: - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl - sha256: 5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 + url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl + sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f requires_python: '>=3.7' - kind: pypi name: markupsafe @@ -2511,8 +2521,8 @@ packages: - kind: pypi name: markupsafe version: 2.1.5 - url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl - sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f + url: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl + sha256: 5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 requires_python: '>=3.7' - kind: pypi name: markupsafe @@ -2523,8 +2533,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl - sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 + url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl + sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2557,8 +2567,8 @@ packages: - kind: pypi name: matplotlib version: 3.8.3 - url: https://files.pythonhosted.org/packages/24/db/6ec78a4f10673a641cdb11694c2de2f64aa00e838551248cb11b8b057440/matplotlib-3.8.3-cp311-cp311-macosx_11_0_arm64.whl - sha256: d7e7e0993d0758933b1a241a432b42c2db22dfa37d4108342ab4afb9557cbe3e + url: https://files.pythonhosted.org/packages/8d/07/7e245ce1d7daec77cb1ca3b8caf094afb04c4c552a904787a1d684a2b606/matplotlib-3.8.3-cp311-cp311-macosx_10_12_x86_64.whl + sha256: 5184e07c7e1d6d1481862ee361905b7059f7fe065fc837f7c3dc11eeb3f2f900 requires_dist: - contourpy >=1.0.1 - cycler >=0.10 @@ -2904,8 +2914,8 @@ packages: - kind: pypi name: pandas version: 2.2.1 - url: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl - sha256: f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b + url: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3088,8 +3098,8 @@ packages: - kind: pypi name: pandas version: 2.2.1 - url: https://files.pythonhosted.org/packages/a5/78/1d859bfb619c067e3353ed079248ae9532c105c4e018fa9a776d04b34572/pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl - sha256: c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a + url: https://files.pythonhosted.org/packages/f1/8b/617792ad1feef330e87d7459584a1f91aa8aea373d8b168ac5d24fddd808/pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b requires_dist: - numpy <2, >=1.22.4 ; python_version < '3.11' - numpy <2, >=1.23.2 ; python_version == '3.11' @@ -3296,8 +3306,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl - sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 + url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl + sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3352,8 +3362,8 @@ packages: - kind: pypi name: pillow version: 10.2.0 - url: https://files.pythonhosted.org/packages/46/ce/a84284ab66a278825109b03765d7411be3ff18250da44faa9fb5ea9a16a0/pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl - sha256: 9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 + url: https://files.pythonhosted.org/packages/89/1d/23bafc80495b2a902b27d242e9226ea0b74624f108c60f0533329c051f78/pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl + sha256: 35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 requires_dist: - furo ; extra == 'docs' - olefile ; extra == 'docs' @@ -3587,8 +3597,8 @@ packages: - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/93/d0/5911ad3cecb896588202e3e90bd97c0c7381718a6ccb2eaeebb70d7fe2ce/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_x86_64.whl - sha256: e873d823c206b92680575a62466e02717ce81ece7e433c818fb660154eda083f + url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl + sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 - kind: pypi name: pysdl2-dll version: 2.30.0 @@ -3597,8 +3607,8 @@ packages: - kind: pypi name: pysdl2-dll version: 2.30.0 - url: https://files.pythonhosted.org/packages/0e/a4/9c9e1786c3ade85d59a54cf0f9f371624e807e91183dc273144e692fc061/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_universal2.whl - sha256: 2748f8960bd98c5c53c9c1a94fdefed84a3458094f8014556d5f8026cc8341a4 + url: https://files.pythonhosted.org/packages/93/d0/5911ad3cecb896588202e3e90bd97c0c7381718a6ccb2eaeebb70d7fe2ce/pysdl2_dll-2.30.0-py2.py3-none-macosx_10_11_x86_64.whl + sha256: e873d823c206b92680575a62466e02717ce81ece7e433c818fb660154eda083f - kind: pypi name: pysdl2-dll version: 2.30.0 @@ -4089,20 +4099,41 @@ packages: - kind: pypi name: tensorboard-data-server version: 0.7.2 - url: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl - sha256: 9fe5d24221b29625dbc7328b0436ca7fc1c23de4acf4d272f1180856e32f9f60 + url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl + sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb requires_python: '>=3.7' - kind: pypi name: tensorboard-data-server version: 0.7.2 - url: https://files.pythonhosted.org/packages/7a/13/e503968fefabd4c6b2650af21e110aa8466fe21432cd7c43a84577a89438/tensorboard_data_server-0.7.2-py3-none-any.whl - sha256: 7e0610d205889588983836ec05dc098e80f97b7e7bbff7e994ebb78f578d0ddb + url: https://files.pythonhosted.org/packages/b7/85/dabeaf902892922777492e1d253bb7e1264cadce3cea932f7ff599e53fea/tensorboard_data_server-0.7.2-py3-none-macosx_10_9_x86_64.whl + sha256: 9fe5d24221b29625dbc7328b0436ca7fc1c23de4acf4d272f1180856e32f9f60 requires_python: '>=3.7' - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl - sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 + url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl + sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c + requires_dist: + - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' + - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' + - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' + - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' + - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' + - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' + - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' + - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' + - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' + - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' + - tensorrt ==8.5.3.1 ; extra == 'and-cuda' + requires_python: '>=3.9' +- kind: pypi + name: tensorflow + version: 2.14.0 + url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa requires_dist: - absl-py >=1.0.0 - astunparse >=1.6.0 @@ -4126,6 +4157,8 @@ packages: - tensorboard <2.15, >=2.14 - tensorflow-estimator <2.15, >=2.14.0 - keras <2.15, >=2.14.0 + - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') + - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' @@ -4141,8 +4174,8 @@ packages: - kind: pypi name: tensorflow version: 2.14.0 - url: https://files.pythonhosted.org/packages/09/63/25e76075081ea98ec48f23929cefee58be0b42212e38074a9ec5c19e838c/tensorflow-2.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: a80cabe6ab5f44280c05533e5b4a08e5b128f0d68d112564cffa3b96638e28aa + url: https://files.pythonhosted.org/packages/22/50/1e211cbb5e1f52e55eeae1605789c9d24403962d37581cf0deb3e6b33377/tensorflow-2.14.0-cp311-cp311-macosx_10_15_x86_64.whl + sha256: 00c42e7d8280c660b10cf5d0b3164fdc5e38fd0bf16b3f9963b7cd0e546346d8 requires_dist: - absl-py >=1.0.0 - astunparse >=1.6.0 @@ -4166,8 +4199,6 @@ packages: - tensorboard <2.15, >=2.14 - tensorflow-estimator <2.15, >=2.14.0 - keras <2.15, >=2.14.0 - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' @@ -4180,27 +4211,6 @@ packages: - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - tensorrt ==8.5.3.1 ; extra == 'and-cuda' requires_python: '>=3.9' -- kind: pypi - name: tensorflow - version: 2.14.0 - url: https://files.pythonhosted.org/packages/de/ea/90267db2c02fb61f4d03b9645c7446d3cbca6d5c08522e889535c88edfcd/tensorflow-2.14.0-cp311-cp311-macosx_12_0_arm64.whl - sha256: c92f5526c2029d31a036be06eb229c71f1c1821472876d34d0184d19908e318c - requires_dist: - - tensorflow-macos ==2.14.0 ; platform_system == 'Darwin' and platform_machine == 'arm64' - - tensorflow-cpu-aws ==2.14.0 ; platform_system == 'Linux' and (platform_machine == 'arm64' or platform_machine == 'aarch64') - - tensorflow-intel ==2.14.0 ; platform_system == 'Windows' - - nvidia-cublas-cu11 ==11.11.3.6 ; extra == 'and-cuda' - - nvidia-cuda-cupti-cu11 ==11.8.87 ; extra == 'and-cuda' - - nvidia-cuda-nvcc-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cuda-runtime-cu11 ==11.8.89 ; extra == 'and-cuda' - - nvidia-cudnn-cu11 ==8.7.0.84 ; extra == 'and-cuda' - - nvidia-cufft-cu11 ==10.9.0.58 ; extra == 'and-cuda' - - nvidia-curand-cu11 ==10.3.0.86 ; extra == 'and-cuda' - - nvidia-cusolver-cu11 ==11.4.1.48 ; extra == 'and-cuda' - - nvidia-cusparse-cu11 ==11.7.5.86 ; extra == 'and-cuda' - - nvidia-nccl-cu11 ==2.16.5 ; extra == 'and-cuda' - - tensorrt ==8.5.3.1 ; extra == 'and-cuda' - requires_python: '>=3.9' - kind: pypi name: tensorflow version: 2.14.0 @@ -4283,8 +4293,8 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl - sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 + url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl + sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' @@ -4307,8 +4317,8 @@ packages: - kind: pypi name: tensorflow-io-gcs-filesystem version: 0.36.0 - url: https://files.pythonhosted.org/packages/3e/56/1b7ef816e448464a93da70296db237129910b4452d6b4582d5e23fb07880/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_12_0_arm64.whl - sha256: 848e8e89a0f49258c7782189c938d8d1162d989da1a80c79f95c7af3ef6006c8 + url: https://files.pythonhosted.org/packages/ad/e3/1009781ce3c0d92634fa2fb3dc4bb0237fe7aaf70f2ab53160f3e82e7d63/tensorflow_io_gcs_filesystem-0.36.0-cp311-cp311-macosx_10_14_x86_64.whl + sha256: 72c3ca4b8c0d8dbdd970699d05a100107cf200317ad8e6a8373e2c37225cd552 requires_dist: - tensorflow <2.16.0, >=2.15.0 ; extra == 'tensorflow' - tensorflow-aarch64 <2.16.0, >=2.15.0 ; extra == 'tensorflow-aarch64' @@ -4571,8 +4581,8 @@ packages: - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl - sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 + url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl + sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt @@ -4583,8 +4593,8 @@ packages: - kind: pypi name: wrapt version: 1.14.1 - url: https://files.pythonhosted.org/packages/6e/79/aec8185eefe20e8f49e5adeb0c2e20e016d5916d10872c17705ddac41be2/wrapt-1.14.1-cp311-cp311-macosx_11_0_arm64.whl - sha256: 2020f391008ef874c6d9e208b24f28e31bcb85ccff4f335f15a3251d222b92d9 + url: https://files.pythonhosted.org/packages/e7/f9/8c078b4973604cd968b23eb3dff52028b5c48f2a02c4f1f975f4d5e344d1/wrapt-1.14.1-cp311-cp311-macosx_10_9_x86_64.whl + sha256: ecee4132c6cd2ce5308e21672015ddfed1ff975ad0ac8d27168ea82e71413f55 requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7' - kind: pypi name: wrapt diff --git a/examples/pypi/pixi.toml b/examples/pypi/pixi.toml index f5d4f2c5e..b2aa842c8 100644 --- a/examples/pypi/pixi.toml +++ b/examples/pypi/pixi.toml @@ -32,7 +32,7 @@ black = { version = "~=23.10", extras = ["jupyter"] } pyliblzfse = "*" pycosat = "*" # TODO(tim): fix env-passing in uv -#env_test_package = "==0.0.3" +env_test_package = "==0.0.3" plot-antenna = "==1.8" [system-requirements] diff --git a/src/environment.rs b/src/environment.rs index bf2fc4b3c..7e3df4763 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -180,14 +180,14 @@ pub async fn update_prefix_pypi( status: &PythonStatus, system_requirements: &SystemRequirements, uv_context: UvResolutionContext, + environment_variables: &HashMap, ) -> miette::Result<()> { // Remove python packages from a previous python distribution if the python version changed. - // install_pypi::remove_old_python_distributions(prefix, platform, status)?; // Install and/or remove python packages progress::await_in_progress( format!( - "updating pypi package in '{}'", + "updating pypi packages in '{}'", environment_name.fancy_display() ), |_| { @@ -198,6 +198,7 @@ pub async fn update_prefix_pypi( status, system_requirements, uv_context, + environment_variables, ) }, ) diff --git a/src/install_pypi.rs b/src/install_pypi.rs index 11b42eb9c..6d25f6eb5 100644 --- a/src/install_pypi.rs +++ b/src/install_pypi.rs @@ -20,6 +20,7 @@ use install_wheel_rs::linker::LinkMode; use rattler_conda_types::{Platform, RepoDataRecord}; use rattler_lock::{PypiPackageData, PypiPackageEnvironmentData}; +use std::collections::HashMap; use std::time::Duration; use uv_client::{FlatIndex, FlatIndexClient}; @@ -29,7 +30,7 @@ use uv_installer::{Downloader, SitePackages}; use uv_interpreter::{Interpreter, Virtualenv}; use uv_normalize::PackageName; -use uv_traits::{NoBinary, NoBuild, SetupPyStrategy}; +use uv_traits::{ConfigSettings, NoBinary, NoBuild, SetupPyStrategy}; type CombinedPypiPackageData = (PypiPackageData, PypiPackageEnvironmentData); @@ -233,6 +234,7 @@ pub async fn update_python_distributions( status: &PythonStatus, system_requirements: &SystemRequirements, uv_context: UvResolutionContext, + environment_variables: &HashMap, ) -> miette::Result<()> { let start = std::time::Instant::now(); let Some(python_info) = status.current_info() else { @@ -252,7 +254,7 @@ pub async fn update_python_distributions( let platform = platform_host::Platform::current().expect("unsupported platform"); let interpreter = - Interpreter::query(&python_location, &platform, &uv_context.cache).into_diagnostic()?; + Interpreter::query(&python_location, platform, &uv_context.cache).into_diagnostic()?; tracing::debug!("[Install] Using Python Interpreter: {:?}", interpreter); @@ -281,6 +283,7 @@ pub async fn update_python_distributions( let no_binary = NoBinary::None; let in_memory_index = InMemoryIndex::default(); + let config_settings = ConfigSettings::default(); // Prep the build context. let build_dispatch = BuildDispatch::new( @@ -291,11 +294,12 @@ pub async fn update_python_distributions( &flat_index, &in_memory_index, &uv_context.in_flight, - venv.python_executable(), SetupPyStrategy::default(), + &config_settings, &no_build, &no_binary, - ); + ) + .with_sdist_build_env_vars(environment_variables.iter()); let _lock = venv.lock().into_diagnostic()?; // TODO: need to resolve editables? diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 80343eeb6..04b371d3b 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -50,7 +50,7 @@ use uv_resolver::{ DefaultResolverProvider, DistFinder, InMemoryIndex, Manifest, Options, PythonRequirement, Resolver, ResolverProvider, VersionMap, VersionsResponse, }; -use uv_traits::{BuildContext, InFlight, NoBinary, NoBuild, SetupPyStrategy}; +use uv_traits::{BuildContext, ConfigSettings, InFlight, NoBinary, NoBuild, SetupPyStrategy}; /// Objects that are needed for resolutions which can be shared between different resolutions. #[derive(Clone)] @@ -214,7 +214,7 @@ pub async fn resolve_pypi( platform: rattler_conda_types::Platform, pb: &ProgressBar, python_location: &Path, - _venv_root: &Path, + env_variables: &HashMap, ) -> miette::Result { // Solve python packages pb.set_message("resolving pypi dependencies"); @@ -275,7 +275,7 @@ pub async fn resolve_pypi( // TODO: Should we look into using the actual interpreter here? let platform = Platform::current().expect("unsupported platform"); let interpreter = - Interpreter::query(python_location, &platform, &context.cache).into_diagnostic()?; + Interpreter::query(python_location, platform, &context.cache).into_diagnostic()?; tracing::debug!("[Resolve] Using Python Interpreter: {:?}", interpreter); @@ -290,6 +290,7 @@ pub async fn resolve_pypi( }; let in_memory_index = InMemoryIndex::default(); + let config_settings = ConfigSettings::default(); // Create a shared in-memory index. let options = Options::default(); @@ -301,12 +302,13 @@ pub async fn resolve_pypi( &flat_index, &in_memory_index, &context.in_flight, - interpreter.sys_executable().to_path_buf(), SetupPyStrategy::default(), + &config_settings, &NoBuild::None, &NoBinary::None, ) - .with_options(options); + .with_options(options) + .with_sdist_build_env_vars(env_variables.iter()); let constraints = conda_python_packages .values() diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index 77b106604..d14f22baf 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -117,7 +117,7 @@ impl<'p> LockFileDerivedData<'p> { }; // TODO(tim): get support for this somehow with uv - let _env_variables = environment.project().get_env_variables(environment).await?; + let env_variables = environment.project().get_env_variables(environment).await?; // Update the prefix with Pypi records environment::update_prefix_pypi( @@ -129,6 +129,7 @@ impl<'p> LockFileDerivedData<'p> { &python_status, &environment.system_requirements(), uv_context, + env_variables, ) .await?; @@ -782,7 +783,7 @@ pub async fn ensure_up_to_date_lock_file( Some(context) => context.clone(), }; // Get environment variables from the activation - let _env_variables = project.get_env_variables(&environment).await?; + let env_variables = project.get_env_variables(&environment).await?; // Spawn a task to solve the pypi environment let pypi_solve_future = spawn_solve_pypi_task( @@ -791,6 +792,7 @@ pub async fn ensure_up_to_date_lock_file( platform, repodata_future, prefix_future, + env_variables, ); pending_futures.push(pypi_solve_future.boxed_local()); @@ -1264,6 +1266,7 @@ async fn spawn_solve_pypi_task( platform: Platform, repodata_records: impl Future>, prefix: impl Future, + env_variables: &HashMap, ) -> miette::Result { // Get the Pypi dependencies for this environment let dependencies = environment.pypi_dependencies(Some(platform)); @@ -1308,7 +1311,7 @@ async fn spawn_solve_pypi_task( platform, &pb.pb, &python_path, - prefix.root(), + env_variables, ) .await .with_context(|| { From 77b7ea6697ccee0f56d860b6195ca363ed5b424b Mon Sep 17 00:00:00 2001 From: Ruben Arts Date: Wed, 28 Feb 2024 12:01:19 +0100 Subject: [PATCH 52/55] fix: serialization of pypi requirement --- ...test_import_from_env_yaml.cockpit.yml.snap | 20 +++++-------------- src/project/manifest/python.rs | 11 +++++++++- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap index fb5b584e1..0b47834d1 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap @@ -853,9 +853,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -865,9 +863,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -877,9 +873,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -889,9 +883,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -901,9 +893,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), diff --git a/src/project/manifest/python.rs b/src/project/manifest/python.rs index e64411a61..d1036924a 100644 --- a/src/project/manifest/python.rs +++ b/src/project/manifest/python.rs @@ -114,9 +114,14 @@ impl From for PyPiRequirement { } else { None }; + let extras = if !req.extras.is_empty() { + Some(req.extras) + } else { + None + }; PyPiRequirement { version, - extras: Some(req.extras), + extras, index: None, } } @@ -197,6 +202,10 @@ mod tests { pypi.to_string(), "{ version = \"==1.0.0\", extras = [\"testing\"] }" ); + + let req = pep508_rs::Requirement::from_str("numpy").unwrap(); + let pypi = PyPiRequirement::from(req); + assert_eq!(pypi.to_string(), "\"*\""); } #[test] From 360ba3b50d8cd1a5074dcb9fcc1d6085ce6757fe Mon Sep 17 00:00:00 2001 From: Tim de Jager Date: Wed, 28 Feb 2024 13:15:43 +0100 Subject: [PATCH 53/55] fix: more snapshot updates --- ..._test_import_from_env_yaml.crnnft.yml.snap | 20 +++-------- ...est_import_from_env_yaml.let-plot.yml.snap | 8 ++--- ...est_import_from_env_yaml.test_env.yml.snap | 36 +++++-------------- 3 files changed, 16 insertions(+), 48 deletions(-) diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap index e88dc0925..71399b48c 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap @@ -147,9 +147,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -159,9 +157,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -171,9 +167,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -183,9 +177,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -195,9 +187,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap index ca48e99f6..64abc5a6e 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap @@ -226,9 +226,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -238,9 +236,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap index 09d577615..94afd974f 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap @@ -116,9 +116,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -137,9 +135,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -158,9 +154,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -179,9 +173,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -200,9 +192,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -221,9 +211,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -242,9 +230,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -263,9 +249,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], ), ), - extras: Some( - [], - ), + extras: None, index: None, }, ), @@ -275,9 +259,7 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ), PyPiRequirement { version: None, - extras: Some( - [], - ), + extras: None, index: None, }, ), From 7c1083274aa30449aab28c7a1a9a696974a43d4d Mon Sep 17 00:00:00 2001 From: Ruben Arts Date: Wed, 28 Feb 2024 13:32:07 +0100 Subject: [PATCH 54/55] lint: fix typo --- src/lock_file/package_identifier.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index 0ef1730aa..649f84f0a 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -177,7 +177,7 @@ impl PypiPackageIdentifier { } } - // TODO: uv doesnt properly support this yet. + // TODO: uv doesn't properly support this yet. // // Check if the required extras exist // for extra in requirement.extras.iter() { // if !self.extras.contains(extra) { From e647fbc42011821765c22ab6ac07e16cc1809787 Mon Sep 17 00:00:00 2001 From: Ruben Arts Date: Wed, 28 Feb 2024 16:39:02 +0100 Subject: [PATCH 55/55] refactor: use PyPiPackageName to wrap uv_normalized::PackageName for the source --- src/cli/add.rs | 5 +- src/cli/info.rs | 2 +- src/cli/init.rs | 19 +-- src/cli/remove.rs | 5 +- ...test_import_from_env_yaml.cockpit.yml.snap | 45 ++++--- ..._test_import_from_env_yaml.crnnft.yml.snap | 45 ++++--- ...est_import_from_env_yaml.let-plot.yml.snap | 18 ++- ...est_import_from_env_yaml.test_env.yml.snap | 126 ++++++++++++------ src/lock_file/package_identifier.rs | 14 +- src/lock_file/resolve.rs | 8 +- src/lock_file/satisfiability.rs | 4 +- src/lock_file/update.rs | 16 ++- src/project/environment.rs | 3 +- src/project/grouped_environment.rs | 3 +- src/project/manifest/feature.rs | 5 +- src/project/manifest/mod.rs | 30 ++--- src/project/manifest/python.rs | 53 +++++++- src/project/manifest/target.rs | 5 +- src/project/mod.rs | 3 +- src/project/solve_group.rs | 3 +- 20 files changed, 277 insertions(+), 135 deletions(-) diff --git a/src/cli/add.rs b/src/cli/add.rs index 186169629..c1dedc21a 100644 --- a/src/cli/add.rs +++ b/src/cli/add.rs @@ -8,6 +8,7 @@ use clap::Parser; use itertools::{Either, Itertools}; use crate::project::grouped_environment::GroupedEnvironment; +use crate::project::manifest::python::PyPiPackageName; use indexmap::IndexMap; use miette::{IntoDiagnostic, WrapErr}; use rattler_conda_types::{ @@ -168,7 +169,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { let specs = pep508_requirements .into_iter() .map(|req| { - let name = req.name.clone(); + let name = PyPiPackageName::from_normalized(req.name.clone()); let requirement = PyPiRequirement::from(req); Ok((name, requirement)) }) @@ -218,7 +219,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { pub async fn add_pypi_specs_to_project( project: &mut Project, - specs: Vec<(uv_normalize::PackageName, PyPiRequirement)>, + specs: Vec<(PyPiPackageName, PyPiRequirement)>, specs_platforms: &Vec, no_update_lockfile: bool, no_install: bool, diff --git a/src/cli/info.rs b/src/cli/info.rs index 806a506c2..1254c0b08 100644 --- a/src/cli/info.rs +++ b/src/cli/info.rs @@ -315,7 +315,7 @@ pub async fn execute(args: Args) -> miette::Result<()> { pypi_dependencies: env .pypi_dependencies(Some(Platform::current())) .into_iter() - .map(|(name, _p)| name.to_string()) + .map(|(name, _p)| name.as_source().to_string()) .collect(), platforms: env.platforms().into_iter().collect(), channels: env diff --git a/src/cli/init.rs b/src/cli/init.rs index 480ea6122..ca5ace745 100644 --- a/src/cli/init.rs +++ b/src/cli/init.rs @@ -1,4 +1,5 @@ use crate::environment::{get_up_to_date_prefix, LockFileUsage}; +use crate::project::manifest::python::PyPiPackageName; use crate::project::manifest::PyPiRequirement; use crate::utils::conda_environment_file::{CondaEnvDep, CondaEnvFile}; use crate::{config::get_default_author, consts}; @@ -15,7 +16,6 @@ use std::path::Path; use std::str::FromStr; use std::sync::Arc; use std::{fs, path::PathBuf}; -use uv_normalize::PackageName; /// Creates a new project #[derive(Parser, Debug)] @@ -272,7 +272,7 @@ fn get_dir(path: PathBuf) -> Result { } } -type PipReq = (PackageName, PyPiRequirement); +type PipReq = (PyPiPackageName, PyPiRequirement); type ParsedDependencies = (Vec, Vec, Vec>); fn conda_env_to_manifest( @@ -324,7 +324,7 @@ fn parse_dependencies(deps: Vec) -> miette::Result miette::Result<()> { } let mut sucessful_output: Vec = Vec::with_capacity(deps.len()); if args.pypi { - let all_pkg_name = convert_pkg_name::(&deps)?; + let all_pkg_name = convert_pkg_name::(&deps)?; for dep in all_pkg_name.iter() { let (name, req) = project .manifest .remove_pypi_dependency(dep, args.platform, &feature_name)?; sucessful_output.push(format_ok_message( - name.as_ref(), + name.as_source(), &req.to_string(), &table_name, )); diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap index 0b47834d1..4be35401d 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.cockpit.yml.snap @@ -848,9 +848,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], [ ( - PackageName( - "memory-profiler", - ), + PyPiPackageName { + source: "memory-profiler", + normalized: PackageName( + "memory-profiler", + ), + }, PyPiRequirement { version: None, extras: None, @@ -858,9 +861,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "pre-commit", - ), + PyPiPackageName { + source: "pre-commit", + normalized: PackageName( + "pre-commit", + ), + }, PyPiRequirement { version: None, extras: None, @@ -868,9 +874,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "graphviz", - ), + PyPiPackageName { + source: "graphviz", + normalized: PackageName( + "graphviz", + ), + }, PyPiRequirement { version: None, extras: None, @@ -878,9 +887,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "sphinx-notfound-page", - ), + PyPiPackageName { + source: "sphinx-notfound-page", + normalized: PackageName( + "sphinx-notfound-page", + ), + }, PyPiRequirement { version: None, extras: None, @@ -888,9 +900,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "deepobs", - ), + PyPiPackageName { + source: "deepobs", + normalized: PackageName( + "deepobs", + ), + }, PyPiRequirement { version: None, extras: None, diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap index 71399b48c..fbb313b6a 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.crnnft.yml.snap @@ -133,9 +133,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], [ ( - PackageName( - "tensorflow-gpu", - ), + PyPiPackageName { + source: "tensorflow-gpu", + normalized: PackageName( + "tensorflow-gpu", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -152,9 +155,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "numpy", - ), + PyPiPackageName { + source: "numpy", + normalized: PackageName( + "numpy", + ), + }, PyPiRequirement { version: None, extras: None, @@ -162,9 +168,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "opencv-python", - ), + PyPiPackageName { + source: "opencv-python", + normalized: PackageName( + "opencv-python", + ), + }, PyPiRequirement { version: None, extras: None, @@ -172,9 +181,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "matplotlib", - ), + PyPiPackageName { + source: "matplotlib", + normalized: PackageName( + "matplotlib", + ), + }, PyPiRequirement { version: None, extras: None, @@ -182,9 +194,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "easydict", - ), + PyPiPackageName { + source: "easydict", + normalized: PackageName( + "easydict", + ), + }, PyPiRequirement { version: None, extras: None, diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap index 64abc5a6e..a60d858b6 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.let-plot.yml.snap @@ -221,9 +221,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], [ ( - PackageName( - "pypng", - ), + PyPiPackageName { + source: "pypng", + normalized: PackageName( + "pypng", + ), + }, PyPiRequirement { version: None, extras: None, @@ -231,9 +234,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "palettable", - ), + PyPiPackageName { + source: "palettable", + normalized: PackageName( + "palettable", + ), + }, PyPiRequirement { version: None, extras: None, diff --git a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap index 94afd974f..1a5b5f9c7 100644 --- a/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap +++ b/src/cli/snapshots/pixi__cli__init__tests__test_import_from_env_yaml.test_env.yml.snap @@ -102,9 +102,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n ], [ ( - PackageName( - "package1", - ), + PyPiPackageName { + source: "package1", + normalized: PackageName( + "package1", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -121,9 +124,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package2", - ), + PyPiPackageName { + source: "package2", + normalized: PackageName( + "package2", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -140,9 +146,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package3", - ), + PyPiPackageName { + source: "package3", + normalized: PackageName( + "package3", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -159,9 +168,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package4", - ), + PyPiPackageName { + source: "package4", + normalized: PackageName( + "package4", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -178,9 +190,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package5", - ), + PyPiPackageName { + source: "package5", + normalized: PackageName( + "package5", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -197,9 +212,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package6", - ), + PyPiPackageName { + source: "package6", + normalized: PackageName( + "package6", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -216,9 +234,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package7", - ), + PyPiPackageName { + source: "package7", + normalized: PackageName( + "package7", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -235,9 +256,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package8", - ), + PyPiPackageName { + source: "package8", + normalized: PackageName( + "package8", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -254,9 +278,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package9", - ), + PyPiPackageName { + source: "package9", + normalized: PackageName( + "package9", + ), + }, PyPiRequirement { version: None, extras: None, @@ -264,9 +291,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package10", - ), + PyPiPackageName { + source: "package10", + normalized: PackageName( + "package10", + ), + }, PyPiRequirement { version: None, extras: Some( @@ -280,9 +310,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package11", - ), + PyPiPackageName { + source: "package11", + normalized: PackageName( + "package11", + ), + }, PyPiRequirement { version: None, extras: Some( @@ -299,9 +332,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package12", - ), + PyPiPackageName { + source: "package12", + normalized: PackageName( + "package12", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -327,9 +363,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package13", - ), + PyPiPackageName { + source: "package13", + normalized: PackageName( + "package13", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( @@ -355,9 +394,12 @@ expression: "(parse_dependencies(env_info.dependencies().clone()).unwrap(),\n }, ), ( - PackageName( - "package14", - ), + PyPiPackageName { + source: "package14", + normalized: PackageName( + "package14", + ), + }, PyPiRequirement { version: Some( VersionSpecifiers( diff --git a/src/lock_file/package_identifier.rs b/src/lock_file/package_identifier.rs index 649f84f0a..f4cf71088 100644 --- a/src/lock_file/package_identifier.rs +++ b/src/lock_file/package_identifier.rs @@ -1,3 +1,4 @@ +use crate::project::manifest::python::PyPiPackageName; use crate::pypi_name_mapping; use pep508_rs::{Requirement, VersionOrUrl}; use rattler_conda_types::{PackageUrl, RepoDataRecord}; @@ -5,12 +6,11 @@ use rattler_lock::CondaPackage; use std::{collections::HashSet, str::FromStr}; use thiserror::Error; use uv_normalize::{ExtraName, InvalidNameError, PackageName}; - /// Defines information about a Pypi package extracted from either a python package or from a /// conda package. #[derive(Debug)] pub struct PypiPackageIdentifier { - pub name: uv_normalize::PackageName, + pub name: PyPiPackageName, pub version: pep440_rs::Version, pub extras: HashSet, } @@ -29,7 +29,7 @@ impl PypiPackageIdentifier { package: &rattler_lock::PypiPackage, ) -> Result { Ok(Self { - name: package.data().package.name.clone(), + name: PyPiPackageName::from_normalized(package.data().package.name.clone()), version: package.data().package.version.clone(), extras: package.extras().iter().cloned().collect(), }) @@ -61,7 +61,7 @@ impl PypiPackageIdentifier { let version = pep440_rs::Version::from_str(&record.version.as_str()).ok(); if let (Some(name), Some(version)) = (name, version) { result.push(PypiPackageIdentifier { - name, + name: PyPiPackageName::from_normalized(name), version, // TODO: We can't really tell which python extras are enabled in a conda package. extras: Default::default(), @@ -98,7 +98,7 @@ impl PypiPackageIdentifier { pep440_rs::Version::from_str(&record.package_record.version.as_str()).ok(); if let (Some(name), Some(version)) = (name, version) { result.push(PypiPackageIdentifier { - name, + name: PyPiPackageName::from_normalized(name), version, // TODO: We can't really tell which python extras are enabled in a conda package. extras: Default::default(), @@ -152,7 +152,7 @@ impl PypiPackageIdentifier { let extras = HashSet::new(); Ok(Self { - name, + name: PyPiPackageName::from_normalized(name), version, extras, }) @@ -160,7 +160,7 @@ impl PypiPackageIdentifier { pub fn satisfies(&self, requirement: &Requirement) -> bool { // Verify the name of the package - if self.name != requirement.name { + if self.name.as_normalized() != &requirement.name { return false; } diff --git a/src/lock_file/resolve.rs b/src/lock_file/resolve.rs index 04b371d3b..e039da434 100644 --- a/src/lock_file/resolve.rs +++ b/src/lock_file/resolve.rs @@ -126,7 +126,7 @@ impl<'a, Context: BuildContext + Send + Sync> ResolverProvider // // Obviously this is not a valid source distribution but it easies debugging. let dist = Dist::Source(SourceDist::DirectUrl(DirectUrlSourceDist { - name: identifier.name.clone(), + name: identifier.name.as_normalized().clone(), url: VerbatimUrl::unknown(repodata_record.url.clone()), })); @@ -231,7 +231,7 @@ pub async fn resolve_pypi( }, ) }) - .map_ok(|(record, p)| (p.name.clone(), (record.clone(), p))) + .map_ok(|(record, p)| (p.name.as_normalized().clone(), (record.clone(), p))) .collect::, _>>() .into_diagnostic() .context("failed to extract python packages from conda metadata")?; @@ -244,7 +244,7 @@ pub async fn resolve_pypi( .values() .format_with(", ", |(_, p), f| f(&format_args!( "{name} {version}", - name = &p.name, + name = &p.name.as_source(), version = &p.version ))) ); @@ -313,7 +313,7 @@ pub async fn resolve_pypi( let constraints = conda_python_packages .values() .map(|(repo, p)| Requirement { - name: p.name.clone(), + name: p.name.as_normalized().clone(), extras: vec![], version_or_url: Some(pep508_rs::VersionOrUrl::Url(VerbatimUrl::unknown( repo.url.clone(), diff --git a/src/lock_file/satisfiability.rs b/src/lock_file/satisfiability.rs index cdb2112e1..eab830e68 100644 --- a/src/lock_file/satisfiability.rs +++ b/src/lock_file/satisfiability.rs @@ -249,7 +249,7 @@ pub fn verify_pypi_platform_satisfiability( .iter() .flat_map(|(name, reqs)| { reqs.iter() - .map(move |req| (req.as_pep508(name), "")) + .map(move |req| (req.as_pep508(name.as_normalized()), "")) }) .collect_vec(); @@ -275,7 +275,7 @@ pub fn verify_pypi_platform_satisfiability( let mut name_to_package_identifiers = HashMap::new(); for (idx, (identifier, _)) in package_identifiers.iter().enumerate() { name_to_package_identifiers - .entry(identifier.name.clone()) + .entry(identifier.name.as_normalized()) .or_insert_with(Vec::new) .push(idx); } diff --git a/src/lock_file/update.rs b/src/lock_file/update.rs index d14f22baf..4f43955f7 100644 --- a/src/lock_file/update.rs +++ b/src/lock_file/update.rs @@ -1241,13 +1241,16 @@ async fn spawn_extract_pypi_environment_task( .iter() .filter_map(|record| PypiPackageIdentifier::from_record(record).ok()) .flatten() - .map(|identifier| (identifier.name.clone(), identifier)) + .map(|identifier| (identifier.name.as_normalized().clone(), identifier)) .collect::>(); Arc::new( - solve_group_records - .await - .subset(dependencies.into_keys(), &conda_package_identifiers), + solve_group_records.await.subset( + dependencies + .into_keys() + .map(|name| name.as_normalized().clone()), + &conda_package_identifiers, + ), ) } }; @@ -1304,7 +1307,10 @@ async fn spawn_solve_pypi_task( let records = lock_file::resolve_pypi( resolution_context, - dependencies, + dependencies + .into_iter() + .map(|(name, requirement)| (name.as_normalized().clone(), requirement)) + .collect(), system_requirements, &repodata_records.records, &[], diff --git a/src/project/environment.rs b/src/project/environment.rs index 59b7ad9d3..e9506fb81 100644 --- a/src/project/environment.rs +++ b/src/project/environment.rs @@ -4,6 +4,7 @@ use super::{ manifest::{self, EnvironmentName, Feature, FeatureName, SystemRequirements}, PyPiRequirement, SolveGroup, SpecType, }; +use crate::project::manifest::python::PyPiPackageName; use crate::task::TaskName; use crate::{task::Task, Project}; use indexmap::{IndexMap, IndexSet}; @@ -287,7 +288,7 @@ impl<'p> Environment<'p> { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { self.features(true) .filter_map(|f| f.pypi_dependencies(platform)) .fold(IndexMap::default(), |mut acc, deps| { diff --git a/src/project/grouped_environment.rs b/src/project/grouped_environment.rs index cc9c4c060..849158ef7 100644 --- a/src/project/grouped_environment.rs +++ b/src/project/grouped_environment.rs @@ -1,3 +1,4 @@ +use crate::project::manifest::python::PyPiPackageName; use crate::project::manifest::Feature; use crate::{ consts, @@ -109,7 +110,7 @@ impl<'p> GroupedEnvironment<'p> { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { match self { GroupedEnvironment::Group(group) => group.pypi_dependencies(platform), GroupedEnvironment::Environment(env) => env.pypi_dependencies(platform), diff --git a/src/project/manifest/feature.rs b/src/project/manifest/feature.rs index 690dd1834..f95cf0dfa 100644 --- a/src/project/manifest/feature.rs +++ b/src/project/manifest/feature.rs @@ -1,6 +1,7 @@ use super::{Activation, PyPiRequirement, SystemRequirements, Target, TargetSelector}; use crate::consts; use crate::project::manifest::channel::{PrioritizedChannel, TomlPrioritizedChannelStrOrMap}; +use crate::project::manifest::python::PyPiPackageName; use crate::project::manifest::target::Targets; use crate::project::manifest::{deserialize_opt_package_map, deserialize_package_map}; use crate::project::SpecType; @@ -176,7 +177,7 @@ impl Feature { pub fn pypi_dependencies( &self, platform: Option, - ) -> Option>> { + ) -> Option>> { self.targets .resolve(platform) // Get the targets in reverse order, from least specific to most specific. @@ -244,7 +245,7 @@ impl<'de> Deserialize<'de> for Feature { build_dependencies: Option>, #[serde(default)] - pypi_dependencies: Option>, + pypi_dependencies: Option>, /// Additional information to activate an environment. #[serde(default)] diff --git a/src/project/manifest/mod.rs b/src/project/manifest/mod.rs index bda65d0b4..2425482bc 100644 --- a/src/project/manifest/mod.rs +++ b/src/project/manifest/mod.rs @@ -4,13 +4,14 @@ mod environment; mod error; mod feature; mod metadata; -mod python; +pub(crate) mod python; mod system_requirements; mod target; mod validation; use crate::project::manifest::channel::PrioritizedChannel; use crate::project::manifest::environment::TomlEnvironmentMapOrSeq; +use crate::project::manifest::python::PyPiPackageName; use crate::task::TaskName; use crate::{consts, project::SpecType, task::Task, utils::spanned::PixiSpanned}; pub use activation::Activation; @@ -382,7 +383,7 @@ impl Manifest { pub fn add_pypi_dependency( &mut self, - name: &uv_normalize::PackageName, + name: &PyPiPackageName, requirement: &PyPiRequirement, platform: Option, ) -> miette::Result<()> { @@ -395,17 +396,17 @@ impl Manifest { )?; // Check for duplicates. - if let Some(table_spec) = dependency_table.get(name.as_ref()) { + if let Some(table_spec) = dependency_table.get(name.as_source()) { if table_spec.to_string().trim() == requirement.to_string() { return Err(miette::miette!( "{} is already added.", - console::style(name.as_ref()).bold(), + console::style(name.as_source()).bold(), )); } } // Add the pypi dependency to the table - dependency_table.insert(name.as_ref(), (*requirement).clone().into()); + dependency_table.insert(name.as_source(), (*requirement).clone().into()); // Add the dependency to the manifest as well self.default_feature_mut() @@ -453,24 +454,24 @@ impl Manifest { /// Removes a pypi dependency from `pixi.toml`. pub fn remove_pypi_dependency( &mut self, - dep: &uv_normalize::PackageName, + dep: &PyPiPackageName, platform: Option, feature_name: &FeatureName, - ) -> miette::Result<(uv_normalize::PackageName, PyPiRequirement)> { + ) -> miette::Result<(PyPiPackageName, PyPiRequirement)> { get_or_insert_toml_table( &mut self.document, platform, feature_name, consts::PYPI_DEPENDENCIES, )? - .remove(dep.as_ref()) + .remove(dep.as_source()) .ok_or_else(|| { let table_name = get_nested_toml_table_name(feature_name, platform, consts::PYPI_DEPENDENCIES); miette::miette!( "Couldn't find {} in [{}]", - console::style(dep.as_ref()).bold(), + console::style(dep.as_source()).bold(), console::style(table_name).bold(), ) })?; @@ -1028,7 +1029,7 @@ impl<'de> Deserialize<'de> for ProjectManifest { build_dependencies: Option>, #[serde(default)] - pypi_dependencies: Option>, + pypi_dependencies: Option>, /// Additional information to activate an environment. #[serde(default)] @@ -1487,7 +1488,7 @@ mod tests { .clone() .into_iter() .flat_map(|d| d.into_iter()) - .map(|(name, spec)| format!("{} = {}", name.as_ref(), Item::from(spec))) + .map(|(name, spec)| format!("{} = {}", name.as_source(), Item::from(spec))) .join("\n")); } @@ -1551,7 +1552,7 @@ mod tests { ) { let mut manifest = Manifest::from_str(Path::new(""), file_contents).unwrap(); - let package_name = uv_normalize::PackageName::from_str(name).unwrap(); + let package_name = PyPiPackageName::from_str(name).unwrap(); // Initially the dependency should exist assert!(manifest @@ -2238,10 +2239,7 @@ platforms = ["linux-64", "win-64"] .pypi_dependencies .as_ref() .unwrap() - .get( - &uv_normalize::PackageName::from_str("torch") - .expect("torch should be a valid name") - ) + .get(&PyPiPackageName::from_str("torch").expect("torch should be a valid name")) .expect("pypi requirement should be available") .version .clone() diff --git a/src/project/manifest/python.rs b/src/project/manifest/python.rs index d1036924a..33e60d122 100644 --- a/src/project/manifest/python.rs +++ b/src/project/manifest/python.rs @@ -4,7 +4,55 @@ use serde::{de, de::Error, Deserialize, Deserializer}; use std::{fmt, fmt::Formatter, str::FromStr}; use thiserror::Error; use toml_edit::Item; -use uv_normalize::ExtraName; +use uv_normalize::{ExtraName, InvalidNameError, PackageName}; + +#[derive(Debug, Clone, Eq, PartialEq, Hash)] +pub struct PyPiPackageName { + source: String, + normalized: PackageName, +} +impl<'de> Deserialize<'de> for PyPiPackageName { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + serde_untagged::UntaggedEnumVisitor::new() + .string(|str| PyPiPackageName::from_str(str).map_err(Error::custom)) + .expecting("a string") + .deserialize(deserializer) + } +} + +impl PyPiPackageName { + pub fn from_str(name: &str) -> Result { + Ok(Self { + source: name.to_string(), + normalized: uv_normalize::PackageName::from_str(name)?, + }) + } + pub fn from_normalized(normalized: PackageName) -> Self { + Self { + source: normalized.as_ref().to_string(), + normalized, + } + } + + pub fn as_normalized(&self) -> &PackageName { + &self.normalized + } + + pub fn as_source(&self) -> &str { + &self.source + } +} + +impl FromStr for PyPiPackageName { + type Err = InvalidNameError; + + fn from_str(name: &str) -> Result { + Self::from_str(name) + } +} #[derive(Debug, Clone, Eq, PartialEq)] pub struct PyPiRequirement { @@ -358,4 +406,7 @@ mod tests { } ); } + + #[test] + fn test_pypi_package_name() {} } diff --git a/src/project/manifest/target.rs b/src/project/manifest/target.rs index e1ad681e3..8d62b5e43 100644 --- a/src/project/manifest/target.rs +++ b/src/project/manifest/target.rs @@ -1,4 +1,5 @@ use crate::project::manifest::activation::Activation; +use crate::project::manifest::python::PyPiPackageName; use crate::task::TaskName; use crate::utils::spanned::PixiSpanned; use crate::{ @@ -23,7 +24,7 @@ pub struct Target { pub dependencies: HashMap>, /// Specific python dependencies - pub pypi_dependencies: Option>, + pub pypi_dependencies: Option>, /// Additional information to activate an environment. pub activation: Option, @@ -209,7 +210,7 @@ impl<'de> Deserialize<'de> for Target { build_dependencies: Option>, #[serde(default)] - pypi_dependencies: Option>, + pypi_dependencies: Option>, /// Additional information to activate an environment. #[serde(default)] diff --git a/src/project/mod.rs b/src/project/mod.rs index e85bc2bf3..b33227161 100644 --- a/src/project/mod.rs +++ b/src/project/mod.rs @@ -36,6 +36,7 @@ use crate::{ }; use manifest::{EnvironmentName, Manifest, PyPiRequirement, SystemRequirements}; +use crate::project::manifest::python::PyPiPackageName; pub use dependencies::Dependencies; pub use environment::Environment; pub use solve_group::SolveGroup; @@ -392,7 +393,7 @@ impl Project { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { self.default_environment().pypi_dependencies(platform) } diff --git a/src/project/solve_group.rs b/src/project/solve_group.rs index b5c7cc7c8..a8c32afaa 100644 --- a/src/project/solve_group.rs +++ b/src/project/solve_group.rs @@ -1,4 +1,5 @@ use super::{manifest, Dependencies, Environment, Project}; +use crate::project::manifest::python::PyPiPackageName; use crate::project::manifest::{PyPiRequirement, SystemRequirements}; use crate::{FeatureName, SpecType}; use indexmap::{IndexMap, IndexSet}; @@ -115,7 +116,7 @@ impl<'p> SolveGroup<'p> { pub fn pypi_dependencies( &self, platform: Option, - ) -> IndexMap> { + ) -> IndexMap> { self.features(true) .filter_map(|f| f.pypi_dependencies(platform)) .fold(IndexMap::default(), |mut acc, deps| {