docs: def hash(pii_csv, keys, schema, clk_json, quiet, no_header, check_header, validate):
      """Process data to create CLKs
  
      Given a file containing CSV data as PII_CSV, and a JSON
      document defining the expected schema, verify the schema, then
      hash the data to create CLKs writing them as JSON to CLK_JSON. Note the CSV
      file should contain a header row - however this row is not used
      by this tool.
  
      It is important that the keys are only known by the two data providers. Two words should be provided. For example:
  
      $clkutil hash pii.csv horse staple pii-schema.json clk.json
  
      Use "-" for CLK_JSON to write JSON to stdout.
      """
  
      schema_object = clkhash.schema.from_json_file(schema_file=schema)
      header = True
      if not check_header:
          header = 'ignore'
      if no_header:
          header = False
  
      try:
          clk_data = clk.generate_clk_from_csv(
              pii_csv, keys, schema_object,
              validate=validate,
              header=header,
              progress_bar=not quiet)
      except (validate_data.EntryError, validate_data.FormatError) as e:
          msg, = e.args
          log(msg)
          log('Hashing failed.')
      else:
          json.dump({'clks': clk_data}, clk_json)
          if hasattr(clk_json, 'name'):
              log("CLK data written to {}".format(clk_json.name))