본문으로 건너뛰기

flow.subflow

flow.subflow(...)flow = px.Flow(...)로 만든 Flow 객체의 메서드입니다. 별도로 관리되는 Flow를 현재 Flow 안에서 재사용합니다.

무엇을 만드나요?

다른 Python module에서 import한 flow 객체를 External reference 하나로 배치합니다. 현재 Flow는 참조 Flow의 공개 input과 result를 연결해 사용합니다.

Studio에서는 어디에 보이나요?

Canvas에서 Subflow · External reference로 보입니다. 더블클릭하면 내부 Flow가 읽기 전용으로 열리고, Edit source Flow를 누르면 원본 Flow를 편집할 수 있습니다.

문법

python
flow.subflow(subflow_key, imported_flow, *, label=None, client=None)

최소 예제

python
from pipelinexlab import px
from section_library.flows.properties import SectionGeometry, flow as section_flow


flow = px.Flow(
    "member_check",
    label="Member check",
    description="Checks one structural member.",
)
geometry = flow.input(
    "geometry",
    SectionGeometry,
    description="Section geometry.",
)
section = flow.subflow(
    "section_properties",
    section_flow,
    label="Section properties",
)

flow.connect(geometry, section.inputs.geometry)
flow.result("area", section.results.area)

매개변수

이름설명
subflow_key현재 Flow에서 이 참조를 구분하는 lower_snake_case 고유 이름
imported_flow다른 module에서 import한 px.Flow 객체. 문자열 이름은 허용하지 않음
labelCanvas에 표시할 선택적인 이름
client이 배치를 해석할 px.Client. 생략하면 살아 있는 px.Client가 정확히 하나일 때 그것을 사용하고, 0개거나 2개 이상이면 refusal입니다. Client를 두 개 이상 열어 두었다면 반드시 지정하십시오

반환값과 handle

Subflow handle을 반환합니다. 이 handle은 현재 Project에 설치된 Flow package와 exact saved revision을 제품 resolver가 확인한 뒤 만들어집니다. inputs.<port_key>results.<port_key>를 일반 Node port처럼 연결합니다.

규칙과 진단

  • imported Flow를 flow.node(...)에 전달하지 않습니다.
  • 호출 시 Project scope를 정직하게 선택할 수 있도록 live px.Client가 정확히 하나 있어야 합니다.
  • Python은 package digest나 revision을 만들지 않습니다. 인증된 product.flow.resolve_subflow 경로가 installed dependency closure를 읽어 돌려준 pin만 저장합니다.
  • 참조 Flow의 내부는 현재 Flow에서 수정하지 않습니다. Edit source Flow에서 원본을 엽니다.
  • 저장 Plan과 Apply는 target과 exact PackageReleaseRef가 현재 installed closure와 같은지 각각 다시 확인합니다. pxflow_validate는 Project scope가 없으므로 구조만 검사합니다.
  • import를 해석할 수 없거나 공개 port가 바뀌면 validation이 참조와 영향을 받은 연결을 함께 표시합니다.
  • 같은 Flow 안의 Node를 묶을 때는 flow.group(...)을 사용합니다.

다음