Skip to content

Commit

Permalink
dont parse records
Browse files Browse the repository at this point in the history
  • Loading branch information
baszalmstra committed Sep 13, 2024
1 parent 0f2eedc commit 5273d19
Showing 1 changed file with 31 additions and 27 deletions.
58 changes: 31 additions & 27 deletions crates/rattler_lock/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -336,24 +336,24 @@ impl Environment {

/// Returns all conda packages for all platforms and converts them to
/// [`RepoDataRecord`].
pub fn conda_repodata_records(
&self,
) -> Result<HashMap<Platform, Vec<RepoDataRecord>>, ConversionError> {
pub fn conda_repodata_records(&self) -> HashMap<Platform, Vec<CondaPackageData>> {
let env_data = self.data();
env_data
.packages
.iter()
.map(|(platform, packages)| {
packages
.iter()
.filter_map(|package| match package {
EnvironmentPackageData::Conda(idx) => {
Some(RepoDataRecord::try_from(&self.inner.conda_packages[*idx]))
}
EnvironmentPackageData::Pypi(_, _) => None,
})
.collect::<Result<_, _>>()
.map(|records| (*platform, records))
(
*platform,
packages
.iter()
.filter_map(|package| match package {
EnvironmentPackageData::Conda(idx) => {
Some(self.inner.conda_packages[*idx].clone())
}
EnvironmentPackageData::Pypi(_, _) => None,
})
.collect::<Vec<_>>(),
)
})
.collect()
}
Expand All @@ -365,21 +365,22 @@ impl Environment {
pub fn conda_repodata_records_for_platform(
&self,
platform: Platform,
) -> Result<Option<Vec<RepoDataRecord>>, ConversionError> {
) -> Option<Vec<CondaPackageData>> {
let Some(packages) = self.data().packages.get(&platform) else {

Check failure on line 369 in crates/rattler_lock/src/lib.rs

View workflow job for this annotation

GitHub Actions / Format and Lint

this `let...else` may be rewritten with the `?` operator
return Ok(None);
return None;
};

packages
.iter()
.filter_map(|package| match package {
EnvironmentPackageData::Conda(idx) => {
Some(RepoDataRecord::try_from(&self.inner.conda_packages[*idx]))
}
EnvironmentPackageData::Pypi(_, _) => None,
})
.collect::<Result<_, _>>()
.map(Some)
Some(
packages
.iter()
.filter_map(|package| match package {
EnvironmentPackageData::Conda(idx) => {
Some(self.inner.conda_packages[*idx].clone())
}
EnvironmentPackageData::Pypi(_, _) => None,
})
.collect(),
)
}

/// Returns all the pypi packages and their associated environment data for
Expand Down Expand Up @@ -651,10 +652,13 @@ pub struct PypiPackageDataRef<'p> {

#[cfg(test)]
mod test {
use std::{
path::{Path, PathBuf},
str::FromStr,
};

use rattler_conda_types::Platform;
use rstest::*;
use std::path::{Path, PathBuf};
use std::str::FromStr;

use super::{LockFile, DEFAULT_ENVIRONMENT_NAME};

Expand Down

0 comments on commit 5273d19

Please sign in to comment.