Version: 0.1.0-rc.1 Release Date: 2026-03-06 Status: Production Ready
This crate is part of the TensorLogic v0.1.0-rc.1 release with:
- Zero compiler warnings
- 300+ tests passing
- Complete documentation
- Production-ready quality
See main TODO.md for overall project status.
- Basic PyO3 structure
- abi3-py39 configuration
- NumPy integration
- Module organization (types, compiler, executor, numpy_conversion)
- Maturin build with zero warnings
- PyTerm - Expose Term to Python with repr and str
- PyTLExpr - Expose TLExpr with all logical operations
- PyEinsumGraph - Expose compiled graphs with stats
- Helper functions: var(), const(), pred(), and_(), or_(), not_(), exists(), forall(), imply(), constant()
- py_compile() - Main compilation function
- PyCompilationConfig - Configuration wrapper with 6 presets
- soft_differentiable() - Default for neural training
- hard_boolean() - Discrete Boolean logic
- fuzzy_godel() - Godel fuzzy logic
- fuzzy_product() - Product fuzzy logic
- fuzzy_lukasiewicz() - Lukasiewicz fuzzy logic
- probabilistic() - Probabilistic interpretation
- py_compile_with_config() - Compilation with custom config
- py_compile_with_context() - Compilation with CompilerContext
- Error handling with PyRuntimeError
- py_execute() - Execute graphs with NumPy inputs
- Dynamic tensor shape handling (ArrayD)
- Input/output via Python dictionaries
- Integration with Scirs2Exec backend
- Proper error propagation to Python
- NumPy interop module (numpy_conversion.rs)
- numpy_to_array2() - Convert 2D arrays
- array2_to_numpy() - Export 2D arrays
- numpy_to_arrayd() - Convert dynamic arrays
- arrayd_to_numpy() - Export dynamic arrays
- Proper lifetime management with PyReadonlyArray
- Safe memory handling with readwrite() slices
- Zero-copy optimization (requires unsafe improvements) - FUTURE
- PyTorch interop - FUTURE
- Pythonic naming (snake_case for all functions)
- Comprehensive docstrings with Args/Returns/Example
- repr implementations for all types
- str implementations using pretty-printing
- Proper error messages
- Type hints (.pyi stub files) (1100+ lines)
- Context managers
- ExecutionContext - Managed graph execution
- CompilationContext - Managed compilation
- add() - Addition operation (left + right)
- sub() - Subtraction operation (left - right)
- mul() - Multiplication operation (left * right)
- div() - Division operation (left / right)
- Full integration with compilation and execution
- Comprehensive examples (examples/arithmetic_operations.py)
- Full test coverage (tests/test_types.py, tests/test_execution.py)
- eq() - Equality comparison (left == right)
- lt() - Less than comparison (left < right)
- gt() - Greater than comparison (left > right)
- lte() - Less than or equal (left <= right)
- gte() - Greater than or equal (left >= right)
- Full integration with compilation and execution
- Comprehensive examples (examples/comparison_conditionals.py)
- Full test coverage (tests/test_types.py, tests/test_execution.py)
- if_then_else() - Conditional expression (ternary operator)
- Support for nested conditionals
- Comprehensive examples (examples/comparison_conditionals.py)
- Full test coverage (tests/test_types.py, tests/test_execution.py)
- pytensorlogic.pyi - Complete type stubs for IDE support (1100+ lines)
- pytest test suite - 300+ tests covering all operations
- test_types.py - Type creation and operation tests
- test_execution.py - End-to-end execution tests
- test_backend.py - Backend selection tests
- test_provenance.py - Provenance tracking tests (40+ tests)
- test_training.py - Training API tests (40+ tests)
- test_persistence.py - Model persistence tests (20+ tests)
- test_dsl.py - Rule Builder DSL tests (100+ tests)
- pytest.ini - Test configuration
- requirements-dev.txt - Development dependencies
- Python examples - 12 runnable demonstration scripts
- arithmetic_operations.py - All arithmetic operations
- comparison_conditionals.py - All comparisons and conditionals
- basic_usage.py - Comprehensive usage guide
- backend_selection.py - Backend selection
- provenance_tracking.py - Provenance tracking (450+ lines)
- training_workflow.py - Training API (450+ lines, 10 scenarios)
- model_persistence.py - Model persistence (600+ lines, 10 scenarios)
- rule_builder_dsl.py - Rule Builder DSL (550+ lines, 10 examples)
- async_execution_demo.py - Async execution (300+ lines)
- performance_benchmark.py - Performance benchmarks
- memory_profiling.py - Memory profiling and streaming
- advanced_symbol_table.py - SymbolTable and CompilerContext
- DomainInfo - Domain representation with metadata
- name, cardinality properties
- description, elements support
- set_description(), set_elements() methods
- PredicateInfo - Predicate representation
- name, arity, arg_domains properties
- description support
- SymbolTable - Complete symbol table management
- add_domain(), add_predicate()
- bind_variable(), get_domain(), get_predicate()
- get_variable_domain(), list_domains(), list_predicates()
- infer_from_expr() - Automatic schema inference
- get_variable_bindings() - Query all bindings
- to_json() / from_json() - JSON serialization
- CompilerContext - Low-level compilation control
- add_domain(), bind_var()
- assign_axis() - Einsum axis assignment
- fresh_temp() - Temporary tensor names
- get_domains(), get_variable_bindings(), get_axis_assignments()
- get_variable_domain(), get_variable_axis()
- Comprehensive example (examples/advanced_symbol_table.py)
- PyBackend - Backend enumeration (AUTO, SCIRS2_CPU, SCIRS2_SIMD, SCIRS2_GPU)
- PyBackendCapabilities - Backend capability information
- name, version, devices, dtypes, features, max_dims properties
- supports_device(), supports_dtype(), supports_feature() methods
- summary(), to_dict() methods
- get_backend_capabilities() - Query backend capabilities
- list_available_backends() - List all backends with availability
- get_default_backend() - Get default backend
- get_system_info() - System and backend information
- Backend parameter in py_execute()
- SourceLocation - Source code location tracking
- file, line, column properties
- String representation
- SourceSpan - Source code span representation
- start, end locations
- Span formatting
- Provenance - Provenance metadata for IR nodes
- rule_id, source_file, span properties
- Custom attributes (add_attribute, get_attribute, get_attributes)
- Full Python bindings
- ProvenanceTracker - RDF and tensor computation mappings
- track_entity() - Entity to tensor mappings
- track_shape() - SHACL shape to rule mappings
- track_inferred_triple() - RDF* triple tracking
- get_entity(), get_tensor() - Bidirectional lookups
- get_entity_mappings(), get_shape_mappings()
- get_high_confidence_inferences() - Confidence filtering
- to_rdf_star(), to_rdfstar_turtle() - RDF* export
- to_json(), from_json() - JSON serialization
- RDF* support with enable_rdfstar flag
- Graph Provenance Functions
- get_provenance() - Extract provenance from graphs
- get_metadata() - Extract metadata from graphs
- provenance_tracker() - Helper function
- Type stubs - pytensorlogic.pyi updated
- Test suite - test_provenance.py (300+ lines, 40+ tests)
- Example - provenance_tracking.py (450+ lines, 10 scenarios)
- Loss Functions - Multiple loss function implementations
- mse_loss() - Mean Squared Error for regression
- bce_loss() - Binary Cross-Entropy for binary classification
- cross_entropy_loss() - Cross-Entropy for multi-class classification
- LossFunction class with call method
- Optimizers - Optimizer implementations for parameter updates
- sgd() - Stochastic Gradient Descent with momentum
- adam() - Adam optimizer with beta1, beta2, epsilon
- rmsprop() - RMSprop optimizer with alpha, epsilon
- Learning rate adjustment support
- Callbacks - Training monitoring and control
- early_stopping() - Early stopping with patience and min_delta
- model_checkpoint() - Model checkpointing during training
- logger() - Training progress logging with verbosity control
- Trainer Class - High-level training interface
- fit() method with epochs, validation_data, verbose
- evaluate() method for model evaluation
- predict() method for inference
- TrainingHistory tracking with metrics
- Convenience Functions
- fit() function for quick training without explicit Trainer
- Type stubs - pytensorlogic.pyi updated with training types
- Test suite - test_training.py (370+ lines, 40+ tests)
- Example - training_workflow.py (450+ lines, 10 scenarios)
- Code quality - Zero clippy warnings, SCIRS2 compliant
- ModelPackage - Complete model serialization container
- graph, config, symbol_table, parameters, metadata properties
- add_metadata(), get_metadata() - Metadata management
- save_json(), load_json() - JSON format (human-readable)
- save_binary(), load_binary() - Binary format (compact)
- to_json(), from_json() - JSON string conversion
- to_bytes(), from_bytes() - Binary conversion
- getstate, setstate - Pickle support
- Persistence Functions
- save_model() - Save compiled graphs
- load_model() - Load compiled graphs
- save_full_model() - Save with config and metadata
- load_full_model() - Load complete models
- model_package() - Helper function
- Format Support
- JSON format (human-readable, cross-platform)
- Binary format (compact, efficient)
- Auto format detection from file extension
- Pickle support for Python workflows
- Type stubs - pytensorlogic.pyi updated (200+ lines)
- Test suite - test_persistence.py (400+ lines, 20+ tests)
- Example - model_persistence.py (600+ lines, 10 scenarios)
- ONNX export - FUTURE
- Var class with domain bindings
- PredicateBuilder for callable predicates with arity/domain validation
- Operator overloading (&, |, ~, >>)
- RuleBuilder context manager
- Symbol table integration
- Multiple compilation strategies
- Comprehensive examples and tests
- Full type stubs
- Rich HTML Display -
_repr_html_()methods for all major types- EinsumGraph - Node statistics and type breakdown
- SymbolTable - Domains, predicates, variables in tables
- CompilationConfig - Configuration semantics
- ModelPackage - Component checklist and metadata
- TrainingHistory - Epoch-by-epoch loss tables
- Provenance - Rule origin and attributes
- HTML Generation Module (jupyter.rs)
- HTML table generator
- Card/badge components
- Key-value list formatter
- Specialized visualizers for each type
- Visualization widgets - FUTURE
- Interactive debugging - FUTURE
- Progress bars - FUTURE
- GIL Release - Release GIL during CPU-bound tensor operations
- Parallel execution - BatchExecutor and execute_parallel
- Async support - AsyncResult, execute_async
- Memory profiling - Complete performance monitoring
- MemorySnapshot class
- Profiler class with timing statistics
- Timer context manager
- memory_snapshot(), get_memory_info(), reset_memory_tracking()
- StreamingExecutor - Process large datasets in chunks
- Configurable chunk_size and overlap
- execute_streaming() method
- DataGenerator - Memory-efficient data loading
- ResultAccumulator - Accumulate streaming results
- add(), combine(), stats()
- process_stream() - Process iterator through graph
- CancellationToken - Cancel async operations
- cancel(), is_cancelled(), reset()
- AsyncResult cancellation support
- cancel(), is_cancelled(), get_cancellation_token()
- Custom Exceptions - Better error handling
- CompilationError - Compilation failures
- ExecutionError - Execution failures
- ValidationError - Input validation failures
- BackendError - Backend operations failures
- ConfigurationError - Invalid configuration
- ExecutionContext - Context manager for execution
- execute(), get_results(), execution_count(), clear_results()
- CompilationContext - Context manager for compilation
- compile(), get_graphs(), get_graph(), graph_count()
- Utility Functions
- quick_execute() - One-liner compile + execute
- validate_inputs() - Input validation
- batch_compile() - Compile multiple expressions
- batch_predict() - Predict on multiple inputs
- Comprehensive README.md
- QUICKSTART.md (Quick start guide)
- examples/README.md (Example navigation)
- Complete API reference (in README.md)
- COMPLIANCE_REPORT.md - Quality validation report
- PACKAGING.md - Complete packaging guide
- pytensorlogic.pyi - Complete with all types (1100+ lines)
- Sphinx documentation - FUTURE
- Tutorial Jupyter notebooks - FUTURE
- PyTorch tensor integration
- GPU backend support
- ONNX export
- PyPI release
- maturin build and wheel distribution
- Platform-specific builds (Linux x86_64, macOS arm64/x86_64, Windows)
- Coverage reporting in CI (pytest-cov configured, needs CI pipeline)
- Benchmark suite in CI (pytest-benchmark configured)
- Visualization widgets for Jupyter
- Interactive debugging
- Progress bars for long operations
- mypy strict mode validation
Total Items: 120+ tasks Completion: 100% of core + medium + performance + utility features Release: v0.1.0-rc.1 (2026-03-06)
- Phase 1 Complete: Core types binding (PyTerm, PyTLExpr, PyEinsumGraph)
- Phase 2 Complete: Compilation API (compile, config presets)
- Phase 3 Complete: Execution API (execute with NumPy)
- Phase 4 Complete: NumPy interop (bidirectional conversion)
- Phase 5 Complete: Python-friendly API (docstrings, repr, error handling)
- Phase 6 Complete: Arithmetic operations (add, sub, mul, div)
- Phase 7 Complete: Comparison operations (eq, lt, gt, lte, gte)
- Phase 8 Complete: Conditional operations (if_then_else)
- Phase 9 Complete: Type stubs (.pyi) and testing infrastructure
- Phase 10 Complete: SymbolTable and domain management
- Phase 11 Complete: CompilerContext for advanced compilation
- Phase 12 Complete: Backend selection API (CPU/SIMD/GPU)
- Phase 13 Complete: Provenance tracking (full RDF* support)
- Phase 14 Complete: Training API (loss functions, optimizers, callbacks)
- Phase 15 Complete: Model Persistence (save/load, multiple formats, pickle)
- Phase 16 Complete: Jupyter Integration (rich HTML display for all types)
- Phase 17 Complete: Rule Builder DSL (Python-native syntax, operator overloading)
- Phase 18 Complete: Performance Monitoring (GIL release, profiler, memory tracking)
- Phase 19 Complete: Streaming Execution (StreamingExecutor, ResultAccumulator)
- Phase 20 Complete: Async Cancellation (CancellationToken, cancel support)
- Phase 21 Complete: Utility Functions (context managers, custom exceptions, helpers)
- Maturin build succeeds with zero warnings
- Release build optimized and ready
- All dependencies resolved
- Zero clippy warnings
- 300+ pytest tests across 7 test files
- 12 comprehensive examples
- Type stub file (pytensorlogic.pyi) with full API coverage (1100+ lines)
- pytest.ini configuration
- requirements-dev.txt with all dependencies
- Core: var(), const(), pred(), and_(), or_(), not_(), exists(), forall(), imply(), constant(), if_then_else()
- Arithmetic: add(), sub(), mul(), div()
- Comparisons: eq(), lt(), gt(), lte(), gte()
- Compilation: compile(), compile_with_config(), compile_with_context()
- Execution: execute(), execute_async(), execute_parallel()
- Async: AsyncResult, BatchExecutor, CancellationToken, cancellation_token()
- Adapters: DomainInfo, PredicateInfo, SymbolTable, CompilerContext
- Backend: Backend, BackendCapabilities, get_backend_capabilities(), list_available_backends(), get_default_backend(), get_system_info()
- Provenance: SourceLocation, SourceSpan, Provenance, ProvenanceTracker, get_provenance(), get_metadata(), provenance_tracker()
- Training: LossFunction, Optimizer, Callback, TrainingHistory, Trainer, mse_loss(), bce_loss(), cross_entropy_loss(), sgd(), adam(), rmsprop(), early_stopping(), model_checkpoint(), logger(), fit()
- Persistence: ModelPackage, model_package(), save_model(), load_model(), save_full_model(), load_full_model()
- DSL: Var, PredicateBuilder, RuleBuilder, var_dsl(), pred_dsl(), rule_builder()
- Performance: MemorySnapshot, Profiler, Timer, memory_snapshot(), profiler(), timer(), get_memory_info()
- Streaming: StreamingExecutor, DataGenerator, ResultAccumulator, streaming_executor(), result_accumulator(), process_stream()
- Exceptions: CompilationError, ExecutionError, ValidationError, BackendError, ConfigurationError
- Utils: ExecutionContext, CompilationContext, quick_execute(), validate_inputs(), batch_compile(), batch_predict(), execution_context(), compilation_context()
Total API: 80+ functions, 35+ classes, 5 custom exceptions, 6 compilation strategies, 3 serialization formats, 6 rich displays, 4 operator overloads