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: Segment list of potential IOC values into smaller set(s)
  
  Batch query to dynamodb supports up to 100 items.
  
  Args:
      potential_iocs (list<str>): A list of potential IOC values
  
  Yields:
      set: Subset of total potential IOC values
docstr_tok: ["Segment","list","of","potential","IOC","values","into","smaller","set","(","s",")","Batch","query","to","dynamodb","supports","up","to","100","items",".","Args",":","potential_iocs","(","list","<","str",">",")",":","A","list","of","potential","IOC","values","Yields",":","set",":","Subset","of","total","potential","IOC","values"]
code: def _segment(cls, potential_iocs):
      """Segment list of potential IOC values into smaller set(s)
  
      Batch query to dynamodb supports up to 100 items.
  
      Args:
          potential_iocs (list<str>): A list of potential IOC values
  
      Yields:
          set: Subset of total potential IOC values
      """
      end = len(potential_iocs)
      for index in range(0, end, cls.MAX_QUERY_CNT):
          yield set(
              potential_iocs[
                  index : min(index + cls.MAX_QUERY_CNT, end)
              ]
          )
  
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 7 for calling the ThreatIntel obj's underlying member method code with example usage: obj._segment(cls, potential_iocs) without return types