<jupyter_start><jupyter_text>EU Article 16 ControversyThis notebook explores decision by EU commissioners to invoke article 16 of the Northern Ireland protocol. After announcing intentions Ireland and the United Kingdom objected and the EU backtracked.This is an interesting example of the _Easier to Ask for Forgiveness than Permission_ principle from Python programming. Context* News Article: https://www.ft.com/content/c678dc02-c5f5-4717-a7ca-43c0ba3f2b44* Python EAFP: https://www.geeksforgeeks.org/eafp-principle-in-python/  Define Objects<jupyter_code>class Country():
    
    def __init__(self, name, EU_member='False'):
        self.name = name
        self.EU_member = EU_member
    

class Objection(Exception):

    def __init__(self, message):
        self.message = message
    
class Article:
    
    def __init__(self, number, relevant_countries):
        self.number = number
        self.status = 'not_invoked'
    
    def invoke(self):
        if self.objectors != None:
            raise Objection('Objections have been raised.')
        self.status = 'invoked'
        print('Article 16 has been invoked')<jupyter_output><empty_output><jupyter_text>Setup<jupyter_code># Instantiate the relevant countries
Ireland = Country('Ireland', EU_member=True)
UK = Country('United_Kingdom', EU_member=False)

relevant_countries = [Ireland, UK]<jupyter_output><empty_output><jupyter_text>Main Part<jupyter_code># Create Article 16
article16 = Article(16, relevant_countries)
article16.objectors = [Ireland, UK]

try: 
    article16.invoke()
    
except Objection:
    
    for country in article16.objectors:
        
        if country.EU_member == True:
            
            print("Sorry we made a mistake!")
            break<jupyter_output>Sorry we made a mistake!
{'fraction_non_alphanumeric': 0.08627450980392157, 'fraction_numerical': 0.02072829131652661, 'mean_word_length': 3.6149870801033592, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '437501', 'license': 'MIT', 'n_tokens_mistral': 572, 'n_tokens_neox': 529, 'n_words': 145, 'path': 'notebooks/NB01 - Article 16 Controversy - Easier to Ask for Foregiveness.ipynb', 'repo_name': 'FractalEurope/EuropeanCommission', 'size': '1785'}