@ru_python

Страница 202 из 9768
Artem
22.01.2016
10:39:58
о, виртуалэнв обновился
conda удобнее для окружений

Aliaksiej
22.01.2016
10:40:11
Artem
22.01.2016
10:41:34
conda create -n py35 python=3.5 activate py35 deactivate

Aliaksiej
22.01.2016
10:42:38
типа pip + venv + pyenv?

Google
Artem
22.01.2016
10:42:42
да

Aliaksiej
22.01.2016
10:43:43
я так понимаю лучше миниконда?

ибо хз каких он там либ натянуть хочет

Artem
22.01.2016
10:44:12
да, полная анаконда очень много весит, там все научные пакеты в комплетке

еще через нее по аналогии с pip можно ставить те же научные пакеты, не ставя в систему десятки зависимостей (conda install scipy, например)

Henaro
22.01.2016
10:49:43
а чем она удобней?

Artem
22.01.2016
10:52:16
Aliaksiej
22.01.2016
10:58:55
какой-то он там стремный. Скопилирован по другому

(mytestprj){13:58}~/miniconda3/envs ➭ python Python 3.5.1 !!!---»»>|Continuum Analytics, Inc.|«<-----!!!! (default, Dec 7 2015, 11:16:01) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or "license" for more information.

Henaro
22.01.2016
11:08:49
кстати, а если я сделал 2 виртуальных окружения, в каждом из них (по очереди) создал маленькую аппликуху. Оно обе сразу будут работать?

Viktor
22.01.2016
11:16:46
а ты Grab не юзаешь? там вроде было что-то для этого, и более нативно
Не, у меня websocket для получения данных А для апи реквестс + джсон

Google
terry
22.01.2016
11:23:24
я хз, там за 4 года вроде почти 5 к видео

Viktor
22.01.2016
11:23:41
работает.
а which pip что даёт?

Стоит ли делать докстринги для методов, которые есть в ботапи, а не придуманы мною?

Henaro
22.01.2016
11:25:33
нет, разве что для себя комментарии оставь )

Viktor
22.01.2016
11:26:09
Только для собственных?

terry
22.01.2016
11:26:24
Они же все с ютаба
ну можно же все спарсить и сложить названи 0- урла

Pavel
22.01.2016
11:27:10
Стоит ли делать докстринги для методов, которые есть в ботапи, а не придуманы мною?
стоит хотя бы поставить ссылку, где прочитать про этот метод: делает то-то, смотри http://тут

Viktor
22.01.2016
11:27:18
то есть есть API.sendMessage() А есть API.genMarkup() Для второго естественно нужно. А для 1? Копипастить с официального апи?

http://www.youtube.com/watch?v=o4PFDKIc2fs

тьфу

не то

https://www.youtube.com/watch?v=CDeG4S-mJts

вот

Так норм?

Господи, как зашакалило

from enum import Enum class enum_test(object): def func(self, data, file_type=self.file_type.preload): """ Different part """ if file_type == self.file_type.preload: print("preload") elif file_type == self.file_type.new print("new") else print("url") """ Same part for any file_type: """ pass class file_type(Enum): preload = 1 new = 2 url = 3

и тогда для вызова надо `enum_test_obj.

Google
Kolyann
22.01.2016
13:09:10
Господи, как зашакалило
всё ок, ткни по картинке

Aliaksiej
22.01.2016
13:16:15
Viktor
22.01.2016
13:34:35
и тогда для вызова надо eto.func(data, file_type=eto.file_type.new)

можно в двух словах, что этот код делает?
хелло ворд для енума внутри класса и метод с ним

Это нормально выглядит? Или лучше по-другому?

Пожалуй я вынесу Enum из класса

Pavel
22.01.2016
13:54:25
кто умеет в logging? Хочу TimedRotatingFileHandler, которые сегодняшние логи пишет в файл с датой в имени. По дефолту он пишет сегодня в foo.log, а в полночь переименовывает в foo.log.2016-01-22. Я хочу и сегодняшнее видеть в файле foo.2016-01-22.log. Много кида писать не хочу, однако.

Kolyann
22.01.2016
13:56:28
https://docs.python.org/3/library/logging.handlers.html#timedrotatingfilehandler

там в конструкторе файлнейм

эт не оно?

Pavel
22.01.2016
13:56:52
Да, я понимаю, что это удобно, когда свежие логи в одном и том же файле лежат, но мне их глазами смотреть надо, а не тулзами обрабатывать.

Pavel
22.01.2016
13:57:52
там в конструкторе файлнейм
это префикс имени, если сюда вкорячить дату, то она навсегда тут останется. Скрипт у меня работает долго.

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

Ilya
22.01.2016
14:10:33
писать и логротейт :)

Viktor
22.01.2016
14:11:03
писать и логротейт :)
так он же только для обрезания, не?

Pavel
22.01.2016
14:11:53
писать и логротейт :)
Блин, логи такая инфраструктурная фигня, что тратить на них ваше внимание и моё время - грех.

А как логгинг реализован?
Как всегда, import logging

Google
Viktor
22.01.2016
14:13:02
А как в полночь меняешь?

Pavel
22.01.2016
14:31:19
Viktor
22.01.2016
14:31:31
код плз

Pavel
22.01.2016
14:32:00
Код чего?

Viktor
22.01.2016
14:33:16
логгинга

Или это по-дефолту?

Какие настройки ставишь

Admin
ERROR: S client not available

Pavel
22.01.2016
14:34:47
Три хандлера - exception smtp

Viktor
22.01.2016
14:34:56
код плз

Sergey
22.01.2016
14:35:16
код плз
Ты логгировать че то собрался?

Viktor
22.01.2016
14:35:16
то есть просто импортировал, и начал вызывать?

Ты логгировать че то собрался?
Я хочу на базе его кода допилить то, что он спрашивал

Pavel
22.01.2016
14:37:36
Нет там кода. Три конструктора по умолчанию. И вызов logging.info()

Доберусьт до дома покажу эти пять строк.

Ты логгировать че то собрался?
А ты не пишешь логи? ?

Sergey
22.01.2016
14:39:17
Пишу:)

У меня большинтво скриптов консольные. При инициализации беру метку времени в формате ddmmyyyy_hhmmss.log и в этот лог пишем все что происходило в сессии. Новый запуск - новый файл.

Pavel
22.01.2016
14:42:02
Руками всё это?

Google
Sergey
22.01.2016
14:42:27
Не понял

Viktor
22.01.2016
14:43:10
Руками всё это?
ну наверное самописаное

Pavel
22.01.2016
14:43:14
Пишешь в файл рукамт или через модуль логгинг

Sergey
22.01.2016
14:43:20
через logging

# -*- coding: utf-8 -*- """ logger ~~~~~~ This module provides an interface for logging operations """ import logging from datetime import datetime import os ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) LOG_DIR = ROOT_DIR + '/log' if not os.path.exists(LOG_DIR): os.mkdir(LOG_DIR) class Logger: def __init__(self): now = datetime.now() name = datetime.strftime(now, '%Y%m%d_%H%M%S') self.config = {} self.config['name'] = name self.config['file_format'] = '%(asctime)s [%(levelname)s] %(message)s' self.config['console_format'] = '[%(levelname)s] %(message)s' log = logging.getLogger(name) log.setLevel(logging.INFO) # File log fh = logging.FileHandler(LOG_DIR + '/%s.log' % name) fh.setLevel(logging.INFO) fh.setFormatter(logging.Formatter(self.config['file_format'])) # Console log ch = logging.StreamHandler() ch.setLevel(logging.INFO) ch.setFormatter(logging.Formatter(self.config['console_format'])) log.addHandler(fh) log.addHandler(ch) self.log = log def get(self): return self.log

вот как то так

Pavel
22.01.2016
14:44:45
Я там писал выше. Твой подход хорош для коротких скрипто, которые работают меньше суток

А я хочу логи за сегодня видеть в сегодняшнем файле, а не когда там демон поднялся пять лёт назад.

Sergey
22.01.2016
14:47:46
Прям с маху и не приходит в голову как это реализовать.

Pavel
22.01.2016
14:48:55
Переписать часть timexrotatedfilehandler или как там его.

Но это черезчур. Я лучше смирюсь с именами файлов.

Viktor
22.01.2016
14:55:26
не *nix - way

Для enum лучше if foo == enum_t.apple или if foo is enum_t.apple?

Pavel
22.01.2016
14:56:55
не *nix - way
А к меня глаза нормального цвета, чтобы тратить жизнь на формат имени файла логов. ?

Viktor
22.01.2016
14:57:38
Ребят, а как сделать проверку что передан именно list of list of str?

или не стоит?

Nikita
22.01.2016
15:00:46
traforet

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