All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Client API: Metaclass-based remote method execution with
D3PluginClient- Support for both sync and async methods
- Automatic Python 2.7 code conversion for Designer compatibility
- Session management with context managers
- Functional API: Decorator-based remote execution
@d3pythonscriptdecorator for one-off script execution@d3function(module_name)decorator for reusable module-based functions- Function chaining support within modules
- Session Management:
D3SessionandD3AsyncSessionclassesrpc()method for simple return value retrievalexecute()method for full response with logs and status- Automatic module registration via context managers
- Type Safety: Full Pydantic models for all API interactions
PluginPayload,PluginResponse,RegisterPayload- Generic type support for type-safe return values
- Logging: Configurable logging with
enable_debug_logging()- NullHandler by default (library best practice)
- Granular module-level control
- AST Utilities: Python 3 to Python 2.7 code transformation
- F-string to
.format()conversion - Type annotation removal
- Async/await removal
- Automatic package import detection
- F-string to
- Comprehensive test suite with 99 tests covering all major functionality
- CI/CD with GitHub Actions (ruff, mypy, pytest)
- PEP 561 type hints marker (
py.typed)