
Eldar
10.07.2018
18:42:12
прочитай правила чата и оформи как надо

Jentry
10.07.2018
18:43:39

[Anonymous]
10.07.2018
18:45:19
#работа
Тип: удаленный единоразовый проект
Бюджет: до 10к
Требуется написание админки, которая будет содержать адреса кошельков. В админку они добавляются вручную. К каждому кошельку требуется поле с комментарием, какому ученику он принадлежит. При изменении баланса кошелька или токенов необходимо уведомление в телеграм или на почту. Авторизация в админку нужна нормальная. По сути это будет таблица без пагинации с возможностью поиска по ней и кроном для проверки баланса кошельков через апи etherscan

Bogdan (SirEdvin)
10.07.2018
18:45:20
Те же dataclass, когда используется код в таком стиле:
from dataclasses import dataclass, field
@dataclass
class C1:
x: int = field()
Конкретно тут, field явно не содержит тип int, но dataclass внутри подменяет все так, что переменная все равно окажется типа int. А mypy такое научить парсить на данный момент можно только прямо в его коде)

Google

Bogdan (SirEdvin)
10.07.2018
18:46:13
Для attrs тоже специальные костыли впиливали: https://github.com/python/mypy/blob/master/mypy/plugins/attrs.py
Просто какой-то ад, честное слово

Denis
10.07.2018
18:46:30
А общий костыль для датаклассов не?

Bogdan (SirEdvin)
10.07.2018
18:46:53
Ну, один костыль для dataclass, второй для attrs. Для каждой либы - свой костыль)
Ну и отказываются делать хоть какую-то систему плагинов: https://github.com/python/mypy/issues/1240#issuecomment-308392810

Denis
10.07.2018
18:47:29
Заставить авторов либ самих писать для них костыли, если хотят mypy

Bogdan (SirEdvin)
10.07.2018
18:49:29
Как минимум, проблема в том, что для этого нет подхода) Вот мне предлагают конфигурить mypy и заставлять его лоадить плагин)

Denis
10.07.2018
18:52:11
Ну и забей на эти типы

Donaudampf
10.07.2018
18:52:44
так это же проблема mypy, не аннотаций

Bogdan (SirEdvin)
10.07.2018
18:53:36
У меня просто была идея перевести orm с x = IntField на x: int как в датаклассах. Вот и вылезло все это добро.
И опять же, если mypy с этим не работает, то нужны ли такие аннотации?

Donaudampf
10.07.2018
18:53:49
аннотации типов - это комментарии, чтобы не писать портянки Inputs:... Return:... в докстрингах, если из них пытаются сделать чего-то большее - ну пусть страдают

Jentry
10.07.2018
18:54:42

Denis
10.07.2018
18:54:47

Google

Nikolay
10.07.2018
18:54:54
если твой код ему соответствует - все окей
если нет - надо исправлять
все остальные ошибки ловит пичарм

Jentry
10.07.2018
18:55:55
flake8 это высокуровнево, pylint плагинами много всего включает

Bogdan (SirEdvin)
10.07.2018
18:56:08

Nikolay
10.07.2018
18:56:27
иначе начинается уже микрооптимизация

Bogdan (SirEdvin)
10.07.2018
18:56:35

Nikolay
10.07.2018
18:56:44

Denis
10.07.2018
18:56:57

Jentry
10.07.2018
18:57:02

Bogdan (SirEdvin)
10.07.2018
18:57:13
Ну, помимо того, что у него там своя реализация и из-за отсутствия стандартизации для обходов, она работает еще хуже, чем mypy

Nikolay
10.07.2018
18:57:30

Bogdan (SirEdvin)
10.07.2018
18:57:37

John
10.07.2018
18:57:47
как удалять строки в csv файлах ?

Nikolay
10.07.2018
18:57:50
а для остальных кейсов должны писаться тесты в идеальном мире

Denis
10.07.2018
18:58:20

Bogdan (SirEdvin)
10.07.2018
18:59:10
Ну, в случаях, когда можно нормально вывести тип, то вполне работает. А в случае dataclass как раз можно отлично вывести тип, главный завтык в mypy и других чекерах.

Google

John
10.07.2018
19:00:41
грепом
Ладно, ну нах. Открыл в блокноте и удалил. Все равно только 1-ю строку удалить требовалось

Denis
10.07.2018
19:00:47
Если этим датаклассом пользоваться как моделью в орме, после после пары фильтров и агрегаций станет сложно

Nikolay
10.07.2018
19:00:51

Aragaer
10.07.2018
19:01:12
sed -i 1d

Nikolay
10.07.2018
19:01:16
но если тебе мешал заголовок - то ты неправильно используешь pandas

Jentry
10.07.2018
19:01:35

Nikolay
10.07.2018
19:01:37
а если ты не используешь pandas - есть серьезное подозрение, что ты неправильно работаешь с csv

Bogdan (SirEdvin)
10.07.2018
19:02:29

Nikolay
10.07.2018
19:02:53
нельзя быть "немножко по pep8"

Jentry
10.07.2018
19:03:59
как минимум можно увеличить длину строки и в этом нет проблем на современных устройствах

Nikolay
10.07.2018
19:04:20
но не нужно, ибо гораздо проще на том же мониторе просто открыть файлы в две колонки

Nikolay
10.07.2018
19:04:26
или в три

Jentry
10.07.2018
19:04:55
ага, и три клавиатуры

Nikolay
10.07.2018
19:05:28
одна с шорткатом прыгания по буферам
как будто проблема

Bogdan (SirEdvin)
10.07.2018
19:08:58
нельзя быть "немножко по pep8"
Что выберете W503 или W504?) Одну из них надо отключить, что бы иметь возможность разделать строками бинарные операторы.

Nikolay
10.07.2018
19:09:58

Denis
10.07.2018
19:11:11
20 вложенных ифов?

Bogdan (SirEdvin)
10.07.2018
19:12:01
Учитывая, что pep8 строго ничего не запрещает - такого вообще нет

Google

Bogdan (SirEdvin)
10.07.2018
19:12:08
Я больше про pycodestyle

Nikolay
10.07.2018
19:12:31
Я больше про pycodestyle
ну, если между людьми в команде всерьез возникает срач, на какой строке делать переносы - эти люди занимаются чем-то не тем
и да, я помню про 1tbs

Denis
10.07.2018
19:13:33

Nikolay
10.07.2018
19:13:51
я вот что-то навскидку не приведу даже

Jentry
10.07.2018
19:14:08

Admin
ERROR: S client not available

Bogdan (SirEdvin)
10.07.2018
19:14:09
grpc?

Denis
10.07.2018
19:14:35

Nikolay
10.07.2018
19:14:35
в протобафе никто не заставляет тебя генерировать код, можно самому то же самое написать компактнее

Aragaer
10.07.2018
19:14:43
а зачем линтером проверять сгенеренный код?
и зачем вообще читать сгенеренный код?

Jentry
10.07.2018
19:15:13

Nikolay
10.07.2018
19:15:17
LR-парсер, например
во-первых, не вижу, что там генерировать. Во-вторых, где это реально нужно в продакшене?

Denis
10.07.2018
19:15:58

Ляман
10.07.2018
19:18:59
https://a-parser.com/?gclid=CjwKCAjwspHaBRBFEiwA0eM3kVivH70vOetlPepeXnLpIWFvDGWwQ5JgmA6r9LjrygiNgcRHAbt0NhoCVCoQAvD_BwE т
Такой софт на питоне написать можно?

Nikolay
10.07.2018
19:19:18
почему бы и нет

Google

Denis
10.07.2018
19:19:36
Можно, но грешно

Ляман
10.07.2018
19:19:41

Denis
10.07.2018
19:20:00
Сео вообще сатана придумал

Nikolay
10.07.2018
19:20:02

Ляман
10.07.2018
19:20:12

Nikolay
10.07.2018
19:20:16

Ляман
10.07.2018
19:20:30
if self.Button4.configure(cnf=None):
size_xlarge(driver)
if self.Button3.configure(cnf=None):
size_large(driver)
def size_large(driver):
select = Select(driver.find_element_by_xpath('//*[@id="size"]'))
select.select_by_visible_text('Large')
def size_xlarge(driver):
select = Select(driver.find_element_by_xpath('//*[@id="size"]'))
select.select_by_visible_text('XLarge')
Почему условия не выполняются?

Nikolay
10.07.2018
19:21:28

Alex
10.07.2018
19:21:38

Ляман
10.07.2018
19:22:50
а что возвращает .configure()?
Смотри если жмут на 3 кнопку(Button3), то self.button3.configure(cnf=None), и если нажали то выполняется это условие и с 4 кнопкой всё так же, но всё время выполняется только 2 условие (size_xlarge)
Я не догоняю почему уже 2 день

Nikolay
10.07.2018
19:23:43
у тебя условия не взаимоисключающие как минимум, там нет else
но не знаю, так непонятно

Jl
10.07.2018
19:24:19
jellywill@jellywill-System-Product-Name:~/Документы/DataBase$ mysqldump -u root -pjellywill comicsDB.sql > comicsDB.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Got error: 1049: Unknown database 'comicsDB.sql' when selecting the database


Ляман
10.07.2018
19:24:41
но не знаю, так непонятно
Обработка кликов:
def disable_fst(event):
self.Button4.configure(cnf=None)
self.Button1.configure(state="disabled")
self.Button2.configure(state="disabled")
self.Button3.configure(state="disabled")
def disable_fsf(event):
self.Button3.configure(cnf=None )
self.Button1.configure(state="disabled")
self.Button2.configure(state="disabled")
self.Button4.configure(state="disabled")
Бинды работают
if self.Button4.configure(cnf=None):
size_xlarge(driver)
if self.Button3.configure(cnf=None):
size_large(driver)
def size_large(driver):
select = Select(driver.find_element_by_xpath('//*[@id="size"]'))
select.select_by_visible_text('Large')
def size_xlarge(driver):
select = Select(driver.find_element_by_xpath('//*[@id="size"]'))
select.select_by_visible_text('XLarge')

Nikolay
10.07.2018
19:25:01

Aragaer
10.07.2018
19:25:05

Nikolay
10.07.2018
19:25:07
посмотри внимательно на команду

Jl
10.07.2018
19:26:23
Сорь, всёравно не выкупаю

Nikolay
10.07.2018
19:26:45