Boilerplate code
Let us prepare some convenient helpers for the journey ahead. We know we will need to write/read to/from files and that we will need to transform some arguments, passed as strings, into Python types. Let us deal with the latter first since this is a very trivial task.
Converting strings to enum values
We are going to create two functions: str_to_phone_type
and str_to_department
. Both look similar since we are going to check the value of the string and derive an enum value out of it. Let us start with str_to_phone_type
.
We know that the PhoneType
enum contains the TYPE_HOME
, TYPE_MOBILE
, TYPE_WORK
, and TYPE_UNSPECIFIED
values. Thus, we will simply check for the home
, mobile
, and work
values. If the string does not contain anything or a value outside of these, the phone type will be considered unspecified. The pseudocode for str_to_phone_type
looks like the following:
def str_to_phone_type(s: str) Type: match s: case "...