code: def create_parser():
      
  
      parser = argparse.ArgumentParser(
          description='Extract structured data from PDF files and save to CSV or JSON.'
      )
  
      parser.add_argument(
          '--input-reader',
          choices=input_mapping.keys(),
          default='pdftotext',
          help='Choose text extraction function. Default: pdftotext',
      )
  
      parser.add_argument(
          '--output-format',
          choices=output_mapping.keys(),
          default='none',
          help='Choose output format. Default: none',
      )
  
      parser.add_argument(
          '--output-name',
          '-o',
          dest='output_name',
          default='invoices-output',
          help='Custom name for output file. Extension is added based on chosen format.',
      )
  
      parser.add_argument(
          '--debug', dest='debug', action='store_true', help='Enable debug information.'
      )
  
      parser.add_argument(
          '--copy', '-c', dest='copy', help='Copy and rename processed PDFs to specified folder.'
      )
  
      parser.add_argument(
          '--move', '-m', dest='move', help='Move and rename processed PDFs to specified folder.'
      )
  
      parser.add_argument(
          '--filename-format',
          dest='filename',
          default="{date} {invoice_number} {desc}.pdf",
          help='Filename format to use when moving or copying processed PDFs.'
               'Default: "{date} {invoice_number} {desc}.pdf"',
      )
  
      parser.add_argument(
          '--template-folder',
          '-t',
          dest='template_folder',
          help='Folder containing invoice templates in yml file. Always adds built-in templates.',
      )
  
      parser.add_argument(
          '--exclude-built-in-templates',
          dest='exclude_built_in_templates',
          default=False,
          help='Ignore built-in templates.',
          action="store_true",
      )
  
      parser.add_argument(
          'input_files', type=argparse.FileType('r'), nargs='+', help='File or directory to analyze.'
      )
  
      return parser
docs: Returns argument parser