class_docstr: This is for indexing(rows or columns)
  
  Read-only operations has higher priorities than others.
  So this class is designed in a **read-only** way to shared data for queries.
  Modifications will results in new Index.
  
  NOTE: the indexing has following flaws
  - duplicated index value is not well supported (only the first appearance will be considered)
  - The order of the index is not considered!!!! So the slicing will not behave like pandas when indexings are ordered
class_docstr_tok: ["This","is","for","indexing","(","rows","or","columns",")","Read-only","operations","has","higher","priorities","than","others",".","So","this","class","is","designed","in","a","*","*","read-only","*","*","way","to","shared","data","for","queries",".","Modifications","will","results","in","new","Index",".","NOTE",":","the","indexing","has","following","flaws","-","duplicated","index","value","is","not","well","supported","(","only","the","first","appearance","will","be","considered",")","-","The","order","of","the","index","is","not","considered","!","!","!","!","So","the","slicing","will","not","behave","like","pandas","when","indexings","are","ordered"]
code: def __init__(self, idx_list: Union[List, pd.Index, "Index", int]):
      self.idx_list: np.ndarray = None  # using array type for index list will make things easier
      if isinstance(idx_list, Index):
          # Fast read-only copy
          self.idx_list = idx_list.idx_list
          self.index_map = idx_list.index_map
          self._is_sorted = idx_list._is_sorted
      elif isinstance(idx_list, int):
          self.index_map = self.idx_list = np.arange(idx_list)
          self._is_sorted = True
      else:
          self.idx_list = np.array(idx_list)
          # NOTE: only the first appearance is indexed
          self.index_map = dict(zip(self.idx_list, range(len(self))))
          self._is_sorted = False
  
imports: from __future__ import annotations
  from typing import Dict, Tuple, Union, Callable, List
  import bisect
  import numpy
  import pandas
label_desc: Use image node_id 1 to create a new Index object  with example: obj = Index(idx_list)