Regarding the permissions of different files, what comes to mind is:
The main module will be readable/writeable by a regular user of the server to be able to update the code (fix bugs, pull from Github, etc). This file can be imported in a Python session by a regular user (to test it), and everything should work except sending emails (only a special user can do that).
The settings file will be readable/writeable by a regular user to be able to add animals, emails and alarms.
The file containing the email/passwd of the sender email will be accessible only to a special user (it could be root, but it's probably better if it's anyone in the group 'adm', or something like that).
Does that work? Any other files we need to define permissions for?
Regarding the permissions of different files, what comes to mind is:
Does that work? Any other files we need to define permissions for?