- Read the guideline before start
 - If you need additional information about 
datetimemodule you can find it here 
Implement a Cafe class, whose instances have one attribute name.
Write a visit_cafe method with one parameter, visitor of type dict.
Due to the pandemic, not everyone can visit the cafe.
If the visitor does not have a vaccine key, it means that he is not vaccinated.
In this case, the method must raise a NotVaccinatedError exception.
kfc = Cafe("KFC")
visitor = {
    "name": "Paul",
    "age": 23,
}
kfc.visit_cafe(visitor)     # NotVaccinatedErrorThe vaccine must not be expired, otherwise the method should raise an OutdatedVaccineError exception.
You can get an expiration_date from visitor["vaccine"] dictionary.
import datetime
kfc = Cafe("KFC")
visitor = {
    "name": "Paul",
    "age": 23,
    "vaccine": {
        "expiration_date": datetime.date(year=2019, month=2, day=23)
    }
}
kfc.visit_cafe(visitor)     # OutdatedVaccineErrorAnd the last rule: all visitors must wear masks. Otherwise visit_cafe
should raise an NotWearingMaskError exception.
kfc = Cafe("KFC")
visitor = {
    "name": "Paul",
    "age": 23,
    "vaccine": {
        "expiration_date": datetime.date.today()
    },
    "wearing_a_mask": False
}
kfc.visit_cafe(visitor)     # NotWearingMaskErrorIf all the rules are met, then the person can visit the cafe and
the method should return the string "Welcome to {cafe.name}"
kfc = Cafe("KFC")
visitor = {
    "name": "Paul",
    "age": 23,
    "vaccine": {
        "expiration_date": datetime.date.today()
    },
    "wearing_a_mask": True
}
kfc.visit_cafe(visitor) == "Welcome to KFC"Write a function go_to_cafe which takes a friends list and a cafe.
It should return a string "Friends can go to {cafe.name}" if they are all allowed to visit it.
If at least one of the friend has problems with vaccines the function should return a message `"All friends should be vaccinated".
If everyone is vaccinated but somebody isn't wearing a mask
the function should return a message "Friends should buy {masks_to_buy} masks" where masks_to_buy is the number of
friends who don't have a mask.
friends = [
    {
        "name": "Alisa",
        "vaccine": {
            "expiration_date": datetime.date.today()
        },
        "wearing_a_mask": True
    },
    {
        "name": "Bob",
        "vaccine": {
            "expiration_date": datetime.date.today()
        },
        "wearing_a_mask": True
    },
]
go_to_cafe(friends, Cafe("KFC")) == "Friends can go to KFC"friends = [
    {
        "name": "Alisa",
        "vaccine": {
            "expiration_date": datetime.date.today()
        },
        "wearing_a_mask": False
    },
    {
        "name": "Bob",
        "vaccine": {
            "expiration_date": datetime.date.today()
        },
        "wearing_a_mask": False
    },
]
go_to_cafe(friends, Cafe("KFC")) == "Friends should buy 2 masks"friends = [
    {
        "name": "Alisa",
        "wearing_a_mask": True
    },
    {
        "name": "Bob",
        "vaccine": {
            "expiration_date": datetime.date.today()
        },
        "wearing_a_mask": True
    },
]
go_to_cafe(friends, Cafe("KFC")) == "All friends should be vaccinated"Use the following project structure:
    main.py
    cafe.py
    errors.pyAll errors should be defined in the errors.py module.
The Cafe class should be defined in cafe.py module.
The function should be implemented in main.py module.
Notes:
- Use 
try/exceptto handle errors ingo_to_cafe - Be sure to pass descriptive messages when you raise the exception in the 
visit_cafemethod - Create a 
VaccineErrorparent class forNotVaccinatedErrorandOutdatedVaccineErrorerrors. Use it to catch both types of errors in the sameexceptclause. - You can work with dates using 
datetimemodule. - You can compare two dates using 
<operator: 
import datetime
date1 = datetime.date(2020, 3, 4)
date2 = datetime.date(2022, 1, 30)
assert  date1 < date2- To get the current date use 
datetime.date.today()