Develop solutions in Python according to the following specifications taking consideration for security best practice, commenting, logging and exception handling.
REST Web Service Develop a REST web service that:
- Takes an embedded CSV file and stores its contents in a SQLite database without writing to disk.
- Takes a range of time and returns all CSV data that was submitted (not created) within a given time frame.
- Searches records for the given parameters and values, supporting all database fields.
- Takes the same CSV data in JSON format and validates that each field contains the correct data types (e.g. a string field contains a string, a integer field contains a integer).
- Allows records to be marked as "read" and "unread".
- Returns an authentication token upon being provided with the following credentials: Username: superman Password: Th!sIsW£ak
- Restricts all functionality to authenticated requests.
- Implements TLS using a self-signed certificate.
REST Client CLI tool Develop a corresponding client CLI tool that:
- Authenticates with the web service.
- Submits a CSV file to the REST web service.
- Facilitates the utilisation of functionality described in numbers 2 and 3.
- Facilitates polling of records at a configurable interval of seconds, using the functionality described in number 3 listed above. Polling should continue until interrupted.
- Takes a CSV file in the format provided and converts it to JSON before submitting it via the functionality described in number 4.
- Marks a given record as "read" or "unread".