class_docstr: ArrowSources is a companion class representing a directory containing
  Apache Arrow's sources.
class_docstr_tok: ["ArrowSources","is","a","companion","class","representing","a","directory","containing","Apache","Arrow","'s","sources","."]
docstr: Initialize an ArrowSources
  
  The caller must ensure that path is valid arrow source directory (can
  be checked with ArrowSources.valid)
  
  Parameters
  ----------
  path : src
docstr_tok: ["Initialize","an","ArrowSources","The","caller","must","ensure","that","path","is","valid","arrow","source","directory","(","can","be","checked","with","ArrowSources.valid",")","Parameters","--","--","--","--","--","path",":","src"]
code: def __init__(self, path):
      """Initialize an ArrowSources
  
      The caller must ensure that path is valid arrow source directory (can
      be checked with ArrowSources.valid)
  
      Parameters
      ----------
      path : src
      """
      path = Path(path)
      # validate by checking a specific path in the arrow source tree
      if not (path / "cpp" / "CMakeLists.txt").exists():
          raise InvalidArrowSource(
              "No Arrow C++ sources found in {}.".format(path)
          )
      self.path = path
  
imports: import os
  from pathlib import Path
  import subprocess
  import tempfile
  from .command import Command
  from .git import git
label_desc: Use image node_id 1 to create a new ArrowSources object  with example: obj = ArrowSources(path)