DSPROGLIB Telegram 6939
🔗 NumPy теперь почти полностью типизирован — 90%

NumPy — один из самых скачиваемых Python-пакетов, и теперь его type-completeness (покрытие типами) выросло с 33% до почти 90%.

Это огромный шаг для всей экосистемы Python и особенно для дата-сайнса.

Оказалось, что одна строчка исправления подняла покрытие типов с 33% до 80%:
# Было
def setfield(self, /, val: ArrayLike, dtype: DTypeLike, offset: CanIndex = 0) -> None: ...

# Стало
def setfield(self, /, val: ArrayLike, dtype: DTypeLike, offset: SupportsIndex = 0) -> None: ...


😁 Да, одна опечатка в аннотации — и вот уже +50% к типовой полноте.

После этого внимание было уделено MaskedArray, где типизация была всего 20%.

Теперь — 100%:
>>> np.mean([x['isTypeKnown'] for x in exported if x['name'].startswith('numpy.ma.core.MaskedArray.')])
np.float64(1.0)


Более полная типизация =
✔️ Умнее автодополнение в IDE
✔️ Меньше ошибок
✔️ Надёжнее библиотеки, зависящие от NumPy (pandas, scikit-learn, xarray и др.)

📝Остаётся типизировать верхнеуровневые функции numpy.ma, уточнить перегрузки и добавить type-checker прямо в CI NumPy. Отличный шанс внести вклад в open source — довести NumPy до 100% тип-совместимости.

🔗 Подробнее

🐸 Библиотека дата-сайентиста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122😁2



tgoop.com/dsproglib/6939
Create:
Last Update:

🔗 NumPy теперь почти полностью типизирован — 90%

NumPy — один из самых скачиваемых Python-пакетов, и теперь его type-completeness (покрытие типами) выросло с 33% до почти 90%.

Это огромный шаг для всей экосистемы Python и особенно для дата-сайнса.

Оказалось, что одна строчка исправления подняла покрытие типов с 33% до 80%:

# Было
def setfield(self, /, val: ArrayLike, dtype: DTypeLike, offset: CanIndex = 0) -> None: ...

# Стало
def setfield(self, /, val: ArrayLike, dtype: DTypeLike, offset: SupportsIndex = 0) -> None: ...


😁 Да, одна опечатка в аннотации — и вот уже +50% к типовой полноте.

После этого внимание было уделено MaskedArray, где типизация была всего 20%.

Теперь — 100%:
>>> np.mean([x['isTypeKnown'] for x in exported if x['name'].startswith('numpy.ma.core.MaskedArray.')])
np.float64(1.0)


Более полная типизация =
✔️ Умнее автодополнение в IDE
✔️ Меньше ошибок
✔️ Надёжнее библиотеки, зависящие от NumPy (pandas, scikit-learn, xarray и др.)

📝Остаётся типизировать верхнеуровневые функции numpy.ma, уточнить перегрузки и добавить type-checker прямо в CI NumPy. Отличный шанс внести вклад в open source — довести NumPy до 100% тип-совместимости.

🔗 Подробнее

🐸 Библиотека дата-сайентиста

#буст

BY Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение


Share with your friend now:
tgoop.com/dsproglib/6939

View MORE
Open in Telegram


Telegram News

Date: |

Users are more open to new information on workdays rather than weekends. A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. Concise Step-by-step tutorial on desktop: It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS):
from us


Telegram Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
FROM American