"""DDEX RDR 1.3 generation module.""" from lxml import etree from lxml.objectify import ElementMaker from datetime import datetime, timezone def generate_rdr(transformed_metadata): """Generate ddex rdr 1.3.""" E = ElementMaker(annotate=False, nsmap={ None: 'http://ddex.net/xml/mlc/131', 'xsi': 'http://www.w3.org/2001/XMLSchema-instance', 'xsd': 'http://www.w3.org/2001/XMLSchema'}) root_attribs = { 'LanguageAndScriptCode': 'en', 'BusinessProfileVersionId': 'SCPP_BusinessProfileVersionId_2017.02.xml', etree.QName('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation'): 'http://ddex.net/xml/mlc/131 http://service.ddex.net/xml/mlc/131/music-licensing-companies.xsd'} root = E('{http://ddex.net/xml/mlc/131}DeclarationOfSoundRecordingRightsClaimMessage', root_attribs, E('MessageHeader', E('MessageThreadId', transformed_metadata['message_thread_id']), E('MessageId', transformed_metadata['message_id']), E('MessageSender', E('PartyId', 'PADPIDA2012041004F'), E('PartyName', E('FullName', 'The Orchard Enterprises')), E('TradingName', 'The Orchard Enterprises, LLC')), E('MessageRecipient', E('PartyId', ''), E('PartyName', E('FullName', ''))), E('MessageCreatedDateTime', datetime.now(tz=timezone.utc).isoformat())), E('MessageNotificationPeriod', E('StartDate', transformed_metadata['message_notification_period_start']), E('EndDate', transformed_metadata['message_notification_period_end']))) return root