class_docstr: Database for `OperationsCache` class.
  Includes low-level idea of caching pipeline nodes using relational database.
  
  :param cache_dir: path to the place where cache files should be stored.
class_docstr_tok: ["Database","for","`","OperationsCache","`","class",".","Includes","low-level","idea","of","caching","pipeline","nodes","using","relational","database",".",":","param","cache_dir",":","path","to","the","place","where","cache","files","should","be","stored","."]
docstr: Maps given uids to scores from DB and puts None if is not present.
  
  :param uids: list of operations uids to be mapped
  
  :return retrieved: list of operations taken from DB table with None where it wasn't present
docstr_tok: ["Maps","given","uids","to","scores","from","DB","and","puts","None","if","is","not","present",".",":","param","uids",":","list","of","operations","uids","to","be","mapped",":","return","retrieved",":","list","of","operations","taken","from","DB","table","with","None","where","it","was","n't","present"]
code: def get_operations(
      self, uids: List[str]
  ) -> List[Optional["IOperation"]]:
      """
      Maps given uids to scores from DB and puts None if is not present.
  
      :param uids: list of operations uids to be mapped
  
      :return retrieved: list of operations taken from DB table with None where it wasn't present
      """
      with closing(sqlite3.connect(self.db_path)) as conn:
          with conn:
              cur = conn.cursor()
              tmp_name = self._create_temp_for_ordered_select(cur, uids)
              cur.execute(
                  (
                      f"SELECT operation FROM {tmp_name} "
                      f"LEFT JOIN {self._main_table} ON {self._main_table}.id = {tmp_name}.id2 "
                      f"ORDER BY {tmp_name}.id1;"
                  )
              )
              retrieved = cur.fetchall()
              if self.use_stats:
                  non_null = [x for (x,) in retrieved if x is not None]
                  self._inc_eff(cur, "nodes_hit", len(non_null))
                  if len(non_null) == len(uids):
                      self._inc_eff(cur, "pipelines_hit")
                  self._inc_eff(cur, "nodes_total", len(uids))
                  self._inc_eff(cur, "pipelines_total")
              retrieved = [
                  pickle.loads(x) if x is not None else None
                  for (x,) in retrieved
              ]
              return retrieved
  
file_path: FEDOT/fedot/core/caching/pipelines_cache_db.py
imports: import pickle
  import sqlite3
  from contextlib import closing
  from os import getpid
  from typing import List, Optional, Tuple, TypeVar
  from fedot.core.caching.base_cache_db import BaseCacheDB
  from fedot.core.operations.operation import Operation
label_desc: Use image node_id 3 for calling the OperationsCacheDB obj's underlying member method code with example usage: obj.get_operations(uids) and returns: retrieved