Ваш код все равно нерабочий. Та же синтаксическая ошибка, что и раньше, но в 8-й строке, коль вы пустую строку убрали. Т.е. ошибка, на которую вы жалуетесть, не воспроизводится.
"..." - это продолжение списков.
- Питон это не понимает. Попробуйте сами запустить опубликованный вами вариант.
1) Отформатируйте код по правилам данного сайта. Глаза вытекают.
2) Вы все врете. Первая сиснтаксическая ошика в 9-й строке.
3) Про Non-ASCII characters in an identifier молчу.
Сергей Паньков, С одной стороны, если вариантов немного, ну и ладно, лишь бы работало, хоть и не так красиво. С другой стороны, исключение генерируется в питоновском коде, в методе какого-то класса _GenericAlias. Осталось понять, как управление сюда попало из функции issubclass и попытаться обойти ошибку. А вдруг?
Сергей Паньков, Я правильно понимаю, что Attr - это ваш класс, первый параметр которого вы используете для типа создания маппинга переменной на поле/поля файлов базы данных? А насколько сложным может быть первый параметр? Сколько "съест" typing, или ограниченный список вариантов? Например, такой тип Tuple[Tuple[int, float], List[str]] допустим?
P.S. Поиск в google находит много упоминаний данной проблемы, включая обсуждение багов Питона (2017)...
Сергей Паньков: А можно попросить чуть более реалистичный пример использования привести? А то я все время считал, что type hints на этапе работают только во всяких mypy и IDE?
Si Nymes, Ну, вот. Как бы PyInstaller догадался, что еще и какой-то "левый" (не питоновский") файл нужно запаковать? Прочитайте документацию, там все написано. А потом таки читать про sys._MEIPASS, потому-что при распаковке файл окажется не там, где был до нее.
Сергей Паньков, Опс, этого требования я не заметил... Тогда, судя по stackoverflow, надо писать свое расширение dict для использования в ConfigParser. Там все что угодно можно сделать.