class_docstr: Read SAS files in SAS7BDAT format.
  
  Parameters
  ----------
  path_or_buf : path name or buffer
      Name of SAS file or file-like object pointing to SAS file
      contents.
  index : column identifier, defaults to None
      Column to use as index.
  convert_dates : bool, defaults to True
      Attempt to convert dates to Pandas datetime values.  Note that
      some rarely used SAS date formats may be unsupported.
  blank_missing : bool, defaults to True
      Convert empty strings to missing values (SAS uses blanks to
      indicate missing character variables).
  chunksize : int, defaults to None
      Return SAS7BDATReader object for iterations, returns chunks
      with given number of lines.
  encoding : str, 'infer', defaults to None
      String encoding acc. to Python standard encodings,
      encoding='infer' tries to detect the encoding from the file header,
      encoding=None will leave the data in binary format.
  convert_text : bool, defaults to True
      If False, text variables are left as raw bytes.
  convert_header_text : bool, defaults to True
      If False, header text, including column names, are left as raw
      bytes.
class_docstr_tok: ["Read","SAS","files","in","SAS7BDAT","format",".","Parameters","--","--","--","--","--","path_or_buf",":","path","name","or","buffer","Name","of","SAS","file","or","file-like","object","pointing","to","SAS","file","contents",".","index",":","column","identifier",",","defaults","to","None","Column","to","use","as","index",".","convert_dates",":","bool",",","defaults","to","True","Attempt","to","convert","dates","to","Pandas","datetime","values",".","Note","that","some","rarely","used","SAS","date","formats","may","be","unsupported",".","blank_missing",":","bool",",","defaults","to","True","Convert","empty","strings","to","missing","values","(","SAS","uses","blanks","to","indicate","missing","character","variables",")",".","chunksize",":","int",",","defaults","to","None","Return","SAS7BDATReader","object","for","iterations",",","returns","chunks","with","given","number","of","lines",".","encoding",":","str",",","'infer","'",",","defaults","to","None","String","encoding","acc",".","to","Python","standard","encodings",",","encoding='infer","'","tries","to","detect","the","encoding","from","the","file","header",",","encoding=None","will","leave","the","data","in","binary","format",".","convert_text",":","bool",",","defaults","to","True","If","False",",","text","variables","are","left","as","raw","bytes",".","convert_header_text",":","bool",",","defaults","to","True","If","False",",","header","text",",","including","column","names",",","are","left","as","raw","bytes","."]
code: def __init__(
      self,
      path_or_buf: FilePath | ReadBuffer[bytes],
      index=None,
      convert_dates: bool = True,
      blank_missing: bool = True,
      chunksize: int | None = None,
      encoding: str | None = None,
      convert_text: bool = True,
      convert_header_text: bool = True,
      compression: CompressionOptions = "infer",
  ) -> None:
      self.index = index
      self.convert_dates = convert_dates
      self.blank_missing = blank_missing
      self.chunksize = chunksize
      self.encoding = encoding
      self.convert_text = convert_text
      self.convert_header_text = convert_header_text
  
      self.default_encoding = "latin-1"
      self.compression = b""
      self.column_names_raw: list[bytes] = []
      self.column_names: list[str | bytes] = []
      self.column_formats: list[str | bytes] = []
      self.columns: list[_Column] = []
  
      self._current_page_data_subheader_pointers: list[
          tuple[int, int]
      ] = []
      self._cached_page = None
      self._column_data_lengths: list[int] = []
      self._column_data_offsets: list[int] = []
      self._column_types: list[bytes] = []
  
      self._current_row_in_file_index = 0
      self._current_row_on_page_index = 0
      self._current_row_in_file_index = 0
  
      self.handles = get_handle(
          path_or_buf, "rb", is_text=False, compression=compression
      )
  
      self._path_or_buf = self.handles.handle
  
      # Same order as const.SASIndex
      self._subheader_processors = [
          self._process_rowsize_subheader,
          self._process_columnsize_subheader,
          self._process_subheader_counts,
          self._process_columntext_subheader,
          self._process_columnname_subheader,
          self._process_columnattributes_subheader,
          self._process_format_subheader,
          self._process_columnlist_subheader,
          None,  # Data
      ]
  
      try:
          self._get_properties()
          self._parse_metadata()
      except Exception:
          self.close()
          raise
  
imports: from __future__ import annotations
  from collections import abc
  from datetime import datetime, timedelta
  import sys
  from typing import TYPE_CHECKING
  import numpy
  from pandas._libs.byteswap import read_double_with_byteswap, read_float_with_byteswap, read_uint16_with_byteswap, read_uint32_with_byteswap, read_uint64_with_byteswap
  from pandas._libs.sas import Parser, get_subheader_index
  from pandas._libs.tslibs.conversion import cast_from_unit_vectorized
  from pandas.errors import EmptyDataError
  import pandas
  from pandas import DataFrame, Timestamp, isna
  from pandas.io.common import get_handle
  import pandas.io.sas.sas_constants
  from pandas.io.sas.sasreader import ReaderBase
label_desc: Use image node_id 1 to create a new SAS7BDATReader object from inherited base classes: ReaderBase, abc with example: obj = SAS7BDATReader(path_or_buf, index, convert_dates, blank_missing, chunksize, encoding, convert_text, convert_header_text, compression)