@ru_python

Страница 9330 из 9768
Oleg
14.06.2019
07:40:00
А то у меня получается with mock.patch или @mock.patch а вот в методах сделать - не получается

Alex
14.06.2019
07:42:45
Подскажите, а можно mock-ать внутренний клас(ы) в setUp методе, и уже в тест методах настраивать return_value?
э? ну да ты можешь создать мок и пропатчить нужный объект в setUp и настроить его позже

Oleg
14.06.2019
07:43:14
Мок не патч. Можно из setUp запатчить все тесты?

Alex
14.06.2019
07:43:26
Google
Alex
14.06.2019
07:43:41
из сетапа запатчить объект \ метод \ класс whatever перед тестом - да

Oleg
14.06.2019
07:44:00
Ух, ну попробую еще раз

Alex
14.06.2019
07:44:20
Oleg
14.06.2019
07:46:47
class ServiceBaseTestCase(TestCase): def setUp(self): self.blob_mock = mock.patch.object(common.mongo.MongoService, 'get_status') app.testing = True self.c = app.test_client() def test_service_fail(self): self.blob_mock.return_value = {'status': False} rv = select.c.get('/api/v1/status') assert 'fail' == rv.get_json()['status']

Oleg
14.06.2019
07:49:44
Ааа сек это я вырезал

Alex
14.06.2019
07:49:45
два - mock.patch.object() как и другие патчи возвращают не Mock ЕМНИП

Oleg
14.06.2019
07:51:04
mongo_patcher = mock.patch.object(common.mongo.MongoService, 'get_status') self.mongo_mock = mongo_patcher.start() self.addCleanup(mongo_patcher.stop)

Oleg
14.06.2019
07:52:15
И потом у меня: `AttributeError: <function singleton.<locals>.get_instance at 0x10e5a47b8> does not have the attribute 'get_status'`

Егор
14.06.2019
07:52:33
Чем больше я знаю о питоне, тем меньше я знаю о питоне)

Oleg
14.06.2019
07:52:42
def singleton(target_class): """Decorator for classes to create simple singleton""" instances = {} def get_instance(*args, **kwargs): if target_class not in instances: instances[target_class] = target_class(*args, **kwargs) return instances[target_class] return get_instance

Точно. Все изза синглтона. Без него работает, но как теперь сделать правильно?

Google
Oleg
14.06.2019
07:54:28
Из стековерфлоу ?

Alex
14.06.2019
07:55:38
Из стековерфлоу ?
эм... дай угадаю MongoInstance у тебя это singleton()?

Oleg
14.06.2019
07:56:22
Черд, таки да. Тут и угадывать не нужно… >_<

Alex
14.06.2019
07:56:29
@Tishka17 давай в голос хором лекцию о том что signleton это плохо

Oleg
14.06.2019
07:56:37
Сам себе злой… ?

Alex
14.06.2019
07:56:41
а такая имплементация еще хуже

главный вопрос "нахуя"?

Tishka17
14.06.2019
07:56:48
синглтон - это плохо

Alex
14.06.2019
07:57:05
в смысле на зачем для этого еще и отдельную функцию пилить

Oleg
14.06.2019
07:57:08
Alex
14.06.2019
07:57:24
объекты уровня модуля по сути своей являются синглтонами

но синглтон это все равно плохо

Oleg
14.06.2019
07:57:37
в смысле на зачем для этого еще и отдельную функцию пилить
Это был самый простой и безболезненный способ на тот момент

Alex
14.06.2019
07:57:40
Уже уничтожил ?
ты просто патчить пытался ф-цию

Oleg
14.06.2019
07:58:18
Я уже понял. А у нее конечно нету get_status. Функция возвращала инстанс у которого он есть, но это же нужно ее выполнить… =)

Ооо теперь все красиво. Спасибо ?

Denis
14.06.2019
08:09:43
Может сталкивался кто. Есть скрипт, который тянет данные из бд и отправляет их по почте. Скрипт работает корректно, но не могу запустить его с помощью планировщика задания Windows

Sasha
14.06.2019
08:12:42
Смотреть надо как вызывается, пути и под каким пользователем.

Google
Denis
14.06.2019
08:13:03
А в чём проблема?
почему-то не создает файл excel и не отправляет соответственно ничего

пути корректные

даже попробовал создать cmd файл туда прописал python "C:\Python Scripts\Bonus + TO.py" и его на запуск

Александр
14.06.2019
08:13:59
В правильно поставленом вопросе содержиться 50% ответа

Sasha
14.06.2019
08:14:33
Ошибки то скедулер пишет какие то?

Вывод скрипта посмотреть, может не та рабочая директория в скедулере указана.

Tishka17
14.06.2019
08:16:36
Denis
14.06.2019
08:16:56
А по какому пути он его создаёт?
там же где скрипт лежит

Tishka17
14.06.2019
08:17:22
там же где скрипт лежит
Прям так и написано в коде? "там где скрипт лежит"?

yar1k
14.06.2019
08:20:15
Добрый день. Можете помочь, почему данная программа работает: from selenium import webdriver driver = webdriver.Chrome("/home/fruity/hh/73/chromedriver") А если пытаюсь добавить опции: from selenium import webdriver options = webdriver.ChromeOptions() options.binary_location ="/home/fruity/hh/73/chromedriver" driver = webdriver.Chrome(chrome_options=options) выдает selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /home/fruity/hh/73/chromedriver is no longer running, so ChromeDriver is assuming that Chrome has crashed.) (Driver info: chromedriver=74.0.3729.169 (78e4f8db3ce38f6c26cf56eed7ae9b331fc67ada-refs/branch-heads/3729@{#1013}),platform=Linux 4.15.0-51-generic x86_64)

Ser
14.06.2019
08:27:50
какая ос?
дело в том что на например на минте хромдрайвер не работает, там какаято хрень с запуском приложений в режиме сандбокс, при этом абсолютно тот же самый скрипт но на убунту из коробки взлетает вообще без бубна, и там как раз гугл говорит на тему того что нужно понизить версию хромдрайвера, поиграться с настройками и тп

yar1k
14.06.2019
08:33:58
да дело в том, что у меня до 31 мая работал этот скрипт (обновляет резюме HH) а теперь (подсле апгрейда системы перестал работать с chrome 74)

Ser
14.06.2019
08:36:35
попробуй другую версию хромдрайвера, я так и не смог на минте это запустить, тк все равно дело было в виртуалке быстрее и проще накатил убунту разные версии приложения, параметры —no-sandbox, еще там что-то, перенос исполняемого файла, права на запуск разным пользователям, ничего не помогло в итоге

Омурбек уулу
14.06.2019
09:08:05
dt = dateutil.parser.parse('2012-05-29T19:30:03.283Z') dt.strftime('%H:%M / %d %B') выдает '19:30 / 29 May'. не могу понять как сделать чтоб на русском было май месяц

Google
Омурбек уулу
14.06.2019
09:08:40
ну вот как? куда капать ?

Alex
14.06.2019
09:08:59
ну вот как? куда капать ?
https://docs.python.org/3.7/library/locale.html#locale.setlocale

Tigran
14.06.2019
09:09:52
кубрик в треде, посоны

polunin.ai???
14.06.2019
09:10:11
Кидать код в видео это новый уровень

Алексей
14.06.2019
09:10:35
Кидать код в видео это новый уровень
Это что бы понятнее было

''' def OrderBookBuy(): pos = client.OrderBook.OrderBook_getL2(symbol=valuta,depth = stakan).result() price=0 for i in pos[0]: if i['side'] == 'Buy': pass time.sleep(0.7) return pos '''

polunin.ai???
14.06.2019
09:11:07
Не знаю как другим, мне лень смотреть минутное видео на телефоне, где ничего не видно

Алексей
14.06.2019
09:14:32
нужно из json найти блок с самым большим значением size и взять из него значение price """ ([{'symbol': 'XBTUSD', 'id': 8799170350, 'side': 'Sell', 'size': 66560, 'price': 8296.5}, {'symbol': 'XBTUSD', 'id': 8799170400, 'side': 'Sell', 'size': 128367, 'price': 8296.0}, {'symbol': 'XBTUSD', 'id': 8799170450, 'side': 'Sell', 'size': 47627, 'price': 8295.5}, {'symbol': 'XBTUSD', 'id': 8799170500, 'side': 'Sell', 'size': 70694, 'price': 8295.0}, {'symbol': 'XBTUSD', 'id': 8799170550, 'side': 'Sell', 'size': 24344, 'price': 8294.5}, {'symbol': 'XBTUSD', 'id': 8799170600, 'side': 'Sell', 'size': 30081, 'price': 8294.0}, {'symbol': 'XBTUSD', 'id': 8799170650, 'side': 'Sell', 'size': 67299, 'price': 8293.5}, {'symbol': 'XBTUSD', 'id': 8799170700, 'side': 'Sell', 'size': 2315311, 'price': 8293.0}, {'symbol': 'XBTUSD', 'id': 8799170750, 'side': 'Sell', 'size': 96649, 'price': 8292.5}, {'symbol': 'XBTUSD', 'id': 8799170800, 'side': 'Sell', 'size': 2357864, 'price': 8292.0}, {'symbol': 'XBTUSD', 'id': 8799170850, 'side': 'Buy', 'size': 484126, 'price': 8291.5}, {'symbol': 'XBTUSD', 'id': 8799170900, 'side': 'Buy', 'size': 33688, 'price': 8291.0}, {'symbol': 'XBTUSD', 'id': 8799170950, 'side': 'Buy', 'size': 3286, 'price': 8290.5}, {'symbol': 'XBTUSD', 'id': 8799171000, 'side': 'Buy', 'size': 104495, 'price': 8290.0}, {'symbol': 'XBTUSD', 'id': 8799171050, 'side': 'Buy', 'size': 11692, 'price': 8289.5}, {'symbol': 'XBTUSD', 'id': 8799171100, 'side': 'Buy', 'size': 1325, 'price': 8289.0}, {'symbol': 'XBTUSD', 'id': 8799171150, 'side': 'Buy', 'size': 63438, 'price': 8288.5}, {'symbol': 'XBTUSD', 'id': 8799171200, 'side': 'Buy', 'size': 9362, 'price': 8288.0}, {'symbol': 'XBTUSD', 'id': 8799171250, 'side': 'Buy', 'size': 9267, 'price': 8287.5}, {'symbol': 'XBTUSD', 'id': 8799171300, 'side': 'Buy', 'size': 137329, 'price': 8287.0}], <bravado.requests_client.RequestsResponseAdapter object at 0x000001E8B296FD68>) """

Проксимов
14.06.2019
09:15:01
кубрик в треде, посоны
Люблю твои комменты

koder
14.06.2019
09:15:08
Это что бы понятнее было
Это что бы тебе лень текст писать было

Tishka17
14.06.2019
09:15:37
нужно из json найти блок с самым большим значением size и взять из него значение price """ ([{'symbol': 'XBTUSD', 'id': 8799170350, 'side': 'Sell', 'size': 66560, 'price': 8296.5}, {'symbol': 'XBTUSD', 'id': 8799170400, 'side': 'Sell', 'size': 128367, 'price': 8296.0}, {'symbol': 'XBTUSD', 'id': 8799170450, 'side': 'Sell', 'size': 47627, 'price': 8295.5}, {'symbol': 'XBTUSD', 'id': 8799170500, 'side': 'Sell', 'size': 70694, 'price': 8295.0}, {'symbol': 'XBTUSD', 'id': 8799170550, 'side': 'Sell', 'size': 24344, 'price': 8294.5}, {'symbol': 'XBTUSD', 'id': 8799170600, 'side': 'Sell', 'size': 30081, 'price': 8294.0}, {'symbol': 'XBTUSD', 'id': 8799170650, 'side': 'Sell', 'size': 67299, 'price': 8293.5}, {'symbol': 'XBTUSD', 'id': 8799170700, 'side': 'Sell', 'size': 2315311, 'price': 8293.0}, {'symbol': 'XBTUSD', 'id': 8799170750, 'side': 'Sell', 'size': 96649, 'price': 8292.5}, {'symbol': 'XBTUSD', 'id': 8799170800, 'side': 'Sell', 'size': 2357864, 'price': 8292.0}, {'symbol': 'XBTUSD', 'id': 8799170850, 'side': 'Buy', 'size': 484126, 'price': 8291.5}, {'symbol': 'XBTUSD', 'id': 8799170900, 'side': 'Buy', 'size': 33688, 'price': 8291.0}, {'symbol': 'XBTUSD', 'id': 8799170950, 'side': 'Buy', 'size': 3286, 'price': 8290.5}, {'symbol': 'XBTUSD', 'id': 8799171000, 'side': 'Buy', 'size': 104495, 'price': 8290.0}, {'symbol': 'XBTUSD', 'id': 8799171050, 'side': 'Buy', 'size': 11692, 'price': 8289.5}, {'symbol': 'XBTUSD', 'id': 8799171100, 'side': 'Buy', 'size': 1325, 'price': 8289.0}, {'symbol': 'XBTUSD', 'id': 8799171150, 'side': 'Buy', 'size': 63438, 'price': 8288.5}, {'symbol': 'XBTUSD', 'id': 8799171200, 'side': 'Buy', 'size': 9362, 'price': 8288.0}, {'symbol': 'XBTUSD', 'id': 8799171250, 'side': 'Buy', 'size': 9267, 'price': 8287.5}, {'symbol': 'XBTUSD', 'id': 8799171300, 'side': 'Buy', 'size': 137329, 'price': 8287.0}], <bravado.requests_client.RequestsResponseAdapter object at 0x000001E8B296FD68>) """
ты кажется, пропустил лекцию про циклы

polunin.ai???
14.06.2019
09:15:56
нужно из json найти блок с самым большим значением size и взять из него значение price """ ([{'symbol': 'XBTUSD', 'id': 8799170350, 'side': 'Sell', 'size': 66560, 'price': 8296.5}, {'symbol': 'XBTUSD', 'id': 8799170400, 'side': 'Sell', 'size': 128367, 'price': 8296.0}, {'symbol': 'XBTUSD', 'id': 8799170450, 'side': 'Sell', 'size': 47627, 'price': 8295.5}, {'symbol': 'XBTUSD', 'id': 8799170500, 'side': 'Sell', 'size': 70694, 'price': 8295.0}, {'symbol': 'XBTUSD', 'id': 8799170550, 'side': 'Sell', 'size': 24344, 'price': 8294.5}, {'symbol': 'XBTUSD', 'id': 8799170600, 'side': 'Sell', 'size': 30081, 'price': 8294.0}, {'symbol': 'XBTUSD', 'id': 8799170650, 'side': 'Sell', 'size': 67299, 'price': 8293.5}, {'symbol': 'XBTUSD', 'id': 8799170700, 'side': 'Sell', 'size': 2315311, 'price': 8293.0}, {'symbol': 'XBTUSD', 'id': 8799170750, 'side': 'Sell', 'size': 96649, 'price': 8292.5}, {'symbol': 'XBTUSD', 'id': 8799170800, 'side': 'Sell', 'size': 2357864, 'price': 8292.0}, {'symbol': 'XBTUSD', 'id': 8799170850, 'side': 'Buy', 'size': 484126, 'price': 8291.5}, {'symbol': 'XBTUSD', 'id': 8799170900, 'side': 'Buy', 'size': 33688, 'price': 8291.0}, {'symbol': 'XBTUSD', 'id': 8799170950, 'side': 'Buy', 'size': 3286, 'price': 8290.5}, {'symbol': 'XBTUSD', 'id': 8799171000, 'side': 'Buy', 'size': 104495, 'price': 8290.0}, {'symbol': 'XBTUSD', 'id': 8799171050, 'side': 'Buy', 'size': 11692, 'price': 8289.5}, {'symbol': 'XBTUSD', 'id': 8799171100, 'side': 'Buy', 'size': 1325, 'price': 8289.0}, {'symbol': 'XBTUSD', 'id': 8799171150, 'side': 'Buy', 'size': 63438, 'price': 8288.5}, {'symbol': 'XBTUSD', 'id': 8799171200, 'side': 'Buy', 'size': 9362, 'price': 8288.0}, {'symbol': 'XBTUSD', 'id': 8799171250, 'side': 'Buy', 'size': 9267, 'price': 8287.5}, {'symbol': 'XBTUSD', 'id': 8799171300, 'side': 'Buy', 'size': 137329, 'price': 8287.0}], <bravado.requests_client.RequestsResponseAdapter object at 0x000001E8B296FD68>) """
Как мы должны это разобрать? Можно кинуть один словарь, с нормальным расположением - в одной строчке один ключ-значение?

Проксимов
14.06.2019
09:16:17
нужно из json найти блок с самым большим значением size и взять из него значение price """ ([{'symbol': 'XBTUSD', 'id': 8799170350, 'side': 'Sell', 'size': 66560, 'price': 8296.5}, {'symbol': 'XBTUSD', 'id': 8799170400, 'side': 'Sell', 'size': 128367, 'price': 8296.0}, {'symbol': 'XBTUSD', 'id': 8799170450, 'side': 'Sell', 'size': 47627, 'price': 8295.5}, {'symbol': 'XBTUSD', 'id': 8799170500, 'side': 'Sell', 'size': 70694, 'price': 8295.0}, {'symbol': 'XBTUSD', 'id': 8799170550, 'side': 'Sell', 'size': 24344, 'price': 8294.5}, {'symbol': 'XBTUSD', 'id': 8799170600, 'side': 'Sell', 'size': 30081, 'price': 8294.0}, {'symbol': 'XBTUSD', 'id': 8799170650, 'side': 'Sell', 'size': 67299, 'price': 8293.5}, {'symbol': 'XBTUSD', 'id': 8799170700, 'side': 'Sell', 'size': 2315311, 'price': 8293.0}, {'symbol': 'XBTUSD', 'id': 8799170750, 'side': 'Sell', 'size': 96649, 'price': 8292.5}, {'symbol': 'XBTUSD', 'id': 8799170800, 'side': 'Sell', 'size': 2357864, 'price': 8292.0}, {'symbol': 'XBTUSD', 'id': 8799170850, 'side': 'Buy', 'size': 484126, 'price': 8291.5}, {'symbol': 'XBTUSD', 'id': 8799170900, 'side': 'Buy', 'size': 33688, 'price': 8291.0}, {'symbol': 'XBTUSD', 'id': 8799170950, 'side': 'Buy', 'size': 3286, 'price': 8290.5}, {'symbol': 'XBTUSD', 'id': 8799171000, 'side': 'Buy', 'size': 104495, 'price': 8290.0}, {'symbol': 'XBTUSD', 'id': 8799171050, 'side': 'Buy', 'size': 11692, 'price': 8289.5}, {'symbol': 'XBTUSD', 'id': 8799171100, 'side': 'Buy', 'size': 1325, 'price': 8289.0}, {'symbol': 'XBTUSD', 'id': 8799171150, 'side': 'Buy', 'size': 63438, 'price': 8288.5}, {'symbol': 'XBTUSD', 'id': 8799171200, 'side': 'Buy', 'size': 9362, 'price': 8288.0}, {'symbol': 'XBTUSD', 'id': 8799171250, 'side': 'Buy', 'size': 9267, 'price': 8287.5}, {'symbol': 'XBTUSD', 'id': 8799171300, 'side': 'Buy', 'size': 137329, 'price': 8287.0}], <bravado.requests_client.RequestsResponseAdapter object at 0x000001E8B296FD68>) """
Находишь все блоки, сортируешь по size, берёшь size в первом, в чём проблема

polunin.ai???
14.06.2019
09:16:43
нужно из json найти блок с самым большим значением size и взять из него значение price """ ([{'symbol': 'XBTUSD', 'id': 8799170350, 'side': 'Sell', 'size': 66560, 'price': 8296.5}, {'symbol': 'XBTUSD', 'id': 8799170400, 'side': 'Sell', 'size': 128367, 'price': 8296.0}, {'symbol': 'XBTUSD', 'id': 8799170450, 'side': 'Sell', 'size': 47627, 'price': 8295.5}, {'symbol': 'XBTUSD', 'id': 8799170500, 'side': 'Sell', 'size': 70694, 'price': 8295.0}, {'symbol': 'XBTUSD', 'id': 8799170550, 'side': 'Sell', 'size': 24344, 'price': 8294.5}, {'symbol': 'XBTUSD', 'id': 8799170600, 'side': 'Sell', 'size': 30081, 'price': 8294.0}, {'symbol': 'XBTUSD', 'id': 8799170650, 'side': 'Sell', 'size': 67299, 'price': 8293.5}, {'symbol': 'XBTUSD', 'id': 8799170700, 'side': 'Sell', 'size': 2315311, 'price': 8293.0}, {'symbol': 'XBTUSD', 'id': 8799170750, 'side': 'Sell', 'size': 96649, 'price': 8292.5}, {'symbol': 'XBTUSD', 'id': 8799170800, 'side': 'Sell', 'size': 2357864, 'price': 8292.0}, {'symbol': 'XBTUSD', 'id': 8799170850, 'side': 'Buy', 'size': 484126, 'price': 8291.5}, {'symbol': 'XBTUSD', 'id': 8799170900, 'side': 'Buy', 'size': 33688, 'price': 8291.0}, {'symbol': 'XBTUSD', 'id': 8799170950, 'side': 'Buy', 'size': 3286, 'price': 8290.5}, {'symbol': 'XBTUSD', 'id': 8799171000, 'side': 'Buy', 'size': 104495, 'price': 8290.0}, {'symbol': 'XBTUSD', 'id': 8799171050, 'side': 'Buy', 'size': 11692, 'price': 8289.5}, {'symbol': 'XBTUSD', 'id': 8799171100, 'side': 'Buy', 'size': 1325, 'price': 8289.0}, {'symbol': 'XBTUSD', 'id': 8799171150, 'side': 'Buy', 'size': 63438, 'price': 8288.5}, {'symbol': 'XBTUSD', 'id': 8799171200, 'side': 'Buy', 'size': 9362, 'price': 8288.0}, {'symbol': 'XBTUSD', 'id': 8799171250, 'side': 'Buy', 'size': 9267, 'price': 8287.5}, {'symbol': 'XBTUSD', 'id': 8799171300, 'side': 'Buy', 'size': 137329, 'price': 8287.0}], <bravado.requests_client.RequestsResponseAdapter object at 0x000001E8B296FD68>) """
@ru_python_beginers

Ля

polunin.ai???
14.06.2019
09:17:03
Алексей
14.06.2019
09:17:05
polunin.ai???
14.06.2019
09:17:14
Ща дам рабочую ссылку

Google
polunin.ai???
14.06.2019
09:17:28
@ru_python_beginners

Artyem
14.06.2019
09:17:34
polunin.ai???
14.06.2019
09:19:08
Интересно, быстрее сработает собственноручной цикл, или max? По идеи второй должен?

Artyem
14.06.2019
09:21:10
Интересно, быстрее сработает собственноручной цикл, или max? По идеи второй должен?
не факт, в случае max, придётся каждый раз вызывать функцию, что медленнее чем сравнение двух чисел. а в целом пофиг. вот то что строчек меньше, ЭТА ВАЖНА!

Проксимов
14.06.2019
09:23:02
oche somali yoba
14.06.2019
09:26:04
Здравствуйте. Скажите, вы распознаванием текста паспортов занимались? Сканы страниц на вход подаются очень часто с нарушением порядка и с неприятным вращением: нужео как-то разобраться с этим перед распознаванием структурированных блоков.

Потому что темплейт структуры зависит от номера страницы, а номер страницы надо как-то сначала распознать.

Можно нейронку жахнуть, но это, кажется, оверкилл для этой ситуации - должно быть более простое решение, которого я не вижу.

Андрей
14.06.2019
09:29:30
Модно Опен св взять

Страница 9330 из 9768