@TWT

Тег python в блоге TWT

TWT

Мне ребята из соседнего подъезда подсказали как в питоне проверять чистоту функции.
Дело в том, что внешнее и нечистое в питоне имеет опкод LOAD_GLOBAL
И достаточно просто в цикле пробежаться по всем опкодам функции и проверить, чтоб там не было ни одного LOAD_GLOBAL. Даже если из функции просто захотеть что-то распечатать то print всё равно будет в LOAD_GLOBAL.

import dis
for op in dis.get_instructions(f):
    if "GLOBAL" in op.opname:
        print(op)
        break

Вообще красота.
Прямо как в хаскеле, только хаскель САМ говорит, а тут надо руками проверку запускать.

TWT

What’s New In Python 3.8

TWT

Вспомнил Tenno-Seremel когда увидел icd_generator.rb -- единственный файл на руби в пакете ocl-icd

Я не могу портировать его на питон: я не знаю рубей

TWT

Я напрягся и смог удалить руби из системы.
Питоновый мир победил.
Кому нужен ломтик октябрьского неба?
О-О-О... Моя идентация...

TWT

В питоне решили бороться с hash( (3, 3) ) == hash( (-3, -3) )

The hash function for tuples is now based on xxHash.
This makes hash collisions less likely.
Patch by Jeroen Demeyer.

Питон будет тормозить ещё немножко сильнее

TWT

Добрая польская душа Maciej Szymkiewicz aka @zero323 заимплементил на питоне скаловскую монаду Try[T]

In [1]: from tryingsnake import Try, Success, Failure

In [2]: from math import sqrt

In [3]: xs = [1.0, 0.0, "-1", -3, 2, 1 + 2j]

In [4]: sqrts = [Try(sqrt, x) for x in xs]

In [5]: [x.get() for x in sqrts if x.isSuccess]
Out[5]: [1.0, 0.0, 1.4142135623730951]

In [6]: def get_etype(e): return Try(lambda x: type(x).__name__, e)

In [7]: [x.recoverWith(get_etype).get() for x in sqrts if x.isFailure]
Out[7]: ['TypeError', 'ValueError', 'TypeError']
TWT

Не давайте математикам писать на С++
У них есть питон и пусть ебуццо с ним

Вот что случается, когда математик не умеет писать на С++ но настойчиво пишет на нём:
https://github.com/Normaliz...project_and_lift.cpp

Блять это говно даже не компилируется. Я уже заебался патчить его.
Теперь я понимаю чувства mva который патчил тилиграм.

TWT

TWT

Закон Парето утверждает, что 20% кода на питоне дают 80% результата

TWT

Дан круг.
На питоне.
Требуется построить квадрат с той же площадью.
На питоне.

TWT
test test_venv failed -- Traceback (most recent call last):
  File "/usr/lib64/python3.6/test/test_venv.py", line 145, in test_prefixes
    self.assertEqual(out.strip(), expected.encode())
AssertionError: b'/usr' != b'/usr/lib/python-exec/python3.6/../../..'

На самом-то деле /usr/lib/python-exec/python3.6/../../.. это то же самое что /usr :)

TWT
TWT

Так что я с тех самых пор пользуюсь именно Python’ом почти для всех научных работ

Я по этой фразе угадал дедфуда в каментах до того, как увидел каменты.

TWT

Благодаря sigsergv и #okwjp я узнал, что даже питон может напечатать вам CPUID signature:
1) git clone https://github.com/flababah/cpuid.py.git
2) cd cpuid.py
3) sed -i '30i\ \ \ \ print(f"CPUID : {cpu(1)[0]:X}")' example.py
4) python example.py

P.S. Хворк, а ты знал что sed умеет вставлять строки прямо внутрь файла? В этом есть что-то возбуждающее...

TWT

Я сегодня недоволен барсуком.
Я-то думал он в самом деле хочет на scipy что-то написать.
Оказалось, он просто хочет поржать над "SyntaxError: lambda cannot contain assignment"
Запилил ему правильный ответ в https://wandbox.org/permlink/kl4FHNuHTPQreETn

Если Python настолько сильно его смешит, пусть портирует scipy на С++17 -- посмеёмся вместе.

TWT

Трассирую emerge в pudb потому что прикольно

TWT
!!! The following installed packages are masked:
- app-admin/python-updater-0.14::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Mike Gilbert <floppym@gentoo.org> (13 Nov 2017)
# python-updater is obsolete. Utilize PYTHON_TARGETS and
# emerge --changed-use to rebuild packages instead.
# Removal in 30 days.

ну охуеть теперь

TWT

Жаль string templates в котлине не такие, как f-строки в питоне.

TWT

Хочу спросить у hirthwork и qnikst правда ли @thesz aka http://thesz.livejournal.com aka Штангист теперь работает на Питоне в Яндексе? Удавалось ли встретиться с ним лично?

TWT
from collections import defaultdict; m = defaultdict(int)
from os import walk; from os.path import basename, splitext
for _, _, files in walk('/home/kurkuma/porn'):
    for fn in files:
        o = splitext(basename(fn))[0]
        try:
            x, k = o[-12], o[-11:]
            if '-' is x: m[k] += 1
        except:
            pass
for k in m:
    if m[k] > 1: print(f"{k} - {m[k]}")

Эта программа находит все дубли, скачанные youtube-dl заново с другим расширением.
Доставайте свои липы, хаскели и идрисы, давайте меряться у кого длиннее
inb4: у тебя короче всех

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.