Pull to refresh

Comments 17

Спасибо за статью, за перевод. Очень нравится формат взять что либо обыденное, рутинное и неприглядное и разобрать его по косточкам, попытаться найти красоту, своеобразный фетиш.


И это, там где пример с печатью файла .gitignore 2 примера одинаковые, оба используют os.path. Ошибочно вставлен не тот фрагмент.


Спасибо.

UFO just landed and posted this here
И вариант c джойном ../.././.././../ его случайно пропустили?

Простите, не понял, какого примера это должно касаться

это уже давно стандартная библиотека

Неужели даже питонисты начали понимать, что объект с методами лучше, чем россыпь функций?

UFO just landed and posted this here

Раньше ведь тоже были подобные решения в сторонних библиотеках, так что сложно назвать это внезапным озарением. Просто вписывание такого подхода в стандартную либу — примерно аналогичный процесс был для asyncio, например.

Вот ещё бы так навели порядок в работе с датами и временем. А-то наследие малость устарело, мне кажется.
Ну и не хватает стандартных векторных типов, чтобы не numpy подключать, а нативно векторную алгебру покрыть вместе с афинными преобразованиями.

Тут напротив хотят выкинуть из stdlib старые специфические библиотеки. Python всё же язык общего назначения, это не Fortran/Matlab/Julia и тащить в его стандартную библиотеку всякие такие штуки может быть излишне. numpy самодостаточен, это зрелая библиотека, разработку которой спонсируют крупные компании, там есть full-time разработчики на зарплате, и scipy-стек неплохо развивается. Если всё это засунуть в stdlib, оно начнёт загнивать, а кодовая база ядра языка и инфраструктура для сборки и тестирования сильно раздуется. Пусть лучше scipy-стек остаётся независим от стандартной библиотеки, а то можно дойти до того, что и tensorflow, например, надо сделать частью стандартной библиотеки.

Я не предлагаю numpy в стандартную библиотеку включать. Иногда numpy — это оверкилл, а нужно лишь парочку векторных операций в пространстве сделать. Вот на плоскости хорошо решает этот вопрос использование complex для векторных вычислений. Чтобы не вводить гиперкомплексные числа можно просто добавить векторный тип и матрицы. Хотя… Возможно numpy и не такой уж оверкилл тогда.
> Вот ещё бы так навели порядок в работе с датами и временем

а в чём непорядок?
В основном в путанице с UTC и tzinfo. Время-то бывает очень разное, там есть всякие нюансы с монотонностью, високосными секундами и прочим. А сейчас в питоне это как-то сумбурно все, мне кажется тут тоже не помешает дополнительный слой абстракции.
так это не в питоне, а в реальности или где-то по вашему сделано лучше?
Хорошо это всё, но косметикой отдаёт.
Но самое главное чего нехватает сейчас, так это ручного задания платформы. Надо нам win-сервером управлять с linux-сервера…
Path это умеет? :)

Не смотрели в сторону PureWindowsPath ?


If you want to manipulate Windows paths on a Unix machine (or vice versa). You cannot instantiate a WindowsPath when running on Unix, but you can instantiate PureWindowsPath.

Есть некоторые ограничения по API, но звучат они вполне резонно.


Regardless of the system you’re running on, you can instantiate all of these classes, since they don’t provide any operation that does system calls.

Пользовался str и os.path. А потом думаю, как неудобно. Каждый раз я должен думать, что за строка у меня передаётся, что это не просто строка, а путь. Даже начал делать NewType("Path", str) и где-то в автодоках обратил внимание, что в python есть некий PathLike. Начал гуглить и тут ваша статья. Шикарно! Спасибо. Плюсик в карму :-)

Sign up to leave a comment.

Articles