<s> """<STR_LIT>""" <EOL> from copy import deepcopy <EOL> from pprint import pformat <EOL> class DocumentError ( ValueError ) : <EOL> """<STR_LIT>""" <EOL> def __init__ ( self , errors ) : <EOL> """<STR_LIT>""" <EOL> self . errors = errors <EOL> message = "<STR_LIT>" <EOL> message += pformat ( errors ) <EOL> self . errors = errors <EOL> super ( DocumentError , self ) . __init__ ( message ) <EOL> layout_types = { <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> } <EOL> """<STR_LIT>""" <EOL> def icon_name_to_path ( name ) : <EOL> """<STR_LIT>""" <EOL> return '<STR_LIT>' + name <EOL> icons = { icon_name_to_path ( icon ) for icon in { <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> } } <EOL> """<STR_LIT>""" <EOL> basic_layout = { <EOL> '<STR_LIT:type>' : { '<STR_LIT>' : True , '<STR_LIT:type>' : '<STR_LIT:string>' , '<STR_LIT>' : layout_types } , <EOL> '<STR_LIT:type>' : { '<STR_LIT>' : True , '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT:title>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT:body>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' , '<STR_LIT>' : icons } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' , '<STR_LIT>' : icons } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' , '<STR_LIT>' : icons } , <EOL> } <EOL> extended_layout = deepcopy ( basic_layout ) <EOL> extended_layout . update ( { <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:list>' , '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:list>' , '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> } ) <EOL> generic_layout = deepcopy ( extended_layout ) <EOL> generic_layout [ '<STR_LIT:type>' ] [ '<STR_LIT>' ] = [ '<STR_LIT>' ] <EOL> generic_layout [ '<STR_LIT:title>' ] [ '<STR_LIT>' ] = True <EOL> generic_layout [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> calendar_layout = deepcopy ( extended_layout ) <EOL> calendar_layout [ '<STR_LIT:type>' ] [ '<STR_LIT>' ] = [ '<STR_LIT>' ] <EOL> calendar_layout [ '<STR_LIT:title>' ] [ '<STR_LIT>' ] = True <EOL> calendar_layout . update ( { <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } <EOL> } ) <EOL> sports_layout = deepcopy ( extended_layout ) <EOL> sports_layout [ '<STR_LIT:type>' ] [ '<STR_LIT>' ] = [ '<STR_LIT>' ] <EOL> sports_layout [ '<STR_LIT:title>' ] [ '<STR_LIT>' ] = True <EOL> sports_layout [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> sports_layout [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> sports_layout . update ( { <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' , '<STR_LIT>' : ( '<STR_LIT>' , '<STR_LIT>' ) } , <EOL> } ) <EOL> weather_layout = deepcopy ( extended_layout ) <EOL> weather_layout [ '<STR_LIT:type>' ] [ '<STR_LIT>' ] = [ '<STR_LIT>' ] <EOL> weather_layout [ '<STR_LIT:title>' ] [ '<STR_LIT>' ] = True <EOL> weather_layout [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> weather_layout [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> weather_layout . update ( { <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } <EOL> } ) <EOL> generic_reminder_layout = deepcopy ( basic_layout ) <EOL> generic_reminder_layout [ '<STR_LIT:type>' ] [ '<STR_LIT>' ] = [ '<STR_LIT>' ] <EOL> generic_reminder_layout [ '<STR_LIT:title>' ] [ '<STR_LIT>' ] = True <EOL> generic_reminder_layout [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> generic_reminder_layout . update ( { <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } <EOL> } ) <EOL> generic_notification_layout = deepcopy ( basic_layout ) <EOL> generic_notification_layout [ '<STR_LIT:type>' ] [ '<STR_LIT>' ] = [ '<STR_LIT>' ] <EOL> generic_notification_layout [ '<STR_LIT:title>' ] [ '<STR_LIT>' ] = True <EOL> generic_notification_layout [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> layouts = [ generic_notification_layout , generic_layout , calendar_layout , sports_layout , <EOL> weather_layout , generic_reminder_layout ] <EOL> notification = { <EOL> '<STR_LIT>' : { '<STR_LIT>' : True , '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ { '<STR_LIT>' : l } for l in layouts ] <EOL> } , <EOL> '<STR_LIT:time>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } <EOL> } <EOL> create_notification = notification <EOL> update_notification = deepcopy ( notification ) <EOL> update_notification [ '<STR_LIT:time>' ] [ '<STR_LIT>' ] = True <EOL> reminder = { <EOL> '<STR_LIT:time>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : [ { '<STR_LIT>' : l } for l in layouts ] } , <EOL> } <EOL> action = { <EOL> '<STR_LIT:title>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT:type>' : { '<STR_LIT:type>' : '<STR_LIT:string>' , '<STR_LIT>' : [ '<STR_LIT>' ] } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } <EOL> } <EOL> pin = { <EOL> '<STR_LIT:id>' : { '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT:time>' : { '<STR_LIT>' : True , '<STR_LIT:type>' : '<STR_LIT:string>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : create_notification } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : update_notification } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : [ { '<STR_LIT>' : l } for l in layouts ] , <EOL> } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:list>' , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : reminder } <EOL> } , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:list>' , '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : action } <EOL> } , <EOL> } </s>
