{"repo":"smacke/pyccolo","free":true,"listed":false,"github":"https://github.com/smacke/pyccolo","clone":"git clone https://github.com/smacke/pyccolo.git","description":"Declarative instrumentation for Python.","language":"Python","stars":104,"topics":["python","metaprogramming","ast","tracing","instrumentation","interpreter","declarative"],"license":null,"category":"analytics","readme_excerpt":"Pyccolo ======= Pyccolo (pronounced like the instrument \"piccolo\") is a library for declarative instrumentation in Python; i.e., it lets you specify the what of the instrumentation you wish to perform, and takes care of the how for you. ✨ Go here to try it in your browser ✨ Pyccolo brings metaprogramming to everybody via general, event-emitting AST transformations, and aims to be: - ergonomic — you subclass pyc.BaseTracer and decorate a handler; there's no bytecode to patch and no ast.NodeTransformer to hand-write; - composable — layering multiple, independently-written instrumentations usually Just Works TM (more on this below); - portable — the same code runs across Python 3.6 through 3.14, with few exceptions, because instrumentation is embedded at the level of source code rather than bytecode. In the wild Pyccolo is the instrumentation engine behind several projects — good places to see what it can do at scale: - ipyflow — a reactive Python kernel for Jupyter that tracks dataflow between cells using Pyccolo's dynamic analysis. - pipescript — a pipe operator ( ), placeholder ( $ ), and macro syntax for IPython/Jupyter, built entirely on Pyccolo's syntax-augmentation and composable event handlers. - pycograd — a small reverse-mode automatic-differentiation library that differentiates ordinary numpy code (no special \"autodiff namespace\"), using Pyccolo to trace the computation. - \\ Other things people have built with Pyccolo include statement-level code coverage, syntactic m","default_branch":null,"files":null,"tree":[],"storefront":"/r/smacke","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/smacke/pyccolo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}