
Tishka17
20.02.2019
08:50:07
какой ещё киви для сайта

Maxim robox
20.02.2019
08:50:40

Tishka17
20.02.2019
08:52:53
черт, на работе слак внедряют

Alex
20.02.2019
08:53:47

Google

Alex
20.02.2019
08:53:58
ну разве что у вас неадекватное начальство которое читает все переписки.

Tishka17
20.02.2019
08:54:05
а хз, чем им телеграм не угодил
бля, пароль от аппстора забыл

Alex
20.02.2019
08:54:33
с точки зрения корпоративного мессенджера телеграм очень убогий

Maxim robox
20.02.2019
08:54:34

Alex
20.02.2019
08:54:45

Tishka17
20.02.2019
08:55:09
плюс ещё один мессенджер на телефоне

Питон
20.02.2019
08:56:29
Кстати, а на каком фреймворке пишут годные приложения на питоне?

Alex
20.02.2019
08:57:21

Maxim robox
20.02.2019
08:57:29

Питон
20.02.2019
08:57:34
не
Пкашные

Google

Alex
20.02.2019
08:57:48
в смысле десктопные

Maxim robox
20.02.2019
08:57:55
Пкашные
Пару часов назад обсуждали. Полистай.

Питон
20.02.2019
08:58:04
ляяя
просто назови

Alex
20.02.2019
08:58:34
на питоне GUI не очень много пишут

Питон
20.02.2019
09:00:43
Ксати, я один сделал пару "ботов", чтобы они тип сами заходили мне в кс, в нужную игру тип напарники, соревновательный и тд
Кто играет тот поймёт
Тупл похвастаться перед друзьями
Они просто не знают чтт эт легко)
И думают что я спец-программист)

Olga
20.02.2019
09:02:31
всем привет! мне нужно спарсить информацию на сайте, которая выводится зависимо от выбранных параметров пользователем. Для этого использую scrapy, FormRequest передаю пост запросом параметры в словаре formdata. В этом словаре есть две даты, по которым выводится таблица, что нужно вытянуть. Сейчас эти даты я меняю руками в коде. Вопрос: можно каким-то образом подставлять в словарь значение по ключу по определенной логике при этом, шаг дат должен быть 1 неделя, и в словарь formdata они должны быть типа str.
пример:
return scrapy.FormRequest("https://exemple.com/",
formdata={"FEC_Desde":"12/02/2019","FEC_Hasta":"18/02/2019"},
callback=self.after)

Deys
20.02.2019
09:02:44
Друзья, а кто нибудь кубернетос на амазоне запускал? management kubernetes я имею ввиду

Oleg
20.02.2019
09:02:47
Ткинтер

Проксимов
20.02.2019
09:02:55

Oleg
20.02.2019
09:03:25

Питон
20.02.2019
09:03:52
Нееее
боты нет
тупо заходили
я ж говорю изи

Google

Питон
20.02.2019
09:04:28
7 строк кода
а они думаю что сложно)

Проксимов
20.02.2019
09:04:46
Так быть хоть пермобан получил на акк

Питон
20.02.2019
09:04:58
а почему должен?
Этот 'бот' я создал с помощью pythongui
я ж говорю эт дажп не бот
поэтому в ковычках

Проксимов
20.02.2019
09:06:19
Ну тип Стим банит ботов

Vadim ?
20.02.2019
09:14:02

Anton
20.02.2019
09:17:50
Была функция 'A(...)'. Одному senior понадобилось разветвить логику.
Он создаёт другую функцию (эдакую прокси)
def А(*args, **kwargs):
if something:
_do_A(*args, **kwargs)
else:
_do_A_extra(*args, **kwargs)
где
_do_A(..., **kwargs) - переименованная А
_do_A_extra(..., extra, **kwargs) - полное дублирование 'А' с 1-2 изменениями, чаще в виде передачи дополнительных параметров.
Таких прокси становится всё больше, (меня это начинает напрягать).
Собственно вопросы:
1. Это какие-то best practice?
2. По идее, это жёсткое дублирование кода. Не?
3. В _do_A появляется **kwargs, который нифига не используется. Это тоже какая-то обычная практика и я загоняюсь от незнания? Или всё тут попахивает?

Владимир
20.02.2019
09:18:36
черт, на работе слак внедряют
модно и молодежно. Будут ботики по мозгам с капать. Там полно долбоаддонов для тыкания в разработчиков острой палкой)


Tigran
20.02.2019
09:18:55
Была функция 'A(...)'. Одному senior понадобилось разветвить логику.
Он создаёт другую функцию (эдакую прокси)
def А(*args, **kwargs):
if something:
_do_A(*args, **kwargs)
else:
_do_A_extra(*args, **kwargs)
где
_do_A(..., **kwargs) - переименованная А
_do_A_extra(..., extra, **kwargs) - полное дублирование 'А' с 1-2 изменениями, чаще в виде передачи дополнительных параметров.
Таких прокси становится всё больше, (меня это начинает напрягать).
Собственно вопросы:
1. Это какие-то best practice?
2. По идее, это жёсткое дублирование кода. Не?
3. В _do_A появляется **kwargs, который нифига не используется. Это тоже какая-то обычная практика и я загоняюсь от незнания? Или всё тут попахивает?
1. Нет.
2. Вроде бы нет.
3. **kwargs появляется на будущее, на случай, если в _do_A появятся keyword arguments.

̓ͨͬͣ̽̇ ̼̲̫̙̠̩ ̝̟͍͔̬͒̇̓̏͒̔̓V̰͎ͤ͐ͨͬ̍ͥ ̘̥ ̙̭̤̻̟ ̤ ̺̪͙͎͐ͫͦ̓͊̀
20.02.2019
09:21:37

Anton
20.02.2019
09:21:44


Владимир
20.02.2019
09:21:51
Была функция 'A(...)'. Одному senior понадобилось разветвить логику.
Он создаёт другую функцию (эдакую прокси)
def А(*args, **kwargs):
if something:
_do_A(*args, **kwargs)
else:
_do_A_extra(*args, **kwargs)
где
_do_A(..., **kwargs) - переименованная А
_do_A_extra(..., extra, **kwargs) - полное дублирование 'А' с 1-2 изменениями, чаще в виде передачи дополнительных параметров.
Таких прокси становится всё больше, (меня это начинает напрягать).
Собственно вопросы:
1. Это какие-то best practice?
2. По идее, это жёсткое дублирование кода. Не?
3. В _do_A появляется **kwargs, который нифига не используется. Это тоже какая-то обычная практика и я загоняюсь от незнания? Или всё тут попахивает?
Сложно сказать без самого кода, но можно переписать иначе, декомпозируя логику исполнения не по принципу добавочных условий, а по принципу добавочной обработки. Чтобы использовать результат предыдущей обработки


Tigran
20.02.2019
09:22:49

Google

Tishka17
20.02.2019
09:24:05

Tigran
20.02.2019
09:24:35
по-моему, слака норм (кроме того, что медленная)
там есть киллер-фича user groups, можно меншнуть сразу несколько ответственных за компонент

Сергей
20.02.2019
09:25:27
в слаке есть реакции и еще кое-что, чего нет в телеграм.

Tishka17
20.02.2019
09:25:45
пока у меня было испытание залогиниться

Anton
20.02.2019
09:25:51

Robot
20.02.2019
09:25:58
на питоне GUI не очень много пишут
есть куча популярных gui проектов на питоне. на прыщеос так вообще половина гуеприложений на питоне. одних видеоредакторов штуки 3-4. а так всякие deluge, gajim, meld

Admin
ERROR: S client not available

Проксимов
20.02.2019
09:26:00

Tigran
20.02.2019
09:26:16

Сергей
20.02.2019
09:27:40


Tigran
20.02.2019
09:28:00
Была функция 'A(...)'. Одному senior понадобилось разветвить логику.
Он создаёт другую функцию (эдакую прокси)
def А(*args, **kwargs):
if something:
_do_A(*args, **kwargs)
else:
_do_A_extra(*args, **kwargs)
где
_do_A(..., **kwargs) - переименованная А
_do_A_extra(..., extra, **kwargs) - полное дублирование 'А' с 1-2 изменениями, чаще в виде передачи дополнительных параметров.
Таких прокси становится всё больше, (меня это начинает напрягать).
Собственно вопросы:
1. Это какие-то best practice?
2. По идее, это жёсткое дублирование кода. Не?
3. В _do_A появляется **kwargs, который нифига не используется. Это тоже какая-то обычная практика и я загоняюсь от незнания? Или всё тут попахивает?
Можешь подробнее про задачу рассказать?

Vadim ?
20.02.2019
09:28:19

Anastasiya
20.02.2019
09:30:04
#vacancy #job #работа #Minsk
✔️ компания #Verv
✔️ Python Team Lead
В Verv есть интересная вакансия: Python Team Lead - только для технических профи, которым небезразличен бизнес. Работать будем в тесной связке с топ-менеджментом и основателями компании. За рекомендацию отблагодарим!
https://verv.com/careers/team-lead/.
● Python 3, teamleading, RabbitMQ/Kafka, relational databases (PostgreSQL, MySQL)
● 3+ years of work experience as a Tech/Team Lead, 5+ years of commercial development experience
● ЗП от 3000 до 5000-6000 USD (или больше, зависит от опыта)
О компании:
Разрабатываем только собственные мобильные приложения - мировые лидеры в сегменте Health & Fitness. Нашими продуктами пользуются 70 млн человек в США, Западной Европе, Азии, Австралии, Южной Америке и даже Африке.
Telergam: @AnastasiyaGurinovich.
Join #vervteam!
P.S. готовы рассматривать кандидатов и на переезд.


Tishka17
20.02.2019
09:31:56
Была функция 'A(...)'. Одному senior понадобилось разветвить логику.
Он создаёт другую функцию (эдакую прокси)
def А(*args, **kwargs):
if something:
_do_A(*args, **kwargs)
else:
_do_A_extra(*args, **kwargs)
где
_do_A(..., **kwargs) - переименованная А
_do_A_extra(..., extra, **kwargs) - полное дублирование 'А' с 1-2 изменениями, чаще в виде передачи дополнительных параметров.
Таких прокси становится всё больше, (меня это начинает напрягать).
Собственно вопросы:
1. Это какие-то best practice?
2. По идее, это жёсткое дублирование кода. Не?
3. В _do_A появляется **kwargs, который нифига не используется. Это тоже какая-то обычная практика и я загоняюсь от незнания? Или всё тут попахивает?
говно код. Надо было просто сделать A_extra с дефолтными параметрами

Cookie
20.02.2019
09:33:48

Tishka17
20.02.2019
09:34:19
и да, вместо того чтобы городить 1000 проксей, рефакторить надо

M
20.02.2019
09:39:53
Всем привет. Кто-нибудь знает как в pyenv-virtualenv создать вируальное окружение не в директории по умолчанию, а там где мне надо?

Tishka17
20.02.2019
09:40:19
там же при создании ты имя папки указываешь

Anton
20.02.2019
09:41:06
Можешь подробнее про задачу рассказать?
это не так просто. Абстрактно:
есть модуль работы с БД, например, операции над document (create, delete, move, update)
Есть два сервера, с разной функциональность в силу версионности.
В итоге вышеоговоренным человеком предложен вариант с проксированием функций а ля :
было
def move(id, from, to):
...
в стало
def move(*args, **kwargs):
if config.something_enabled():
_move(*args, **kwargs)
else:
_move_v2(*args, **kwargs)
def _move(id, from, to, **kwargs)
... # don't use 'kwargs' at all
def _move_v2(id, from, to, note=None, **kwargs)
... # use 'note' but don't use 'kwargs'
и такие обёртки для всех функций в модуле, и начинают появляться в других. Т.е. на 1 старую, появляются 3 новых: прокси с идентичной логикой if config.something_enabled(), и две практически идентичных реализации

Google

M
20.02.2019
09:42:02


Tishka17
20.02.2019
09:42:35
это не так просто. Абстрактно:
есть модуль работы с БД, например, операции над document (create, delete, move, update)
Есть два сервера, с разной функциональность в силу версионности.
В итоге вышеоговоренным человеком предложен вариант с проксированием функций а ля :
было
def move(id, from, to):
...
в стало
def move(*args, **kwargs):
if config.something_enabled():
_move(*args, **kwargs)
else:
_move_v2(*args, **kwargs)
def _move(id, from, to, **kwargs)
... # don't use 'kwargs' at all
def _move_v2(id, from, to, note=None, **kwargs)
... # use 'note' but don't use 'kwargs'
и такие обёртки для всех функций в модуле, и начинают появляться в других. Т.е. на 1 старую, появляются 3 новых: прокси с идентичной логикой if config.something_enabled(), и две практически идентичных реализации
нахрен в _move и _move_v2 вообще kwargs?
это не так просто. Абстрактно:
есть модуль работы с БД, например, операции над document (create, delete, move, update)
Есть два сервера, с разной функциональность в силу версионности.
В итоге вышеоговоренным человеком предложен вариант с проксированием функций а ля :
было
def move(id, from, to):
...
в стало
def move(*args, **kwargs):
if config.something_enabled():
_move(*args, **kwargs)
else:
_move_v2(*args, **kwargs)
def _move(id, from, to, **kwargs)
... # don't use 'kwargs' at all
def _move_v2(id, from, to, note=None, **kwargs)
... # use 'note' but don't use 'kwargs'
и такие обёртки для всех функций в модуле, и начинают появляться в других. Т.е. на 1 старую, появляются 3 новых: прокси с идентичной логикой if config.something_enabled(), и две практически идентичных реализации
я так понял, у тебя либа которую юзают два приложения? и надо совместимость API сохранить?
это прекрансо решается добавлением параметра с default значением в конец
а вот эти if something_enabled - это вопрос бизнес логики, тут бы подбронее
муть какая-то
выглядит как будто DI переизобрели


Anton
20.02.2019
09:44:49

Tishka17
20.02.2019
09:44:58
чо
прмиер операции

Anton
20.02.2019
09:45:04
меня напрягает сам подход проксирования в данном случае

Tishka17
20.02.2019
09:45:13
да, тут должен быть DI
сlass Mover:
def move(id, from, to, note=None): …
И зависимости от конфига разные реализации
хотя есть подозрение что тут вообще это не нужно и достаточно одной
ты же сказал move и move_v2 почти одинаковые

Anton
20.02.2019
09:48:59

Питон
20.02.2019
09:49:47
аааа лол,случайно