Create three new Python modules, one for reading the dataset, one for finding ports, and one for comparing two ports. Put the three modules (util.py, find.py, and compare.py) into a package named port_entries.
1a. Data Utilities
Create a util.py module that has two methods: download_data, get_data, and parse_data.
1b. Finding Items
Create an find.py module that has two functions, port_by_state and port_by_name. Both functions should return the ports that match the given name and/or state. port_by_state should take one parameter, the state name, while port_by_name should take two parameters, the port name and the state. However, the state is optional so if the user does not provide the state, the function should search across all states.
1c. Comparison (15 pts)
Create a compare.py module that calculates comparative information between two ports for a given date. Given a port code and two date strings as parameters, the diff_dates function should return the difference in values for each measure between the two months. Given two port codes and a date string as parameters, the diff_ports function should return the difference between ports in values for each measure.
1d. Package
Make sure all three analysis modules live in a single port_entries package. Add an __init__.py file for completeness. It may contain documentation and the pass keyword.