From 772b527c1a1cd79756c9634a2bcd40a0d9b7cd13 Mon Sep 17 00:00:00 2001 From: Nikita Syzrantsev <47356892+nsyzrantsev@users.noreply.github.com> Date: Wed, 8 Jan 2025 20:50:49 +0400 Subject: [PATCH] Reformat crates --- Cargo.toml | 5 +- .../Cargo.toml | 2 +- .../src/main.rs | 0 .../zefiro-cwl-js-exec/Cargo.toml | 12 +++++ .../zefiro-cwl-js-exec/src}/exec.rs | 0 .../zefiro-cwl-js-exec/src/lib.rs | 3 ++ .../zefiro-cwl-parser/Cargo.toml | 2 - .../zefiro-cwl-parser/README.md | 0 .../zefiro-cwl-parser/src/lib.rs | 2 - .../src/schema/command_line_tool.rs | 0 .../zefiro-cwl-parser/src/schema/document.rs | 0 .../zefiro-cwl-parser/src/schema/mod.rs | 0 .../src/schema/requirements.rs | 0 .../zefiro-cwl-parser/src/schema/types.rs | 0 .../zefiro-cwl-parser/src/schema/workflow.rs | 0 .../zefiro-cwl-parser/src/values/document.rs | 4 -- .../zefiro-cwl-parser/src/values/mod.rs | 0 .../zefiro-cwl-parser/src/values/types.rs | 52 ++++--------------- .../test_data/cwl/clt-step-schema.yml | 0 .../test_data/cwl/clt-step-values.yml | 0 .../test_data/cwl/wf-step-schema.yml | 0 .../test_data/inputs/file.txt | 0 .../zefiro-cwl-parser/src/js/mod.rs | 1 - 23 files changed, 28 insertions(+), 55 deletions(-) rename {zefiro-pipeline => zefiro-pipeline-engine}/Cargo.toml (68%) rename {zefiro-pipeline => zefiro-pipeline-engine}/src/main.rs (100%) create mode 100644 zefiro-pipeline-engine/zefiro-cwl-js-exec/Cargo.toml rename {zefiro-pipeline/zefiro-cwl-parser/src/js => zefiro-pipeline-engine/zefiro-cwl-js-exec/src}/exec.rs (100%) create mode 100644 zefiro-pipeline-engine/zefiro-cwl-js-exec/src/lib.rs rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/Cargo.toml (94%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/README.md (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/lib.rs (76%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/schema/command_line_tool.rs (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/schema/document.rs (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/schema/mod.rs (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/schema/requirements.rs (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/schema/types.rs (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/schema/workflow.rs (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/values/document.rs (97%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/values/mod.rs (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/src/values/types.rs (59%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/test_data/cwl/clt-step-schema.yml (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/test_data/cwl/clt-step-values.yml (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/test_data/cwl/wf-step-schema.yml (100%) rename {zefiro-pipeline => zefiro-pipeline-engine}/zefiro-cwl-parser/test_data/inputs/file.txt (100%) delete mode 100644 zefiro-pipeline/zefiro-cwl-parser/src/js/mod.rs diff --git a/Cargo.toml b/Cargo.toml index ce59479..c4030cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,8 @@ edition = "2021" [workspace] members = [ "zefiro-cli", - "zefiro-pipeline", - "zefiro-pipeline/zefiro-cwl-parser", + "zefiro-pipeline-engine", + "zefiro-pipeline-engine/zefiro-cwl-parser", + "zefiro-pipeline-engine/zefiro-cwl-js-exec", "zefiro-ui" ] \ No newline at end of file diff --git a/zefiro-pipeline/Cargo.toml b/zefiro-pipeline-engine/Cargo.toml similarity index 68% rename from zefiro-pipeline/Cargo.toml rename to zefiro-pipeline-engine/Cargo.toml index 4bd5b2c..a90b207 100644 --- a/zefiro-pipeline/Cargo.toml +++ b/zefiro-pipeline-engine/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "zefiro-core" +name = "zefiro-pipeline-engine" version = "0.1.0" edition = "2021" rust-version = "1.83.0" \ No newline at end of file diff --git a/zefiro-pipeline/src/main.rs b/zefiro-pipeline-engine/src/main.rs similarity index 100% rename from zefiro-pipeline/src/main.rs rename to zefiro-pipeline-engine/src/main.rs diff --git a/zefiro-pipeline-engine/zefiro-cwl-js-exec/Cargo.toml b/zefiro-pipeline-engine/zefiro-cwl-js-exec/Cargo.toml new file mode 100644 index 0000000..cebf4fc --- /dev/null +++ b/zefiro-pipeline-engine/zefiro-cwl-js-exec/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "zefiro-cwl-js-exec" +version = "0.1.0" +edition = "2021" + +[dependencies] +anyhow = "1.0.95" +deno_core = "0.329.0" +serde_json = "1.0.135" + +[dev-dependencies] +rstest = "0.24.0" diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/js/exec.rs b/zefiro-pipeline-engine/zefiro-cwl-js-exec/src/exec.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/js/exec.rs rename to zefiro-pipeline-engine/zefiro-cwl-js-exec/src/exec.rs diff --git a/zefiro-pipeline-engine/zefiro-cwl-js-exec/src/lib.rs b/zefiro-pipeline-engine/zefiro-cwl-js-exec/src/lib.rs new file mode 100644 index 0000000..f007f26 --- /dev/null +++ b/zefiro-pipeline-engine/zefiro-cwl-js-exec/src/lib.rs @@ -0,0 +1,3 @@ +pub mod exec; + +pub use crate::exec::JsExecutor; diff --git a/zefiro-pipeline/zefiro-cwl-parser/Cargo.toml b/zefiro-pipeline-engine/zefiro-cwl-parser/Cargo.toml similarity index 94% rename from zefiro-pipeline/zefiro-cwl-parser/Cargo.toml rename to zefiro-pipeline-engine/zefiro-cwl-parser/Cargo.toml index 66fca06..24b9463 100644 --- a/zefiro-pipeline/zefiro-cwl-parser/Cargo.toml +++ b/zefiro-pipeline-engine/zefiro-cwl-parser/Cargo.toml @@ -18,9 +18,7 @@ rust-version = "1.83.0" [dependencies] anyhow = "1.0.95" -deno_core = "0.328.0" serde = { version = "1.0.216", features = ["derive"] } -serde_json = "1.0.134" serde_with = "3.12.0" serde_yaml = "0.9.34" sha1 = "0.10.6" diff --git a/zefiro-pipeline/zefiro-cwl-parser/README.md b/zefiro-pipeline-engine/zefiro-cwl-parser/README.md similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/README.md rename to zefiro-pipeline-engine/zefiro-cwl-parser/README.md diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/lib.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/lib.rs similarity index 76% rename from zefiro-pipeline/zefiro-cwl-parser/src/lib.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/lib.rs index f396971..f0b1d33 100644 --- a/zefiro-pipeline/zefiro-cwl-parser/src/lib.rs +++ b/zefiro-pipeline-engine/zefiro-cwl-parser/src/lib.rs @@ -1,8 +1,6 @@ #[doc = include_str!("../README.md")] -pub mod js; pub mod schema; pub mod values; -pub use crate::js::exec::JsExecutor; pub use crate::schema::document::CwlSchema; pub use crate::values::document::CwlValues; diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/schema/command_line_tool.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/command_line_tool.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/schema/command_line_tool.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/command_line_tool.rs diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/schema/document.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/document.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/schema/document.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/document.rs diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/schema/mod.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/mod.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/schema/mod.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/mod.rs diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/schema/requirements.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/requirements.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/schema/requirements.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/requirements.rs diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/schema/types.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/types.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/schema/types.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/types.rs diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/schema/workflow.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/workflow.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/schema/workflow.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/schema/workflow.rs diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/values/document.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/values/document.rs similarity index 97% rename from zefiro-pipeline/zefiro-cwl-parser/src/values/document.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/values/document.rs index 4e2c6ac..61fc44e 100644 --- a/zefiro-pipeline/zefiro-cwl-parser/src/values/document.rs +++ b/zefiro-pipeline-engine/zefiro-cwl-parser/src/values/document.rs @@ -96,10 +96,6 @@ impl CwlValues { pub fn to_yaml(&self, writer: W) -> Result<()> { serde_yaml::to_writer(writer, self).map_err(Into::into) } - - pub fn to_json(&self) -> Result { - Ok(serde_json::to_value(self)?) - } } #[cfg(test)] diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/values/mod.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/values/mod.rs similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/src/values/mod.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/values/mod.rs diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/values/types.rs b/zefiro-pipeline-engine/zefiro-cwl-parser/src/values/types.rs similarity index 59% rename from zefiro-pipeline/zefiro-cwl-parser/src/values/types.rs rename to zefiro-pipeline-engine/zefiro-cwl-parser/src/values/types.rs index c6dde03..eedfd55 100644 --- a/zefiro-pipeline/zefiro-cwl-parser/src/values/types.rs +++ b/zefiro-pipeline-engine/zefiro-cwl-parser/src/values/types.rs @@ -1,11 +1,11 @@ -use serde::{Deserialize, Deserializer, Serialize}; +use serde::{Deserialize, Serialize}; use sha1::{Digest, Sha1}; use std::fs; use std::io; use std::path::Path; /// Represents a `File` object in CWL -#[derive(Clone, Debug, Serialize, Default)] +#[derive(Clone, Debug, Serialize, Deserialize, Default)] pub struct CwlFile { /// Full path to the file, e.g., "/path/to/file.txt". pub location: String, @@ -36,83 +36,49 @@ impl CwlFile { self.location.clone() } - fn calculate_checksum(path: &str) -> io::Result { + pub fn calculate_checksum(path: &str) -> io::Result { let mut file = fs::File::open(path)?; let mut hasher = Sha1::new(); io::copy(&mut file, &mut hasher)?; Ok(format!("{:x}", hasher.finalize())) } - fn extract_path_info(path: &str, provided: Option, extractor: F) -> Option + pub fn extract_path_info(path: &str, provided: Option, extractor: F) -> Option where F: Fn(&Path) -> Option, { provided.or_else(|| extractor(Path::new(path))) } - fn basename(path: &str, provided_basename: Option) -> Option { + pub fn basename(path: &str, provided_basename: Option) -> Option { Self::extract_path_info(path, provided_basename, |p| { p.file_name() .and_then(|name| name.to_str().map(String::from)) }) } - fn nameroot(path: &str, provided_nameroot: Option) -> Option { + pub fn nameroot(path: &str, provided_nameroot: Option) -> Option { Self::extract_path_info(path, provided_nameroot, |p| { p.file_stem() .and_then(|stem| stem.to_str().map(String::from)) }) } - fn nameext(path: &str, provided_nameext: Option) -> Option { + pub fn nameext(path: &str, provided_nameext: Option) -> Option { Self::extract_path_info(path, provided_nameext, |p| { p.extension().and_then(|ext| ext.to_str().map(String::from)) }) } - fn size(path: &str, provided_size: Option) -> Option { + pub fn size(path: &str, provided_size: Option) -> Option { provided_size.or_else(|| fs::metadata(path).ok().map(|m| m.len())) } - fn checksum(path: &str, provided_checksum: Option) -> Option { + pub fn checksum(path: &str, provided_checksum: Option) -> Option { provided_checksum.or_else(|| Self::calculate_checksum(path).ok()) } } -impl<'de> Deserialize<'de> for CwlFile { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - #[derive(Deserialize)] - struct Helper { - location: String, - #[serde(default)] - basename: Option, - #[serde(default)] - nameroot: Option, - #[serde(default)] - nameext: Option, - #[serde(default)] - size: Option, - #[serde(default)] - checksum: Option, - } - - let helper = Helper::deserialize(deserializer)?; - let path = &helper.location; - - Ok(Self { - location: helper.location.clone(), - basename: Self::basename(path, helper.basename), - nameroot: Self::nameroot(path, helper.nameroot), - nameext: Self::nameext(path, helper.nameext), - size: Self::size(path, helper.size), - checksum: Self::checksum(path, helper.checksum), - }) - } -} - /// Represents a `Directory` object in CWL #[derive(Clone, Debug, Deserialize, Serialize)] pub struct CwlDirectory { diff --git a/zefiro-pipeline/zefiro-cwl-parser/test_data/cwl/clt-step-schema.yml b/zefiro-pipeline-engine/zefiro-cwl-parser/test_data/cwl/clt-step-schema.yml similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/test_data/cwl/clt-step-schema.yml rename to zefiro-pipeline-engine/zefiro-cwl-parser/test_data/cwl/clt-step-schema.yml diff --git a/zefiro-pipeline/zefiro-cwl-parser/test_data/cwl/clt-step-values.yml b/zefiro-pipeline-engine/zefiro-cwl-parser/test_data/cwl/clt-step-values.yml similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/test_data/cwl/clt-step-values.yml rename to zefiro-pipeline-engine/zefiro-cwl-parser/test_data/cwl/clt-step-values.yml diff --git a/zefiro-pipeline/zefiro-cwl-parser/test_data/cwl/wf-step-schema.yml b/zefiro-pipeline-engine/zefiro-cwl-parser/test_data/cwl/wf-step-schema.yml similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/test_data/cwl/wf-step-schema.yml rename to zefiro-pipeline-engine/zefiro-cwl-parser/test_data/cwl/wf-step-schema.yml diff --git a/zefiro-pipeline/zefiro-cwl-parser/test_data/inputs/file.txt b/zefiro-pipeline-engine/zefiro-cwl-parser/test_data/inputs/file.txt similarity index 100% rename from zefiro-pipeline/zefiro-cwl-parser/test_data/inputs/file.txt rename to zefiro-pipeline-engine/zefiro-cwl-parser/test_data/inputs/file.txt diff --git a/zefiro-pipeline/zefiro-cwl-parser/src/js/mod.rs b/zefiro-pipeline/zefiro-cwl-parser/src/js/mod.rs deleted file mode 100644 index 4b318ea..0000000 --- a/zefiro-pipeline/zefiro-cwl-parser/src/js/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod exec;