Giter Site home page Giter Site logo

Comments (2)

wlandau avatar wlandau commented on June 11, 2024

Let's rename tar_suppress() to tar_skip().

tar_skip() is ostensibly the easier of the two logical directions. We just insert tar_cancel() inside the command. The following are equivalent:

tar_skip(x, run_command(), skip = should_skip())

tar_target(x, {
  targets::tar_cancel(should_skip())
  run_command()
})

Note: this allows the target to be skipped even if it does not already exist. This differs from tar_cue(mode = "never"), which still runs the target if it is missing from _targets/.

from tarchetypes.

wlandau avatar wlandau commented on June 11, 2024

tar_force() is a bit trickier. We should probably build it on top of tar_change() (#2) in a way that makes the auxiliary variable change at the right times. Sketch:

tar_force(x, run_command(), force = should_force())

which gets converted to

tar_change(x, run_command(), change = as_change(should_force()))

where

as_change <- function(condition) {
  previous <- trn(file.exists(tar_path()), readRDS(tar_path()), tempfile())
  trn(condition, tempfile(), previous)
}

We just need to update tar_change() so the auxiliary upstream target always has format = "rds". (We wouldn't want to go through tar_read() in this case anyway because it reads the metadata, which would be inefficient during tar_make().)

from tarchetypes.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.