Library para tracing de objetos em python3 🐍
Fala, galera, tudo bem?
Ao longo da minha jornada no mundo do desenvolvimento, tive que lidar com muito código mal escrito de outras pessoas, principalmente códigos em Python, que, sendo uma linguagem muito popular, até mesmo em grandes empresas, geram códigos difíceis de decifrar.
Para tentar resolver um pouco desse problema, decidi criar minha primeira biblioteca, que foi publicada no PyPI, chamada Outliner.
O Outliner é uma biblioteca de tracing de código cuja proposta é simples: mostrar ao usuário o fluxo de invocação de objetos em Python.
Vamos utilizar o seguinte código de exemplo:
`
class test:
def __init__(self) -> None:
self.func1()
def func2(self):
print("Hello, world.")
return
def func1(self):
self.func3()
return
def func3(self):
self.func5()
return
def func4(self):
self.func2()
return
def func5(self):
self.func4()
return
`
O outliner irá trazer o output:
(
Hello, world.
init
│
│──1. func1
│
│──2. func3
│
│──3. func5
│
│──4. func4
│
│──5. func2
Ou podera mostrar os dados de forma mais detalhada:
Hello, world.
('init', {'call': 1, 'return': 1, 'line': 1})
('func1', {'call': 1, 'return': 1, 'line': 2})
('func3', {'call': 1, 'return': 1, 'line': 2})
('func5', {'call': 1, 'return': 1, 'line': 2})
('func4', {'call': 1, 'return': 1, 'line': 2})
('func2', {'call': 1, 'return': 1, 'line': 2})
*Note que, mesmo que já tenha sido lançado no pypi, ainda existe trabalho a fazer nele (principalmente no tracing em si). *
Venho aqui para divulgar o projeto e achar pessoas que queiram contribuir nele.
Github: https://github.com/LucasAndradeDias/outliner
Feedback é sempre bem-vindo.