docstr: Do not use this directly, but the class ctrs (from_* functions).
docstr_tok: ["Do","not","use","this","directly",",","but","the","class","ctrs","(","from_","*","functions",")","."]
code: def __init__(
      self,
      title,
      key,
      total_nlines,
      pointer_nlines,
      indices_nlines,
      values_nlines,
      mxtype,
      nrows,
      ncols,
      nnon_zeros,
      pointer_format_str,
      indices_format_str,
      values_format_str,
      right_hand_sides_nlines=0,
      nelementals=0,
  ):
      """Do not use this directly, but the class ctrs (from_* functions)."""
      self.title = title
      self.key = key
      if title is None:
          title = "No Title"
      if len(title) > 72:
          raise ValueError("title cannot be > 72 characters")
  
      if key is None:
          key = "|No Key"
      if len(key) > 8:
          warnings.warn(
              "key is > 8 characters (key is %s)" % key, LineOverflow
          )
  
      self.total_nlines = total_nlines
      self.pointer_nlines = pointer_nlines
      self.indices_nlines = indices_nlines
      self.values_nlines = values_nlines
  
      parser = FortranFormatParser()
      pointer_format = parser.parse(pointer_format_str)
      if not isinstance(pointer_format, IntFormat):
          raise ValueError(
              "Expected int format for pointer format, got %s"
              % pointer_format
          )
  
      indices_format = parser.parse(indices_format_str)
      if not isinstance(indices_format, IntFormat):
          raise ValueError(
              "Expected int format for indices format, got %s"
              % indices_format
          )
  
      values_format = parser.parse(values_format_str)
      if isinstance(values_format, ExpFormat):
          if mxtype.value_type not in ["real", "complex"]:
              raise ValueError(
                  "Inconsistency between matrix type %s and "
                  "value type %s" % (mxtype, values_format)
              )
          values_dtype = np.float64
      elif isinstance(values_format, IntFormat):
          if mxtype.value_type not in ["integer"]:
              raise ValueError(
                  "Inconsistency between matrix type %s and "
                  "value type %s" % (mxtype, values_format)
              )
          # XXX: fortran int -> dtype association ?
          values_dtype = int
      else:
          raise ValueError(
              "Unsupported format for values %r" % (values_format,)
          )
  
      self.pointer_format = pointer_format
      self.indices_format = indices_format
      self.values_format = values_format
  
      self.pointer_dtype = np.int32
      self.indices_dtype = np.int32
      self.values_dtype = values_dtype
  
      self.pointer_nlines = pointer_nlines
      self.pointer_nbytes_full = _nbytes_full(
          pointer_format, pointer_nlines
      )
  
      self.indices_nlines = indices_nlines
      self.indices_nbytes_full = _nbytes_full(
          indices_format, indices_nlines
      )
  
      self.values_nlines = values_nlines
      self.values_nbytes_full = _nbytes_full(
          values_format, values_nlines
      )
  
      self.nrows = nrows
      self.ncols = ncols
      self.nnon_zeros = nnon_zeros
      self.nelementals = nelementals
      self.mxtype = mxtype
  
imports: from __future__ import division, print_function, absolute_import
  import warnings
  import numpy
  from scipy.sparse import csc_matrix
  from scipy.io.harwell_boeing._fortran_format_parser import FortranFormatParser, IntFormat, ExpFormat
label_desc: Use image node_id 3 to create a new HBInfo object from inherited base classes: object with example: obj = HBInfo(title, key, total_nlines, pointer_nlines, indices_nlines, values_nlines, mxtype, nrows, ncols, nnon_zeros, pointer_format_str, indices_format_str, values_format_str, right_hand_sides_nlines, nelementals)