Twiggy

Софтуер снимки:
Twiggy
Софтуер детайли:
Версия: 0.4.4
Дата на качване: 11 May 15
Розробник: Peter Fein
Разрешително: Безплатно
Популярност: 1

Rating: nan/5 (Total Votes: 0)

силно разклонен е ранен стадий на проект за изграждане на по-Pythonic пакет сеч.
<Силен> Предназначение:
Направи дисплей работа:
>>> внос сис; sys.stderr = sys.stdout
Setup е проста
Във вашата main.py:
>>> Внос силно разклонен
>>> Twiggy.quick_setup ()
<Силни> дърводобив Съобщения
>>> От силно разклонен внос *
Main интерфейс е вълшебната дневника:
>>> Влезте #doctest: + елипса

Тя работи от кутията, като се използват стандартните нива:
>>> Log.debug ("Ти не може да се грижи")
DEBUG: Може да не е грижа
>>> Log.error ("OMFG! Pants в пламъци!")
ГРЕШКА: OMFG! Панталони в пламъци!
Тя поддържа различни формати струни, неизправната към новия стил:
>>> Log.info ("Аз нося {0} на моя {}, където", "гащите", където = 'крака')
INFO: Аз нося панталони краката ми
Стар стил работи добре все пак:
>>> Log.options (стил = "сто"). Информация ("Обичам% S", "мотори")
INFO: Обичам велосипеди
Като направя шаблони:
>>>. Инфо log.options (стил = "долар") ("$ какво Kill ', какво =' Автомобили ')
INFO: Автомобили убиват
Можете да назове вашите дървосекачи:
>>> Mylog = log.name ("Алфредо")
>>> Mylog.debug ("Hello")
DEBUG: Алфредо: Здравейте
Но името няма отношение към обекта; това е само за хуманна употреба:
>>> Mylog е log.name ("Алфредо")
Фалшив
<Силни> светене Съобщения
Емисиите са свободно съчетани:
>>> Twiggy.emitters #doctest: + елипса
{'*': }
Можете да зададете min_level на излъчватели:
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.INFO
>>> Log.debug ("Помощ, помощ аз съм се потиснат")
>>> Log.info ("Аз все още не съм съвсем мъртъв")
INFO: Аз все още не съм съвсем мъртъв
Можете да филтрирате по regexes, или с произволни функции:
>>> twiggy.emitters ['*']. филтърни = ". * панталони. *"
>>> Log.info ("Взех си {0} на", "гащи")
INFO: имам панталони
>>> Log.info ("Взех си {0} на", "риза")
Нека да изчисти всичко, което:
>>> twiggy.emitters ['*']. филтър = True
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.DEBUG
<Силен> По-добра изходна
Новите редове са подтиснати по подразбиране; която може да бъде изключена по-съобщение:
>>> Log.info ("потребител ninput nannoys NUS")
INFO: потребителското ninput nannoys NUS
>>> log.options (suppress_newlines = лъжа) .info ("ние ndeal")
INFO: ние
сделка
Изключения се префикс. Може да мине exc_info. Използвайте " Н" като префикс да се прибират в един ред:
>>> Пробвам:
... 1/0
... С изключение на:
... Log.trace ("грешка") предупреждение ("О призив") #doctest:. + Елипса
Внимание: О призив
TRACE Traceback (последното повикване последния):
TRACE File "", линия 2, в
TRACE 1/0
TRACE ZeroDivisionError: целочислено деление или модул от нула
<Силен> Метод Верижно
Харесва ми това окован стил много.
>>> Log.name ("Бенито"). Информация ("Здравейте")
INFO: Бенито: Здравейте
Това прави структуриран сеч лесно:
>>> log.fields (пътеки = 42) .info ("става за разходка")
Инфо: пътеки = 42: става за разходка
Съкратено. Чудесно за статистиката по време на работа за събиране.
>>> Log.struct (пътеки = 42, делфини = "благодарен")
Инфо: делфини = благодарен: пътеки = 42:
Частично свързване може да бъде полезна за webapps:
>>> Per_request_log = log.fields (request_id = '12345')
>>> Per_request_log.fields (редове = 100, ръководство = "Франк"). Информация ("frobnicating база данни")
INFO: request_id = 12345: редове = 100: потребителското = откровен: frobnicating база данни
>>> per_request_log.fields (байтове = 5,678) .info ("изпращане страница над тръби")
Инфо: байта = 5678: request_id = 12345: изпращане страница над тръби
Окован стил е страхотно:
>>> ("Секси" панталони =). Инфо log.name ("donjuan"). Полета ("Здравейте, {}, които искат да {} какво?", Които = 'дамско, какво = "танц")
INFO: donjuan: панталони = секси: Здравейте, дами искат да танцуваш?
<Силен> Dynamic!
Всички функции в АРГументи / полета са наречени и стойността заместени:
>>> OS внос
>>> От twiggy.lib внос thread_name
>>> Thread_name ()
"MainThread"
>>> log.fields (PID = os.getpid) .info ("Аз съм на конци {0}", thread_name) #doctest: + елипса
INFO: PID = 1076: Аз съм в MainThread конци
Това може да бъде полезен с частично обвързани дървосекачи, които нека да ни направят някои готини неща:
>>> Клас ThreadTracker (обект):
... Def __init __ (самостоятелно, OBJ):
... Самостоятелно .__ OBJ = OBJ
... # Частично обвързани дървар
... Самостоятелно .__ влезте = log.name ("следа"). Полета (obj_id = Id (OBJ), конци = thread_name)
... Самостоятелно .__ log.debug ("започна проследяване")
... Def __getattr __ (самостоятелно, ATTR):
... Самостоятелно .__ log.debug ("преглеждана {0}", ATTR)
... Завръщането getattr (самостоятелно .__ OBJ, ATTR)
...
>>> Клас Bunch (обект):
... Мине
...
>>> Foo = Bunch ()
>>> Foo.bar = 42
>>> Карането = ThreadTracker (Foo)
DEBUG: тракера: obj_id = 14063980: конци = MainThread: започна проследяване
>>> Tracked.bar
DEBUG: тракера: obj_id = 14063980: конци = MainThread: преглеждана бар
42
>>> Внос на резби
>>> Т = threading.Thread (целеви = ламбда: tracked.bar * 2, име = "TheDoubler")
>>> T.start ()
DEBUG: тракера: obj_id = 14063980: конци = TheDoubler: преглеждана бар
Ако наистина искате да влезете с подлежащо на поискване изплащане, токсично за възпроизводството () тя или го увийте в ламбда.
<Силен> Оптимизации
Като оптимизация, а min_level може да се настрои на дървосекачи:
>>> Mylog.min_level = twiggy.Levels.INFO
>>> Mylog.info ("Виждате ли този")
INFO: Алфредо: Виждате ли този
>>> Mylog.debug ("Това е скрита")
Те също взимат филтър, който работи на format_spec. Случай, че използването е ефективно спиране на конкретни послания в библиотека, която се прави нещо глупаво:
>>> Mylog.filter = ламбда ите: "щуротии" не в S
>>> Mylog.info ("Стартиране глупост")
INFO: Алфредо: Започвайки глупост
>>> Защото в xrange (3): # за големи стойности на 3
... Mylog.info ("Няма смисъл!")
>>> Mylog.info ("End глупост")
INFO: Алфредо: End глупост

<силни> Изисквания

  • Python

Друг софтуер на разработчика Peter Fein

Twiggy
Twiggy

12 Apr 15

Petapass
Petapass

11 May 15

Коментари към Twiggy

Коментари не е намерена
добавите коментар
Включете на изображения!