validate_for_import
Check TwinCAT XML files for import readiness by validating structure and compliance with IEC 61131-3 standards before deployment.
Instructions
Quick validation check for TwinCAT import readiness.
Args: file_path: Path to TwinCAT file
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| enforcement_mode | No | strict |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- Implementation of the 'validate_for_import' tool, which performs a quick validation check for TwinCAT file import readiness.
def validate_for_import( file_path: str, enforcement_mode: str = DEFAULT_ENFORCEMENT_MODE ) -> str: """Quick validation check for TwinCAT import readiness. Args: file_path: Path to TwinCAT file """ _t0 = time.monotonic() ctx = None try: mode_error = _validate_enforcement_mode(enforcement_mode, start_time=_t0) if mode_error: return mode_error ctx = _resolve_execution_context(file_path, enforcement_mode=enforcement_mode) path, error = _validate_file_path(file_path, start_time=_t0, execution_context=ctx) if error: return error engine_start = time.time() file = TwinCATFile.from_path(path) engine_result = validation_engine.validate(file, "critical") safe_to_import = engine_result.errors == 0 deduped_issues = _dedupe_validation_issues(engine_result.issues) critical_issues = [ {"category": issue.category, "message": issue.message, "severity": "critical"} for issue in deduped_issues if issue.severity in ("error", "critical") ] result = { "success": True, "file_path": str(path), "safe_to_import": safe_to_import, "critical_issues": critical_issues, "error_count": engine_result.errors, "validation_time": round(time.time() - engine_start, 3), } return _with_meta(result, _t0, execution_context=ctx) except Exception as e: error_kwargs = {"execution_context": ctx} if ctx is None: error_kwargs.update(unresolved_policy_fields(enforcement_mode)) return _tool_error( str(e), file_path=file_path, start_time=_t0, **error_kwargs, )