Code:
from datetime import datetime
from locale import setlocale, LC_TIME

class OilSpillEvent:
    def __init__(self, name: str, country: str, date_as_string: str, min_tonnage: int, max_tonnage: int):
        self.name = name
        self.country = country
        self.min_tonnage = min_tonnage
        self.max_tonnage = max_tonnage
        try:
            self.date = datetime.strptime(date_as_string, "%B %d, %Y")
        except:
            self.date = datetime.strptime(date_as_string, "%B %Y")

    def __repr__(self) -> str:
        formatted_date = self.date.strftime("%d.%m.%Y")
        return f"Event: “{self.name}”, country: {self.country}, started on {formatted_date}. Spilled between {self.min_tonnage} and {self.max_tonnage} barrels."


setlocale(LC_TIME, ("en", "UTF-8"))


all_events = [
    OilSpillEvent("Yellowstone River pipeline spill", "United States", "July 1, 2011", 105, 140),
    OilSpillEvent("Bohai Bay oil spill", "China", "June 4, 2011", 204, 204),
    OilSpillEvent("Peace River Rainbow pipeline spill", "Canada", "April 29, 2011", 3800, 3800),
    OilSpillEvent("Mumbai-Uran pipeline spill", "India", "January 21, 2011", 40, 55),
    OilSpillEvent("Fiume Santo power station", "Italy", "January 11, 2011", 15, 15),
    OilSpillEvent("Mumbai oil spill / MV MSC Chitra and MV Khalijia 3", "India", "August 7, 2010", 400, 800),
    OilSpillEvent("Barataria Bay oil spill", "United States", "July 27, 2010", 23, 45),
    OilSpillEvent("Talmadge Creek oil spill", "United States", "July 26, 2010", 2800, 3250),
    OilSpillEvent("Xingang Port oil spill", "China", "July 16, 2010", 1500, 90000),
    OilSpillEvent("Red Butte Creek oil spill", "United States", "June 11, 2010", 65, 107),
    OilSpillEvent("Trans-Alaska Pipeline spill", "United States", "May 25, 2010", 400, 1200),
    OilSpillEvent("MT-Bunga Kelana 3", "Singapore", "May 25, 2010", 2000, 2500),
    OilSpillEvent("2010 ExxonMobil oil spill", "Nigeria", "May 1, 2010", 3246, 95500),
    OilSpillEvent("Deepwater Horizon", "United States", "April 20, 2010", 492000, 627000),
    OilSpillEvent("2010 Great Barrier Reef oil spill / MV-Shen Neng 1", "Australia", "April 3, 2010", 3, 4),
    OilSpillEvent("2010 Port Arthur oil spill", "United States", "January 23, 2010", 1500, 1500),
    OilSpillEvent("Yellow River oil spill", "China", "January 5, 2010", 130, 130),
    OilSpillEvent("Montara oil spill", "Australia", "August 21, 2009", 4000, 30000),
    OilSpillEvent("Full City oil spill", "Norway", "July 31, 2009", 200, 200),
    OilSpillEvent("2009 Queensland oil spill", "Australia", "March 10, 2009", 230, 260),
    OilSpillEvent("West Cork oil spill", "Ireland", "February 2009", 300, 300),
    OilSpillEvent("2008 New Orleans oil spill", "United States", "July 28, 2008", 8800, 8800),
    OilSpillEvent("2007 Statfjord oil spill", "Norway", "December 12, 2007", 4000, 4000),
    OilSpillEvent("2007 Korea oil spill", "South Korea", "December 7, 2007", 10800, 10800),
    OilSpillEvent("Kerch Strait oil spill", "Ukraine", "November 11, 2007", 1000, 1000),
    OilSpillEvent("COSCO Busan oil spill", "United States", "November 7, 2007", 188, 188),
    OilSpillEvent("Kab 101", "Mexico", "October 23, 2007", 1869, 1869),
    OilSpillEvent("Guimaras oil spill", "Philippines", "August 11, 2006", 172, 1540),
    OilSpillEvent("Jiyeh power station oil spill", "Lebanon", "July 14, 2006", 20000, 30000),
    OilSpillEvent("Citgo refinery oil spill", "United States", "June 19, 2006", 6500, 6500),
    OilSpillEvent("Prudhoe Bay oil spill", "United States", "March 2, 2006", 653, 689),
    OilSpillEvent("Bass Enterprises (Hurricane Katrina)", "United States", "August 30, 2005", 12000, 12000),
    OilSpillEvent("Shell (Hurricane Katrina)", "United States", "August 30, 2005", 3400, 3400),
    OilSpillEvent("Chevron (Hurricane Katrina)", "United States", "August 30, 2005", 3200, 3200),
    OilSpillEvent("Murphy Oil USA refinery spill (Hurricane Katrina)", "United States", "August 30, 2005", 2660, 3410),
    OilSpillEvent("Bass Enterprises (Hurricane Katrina)", "United States", "August 30, 2005", 1500, 1500),
    OilSpillEvent("Chevron (Hurricane Katrina)", "United States", "August 30, 2005", 170, 170),
    OilSpillEvent("Venice Energy Services Company (Hurricane Katrina)", "United States", "August 30, 2005", 81, 81),
    OilSpillEvent("Shell Pipeline Oil (Hurricane Katrina)", "United States", "August 30, 2005", 44, 44),
    OilSpillEvent("Sundown Energy (Hurricane Katrina)", "United States", "August 30, 2005", 42, 42),
    OilSpillEvent("MV-Selendang Ayu", "United States", "December 8, 2004", 1560, 1560),
    OilSpillEvent("Athos 1", "United States", "November 26, 2004", 860, 860),
    OilSpillEvent("MP-80 Delta 20 pipeline (Hurricane Ivan)", "United States", "September 16, 2004", 963, 963),
    OilSpillEvent("MP-69 Nakika 18 & MP-151 Nakika 18 pipeline (Hurricane Ivan)", "United States", "September 16, 2004", 618, 618),
    OilSpillEvent("Chevron-Texaco tank collapse (Hurricane Ivan)", "United States", "September 16, 2004", 423, 423),
    OilSpillEvent("Tasman Spirit", "Pakistan", "July 28, 2003", 28000, 30000),
    OilSpillEvent("Bouchard No. 120", "United States", "April 27, 2003", 320, 320),
    OilSpillEvent("Prestige oil spill", "Spain", "November 13, 2002", 63000, 63000),
    OilSpillEvent("Limburg (bombing)", "Yemen", "October 6, 2002", 12200, 12200),
    OilSpillEvent("Manguinhos refinery", "Brazil", "November 23, 2001", 34, 97),
    OilSpillEvent("Trans-Alaska Pipeline gunshot spill", "United States", "October 4, 2001", 932, 932),
    OilSpillEvent("Petrobras 36", "Brazil", "March 15, 2001", 274, 274),
    OilSpillEvent("Amorgos oil spill", "Taiwan", "January 14, 2001", 1150, 1150),
    OilSpillEvent("Jessica", "Ecuador", "January 2001", 568, 568),
    OilSpillEvent("Pine River", "Canada", "August 1, 2000", 850, 850),
    OilSpillEvent("Project Deep Spill", "Norway", "June 2000", 100, 100),
    OilSpillEvent("Treasure", "South Africa", "June 2000", 1400, 1400),
    OilSpillEvent("Petrobras pipeline", "Brazil", "January 2000", 1100, 1100),
    OilSpillEvent("Erika", "France", "December 12, 1999", 15000, 25000),
    OilSpillEvent("MV New Carissa", "United States", "February 4, 1999", 230, 230),
    OilSpillEvent("Mobil Nigeria oil spill", "Nigeria", "January 12, 1998", 5500, 5500),
    OilSpillEvent("Nakhodka", "Japan", "December 1997", 6240, 6240),
    OilSpillEvent("Julie N.", "United States", "September 27, 1996", 586, 586),
    OilSpillEvent("Sea Empress", "United Kingdom", "February 15, 1996", 40000, 72000),
    OilSpillEvent("North Cape", "United States", "January 19, 1996", 2500, 2500),
    OilSpillEvent("Seki oil spill", "United Arab Emirates", "March 31, 1994", 15900, 15900),
    OilSpillEvent("Morris J. Berman oil spill", "Puerto Rico", "January 7, 1994", 2600, 2600),
    OilSpillEvent("MV-Braer", "United Kingdom", "January 5, 1993", 85000, 85000),
    OilSpillEvent("Aegean Sea", "Spain", "December 3, 1992", 74000, 74000),
    OilSpillEvent("Katina P", "Mozambique", "April 26, 1992", 72000, 72000),
    OilSpillEvent("Fergana Valley", "Uzbekistan", "March 2, 1992", 285000, 285000),
    OilSpillEvent("Kirki", "Australia", "July 21, 1991", 17280, 17280),
    OilSpillEvent("ABT Summer", "Angola", "May 28, 1991", 260000, 260000),
    OilSpillEvent("MT-Haven", "Italy", "April 11, 1991", 144000, 144000),
    OilSpillEvent("Gulf War oil spill", "Iraq", "January 23, 1991", 270000, 820000),
    OilSpillEvent("Mega Borg", "United States", "June 8, 1990", 16499, 16501),
    OilSpillEvent("American Trader", "United States", "February 7, 1990", 979, 981),
    OilSpillEvent("Khark 5", "Spain", "December 19, 1989", 70000, 80000),
    OilSpillEvent("Presidente Rivera", "United States", "June 24, 1989", 993, 993),
    OilSpillEvent("Exxon Valdez", "United States", "March 24, 1989", 37000, 104000),
    OilSpillEvent("Odyssey", "Canada", "November 10, 1988", 132000, 132000),
    OilSpillEvent("Ashland oil spill", "United States", "January 2, 1988", 10000, 10000),
    OilSpillEvent("Nova", "Iran", "December 6, 1985", 70000, 70000),
    OilSpillEvent("Grand Eagle", "United States", "September 28, 1985", 1400, 1400),
    OilSpillEvent("SS Mobil Oil", "United States", "March 19, 1984", 550, 650),
    OilSpillEvent("Castillo de Bellver", "South Africa", "August 6, 1983", 252000, 252000),
    OilSpillEvent("Nowruz Field Platform", "Iran", "February 4, 1983", 260000, 260000),
    OilSpillEvent("Tanio", "France", "March 7, 1980", 13500, 13500),
    OilSpillEvent("Irenes Serenade", "Greece", "February 23, 1980", 100000, 100000),
    OilSpillEvent("MT-Independentsa", "Turkey", "November 15, 1979", 95000, 95000),
    OilSpillEvent("Burmah Agate", "United States", "November 1, 1979", 8440, 8440),
    OilSpillEvent("Atlantic Empress / Aegean Captain", "Trinidad and Tobago", "July 19, 1979", 287000, 287000),
    OilSpillEvent("Ixtoc I oil spill", "Mexico", "June 3, 1979", 454000, 480000),
    OilSpillEvent("Betelgeuse", "Ireland", "January 8, 1979", 64000, 64000),
    OilSpillEvent("Amoco Cadiz", "France", "March 16, 1978", 223000, 227000),
    OilSpillEvent("Trans-Alaska Pipeline sabotage by explosives", "United States", "February 15, 1978", 2162, 2162),
    OilSpillEvent("Venpet / Venoil collision", "South Africa", "December 16, 1977", 26600, 30500),
    OilSpillEvent("Ekofisk oil field", "Norway", "April 22, 1977", 27600, 27600),
    OilSpillEvent("Hawaiian Patriot", "United States", "February 26, 1977", 95000, 95000),
    OilSpillEvent("Borag", "Taiwan", "February 7, 1977", 34000, 34000),
    OilSpillEvent("Argo Merchant", "United States", "December 15, 1976", 25000, 28000),
    OilSpillEvent("NEPCO 140 oil spill", "United States", "June 23, 1976", 1000, 1000),
    OilSpillEvent("Urquiola", "Spain", "May 12, 1976", 100000, 100000),
    OilSpillEvent("Niger Delta", "Nigeria", "January 1976", 258000, 328000),
    OilSpillEvent("Corinthos", "United States", "January 31, 1975", 35700, 35700),
    OilSpillEvent("Jakob Maersk", "Portugal", "January 29, 1975", 88000, 88000),
    OilSpillEvent("VLCC-Metula", "Chile", "August 9, 1974", 50000, 51000),
    OilSpillEvent("Sea Star", "Iran", "December 19, 1972", 115000, 115000),
    OilSpillEvent("Oswego-Guardian / Texanita collision", "South Africa", "August 21, 1972", 10000, 10000),
    OilSpillEvent("Arizona Standard / Oregon Standard collision", "United States", "January 17, 1971", 2700, 2700),
    OilSpillEvent("Othello", "Sweden", "March 20, 1970", 50000, 60000),
    OilSpillEvent("1969 Santa Barbara oil spill", "United States", "January 28, 1969", 10000, 14000),
    OilSpillEvent("Torrey Canyon", "United Kingdom", "March 18, 1967", 80000, 119000),
    OilSpillEvent("African Queen oil spill", "United States", "December 30, 1958", 21000, 21000),
    OilSpillEvent("Avila Beach pipeline", "United States", "March 1950", 1300, 1300),
    OilSpillEvent("Guadalupe Oil Field", "United States", "February 1950", 29000, 29000),
    OilSpillEvent("Greenpoint, Brooklyn oil spill", "United States", "July 1940", 55200, 97400),
    OilSpillEvent("SS-Frank H. Buck / SS-President Coolidge collision", "United States", "March 6, 1937", 8870, 8870),
    OilSpillEvent("Lakeview Gusher", "United States", "March 14, 1910", 1230000, 1230000),
    OilSpillEvent("Thomas W. Lawson", "United Kingdom", "December 14, 1907", 7400, 7400)
]
Last modified: Friday, 1 November 2019, 10:12 AM