Сторонние модули будут всегда, в независимости от того хорошо они написаны или криво, из за того что в стандартную библиотеку по простому все не влезет, да и не надо оно там.
Это тоже довольно спорно, юзер может даже и не знать что в программе используется тот или иной не стандартный модуль, по простому я могу распространять свою программу с этими модулями.
Я думаю что люди пишущие модули, вполне способны качественно написать код, тем более если они это пишут не только для себя.
Вполне известно, например для этой либы в документации есть файлик how-it-works.html где вполне кратко описан алгоритм работы либы (в крайнем случае можно пробежаться по коду).
С этим согласен, бот должен по возможности состоять только из кода входящего в стандартную библиотеку (для минимизации размера, и возможность запуска в различных средах).
Еще как вариант, можно использовать вот такой способ:
Код:
enc_list=['utf-8', 'windows-1251', 'IBM866']
def try_encoding(text):
for try_enc in enc_list:
try:
unicode(text, try_enc, "strict")
except:
pass
else:
break
return try_enc
Правда с 866 он не выдает экзепшен, так что для этой кодировки нужно придумать что ни будь другое.