I have lots of industry experience in writing complex Python code.
I have gone through your post and understood your problem.
So to begin with you must follow below approach to resolve your issue:
I did lot of research and ultimately found that there is a bug in the setup.py of the package, so I tried the following:
1. Run the following command: pip download quartz.
2. Find your downloaded quartz-0.0.1.dev0.tar.gz.
3. Extract it and in the setup.py find the following line:
and just change it to following line:
4. Run the following command: pip install -e /path/to/quartz-0.0.1.dev0.
After this your setup should be completed without any errors.
Alternatively you can try following (this will fix ImportError: No module named 'Quartz' when installing pyautogui I encountered it for you when installing pyautogui):
1. pip install pyobjc-core
2. pip install pyobjc-framework-Quartz