class_docstr: Load threat intelligence data from DynamoDB and perform IOC detection
class_docstr_tok: ["Load","threat","intelligence","data","from","DynamoDB","and","perform","IOC","detection"]
docstr: Convert dynamodb data types to python data types
  
  Types conversion between DynamoDB and Python.
  Reference link: http://boto3.readthedocs.io/en/latest/_modules/boto3/dynamodb/types.html
      DynamoDB                                Python
      --------                                ------
      {'NULL': True}                          None
      {'BOOL': True/False}                    True/False
      {'N': str(value)}                       Decimal(str(value))
      {'S': string}                           string
      {'B': bytes}                            Binary(bytes)
      {'NS': [str(value)]}                    set([Decimal(str(value))])
      {'SS': [string]}                        set([string])
      {'BS': [bytes]}                         set([bytes])
      {'L': list}                             list
      {'M': dict}                             dict
  
  Args:
      dynamodb_data (list): Contains IOC info with DynamoDB types
  
  Yields:
      dict: Dictionaries containing ioc_value and ioc_type
docstr_tok: ["Convert","dynamodb","data","types","to","python","data","types","Types","conversion","between","DynamoDB","and","Python",".","Reference","link",":","http",":","\/\/boto3.readthedocs.io\/en\/latest\/_modules\/boto3\/dynamodb\/types.html","DynamoDB","Python","--","--","--","--","--","--","--","{","'NULL","'",":","True","}","None","{","'BOOL","'",":","True\/False","}","True\/False","{","'N","'",":","str","(","value",")","}","Decimal","(","str","(","value",")",")","{","'S","'",":","string","}","string","{","'","B","'",":","bytes","}","Binary","(","bytes",")","{","'NS","'",":","[","str","(","value",")","]","}","set","(","[","Decimal","(","str","(","value",")",")","]",")","{","'SS","'",":","[","string","]","}","set","(","[","string","]",")","{","'BS","'",":","[","bytes","]","}","set","(","[","bytes","]",")","{","'","L","'",":","list","}","list","{","'M","'",":","dict","}","dict","Args",":","dynamodb_data","(","list",")",":","Contains","IOC","info","with","DynamoDB","types","Yields",":","dict",":","Dictionaries","containing","ioc_value","and","ioc_type"]
code: def _deserialize(cls, dynamodb_data):
      """Convert dynamodb data types to python data types
  
      Types conversion between DynamoDB and Python.
      Reference link: http://boto3.readthedocs.io/en/latest/_modules/boto3/dynamodb/types.html
          DynamoDB                                Python
          --------                                ------
          {'NULL': True}                          None
          {'BOOL': True/False}                    True/False
          {'N': str(value)}                       Decimal(str(value))
          {'S': string}                           string
          {'B': bytes}                            Binary(bytes)
          {'NS': [str(value)]}                    set([Decimal(str(value))])
          {'SS': [string]}                        set([string])
          {'BS': [bytes]}                         set([bytes])
          {'L': list}                             list
          {'M': dict}                             dict
  
      Args:
          dynamodb_data (list): Contains IOC info with DynamoDB types
  
      Yields:
          dict: Dictionaries containing ioc_value and ioc_type
      """
      if not dynamodb_data:
          return
  
      for raw_data in dynamodb_data:
          yield {
              key: cls._deserializer.deserialize(val)
              for key, val in raw_data.items()
          }
  
imports: from collections import defaultdict
  from os import environ
  import backoff
  import boto3
  from boto3.dynamodb.types import TypeDeserializer
  from botocore.exceptions import ClientError, ParamValidationError
  from netaddr import IPNetwork
  from streamalert.shared.backoff_handlers import backoff_handler, success_handler, giveup_handler
  from streamalert.shared.logger import get_logger
  from streamalert.shared.normalize import Normalizer
  from streamalert.shared.utils import in_network, valid_ip
label_desc: Use image node_id 10 for calling the ThreatIntel obj's underlying member method code with example usage: obj._deserialize(cls, dynamodb_data) without return types