<s> """<STR_LIT>""" <EOL> from __future__ import absolute_import <EOL> from functools import partial <EOL> import re <EOL> from . . config import PATHS <EOL> from . . entity import Entity <EOL> from . . utils import suppress <EOL> PIXEL_PATTERN = re . compile ( r'<STR_LIT>' ) <EOL> OPERATOR_PATTERN = re . compile ( r'<STR_LIT>' ) <EOL> class Strategy ( Entity ) : <EOL> """<STR_LIT>""" <EOL> collection = '<STR_LIT>' <EOL> resource = '<STR_LIT>' <EOL> _relations = { <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> } <EOL> _aud_seg_ops = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _freq_int = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _freq_type = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _goal_type = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' } , <EOL> '<STR_LIT>' ) <EOL> _media_type = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _pac_int = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _pac_type = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _site_selec = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _supply_type = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _type = Entity . _enum ( { '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' } , '<STR_LIT>' ) <EOL> _pull = { <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : float , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : float , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : Entity . _strpt , <EOL> '<STR_LIT:description>' : None , <EOL> '<STR_LIT>' : float , <EOL> '<STR_LIT>' : Entity . _strpt , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : float , <EOL> '<STR_LIT:id>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : float , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT:name>' : None , <EOL> '<STR_LIT>' : float , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : float , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : Entity . _strpt , <EOL> '<STR_LIT:status>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT:type>' : None , <EOL> '<STR_LIT>' : Entity . _strpt , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT>' : Entity . _int_to_bool , <EOL> '<STR_LIT:version>' : int , <EOL> '<STR_LIT>' : None , <EOL> } <EOL> _push = _pull . copy ( ) <EOL> _push . update ( { <EOL> '<STR_LIT>' : _aud_seg_ops , <EOL> '<STR_LIT>' : _aud_seg_ops , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : partial ( Entity . _strft , null_on_none = True ) , <EOL> '<STR_LIT>' : _freq_int , <EOL> '<STR_LIT>' : _freq_type , <EOL> '<STR_LIT>' : _goal_type , <EOL> '<STR_LIT>' : _media_type , <EOL> '<STR_LIT>' : _pac_int , <EOL> '<STR_LIT>' : _pac_type , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : _site_selec , <EOL> '<STR_LIT>' : partial ( Entity . _strft , null_on_none = True ) , <EOL> '<STR_LIT:status>' : int , <EOL> '<STR_LIT>' : _supply_type , <EOL> '<STR_LIT:type>' : _type , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> '<STR_LIT>' : int , <EOL> } ) <EOL> _readonly = Entity . _readonly | { '<STR_LIT>' , '<STR_LIT>' } <EOL> def __init__ ( self , session , properties = None , ** kwargs ) : <EOL> super ( Strategy , self ) . __init__ ( session , properties , ** kwargs ) <EOL> try : <EOL> self . pixel_target_expr <EOL> except AttributeError : <EOL> self . pixel_target_expr = '<STR_LIT>' <EOL> self . _deserialize_target_expr ( ) <EOL> def _deserialize_target_expr ( self ) : <EOL> """<STR_LIT>""" <EOL> if '<STR_LIT>' in self . pixel_target_expr : <EOL> include_string , exclude_string = self . pixel_target_expr . split ( '<STR_LIT>' ) <EOL> elif '<STR_LIT>' in self . pixel_target_expr : <EOL> include_string , exclude_string = self . pixel_target_expr . split ( '<STR_LIT>' ) <EOL> elif self . pixel_target_expr : <EOL> include_string = self . pixel_target_expr <EOL> exclude_string = '<STR_LIT>' <EOL> else : <EOL> include_string = '<STR_LIT>' <EOL> exclude_string = '<STR_LIT>' <EOL> include_operator = OPERATOR_PATTERN . search ( include_string ) <EOL> exclude_operator = OPERATOR_PATTERN . search ( exclude_string ) <EOL> if include_operator : <EOL> include_operator = include_operator . group ( <NUM_LIT:0> ) <EOL> if exclude_operator : <EOL> exclude_operator = exclude_operator . group ( <NUM_LIT:0> ) <EOL> self . pixel_target_expr = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ int ( pix ) for pix in PIXEL_PATTERN . findall ( include_string ) ] , <EOL> '<STR_LIT>' : include_operator , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ int ( pix ) for pix in PIXEL_PATTERN . findall ( exclude_string ) ] , <EOL> '<STR_LIT>' : exclude_operator , <EOL> } , <EOL> } <EOL> def save_supplies ( self , data ) : <EOL> url = self . _construct_url ( addl = [ '<STR_LIT>' , ] ) <EOL> entity , _ = super ( Strategy , self ) . _post ( PATHS [ '<STR_LIT>' ] , url , data ) <EOL> self . _update_self ( next ( entity ) ) <EOL> self . _deserialize_target_expr ( ) <EOL> if '<STR_LIT>' in self . properties : <EOL> del self . properties [ '<STR_LIT>' ] <EOL> def save_domains ( self , data ) : <EOL> url = self . _construct_url ( addl = [ '<STR_LIT>' , ] ) <EOL> with suppress ( AttributeError ) : <EOL> entity , _ = super ( Strategy , self ) . _post ( PATHS [ '<STR_LIT>' ] , url , data ) <EOL> def save_audience_segments ( self , data ) : <EOL> url = self . _construct_url ( addl = [ '<STR_LIT>' , ] ) <EOL> entity , _ = super ( Strategy , self ) . _post ( PATHS [ '<STR_LIT>' ] , url , data ) <EOL> def _serialize_target_expr ( self ) : <EOL> """<STR_LIT>""" <EOL> include_bool = '<STR_LIT>' . format ( self . pixel_target_expr [ '<STR_LIT>' ] [ '<STR_LIT>' ] or '<STR_LIT>' ) <EOL> include_pixels = self . pixel_target_expr [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> exclude_bool = '<STR_LIT>' . format ( self . pixel_target_expr [ '<STR_LIT>' ] [ '<STR_LIT>' ] or '<STR_LIT>' ) <EOL> exclude_pixels = self . pixel_target_expr [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> include_string = '<STR_LIT>' . format ( include_bool . join ( <EOL> str ( pix ) for pix in include_pixels ) ) if include_pixels else '<STR_LIT>' <EOL> exclude_string = '<STR_LIT>' . format ( exclude_bool . join ( <EOL> str ( pix ) for pix in exclude_pixels ) ) if exclude_pixels else '<STR_LIT>' <EOL> if include_string and exclude_string : <EOL> return '<STR_LIT>' . format ( include_string , exclude_string ) <EOL> else : <EOL> return include_string + exclude_string <EOL> def save ( self , data = None , url = None ) : <EOL> if data is None : <EOL> data = self . properties . copy ( ) <EOL> data [ '<STR_LIT>' ] = self . _serialize_target_expr ( ) <EOL> if getattr ( self , '<STR_LIT>' , False ) and '<STR_LIT>' in data : <EOL> self . properties . pop ( '<STR_LIT>' , None ) <EOL> data [ '<STR_LIT>' ] = None <EOL> if getattr ( self , '<STR_LIT>' , False ) and '<STR_LIT>' in data : <EOL> self . properties . pop ( '<STR_LIT>' , None ) <EOL> data [ '<STR_LIT>' ] = None <EOL> super ( Strategy , self ) . save ( data = data , url = url ) <EOL> self . _deserialize_target_expr ( ) <EOL> @ property <EOL> def pixel_target_expr_string ( self ) : <EOL> """<STR_LIT>""" <EOL> return self . _serialize_target_expr ( ) </s>
