fn lift(subject: &Key) -> ExecuteProcess {
    let value = externs::val_for(subject);

    let mut env: BTreeMap<String, String> = BTreeMap::new();
    let env_var_parts = externs::project_multi_strs(&value, "env");
    // TODO: Error if env_var_parts.len() % 2 != 0
    for i in 0..(env_var_parts.len() / 2) {
      env.insert(
        env_var_parts[2 * i].clone(),
        env_var_parts[2 * i + 1].clone(),
      );
    }

    // TODO: Make this much less unwrap-happy with https://github.com/pantsbuild/pants/issues/5502
    let fingerprint = externs::project_str(&value, "input_files_digest");
    let digest_length = externs::project_str(&value, "digest_length");
    let digest_length_as_usize = digest_length.parse::<usize>().unwrap();
    let digest = hashing::Digest(
      hashing::Fingerprint::from_hex_string(&fingerprint).unwrap(),
      digest_length_as_usize,
    );

    ExecuteProcess(process_execution::ExecuteProcessRequest {
      argv: externs::project_multi_strs(&value, "argv"),
      env: env,
      input_files: digest,
    })
  }
///
/// Lifts a Key representing a python ExecuteProcessRequest value into a ExecuteProcess Node.
///
Lifts a Key representing a python ExecuteProcessRequest value into a ExecuteProcess Node.
Lifts a Key representing a python ExecuteProcessRequest value into a ExecuteProcess Node .
fn lift(subject: &Key) -> ExecuteProcess {
    let value = externs::val_for(subject);
    let mut env: BTreeMap<String, String> = BTreeMap::new();
    let env_var_parts = externs::project_multi_strs(&value, "env");
    // TODO: Error if env_var_parts.len() % 2 != 0
    for i in 0..(env_var_parts.len() / 2) {
      env.insert(
        env_var_parts[2 * i].clone(),
        env_var_parts[2 * i + 1].clone(),
      );
    }
    // TODO: Make this much less unwrap-happy with https://github.com/pantsbuild/pants/issues/5502
    let fingerprint = externs::project_str(&value, "input_files_digest");
    let digest_length = externs::project_str(&value, "digest_length");
    let digest_length_as_usize = digest_length.parse::<usize>().unwrap();
    let digest = hashing::Digest(
      hashing::Fingerprint::from_hex_string(&fingerprint).unwrap(),
      digest_length_as_usize,
    );
    ExecuteProcess(process_execution::ExecuteProcessRequest {
      argv: externs::project_multi_strs(&value, "argv"),
      env: env,
      input_files: digest,
    })
  }
fn lift ( subject : & Key ) -> ExecuteProcess { let value = externs :: val_for ( subject ) ; let mut env : BTreeMap < String , String > = BTreeMap :: new ( ) ; let env_var_parts = externs :: project_multi_strs ( & value , " " ) ; // TODO: Error if env_var_parts.len() % 2 != 0 for i in 0 .. ( env_var_parts . len ( ) / 2 ) { env . insert ( env_var_parts [ 2 * i ] . clone ( ) , env_var_parts [ 2 * i + 1 ] . clone ( ) , ) ; } // TODO: Make this much less unwrap-happy with https://github.com/pantsbuild/pants/issues/5502 let fingerprint = externs :: project_str ( & value , " " ) ; let digest_length = externs :: project_str ( & value , " " ) ; let digest_length_as_usize = digest_length . parse :: < usize > ( ) . unwrap ( ) ; let digest = hashing :: Digest ( hashing :: Fingerprint :: from_hex_string ( & fingerprint ) . unwrap ( ) , digest_length_as_usize , ) ; ExecuteProcess ( process_execution :: ExecuteProcessRequest { argv : externs :: project_multi_strs ( & value , " " ) , env : env , input_files : digest , } ) }
Lifts a Key representing a python ExecuteProcessRequest value into a ExecuteProcess Node.
Lifts a Key representing a python ExecuteProcessRequest value into a ExecuteProcess Node .
subject
&Key
subject
&Key