docs: def acquire(graftm_package_path):
          '''Acquire a new graftm Package
  
          Parameters
          ----------
          graftm_output_path: str
              path to base directory of graftm
          '''
          
          contents_hash = json.load(
                                     open(
                                          os.path.join(
                                                       graftm_package_path,
                                                       GraftMPackage._CONTENTS_FILE_NAME
                                                       ),
                                           )
                                     )
          
          
          v=contents_hash[GraftMPackage.VERSION_KEY]
          logging.debug("Loading version %i GraftM package: %s" % (v, graftm_package_path))
          if v == 2:
              pkg = GraftMPackageVersion2()
          elif v == 3:
              pkg = GraftMPackageVersion3()
          else:
              raise InsufficientGraftMPackageException("Bad version: %s" % v)
          
          pkg._contents_hash = contents_hash
          pkg._base_directory = graftm_package_path
          # check we are at current version otherwise choke
          pkg.check_universal_keys(v)
          pkg.check_required_keys(GraftMPackage._REQUIRED_KEYS[str(v)])
          return pkg