import re
#My text file:
TEXT_FILE = r"""
the old change is testing.pickup_start
the old model example two is simple.order_facts
the exmple with colons: pickup_drop
the exmple with colons:pickup_drop
model: company1
model: company1
model :company1
model : company1
model:company1
profit
the company1 : company2
old model: company1
the old model is called: company1
the.OTP_bonus: 57
the.order_is_cancelled: Order is Cancelled
track: do.is_taken my name
so: [incentives.total_pay decrease]
testing
testing
field: [orders.order_facts,orders.delivered,orders.total_payout
orders.pickup_start,orders.order_is_cancelled]"""
d = {
'company1' :'company2' ,
'pickup_start' :'pickup_start_at' ,
'pickup_drop' : 'pickup_drop_at' ,
'order_facts' :'orders2' ,
'OTP_bonus' : 'OTP_BONUS_APPLIED' ,
'old_model' :'new_model' ,
'order_is_cancelled' :'Order_IS_Cancelled' ,
'pm_email' :'Pm_email_ID' ,
'pickup_start_timestamp' :'pickup_start_timestamp_at' ,
'is_taken' : 'is_taken_y/n' ,
'profit' :'margin' ,
'total_pay' :'salary'
}
pattern = fr"(\. |\b model\s ?:\s ?|:\s ?\b (?!company1\b ))({'|'.join(d)})\b "
#with open('lookerml2-Copy4.txt','r') as file:
# with open ('new_script.txt','w') as new_code:
# for line in file:
for line in TEXT_FILE.splitlines ( ) :
if not line.strip ( ) : continue
changes = re .sub ( pattern, lambda x: f'{x.group(1)}{d[x.group(2)]}' , line)
print ( changes)
#print(changes , file = new_code)
aW1wb3J0IHJlCiNNeSB0ZXh0IGZpbGU6ClRFWFRfRklMRSA9IHIiIiIKdGhlIG9sZCBjaGFuZ2UgaXMgdGVzdGluZy5waWNrdXBfc3RhcnQKdGhlIG9sZCBtb2RlbCBleGFtcGxlIHR3byBpcyBzaW1wbGUub3JkZXJfZmFjdHMKdGhlIGV4bXBsZSB3aXRoIGNvbG9uczogcGlja3VwX2Ryb3AKdGhlIGV4bXBsZSB3aXRoIGNvbG9uczpwaWNrdXBfZHJvcAogIG1vZGVsOiBjb21wYW55MQptb2RlbDogY29tcGFueTEgCm1vZGVsIDpjb21wYW55MQptb2RlbCA6IGNvbXBhbnkxCm1vZGVsOmNvbXBhbnkxIApwcm9maXQKdGhlIGNvbXBhbnkxIDogY29tcGFueTIKb2xkIG1vZGVsOiBjb21wYW55MQp0aGUgb2xkIG1vZGVsIGlzIGNhbGxlZDogY29tcGFueTEKdGhlLk9UUF9ib251czogNTcKdGhlLm9yZGVyX2lzX2NhbmNlbGxlZDogT3JkZXIgaXMgQ2FuY2VsbGVkCnRyYWNrOiBkby5pc190YWtlbiBteSBuYW1lCnNvOiBbaW5jZW50aXZlcy50b3RhbF9wYXkgZGVjcmVhc2VdCnRlc3RpbmcKdGVzdGluZwpmaWVsZDogW29yZGVycy5vcmRlcl9mYWN0cyxvcmRlcnMuZGVsaXZlcmVkLG9yZGVycy50b3RhbF9wYXlvdXQKb3JkZXJzLnBpY2t1cF9zdGFydCxvcmRlcnMub3JkZXJfaXNfY2FuY2VsbGVkXSIiIgoKZCA9IHsKICAgICdjb21wYW55MSc6J2NvbXBhbnkyJywKICAgICdwaWNrdXBfc3RhcnQnOidwaWNrdXBfc3RhcnRfYXQnLAogICAgJ3BpY2t1cF9kcm9wJzogJ3BpY2t1cF9kcm9wX2F0JywKICAgICdvcmRlcl9mYWN0cyc6J29yZGVyczInLAogICAgJ09UUF9ib251cyc6ICdPVFBfQk9OVVNfQVBQTElFRCcsCiAgICAnb2xkX21vZGVsJzonbmV3X21vZGVsJywKICAgICdvcmRlcl9pc19jYW5jZWxsZWQnOidPcmRlcl9JU19DYW5jZWxsZWQnLAogICAgJ3BtX2VtYWlsJzonUG1fZW1haWxfSUQnLAogICAgJ3BpY2t1cF9zdGFydF90aW1lc3RhbXAnOidwaWNrdXBfc3RhcnRfdGltZXN0YW1wX2F0JywKICAgICdpc190YWtlbic6ICdpc190YWtlbl95L24nLAogICAgJ3Byb2ZpdCc6J21hcmdpbicsCiAgICAndG90YWxfcGF5Jzonc2FsYXJ5JwogICAgCn0KCnBhdHRlcm4gPSBmciIoXC58XGJtb2RlbFxzPzpccz98OlxzP1xiKD8hY29tcGFueTFcYikpKHsnfCcuam9pbihkKX0pXGIiCiN3aXRoIG9wZW4oJ2xvb2tlcm1sMi1Db3B5NC50eHQnLCdyJykgYXMgZmlsZToKIyAgICB3aXRoIG9wZW4gKCduZXdfc2NyaXB0LnR4dCcsJ3cnKSBhcyBuZXdfY29kZToKIyAgICAgICAgZm9yIGxpbmUgaW4gZmlsZToKZm9yIGxpbmUgaW4gVEVYVF9GSUxFLnNwbGl0bGluZXMoKToKICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6IGNvbnRpbnVlCiAgICBjaGFuZ2VzID0gcmUuc3ViKHBhdHRlcm4sIGxhbWJkYSB4OiBmJ3t4Lmdyb3VwKDEpfXtkW3guZ3JvdXAoMildfScsIGxpbmUpCiAgICBwcmludChjaGFuZ2VzKQogICAgI3ByaW50KGNoYW5nZXMgLCBmaWxlID0gbmV3X2NvZGUpCiAgICAKCg==