class_docstr: A Pipeline object represents a collection of named expressions to be
  compiled and executed by a PipelineEngine.
  
  A Pipeline has two important attributes: 'columns', a dictionary of named
  :class:`~zipline.pipeline.Term` instances, and 'screen', a
  :class:`~zipline.pipeline.Filter` representing criteria for
  including an asset in the results of a Pipeline.
  
  To compute a pipeline in the context of a TradingAlgorithm, users must call
  ``attach_pipeline`` in their ``initialize`` function to register that the
  pipeline should be computed each trading day. The most recent outputs of an
  attached pipeline can be retrieved by calling ``pipeline_output`` from
  ``handle_data``, ``before_trading_start``, or a scheduled function.
  
  Parameters
  ----------
  columns : dict, optional
      Initial columns.
  screen : zipline.pipeline.Filter, optional
      Initial screen.
class_docstr_tok: ["A","Pipeline","object","represents","a","collection","of","named","expressions","to","be","compiled","and","executed","by","a","PipelineEngine",".","A","Pipeline","has","two","important","attributes",":","'columns","'",",","a","dictionary","of","named",":","class",":","`","~zipline.pipeline.Term","`","instances",",","and","'screen","'",",","a",":","class",":","`","~zipline.pipeline.Filter","`","representing","criteria","for","including","an","asset","in","the","results","of","a","Pipeline",".","To","compute","a","pipeline","in","the","context","of","a","TradingAlgorithm",",","users","must","call","``","attach_pipeline","``","in","their","``","initialize","``","function","to","register","that","the","pipeline","should","be","computed","each","trading","day",".","The","most","recent","outputs","of","an","attached","pipeline","can","be","retrieved","by","calling","``","pipeline_output","``","from","``","handle_data","``",",","``","before_trading_start","``",",","or","a","scheduled","function",".","Parameters","--","--","--","--","--","columns",":","dict",",","optional","Initial","columns",".","screen",":","zipline.pipeline.Filter",",","optional","Initial","screen","."]
docstr: Compile into an ExecutionPlan.
  
  Parameters
  ----------
  domain : zipline.pipeline.domain.Domain
      Domain on which the pipeline will be executed.
  default_screen : zipline.pipeline.Term
      Term to use as a screen if self.screen is None.
  all_dates : pd.DatetimeIndex
      A calendar of dates to use to calculate starts and ends for each
      term.
  start_date : pd.Timestamp
      The first date of requested output.
  end_date : pd.Timestamp
      The last date of requested output.
  
  Returns
  -------
  graph : zipline.pipeline.graph.ExecutionPlan
      Graph encoding term dependencies, including metadata about extra
      row requirements.
docstr_tok: ["Compile","into","an","ExecutionPlan",".","Parameters","--","--","--","--","--","domain",":","zipline.pipeline.domain.Domain","Domain","on","which","the","pipeline","will","be","executed",".","default_screen",":","zipline.pipeline.Term","Term","to","use","as","a","screen","if","self.screen","is","None",".","all_dates",":","pd.DatetimeIndex","A","calendar","of","dates","to","use","to","calculate","starts","and","ends","for","each","term",".","start_date",":","pd.Timestamp","The","first","date","of","requested","output",".","end_date",":","pd.Timestamp","The","last","date","of","requested","output",".","Returns","--","--","--","-","graph",":","zipline.pipeline.graph.ExecutionPlan","Graph","encoding","term","dependencies",",","including","metadata","about","extra","row","requirements","."]
code: def to_execution_plan(
      self, domain, default_screen, start_date, end_date
  ):
      """
      Compile into an ExecutionPlan.
  
      Parameters
      ----------
      domain : zipline.pipeline.domain.Domain
          Domain on which the pipeline will be executed.
      default_screen : zipline.pipeline.Term
          Term to use as a screen if self.screen is None.
      all_dates : pd.DatetimeIndex
          A calendar of dates to use to calculate starts and ends for each
          term.
      start_date : pd.Timestamp
          The first date of requested output.
      end_date : pd.Timestamp
          The last date of requested output.
  
      Returns
      -------
      graph : zipline.pipeline.graph.ExecutionPlan
          Graph encoding term dependencies, including metadata about extra
          row requirements.
      """
      if self._domain is not GENERIC and self._domain is not domain:
          raise AssertionError(
              "Attempted to compile Pipeline with domain {} to execution "
              "plan with different domain {}.".format(
                  self._domain, domain
              )
          )
  
      return ExecutionPlan(
          domain=domain,
          terms=self._prepare_graph_terms(default_screen),
          start_date=start_date,
          end_date=end_date,
      )
  
imports: import six
  from zipline.errors import UnsupportedPipelineOutput
  from zipline.utils.input_validation import expect_element, expect_types, optional
  from .domain import Domain, GENERIC, infer_domain
  from .graph import ExecutionPlan, TermGraph, SCREEN_NAME
  from .filters import Filter
  from .term import AssetExists, ComputableTerm, Term
label_desc: Use image node_id 7 for calling the Pipeline obj's underlying member method code with example usage: obj.to_execution_plan(domain, default_screen, start_date, end_date) and returns: ExecutionPlan