code: def __init__(
      self,
      filename: str,
      page_size: int = 4096,
      order: int = 100,
      key_size: int = 8,
      value_size: int = 32,
      cache_size: int = 64,
      serializer: Optional[Serializer] = None,
  ):
      self._filename = filename
      self._tree_conf = TreeConf(
          page_size,
          order,
          key_size,
          value_size,
          serializer or IntSerializer(),
      )
      self._create_partials()
      self._mem = FileMemory(
          filename, self._tree_conf, cache_size=cache_size
      )
      try:
          metadata = self._mem.get_metadata()
      except ValueError:
          self._initialize_empty_tree()
      else:
          self._root_node_page, self._tree_conf = metadata
      self._is_open = True
  
imports: from functools import partial
  from logging import getLogger
  from typing import Optional, Union, Iterator, Iterable
  from .None import utils
  from .const import TreeConf
  from .entry import Record, Reference, OpaqueData
  from .memory import FileMemory
  from .node import Node, LonelyRootNode, RootNode, InternalNode, LeafNode, OverflowNode
  from .serializer import Serializer, IntSerializer
label_desc: Use image node_id 1 to create a new BPlusTree object  with example: obj = BPlusTree(filename, page_size, order, key_size, value_size, cache_size, serializer)