Report 작성 API
px.Report는 Report Workbench와 같은 편집 명령으로 Report의 내용과 Flow 연결을 작성합니다. 완성한 Report는 report.save()로 새 .pxreport revision에 저장합니다.
SDK 생성자는 px.Report(...)이고, 이 생성자가 반환한 특정 Report의 작업은 report.section(...), report.connect_flow(...), report.save()로 이어갑니다. basis = report.section(...)으로 받은 Section handle에서는 basis.text(...)처럼 호출하고, connection = report.connect_flow(...)으로 받은 handle에서는 connection.bind(...)처럼 호출합니다.
from pipelinexlab import px
from project_flows.girder_check import flow
report = px.Report("girder_report", title="Girder review")
basis = report.section("design_basis", title="Design basis")
basis.text("purpose", "Review the governing girder check.")
span = basis.value("span", 12.0, unit="m")
summary = report.section("check_summary", title="Check result")
slot = summary.result_slot("utilization", label="Utilization")
connection = report.connect_flow("strength_check", flow)
connection.bind("span_input", span, to=flow.inputs.span)
connection.show("utilization_result", flow.results.utilization, at=slot)
report_revision = report.save()Report 객체 만들기
- SDK 생성자 ·
px.Report(...)로 새 Report 객체 만들기 - SDK class method ·
px.Report.open(...)으로 저장된 Report 이어서 편집하기
Report 객체 메서드
.capture_context()로 저장하지 않고 참고 범위와 수정 대상 캡처하기.apply_edits()로 본문·입력·표 변경을 함께 검증하고 초안에 적용하기.table()과 셀 편집, 텍스트 범위 편집, 첨부 bytes 고정.section()으로 본문 section 추가하기.connect_flow()로 Connected Flow 추가하기.move()로 stable key를 유지하며 항목 이동하기.remove()로 항목과 mapping 영향 검토 후 제거하기.remove_connection()으로 Connected Flow 제거하기.save()로 작성 내용과 연결을 검증해 새.pxreportrevision 저장하기
Section handle 메서드
basis = report.section(...)처럼 받은 handle에서 호출합니다.
.text()로 일반 text block 추가하기.value()로 typed value와 unit 저장하기.table()로 stable row key가 있는 Table 추가하기.attachment()로 Flow에 전달할 파일 추가하기.result_slot()으로 Flow result가 표시될 위치 만들기.result_table()로 Table result 위치 만들기.artifact_slot()으로 Artifact result 위치 만들기
Table handle 메서드
.select()로 stable row·field를 선택해 typed mapping source 만들기
Connected Flow handle 메서드
strength = report.connect_flow(...)처럼 받은 handle에서 호출합니다.
.bind()로 stable mapping key와 함께 Report 원본을 Flow input에 연결하기.show()로 stable mapping key와 함께 Flow result를 Report 위치에 표시하기.remove_mapping()으로 input/result mapping 제거하기
기존 항목 바꾸기
px.Report.open(...)으로 연 Report에서 같은 stable key와 같은 kind를 다시 선언하면 해당 항목을 갱신합니다. 예를 들어 basis.value("span", 14.0, unit="m")는 기존 span value의 값을 바꿉니다. 같은 key를 다른 kind로 바꾸거나 삭제한 key를 다른 의미로 재사용하면 validation이 실패합니다. 순서·부모 변경은 report.move(...), 제거는 report.remove(...)를 사용합니다.
저장과 편집 모델
저장된 Report의 기준 문서는 .pxreport입니다. Python SDK, Report Workbench와 AI는 같은 section·value·connection key를 사용해 이 문서를 편집합니다.
Python 코드는 Report 작성을 자동화할 때 사용합니다. report.save() 뒤에는 저장된 .pxreport revision이 현재 Report의 기준입니다. Workbench 또는 AI가 먼저 새 revision을 저장했다면, Python에서 다시 저장할 때 그 사이의 변경과 충돌하는지 확인합니다.
px.Report와 px.Flow는 같은 pipelinexlab import에서 사용하며 같은 .py 파일에도 둘 수 있습니다. 저장 결과는 .pxreport와 .pxflow라는 독립 문서로 유지됩니다.
실행은 Runtime API에서
Report 작성과 연결 저장으로 계산 준비를 마칩니다. 실제 계산은 저장한 connection을 client.run(...), 여러 connection은 client.run_many(...), 반복 scalar case는 client.run_batch(...)로 실행합니다.
전체 예제
Python으로 Report와 Flow 함께 만들기에서 설치부터 Flow·Report 작성, 저장과 실행까지 이어지는 예제를 확인하세요.