docstr: data: a nested dictionary:
      knowledge_date -> lookup_date ->
        {add: [symbol list], 'delete': []}, delete: [symbol list]}
  current_date_func: function taking no parameters, returning
      current datetime
docstr_tok: ["data",":","a","nested","dictionary",":","knowledge_date","-",">","lookup_date","-",">","{","add",":","[","symbol","list","]",",","'delete","'",":","[","]","}",",","delete",":","[","symbol","list","]","}","current_date_func",":","function","taking","no","parameters",",","returning","current","datetime"]
code: def __init__(self, data, current_date_func, asset_finder):
      """
      data: a nested dictionary:
          knowledge_date -> lookup_date ->
            {add: [symbol list], 'delete': []}, delete: [symbol list]}
      current_date_func: function taking no parameters, returning
          current datetime
      """
      self.data = data
      self._cache = {}
      self._knowledge_dates = self.make_knowledge_dates(self.data)
      self.current_date = current_date_func
      self.count = 0
      self._current_set = set()
      self.asset_finder = asset_finder
  
imports: import warnings
  from datetime import datetime
  from os import listdir
  import os.path
  import pandas
  import pytz
  import zipline
  from zipline.errors import SymbolNotFound
  from zipline.finance.asset_restrictions import SecurityListRestrictions
  from zipline.zipline_warnings import ZiplineDeprecationWarning
label_desc: Use image node_id 1 to create a new SecurityList object from inherited base classes: object with example: obj = SecurityList(data, current_date_func, asset_finder)