class_docstr: FeatureGroup definition.
  
  This class instantiates a FeatureGroup object that comprises of a name for the FeatureGroup,
  session instance, and a list of feature definition objects i.e., FeatureDefinition.
  
  Attributes:
      name (str): name of the FeatureGroup instance.
      sagemaker_session (Session): session instance to perform boto calls.
          If None, a new Session will be created.
      feature_definitions (Sequence[FeatureDefinition]): list of FeatureDefinitions.
class_docstr_tok: ["FeatureGroup","definition",".","This","class","instantiates","a","FeatureGroup","object","that","comprises","of","a","name","for","the","FeatureGroup",",","session","instance",",","and","a","list","of","feature","definition","objects","i.e.",",","FeatureDefinition",".","Attributes",":","name","(","str",")",":","name","of","the","FeatureGroup","instance",".","sagemaker_session","(","Session",")",":","session","instance","to","perform","boto","calls",".","If","None",",","a","new","Session","will","be","created",".","feature_definitions","(","Sequence","[","FeatureDefinition","]",")",":","list","of","FeatureDefinitions","."]
docstr: Ingest the content of a pandas DataFrame to feature store.
  
  ``max_worker`` the number of threads created to work on different partitions of the
  ``data_frame`` in parallel.
  
  ``max_processes`` the number of processes will be created to work on different
  partitions of the ``data_frame`` in parallel, each with ``max_worker`` threads.
  
  The ingest function attempts to ingest all records in the data frame. SageMaker
  Feature Store throws an exception if it fails to ingest any records.
  
  If ``wait`` is ``True``, Feature Store runs the ``ingest`` function synchronously.
  You receive an ``IngestionError`` if there are any records that can't be ingested.
  If ``wait`` is ``False``, Feature Store runs the ``ingest`` function asynchronously.
  
  Instead of setting ``wait`` to ``True`` in the ``ingest`` function, you can invoke
  the ``wait`` function on the returned instance of ``IngestionManagerPandas`` to run
  the ``ingest`` function synchronously.
  
  To access the rows that failed to ingest, set ``wait`` to ``False``. The
  ``IngestionError.failed_rows`` object saves all of the rows that failed to ingest.
  
  `profile_name` argument is an optional one. It will use the default credential if None is
  passed. This `profile_name` is used in the sagemaker_featurestore_runtime client only. See
  https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html for more
  about the default credential.
  
  Args:
      data_frame (DataFrame): data_frame to be ingested to feature store.
      max_workers (int): number of threads to be created.
      max_processes (int): number of processes to be created. Each process spawns
          ``max_worker`` number of threads.
      wait (bool): whether to wait for the ingestion to finish or not.
      timeout (Union[int, float]): ``concurrent.futures.TimeoutError`` will be raised
          if timeout is reached.
      profile_name (str): the profile credential should be used for ``PutRecord``
          (default: None).
  
  Returns:
      An instance of IngestionManagerPandas.
docstr_tok: ["Ingest","the","content","of","a","pandas","DataFrame","to","feature","store",".","``","max_worker","``","the","number","of","threads","created","to","work","on","different","partitions","of","the","``","data_frame","``","in","parallel",".","``","max_processes","``","the","number","of","processes","will","be","created","to","work","on","different","partitions","of","the","``","data_frame","``","in","parallel",",","each","with","``","max_worker","``","threads",".","The","ingest","function","attempts","to","ingest","all","records","in","the","data","frame",".","SageMaker","Feature","Store","throws","an","exception","if","it","fails","to","ingest","any","records",".","If","``","wait","``","is","``","True","``",",","Feature","Store","runs","the","``","ingest","``","function","synchronously",".","You","receive","an","``","IngestionError","``","if","there","are","any","records","that","ca","n't","be","ingested",".","If","``","wait","``","is","``","False","``",",","Feature","Store","runs","the","``","ingest","``","function","asynchronously",".","Instead","of","setting","``","wait","``","to","``","True","``","in","the","``","ingest","``","function",",","you","can","invoke","the","``","wait","``","function","on","the","returned","instance","of","``","IngestionManagerPandas","``","to","run","the","``","ingest","``","function","synchronously",".","To","access","the","rows","that","failed","to","ingest",",","set","``","wait","``","to","``","False","``",".","The","``","IngestionError.failed_rows","``","object","saves","all","of","the","rows","that","failed","to","ingest",".","`","profile_name","`","argument","is","an","optional","one",".","It","will","use","the","default","credential","if","None","is","passed",".","This","`","profile_name","`","is","used","in","the","sagemaker_featurestore_runtime","client","only",".","See","https",":","\/\/boto3.amazonaws.com\/v1\/documentation\/api\/latest\/guide\/credentials.html","for","more","about","the","default","credential",".","Args",":","data_frame","(","DataFrame",")",":","data_frame","to","be","ingested","to","feature","store",".","max_workers","(","int",")",":","number","of","threads","to","be","created",".","max_processes","(","int",")",":","number","of","processes","to","be","created",".","Each","process","spawns","``","max_worker","``","number","of","threads",".","wait","(","bool",")",":","whether","to","wait","for","the","ingestion","to","finish","or","not",".","timeout","(","Union","[","int",",","float","]",")",":","``","concurrent.futures.TimeoutError","``","will","be","raised","if","timeout","is","reached",".","profile_name","(","str",")",":","the","profile","credential","should","be","used","for","``","PutRecord","``","(","default",":","None",")",".","Returns",":","An","instance","of","IngestionManagerPandas","."]
code: def ingest(
      self,
      data_frame: DataFrame,
      max_workers: int = 1,
      max_processes: int = 1,
      wait: bool = True,
      timeout: Union[int, float] = None,
      profile_name: str = None,
  ) -> IngestionManagerPandas:
      """Ingest the content of a pandas DataFrame to feature store.
  
      ``max_worker`` the number of threads created to work on different partitions of the
      ``data_frame`` in parallel.
  
      ``max_processes`` the number of processes will be created to work on different
      partitions of the ``data_frame`` in parallel, each with ``max_worker`` threads.
  
      The ingest function attempts to ingest all records in the data frame. SageMaker
      Feature Store throws an exception if it fails to ingest any records.
  
      If ``wait`` is ``True``, Feature Store runs the ``ingest`` function synchronously.
      You receive an ``IngestionError`` if there are any records that can't be ingested.
      If ``wait`` is ``False``, Feature Store runs the ``ingest`` function asynchronously.
  
      Instead of setting ``wait`` to ``True`` in the ``ingest`` function, you can invoke
      the ``wait`` function on the returned instance of ``IngestionManagerPandas`` to run
      the ``ingest`` function synchronously.
  
      To access the rows that failed to ingest, set ``wait`` to ``False``. The
      ``IngestionError.failed_rows`` object saves all of the rows that failed to ingest.
  
      `profile_name` argument is an optional one. It will use the default credential if None is
      passed. This `profile_name` is used in the sagemaker_featurestore_runtime client only. See
      https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html for more
      about the default credential.
  
      Args:
          data_frame (DataFrame): data_frame to be ingested to feature store.
          max_workers (int): number of threads to be created.
          max_processes (int): number of processes to be created. Each process spawns
              ``max_worker`` number of threads.
          wait (bool): whether to wait for the ingestion to finish or not.
          timeout (Union[int, float]): ``concurrent.futures.TimeoutError`` will be raised
              if timeout is reached.
          profile_name (str): the profile credential should be used for ``PutRecord``
              (default: None).
  
      Returns:
          An instance of IngestionManagerPandas.
      """
      if max_processes <= 0:
          raise RuntimeError("max_processes must be greater than 0.")
  
      if max_workers <= 0:
          raise RuntimeError("max_workers must be greater than 0.")
  
      if (
          profile_name is None
          and self.sagemaker_session.boto_session.profile_name
          != "default"
      ):
          profile_name = (
              self.sagemaker_session.boto_session.profile_name
          )
  
      manager = IngestionManagerPandas(
          feature_group_name=self.name,
          sagemaker_session=self.sagemaker_session,
          sagemaker_fs_runtime_client_config=self.sagemaker_session.sagemaker_featurestore_runtime_client.meta.config,
          max_workers=max_workers,
          max_processes=max_processes,
          profile_name=profile_name,
      )
  
      manager.run(data_frame=data_frame, wait=wait, timeout=timeout)
  
      return manager
  
imports: from __future__ import absolute_import
  import copy
  import logging
  import math
  import os
  import tempfile
  from concurrent.futures import as_completed
  from concurrent.futures import ThreadPoolExecutor
  from typing import Optional, Sequence, List, Dict, Any, Union
  from urllib.parse import urlparse
  from multiprocessing.pool import AsyncResult
  import signal
  import attr
  import pandas
  from pandas import DataFrame
  import boto3
  from botocore.config import Config
  from pathos.multiprocessing import ProcessingPool
  from sagemaker.config import FEATURE_GROUP_ROLE_ARN_PATH, FEATURE_GROUP_OFFLINE_STORE_KMS_KEY_ID_PATH, FEATURE_GROUP_ONLINE_STORE_KMS_KEY_ID_PATH
  from sagemaker.session import Session
  from sagemaker.feature_store.feature_definition import FeatureDefinition, FeatureTypeEnum
  from sagemaker.feature_store.inputs import OnlineStoreConfig, OnlineStoreSecurityConfig, S3StorageConfig, OfflineStoreConfig, DataCatalogConfig, FeatureValue, FeatureParameter, TableFormatEnum, DeletionModeEnum, TtlDuration, OnlineStoreConfigUpdate, OnlineStoreStorageTypeEnum
  from sagemaker.utils import resolve_value_from_config, format_tags, Tags
label_desc: Use image node_id 13 for calling the FeatureGroup obj's underlying member method code with example usage: obj.ingest(data_frame, max_workers, max_processes, wait, timeout, profile_name) and returns: manager