class_docstr: Stores all actual data and typing information for an entityset
  
  Attributes:
      id
      dataframe_dict
      relationships
      time_type
  
  Properties:
      metadata
class_docstr_tok: ["Stores","all","actual","data","and","typing","information","for","an","entityset","Attributes",":","id","dataframe_dict","relationships","time_type","Properties",":","metadata"]
docstr: Creates EntitySet
  
  Args:
      id (str) : Unique identifier to associate with this instance
      dataframes (dict[str -> tuple(DataFrame, str, str, dict[str -> str/Woodwork.LogicalType], dict[str->str/set], boolean)]):
          Dictionary of DataFrames. Entries take the format
          {dataframe name -> (dataframe, index column, time_index, logical_types, semantic_tags, make_index)}.
          Note that only the dataframe is required. If a Woodwork DataFrame is supplied, any other parameters
          will be ignored.
      relationships (list[(str, str, str, str)]): List of relationships
          between dataframes. List items are a tuple with the format
          (parent dataframe name, parent column, child dataframe name, child column).
  
  Example:
  
      .. code-block:: python
  
          dataframes = {
              "cards" : (card_df, "id"),
              "transactions" : (transactions_df, "id", "transaction_time")
          }
  
          relationships = [("cards", "id", "transactions", "card_id")]
  
          ft.EntitySet("my-entity-set", dataframes, relationships)
docstr_tok: ["Creates","EntitySet","Args",":","id","(","str",")",":","Unique","identifier","to","associate","with","this","instance","dataframes","(","dict","[","str","-",">","tuple","(","DataFrame",",","str",",","str",",","dict","[","str","-",">","str\/Woodwork.LogicalType","]",",","dict","[","str-",">","str\/set","]",",","boolean",")","]",")",":","Dictionary","of","DataFrames",".","Entries","take","the","format","{","dataframe","name","-",">","(","dataframe",",","index","column",",","time_index",",","logical_types",",","semantic_tags",",","make_index",")","}",".","Note","that","only","the","dataframe","is","required",".","If","a","Woodwork","DataFrame","is","supplied",",","any","other","parameters","will","be","ignored",".","relationships","(","list","[","(","str",",","str",",","str",",","str",")","]",")",":","List","of","relationships","between","dataframes",".","List","items","are","a","tuple","with","the","format","(","parent","dataframe","name",",","parent","column",",","child","dataframe","name",",","child","column",")",".","Example",":","..","code-block",":",":","python","dataframes","=","{","``","cards","''",":","(","card_df",",","``","id","''",")",",","``","transactions","''",":","(","transactions_df",",","``","id","''",",","``","transaction_time","''",")","}","relationships","=","[","(","``","cards","''",",","``","id","''",",","``","transactions","''",",","``","card_id","''",")","]","ft.EntitySet","(","``","my-entity-set","''",",","dataframes",",","relationships",")"]
code: def __init__(self, id=None, dataframes=None, relationships=None):
      """Creates EntitySet
  
      Args:
          id (str) : Unique identifier to associate with this instance
          dataframes (dict[str -> tuple(DataFrame, str, str, dict[str -> str/Woodwork.LogicalType], dict[str->str/set], boolean)]):
              Dictionary of DataFrames. Entries take the format
              {dataframe name -> (dataframe, index column, time_index, logical_types, semantic_tags, make_index)}.
              Note that only the dataframe is required. If a Woodwork DataFrame is supplied, any other parameters
              will be ignored.
          relationships (list[(str, str, str, str)]): List of relationships
              between dataframes. List items are a tuple with the format
              (parent dataframe name, parent column, child dataframe name, child column).
  
      Example:
  
          .. code-block:: python
  
              dataframes = {
                  "cards" : (card_df, "id"),
                  "transactions" : (transactions_df, "id", "transaction_time")
              }
  
              relationships = [("cards", "id", "transactions", "card_id")]
  
              ft.EntitySet("my-entity-set", dataframes, relationships)
      """
      self.id = id
      self.dataframe_dict = {}
      self.relationships = []
      self.time_type = None
  
      dataframes = dataframes or {}
      relationships = relationships or []
      for df_name in dataframes:
          df = dataframes[df_name][0]
          if df.ww.schema is not None and df.ww.name != df_name:
              raise ValueError(
                  f"Naming conflict in dataframes dictionary: dictionary key '{df_name}' does not match dataframe name '{df.ww.name}'",
              )
  
          index_column = None
          time_index = None
          make_index = False
          semantic_tags = None
          logical_types = None
          if len(dataframes[df_name]) > 1:
              index_column = dataframes[df_name][1]
          if len(dataframes[df_name]) > 2:
              time_index = dataframes[df_name][2]
          if len(dataframes[df_name]) > 3:
              logical_types = dataframes[df_name][3]
          if len(dataframes[df_name]) > 4:
              semantic_tags = dataframes[df_name][4]
          if len(dataframes[df_name]) > 5:
              make_index = dataframes[df_name][5]
          self.add_dataframe(
              dataframe_name=df_name,
              dataframe=df,
              index=index_column,
              time_index=time_index,
              logical_types=logical_types,
              semantic_tags=semantic_tags,
              make_index=make_index,
          )
  
      for relationship in relationships:
          (
              parent_df,
              parent_column,
              child_df,
              child_column,
          ) = relationship
          self.add_relationship(
              parent_df, parent_column, child_df, child_column
          )
  
      self.reset_data_description()
      _ES_REF[self.id] = self
  
imports: import copy
  import logging
  import warnings
  from collections import defaultdict
  import numpy
  import pandas
  from woodwork import init_series
  from woodwork.logical_types import Datetime, LatLong
  from featuretools.entityset import deserialize, serialize
  from featuretools.entityset.relationship import Relationship, RelationshipPath
  from featuretools.feature_base.feature_base import _ES_REF
  from featuretools.utils.gen_utils import Library, import_or_none, is_instance
  from featuretools.utils.plot_utils import check_graphviz, get_graphviz_format, save_graph
  from featuretools.utils.wrangle import _check_timedelta
label_desc: Use image node_id 1 to create a new EntitySet object from inherited base classes: object with example: obj = EntitySet(id, dataframes, relationships)