Библиотека динамической перегрузки функций и методов основанной на типах аргументов для языка python
Библиотека `overloading` определяет средства позволяющие писать перегруженные функции и методы в вашем коде. Весь функционал реализован в единственном модуле `overloading.py`.
Так-же стоит добавить что библиотека была вдохновлена PEP 3124, в ней нет и половины возможностей и расширяемости первоисточника, но я писал её скорее для фана (однако в дальнейшем я использовал её в нескольких своих проектах). В моём представлении она должна выполнять свою основную задачу, добавлять в язык перегрузку функций, основанную на типах аргументов, максимально близкую к реализации оной из C++. Т.е. от идеи включения в библиотеку реализации интерфейсов и прочего функционала, я отказался, сосредоточившись на перегрузке. Так как писал я библиотеку на чистом python'е и поиск функций происходит в runtime, то старался максимально сократить время поиска среди кандидатов, подходящей функции (Phillip J. Eby, автор PEP`а и библиотеки PEAK для оптимизации использовал Bytecode Assembler, а это сильная магия:))