#NEWLINE# def __init__( self , iterable = None , flags = 0 ) : #NEWLINE# #INDENT# '\n        Constructor.\n\n        :param iterable: (optional) an iterable containing IP addresses and\n            subnets.\n\n        :param flags: decides which rules are applied to the interpretation\n            of the addr value. See the netaddr.core namespace documentation\n            for supported constant values.\n\n        ' #NEWLINE# if isinstance ( iterable , IPNetwork ) : #NEWLINE# #INDENT# self . _cidrs = { #NEWLINE# #INDENT# iterable . cidr : True , #NEWLINE# #UNINDENT# } #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if isinstance ( iterable , IPRange ) : #NEWLINE# #INDENT# self . _cidrs = dict . fromkeys ( iprange_to_cidrs ( iterable [ 0 ] , iterable [ ( - 1 ) ] ) , True ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if isinstance ( iterable , IPSet ) : #NEWLINE# #INDENT# self . _cidrs = dict . fromkeys ( iterable . iter_cidrs ( ) , True ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# self . _cidrs = { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } #NEWLINE# if ( iterable is not None ) : #NEWLINE# #INDENT# mergeable = [ ] #NEWLINE# for addr in iterable : #NEWLINE# #INDENT# if isinstance ( addr , _int_type ) : #NEWLINE# #INDENT# addr = IPAddress ( addr , flags = flags ) #NEWLINE# #UNINDENT# mergeable . append ( addr ) #NEWLINE# #UNINDENT# for cidr in cidr_merge ( mergeable ) : #NEWLINE# #INDENT# self . _cidrs [ cidr ] = True