Мотив создания ...
Существует много проекты в которых нужно сразу видеть результат переменных в момент выполнения программы. Например обработка нажатий клавиш от пользователя, навигация между страницами в GUI приложениях, обработка данных из форм на веб проектах. В общем во всех проектах где есть цикл событий, хорошо бы видеть значения переменных, когда идет процесс отладки. Для этого используют обычный print()
но по стандарту ограничен одной консолью, или loggin()
но его нужно относительно дольше настраивать, чем проект console-debugger
, по причине того что нужно указывать файл, стиль вывода даны в файл, рейтинг обработки, в ручную запускать слежение за файлом, в ручную закрывать слежение за файлом, когда вам больше не нужен обработчик. Я понимаю плюсы логирования но они не подходят для дебаггинг.
Console-debugger
Это программа на Python
создана для вывода данных в несколько окон. Подробно можно почитать на GitHub
Установка через pip
pip install console-debugger
Пример использования
import random
import string
random_word = lambda: "".join(random.choice(string.ascii_letters) for j in range(random.randint(1, 40)))
from console_debugger import *
if __name__ == '__main__':
a = Debugger(**dDEBUG)
b = Debugger(**dINFO)
c = Debugger(**dEXCEPTION)
Debugger.GlobalManager(typePrint="socket")
for x in range(10):
print(random_word(), file=a)
print(random_word(), file=b)
print(random_word(), file=c)
import random
import string
random_word = lambda: "".join(random.choice(string.ascii_letters) for j in range(random.randint(1, 40)))
from console_debugger import *
if __name__ == '__main__':
a = Debugger(**dDEBUG)
b = Debugger(**dINFO)
c = Debugger(**dEXCEPTION)
Debugger.GlobalManager(typePrint="socket")
for x in range(10):
printD(a,"Название 1", "Примечание 1",random_word())
printD(b,"Название 2", "Примечание 2",random_word())
printD(c,"Название 3", "Примечание 3",random_word())
Трассировка имени переменных и конвертирование различных данных в str
from console_debugger import *
if __name__ == '__main__':
a = Debugger(**dDEBUG)
b = Debugger(**dINFO)
c = Debugger(**dEXCEPTION)
Debugger.GlobalManager(typePrint="socket")
TracingName1 = "1"
TracingName2 = ["1"]
TracingName3 = "1",
for x in range(10):
printD(a, TracingName1)
printD(b, TracingName2)
printD(c, TracingName3)