GitHub - enthought/codetools: Tools for Python code analysis and execution.

GitHub

GitHub CopilotWrite better code with AI | MCP RegistryIntegrate external tools | ActionsAutomate any workflow | CodespacesInstant dev environments | IssuesPlan and track work | Code ReviewManage code changes | Code QualityEnforce quality at merge | Why GitHub | Marketplace | View all features | Enterprises | Small and medium teams | Startups | View all use cases | View all industries | View all solutions | AI | Software Development | DevOps | Security | View all topics | Customer stories | Events & webinars | Ebooks & reports | Business insights | Trust center | Partners | View all resources

The codetools project includes packages that simplify meta-programming and help the programmer separate data from code in Python. This library contains classes that allow defining simple snippets, or "blocks", of Python code, analyze variable dependencies in the code block, and use these dependencies to construct or restrict an execution graph. These (restricted) code blocks can then be executed in any namespace. However, this project also provides a Traits-event-enhanced namespace, called a "context", which can be used in place of a vanilla namespace to allow actions to be performed whenever variables are assigned or retrieved from the namespace. This project is used as the foundation for the BlockCanvas project.