Migrate to requirements_txt.rs (#90)
Remove the parser I wrote in favor of Konsti's which is much more complete. The only change vs. the version in `poc-monotrail` is that I changed the tests to use insta rather than manually storing and comparing against JSON snapshots. Closes https://github.com/astral-sh/puffin/issues/89.
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
use std::fmt::Write;
|
||||
use std::path::Path;
|
||||
use std::str::FromStr;
|
||||
|
||||
use anyhow::Result;
|
||||
use colored::Colorize;
|
||||
@@ -10,7 +9,7 @@ use platform_host::Platform;
|
||||
use platform_tags::Tags;
|
||||
use puffin_client::PypiClientBuilder;
|
||||
use puffin_interpreter::PythonExecutable;
|
||||
use puffin_package::requirements::Requirements;
|
||||
use puffin_package::requirements_txt::RequirementsTxt;
|
||||
|
||||
use crate::commands::reporters::ResolverReporter;
|
||||
use crate::commands::{elapsed, ExitStatus};
|
||||
@@ -25,11 +24,12 @@ pub(crate) async fn compile(
|
||||
let start = std::time::Instant::now();
|
||||
|
||||
// Read the `requirements.txt` from disk.
|
||||
let requirements_txt = std::fs::read_to_string(src)?;
|
||||
|
||||
// Parse the `requirements.txt` into a list of requirements.
|
||||
let requirements = Requirements::from_str(&requirements_txt)?;
|
||||
|
||||
let requirements_txt = RequirementsTxt::parse(src, std::env::current_dir()?)?;
|
||||
let requirements = requirements_txt
|
||||
.requirements
|
||||
.into_iter()
|
||||
.map(|entry| entry.requirement)
|
||||
.collect::<Vec<_>>();
|
||||
if requirements.is_empty() {
|
||||
writeln!(printer, "No requirements found")?;
|
||||
return Ok(ExitStatus::Success);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
use std::fmt::Write;
|
||||
use std::path::Path;
|
||||
use std::str::FromStr;
|
||||
|
||||
use anyhow::Result;
|
||||
use bitflags::bitflags;
|
||||
@@ -14,7 +13,7 @@ use puffin_client::PypiClientBuilder;
|
||||
use puffin_installer::{LocalIndex, RemoteDistribution};
|
||||
use puffin_interpreter::{PythonExecutable, SitePackages};
|
||||
use puffin_package::package_name::PackageName;
|
||||
use puffin_package::requirements::Requirements;
|
||||
use puffin_package::requirements_txt::RequirementsTxt;
|
||||
|
||||
use crate::commands::reporters::{
|
||||
DownloadReporter, InstallReporter, ResolverReporter, UnzipReporter,
|
||||
@@ -40,10 +39,12 @@ pub(crate) async fn sync(
|
||||
let start = std::time::Instant::now();
|
||||
|
||||
// Read the `requirements.txt` from disk.
|
||||
let requirements_txt = std::fs::read_to_string(src)?;
|
||||
|
||||
// Parse the `requirements.txt` into a list of requirements.
|
||||
let requirements = Requirements::from_str(&requirements_txt)?;
|
||||
let requirements_txt = RequirementsTxt::parse(src, std::env::current_dir()?)?;
|
||||
let requirements = requirements_txt
|
||||
.requirements
|
||||
.into_iter()
|
||||
.map(|entry| entry.requirement)
|
||||
.collect::<Vec<_>>();
|
||||
if requirements.is_empty() {
|
||||
writeln!(printer, "No requirements found")?;
|
||||
return Ok(ExitStatus::Success);
|
||||
|
||||
Reference in New Issue
Block a user