docstr: Dtype description as a tuple ``(kind, bit-width, format string, endianness)``.
  
  Bit-width : the number of bits as an integer
  Format string : data type description format string in Apache Arrow C
                  Data Interface format.
  Endianness : current only native endianness (``=``) is supported
  
  Notes:
      - Kind specifiers are aligned with DLPack where possible (hence the
        jump to 20, leave enough room for future extension)
      - Masks must be specified as boolean with either bit width 1 (for bit
        masks) or 8 (for byte masks).
      - Dtype width in bits was preferred over bytes
      - Endianness isn't too useful, but included now in case in the future
        we need to support non-native endianness
      - Went with Apache Arrow format strings over NumPy format strings
        because they're more complete from a dataframe perspective
      - Format strings are mostly useful for datetime specification, and
        for categoricals.
      - For categoricals, the format string describes the type of the
        categorical in the data buffer. In case of a separate encoding of
        the categorical (e.g. an integer to string mapping), this can
        be derived from ``self.describe_categorical``.
      - Data types not included: complex, Arrow-style null, binary, decimal,
        and nested (list, struct, map, union) dtypes.
docstr_tok: ["Dtype","description","as","a","tuple","``","(","kind",",","bit-width",",","format","string",",","endianness",")","``",".","Bit-width",":","the","number","of","bits","as","an","integer","Format","string",":","data","type","description","format","string","in","Apache","Arrow","C","Data","Interface","format",".","Endianness",":","current","only","native","endianness","(","``","=","``",")","is","supported","Notes",":","-","Kind","specifiers","are","aligned","with","DLPack","where","possible","(","hence","the","jump","to","20",",","leave","enough","room","for","future","extension",")","-","Masks","must","be","specified","as","boolean","with","either","bit","width","1","(","for","bit","masks",")","or","8","(","for","byte","masks",")",".","-","Dtype","width","in","bits","was","preferred","over","bytes","-","Endianness","is","n't","too","useful",",","but","included","now","in","case","in","the","future","we","need","to","support","non-native","endianness","-","Went","with","Apache","Arrow","format","strings","over","NumPy","format","strings","because","they","'re","more","complete","from","a","dataframe","perspective","-","Format","strings","are","mostly","useful","for","datetime","specification",",","and","for","categoricals",".","-","For","categoricals",",","the","format","string","describes","the","type","of","the","categorical","in","the","data","buffer",".","In","case","of","a","separate","encoding","of","the","categorical","(","e.g",".","an","integer","to","string","mapping",")",",","this","can","be","derived","from","``","self.describe_categorical","``",".","-","Data","types","not","included",":","complex",",","Arrow-style","null",",","binary",",","decimal",",","and","nested","(","list",",","struct",",","map",",","union",")","dtypes","."]
code: def dtype(self) -> Dtype:
      """
      Dtype description as a tuple ``(kind, bit-width, format string, endianness)``.
  
      Bit-width : the number of bits as an integer
      Format string : data type description format string in Apache Arrow C
                      Data Interface format.
      Endianness : current only native endianness (``=``) is supported
  
      Notes:
          - Kind specifiers are aligned with DLPack where possible (hence the
            jump to 20, leave enough room for future extension)
          - Masks must be specified as boolean with either bit width 1 (for bit
            masks) or 8 (for byte masks).
          - Dtype width in bits was preferred over bytes
          - Endianness isn't too useful, but included now in case in the future
            we need to support non-native endianness
          - Went with Apache Arrow format strings over NumPy format strings
            because they're more complete from a dataframe perspective
          - Format strings are mostly useful for datetime specification, and
            for categoricals.
          - For categoricals, the format string describes the type of the
            categorical in the data buffer. In case of a separate encoding of
            the categorical (e.g. an integer to string mapping), this can
            be derived from ``self.describe_categorical``.
          - Data types not included: complex, Arrow-style null, binary, decimal,
            and nested (list, struct, map, union) dtypes.
      """
      pass
  
file_path: altair/altair/utils/_dfi_types.py
imports: import enum
  from typing import Any, Iterable, Optional, Tuple, Protocol
label_desc: Use image node_id 1 for calling the Column obj's underlying member method code with example usage: obj.dtype() without return types