И снова я про питон (и немножко про c++ в конце). Установил я значит библиотеку rnnmorph, при попытке использовать ругается:
AttributeError: module 'numpy' has no attribute 'float'.
`np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
Благо я уже не совсем зеленый в питоне (хотя и до зрелого далеко еще) и быстренько написал:
import numpy
if not hasattr(numpy, 'float'):
numpy.float = float
До этого аналогично с int. Заработало!
И чем же они оправдывают:
Using the aliases of builtin types like np.int is deprecated
For a long time, np.int has been an alias of the builtin int. This is repeatedly a cause of confusion for newcomers, and existed mainly for historic reasons.
These aliases have been deprecated. The table below shows the full list of deprecated aliases, along with their exact meaning. Replacing uses of items in the first column with the contents of the second column will work identically and silence the deprecation warning.
confusion for newcomers - о, как. А не confusion ли , если ньюкамеры обламываются о неработающую, по этой причине, либу? Хотя надо сказать, огромное спасибо, что не поленились в сообщение об ошибке в данном месте засунуть пояснение про deprecated.
confusion тут видимо в том, что numpy.int (и float и др.) фактически не приводил тип к numpy, то что это алиас к общепитоньему int, float это действительно могло путать. Но неужто настолько много и часто, что разработчики решили нарочно похерить обратную совместимость, чтобы избежать проблем, пусть и ценой поломаных программ?
P.S. С одной стороны не доволен, с другой, например, в C++ вот такой фокус с полиморфизмом, чтобы на лету поправить класс для подключаемой либы, вряд ли получился бы.