<s> """<STR_LIT>""" <EOL> import string <EOL> from exabgp . bgp . message . message import Message <EOL> def hexstring ( value ) : <EOL> def spaced ( value ) : <EOL> for v in value : <EOL> yield '<STR_LIT>' % ord ( v ) <EOL> return '<STR_LIT>' + '<STR_LIT>' . join ( spaced ( value ) ) <EOL> @ Message . register <EOL> class Notification ( Message ) : <EOL> ID = Message . CODE . NOTIFICATION <EOL> TYPE = chr ( Message . CODE . NOTIFICATION ) <EOL> _str_code = { <EOL> <NUM_LIT:1> : "<STR_LIT>" , <EOL> <NUM_LIT:2> : "<STR_LIT>" , <EOL> <NUM_LIT:3> : "<STR_LIT>" , <EOL> <NUM_LIT:4> : "<STR_LIT>" , <EOL> <NUM_LIT:5> : "<STR_LIT>" , <EOL> <NUM_LIT:6> : "<STR_LIT>" <EOL> } <EOL> _str_subcode = { <EOL> ( <NUM_LIT:1> , <NUM_LIT:0> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:1> , <NUM_LIT:1> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:1> , <NUM_LIT:2> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:1> , <NUM_LIT:3> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:0> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:1> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:3> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:4> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:5> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:6> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:7> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:8> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:9> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:2> , <NUM_LIT:10> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:0> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:1> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:2> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:3> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:5> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:6> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:7> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:8> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:9> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:10> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:3> , <NUM_LIT:11> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:4> , <NUM_LIT:0> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:5> , <NUM_LIT:0> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:5> , <NUM_LIT:1> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:5> , <NUM_LIT:2> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:5> , <NUM_LIT:3> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:0> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:1> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:2> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:3> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:4> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:5> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:7> , <NUM_LIT:1> ) : "<STR_LIT>" , <EOL> ( <NUM_LIT:7> , <NUM_LIT:2> ) : "<STR_LIT>" , <EOL> } <EOL> def __init__ ( self , code , subcode , data = '<STR_LIT>' ) : <EOL> self . code = code <EOL> self . subcode = subcode <EOL> self . data = data if not len ( [ _ for _ in data if _ not in string . printable ] ) else hexstring ( data ) <EOL> def __str__ ( self ) : <EOL> return "<STR_LIT>" % ( <EOL> self . _str_code . get ( self . code , '<STR_LIT>' ) , <EOL> self . _str_subcode . get ( ( self . code , self . subcode ) , '<STR_LIT>' ) , <EOL> '<STR_LIT:%s>' % ( '<STR_LIT>' % self . data if self . data else '<STR_LIT>' ) <EOL> ) <EOL> @ classmethod <EOL> def unpack_message ( cls , data , negotiated = None ) : <EOL> return cls ( ord ( data [ <NUM_LIT:0> ] ) , ord ( data [ <NUM_LIT:1> ] ) , data [ <NUM_LIT:2> : ] ) <EOL> @ Message . notify <EOL> class Notify ( Notification ) : <EOL> def __init__ ( self , code , subcode , data = None ) : <EOL> if data is None : <EOL> data = self . _str_subcode . get ( ( code , subcode ) , '<STR_LIT>' ) <EOL> Notification . __init__ ( self , code , subcode , data ) <EOL> def message ( self , negotiated = None ) : <EOL> return self . _message ( "<STR_LIT>" % ( <EOL> chr ( self . code ) , <EOL> chr ( self . subcode ) , <EOL> self . data <EOL> ) ) </s>
