키스킷 SDK 1.4 릴리즈 노트
1.4.6
Prelude
Qiskit v1.4.6 는 보안 업데이트 전용 릴리스이며, Qiskit v1.x 시리즈의 마지막 릴리스입니다.
Qiskit v1.x 은 더 이상 어떤 형태로도 유지 관리되지 않습니다.
보안 문제점
-
OpenQASM 의 2개 파서(
qasm2.load()와qasm2.loads())는 이제 지나치게 깊은 표현식을 평가하려고 시도할 때 오류와RecursionError함께 종료됩니다. 파서 진입 지점에서 Python 의sys.getrecursionlimit()허용 최대 깊이를 참조합니다.이전에는 파서가 Rust 메모리 공간 내에서 임의로 재귀 호출을 수행할 수 있었으며, 결국 최대 스택 공간을 초과하여 프로세스에 세그폴트가 발생했습니다.
1.4.5
Prelude
키스킷 v1.4.5 은 1.4 시리즈의 마지막 버그 수정 릴리스이며 이 시리즈의 수명이 다했음을 의미합니다. 1.4 시리즈의 보안 수정에 대한 지원은 2026년 3월 31일까지 계속됩니다.
버그 수정
-
회로 시각화에서 익명 비트 처리를 수정했습니다. 이전에는 레지스터에 연결되지 않은 비트가 기본값인 Python 표현으로 표시되었지만, 이제는 읽기 쉬운 방식으로 인덱스가 표시됩니다. 14031 수정.
-
패스를 초기화할 때
Optimize1qGatesDecomposition패스를 초기화할 때Target고정 각도 매개변수가 있는 1q 게이트를 포함하는 패스를 초기화할 때 발생하는 문제를 수정했습니다. 이전에는 타깃의 게이트가 임의의 파라미터 값을 지원하는지 확인하지 않았기 때문에 패스가 타깃 외부의 게이트를 출력할 가능성이 있었습니다. 수정 #14743. -
패스에서 잘못된 동작을 수정했습니다
BasisTranslator블록 내의 멀티 큐비트 게이트가ControlFlowOp블록 내의 멀티 큐비트 게이트가 외부 회로의 절대 인덱스를 사용하는 대신 로컬 큐비트 인덱스로 지원되는 연산을 추적하는 잘못된 동작을 수정했습니다. 13728 수정. -
의 버그를 수정했습니다
HighLevelSynthesis에서 게이트가 다른 명령어 객체 안에 중첩된 경우 사용자 지정 게이트 보정이 인식되지 않던 버그가 수정되었습니다. 부분적으로 수정된 #13728. -
제어 흐름 작업 내부의 회로 블록이 외부 회로와 다른 레지스터에 정의된 경우 발생할 수 있는 회로 텍스트 드로어의 오류를 수정했습니다. 이러한 상황은 예를 들어
ControlFlowOp연산을 직접 추가하거나 트랜스파일링 후 회로에서 발생할 수 있습니다.
1.4.4
Prelude
키스킷 v1.4.4 은 v1.4.x 릴리즈 시리즈의 마이너 버그 수정 릴리즈입니다.
버그 수정
-
ApplyLayout은 이제 제로 큐비트를 적용하는 경우를 올바르게 처리합니다Layout. 이전에는"layout"필드가 같더라도 레이아웃이 설정되지 않았다고 주장했습니다PropertySet가Layout()와 같더라도 레이아웃이 설정되지 않았다고 주장했습니다. -
메서드의 버그를 수정했습니다
QuantumCircuit.assign_parameters()에서 문자열 입력 및 인자strict=False에 오류가 발생하는 버그를 수정했습니다. 자세한 내용은 #13933을 참조하세요. -
수정
name속성을 수정하여OrGate클래스의 속성이 이제"or"로 설정되어 이 게이트를 고유하게 식별하도록 수정했습니다. 이전에는"and"로 잘못 설정되어 다음과 구분할 수 없었습니다AndGate와 구별할 수 없거나 합성 플러그인을 사용하여OrGate. 수정 #14434 -
트랜스파일러 패스의 버그를 수정했습니다
ElidePermutations트랜스파일러 패스의 버그를 수정했습니다PermutationGate가 있을 때 쿼비트 매핑이 올바르게 업데이트되지 않아 잘못된 회로와 패스 매니저의 프로퍼티 세트 업데이트로 이어지는 버그를 수정했습니다. -
의 버그를 수정했습니다
PauliEvolutionSynthesisDefault및PauliEvolutionSynthesisRustiq플러그인에서preserve_order=False을 설정할 때 원래 회로의.synthesis속성을 수정하는 버그를 수정했습니다. 플러그인의 동작이 복원되었으며 이제 트랜스필레이션 파이프라인 전체에서 원래 회로가 보존됩니다. -
'ps'단위를 사용하여 지연 명령이 포함된 회로를 QASM3 으로 내보낼 때 정확성 버그가 수정되었습니다. -
지원되는 최소 rustworkx 버전( 0.15 )과의 호환성 문제를 수정했습니다. 특정 입력값을 사용하면
VF2Layout및VF2PostLayout는 이전에 rustworkx 0.16.0 에 추가된 rustworkx 메서드를 사용했기 때문에 지원되는 것으로 나열된 이전 rustworkx 릴리스를 사용할 때 오류가 발생할 수 있습니다. -
SabreLayout와SabreSwap를 사용하는 회로에 라우팅 결과를 적용할 때 더 이상 당황하지 않습니다expr.Var객체를 사용하는 회로에 라우팅 결과를 적용할 때 더 이상 당황하지 않습니다. -
회로 라이브러리 기능
quantum_volume()가 업데이트되어numpy.random.Generator를seed인수의 입력으로 처리하도록 업데이트되었습니다. 이전에는 이러한 생성기 인수가TypeError. -
회로 라이브러리 함수의 버그 수정
evolved_operator_ansatz(),qaoa_ansatz()및hamiltonian_variational_ansatz()에서 매개변수에 0 복소수 구성 요소가 있는 버그가 수정되었습니다. 메서드를 사용하여 SymPy 으로 번역하지 않는 한 대부분 문제가 되지 않았지만ParameterExpression.sympify()메서드를 사용하면 오류가 발생했습니다.
1.4.3
Prelude
키스킷 v1.4.3 은 v1.4.x 릴리즈 시리즈의 마이너 버그 수정 릴리즈입니다.
버그 수정
-
의 버그를 수정했습니다
DAGCircuit의 버그를 수정했습니다Var노드가 입력 노드가 되는 버그를 수정했습니다(deepcopy및 피클링 중). -
트랜스파일러 패스의 문제를 수정했습니다
BasisTranslator트랜스파일러 패스에서 DAG의 전역 단계가 올바르게 업데이트되지 않던 문제를 수정했습니다. 14074 수정. -
QPY의 버그 수정(
qiskit.qpy)에서 클래스 게이트가 포함된 회로가MCMTGate클래스의 게이트를 포함하는 회로가 직렬화되지 않던 버그를 수정했습니다. 13965번을 참조하세요. -
SabreLayout는 이제 회로의name및metadata필드를 조인트 레이아웃 및 라우팅 패스로 수행할 때 올바르게 전파합니다. -
단일 합성 플러그인의 문제를 수정했습니다
SolovayKitaevSynthesis단일 합성 플러그인에서 다른 베이시스 게이트로 플러그인을 반복적으로 실행하면 첫 번째 실행의 베이시스 게이트만 잘못 재사용되는 문제를 수정했습니다. 이 문제는 기본 근사값을 캐싱할 때 기준 게이트를 무시했기 때문이었으며, 이제 수정되었습니다. -
트랜스파일러 패스의 문제를 수정했습니다
SolovayKitaev트랜스파일러 패스에서 내부 재귀에서 180도 회전이 발생하여 패스가 제대로 처리되지 않아 충돌이 발생할 수 있는 문제를 수정했습니다. -
트랜스파일러 패스의 문제를 수정했습니다
SolovayKitaev트랜스파일러 패스에서 생성된 근사값이 올바른 값과 차이 나는 위상을 가질 수 있는 문제를 수정했습니다. 이는 큐비트 게이트 행렬의 올바른 부호를 얻기 위해 추가 처리가 필요한 내부 표현으로 인해 발생한 결과입니다. 수정 #9552 -
의 폴백 오류 휴리스틱은
VF2Layout및VF2PostLayout의 오류 휴리스틱은 보고된 오류율이 없을 때 사용되며, 이전에는 1보다 큰 오류를 할당하고 결과 레이아웃 점수에 예측할 수 없는 영향을 미칠 수 있었습니다.
1.4.2
Prelude
키스킷 1.4.2 은 1.4 릴리스 시리즈에서 발견된 버그를 수정하는 패치 릴리스입니다.
새 기능
- 함수에 새 플래그
trust_payload를 추가했습니다qpy.load()함수에 추가했습니다. 이 기능은 잠재적으로 안전하지 않은 페이로드를 강제로 로드하는 데 사용됩니다. 페이로드에ScheduleBlock객체( 독립형 또는QuantumCircuit.calibrations)가 포함되어 있고 QPY 파일의 심볼릭 인코딩이sympy로 설정되어 있다면 페이로드는 잠재적으로 안전하지 않으며, 이를 로드하면 임의의 코드 실행이 허용될 수 있습니다. 이 플래그는 존재하지 않는 인스턴스의 역직렬화를 제어하기 위한 것이므로ScheduleBlock1.4.x 인스턴스의 역직렬화를 제어하기 위한 것이므로 이 플래그는 키스킷 >= 2.0.0 에서만 존재하고 키스킷 >= 2.0.0 에서는 존재하지 않습니다.
업그레이드 주의사항
- 기본적으로
qpy.load은 이제 QPY 페이로드가 포함된QpyError객체를 포함하는 QPY 페이로드로 호출될 때ScheduleBlock객체(독립형 또는QuantumCircuit.calibrations)를 포함하는 객체(독립형 또는sympy를 사용하여 심볼릭 표현식을 인코딩하는 경우)를 반환합니다. 이는 페이로드가 잠재적으로 취약할 수 있으므로 콘텐츠를 신뢰하는 경우에만 로드해야 하기 때문입니다. 페이로드가 악의적이지 않다고 확신하는 경우qpy.load의 새trust_payload인수를True로 설정하면 페이로드를 로드할 수 있습니다.
보안 문제점
- 의 보안 취약점을 수정했습니다
qpy.load()sympy를 사용하여 직렬화하는 페이로드 로드 시 보안 취약점 수정ParameterExpression객체 및 기타 기호 표현식을 직렬화하는 페이로드를 로드할 때의 보안 문제를 수정했습니다. 여기에는 QPY 버전 < 10을 사용하는 모든 QPY 페이로드가 포함될 수 있으며, 직렬화 단계에 사용되는 기호 인코딩에 따라 선택적으로 10, 11, 12(qpy.dump()).
버그 수정
- 의 기준 근사치 생성 버그를 수정했습니다
SolovayKitaev. 이전에는"sx"또는"sxdg"게이트가 포함된 기저에 대해generate_basis_approximations을 사용하여 이산 기저 근사치를 생성하면 실패했습니다. 이 문제는 이제 수정되었습니다.
1.4.1
Prelude
키스킷 1.4.1 은 1.4 확장 지원 시리즈에서 발견된 일부 버그를 수정하는 소규모 패치 릴리스입니다.
버그 수정
-
에 의해 구성된 사전 설정된 패스 관리자를 사용하여 컴파일된 회로는 이제 올바르게 유지됩니다
generate_preset_pass_manager()에 의해 컴파일된 회로는 이제 올바르게name어트리뷰트를 올바르게 유지합니다transpile(). -
를 호출하여 정의된
ParameterExpression객체를 직렬화 또는 역직렬화할 때 QPY 13의 문제를 수정했습니다ParameterExpression.subs()를 호출하여Parameter를ParameterExpression. 예를 들어,from qiskit.circuit import Parameter a = Parameter("A") b = Parameter("B") expr = a + b c = Parameter("C") new_expr = c ** 3.14 final_expr.subs({b: new_expr})이전 릴리스에서는 다음과 같은 표현식을 포함하는
QuantumCircuit와 같은 표현식이 포함된qpy.dump()를 사용하여 직렬화하면 ‘ParameterExpression’ 객체에 'name' 속성이 없다는 오류 메시지와 함께AttributeError가 발생했을 것입니다(기본값). 더 이상 예외가 발생하지 않고 이러한 중첩된 객체가 포함된 페이로드를 직렬화 및 역직렬화할 수 있도록 수정되었습니다ParameterExpression객체를 포함하는 페이로드를 직렬화하고 역직렬화할 수 있습니다. 13879번을 참조하세요.
1.4.0
Prelude
키스킷 v1.4 릴리스는 v1.x 시리즈의 마지막 마이너 버전 릴리스입니다. 이번 릴리스에는 최소한의 기능만 포함되어 있으며, 주로 향후 주요 버전 릴리스( v2.0 )에서 제공될 API 변경 사항에 대한 새로운 사용 중단 경고를 추가합니다. 키스킷 v1.3.x 릴리스와 완벽하게 호환됩니다. 키스킷 v2.0 에서 변경되는 인터페이스에 대한 경고를 볼 수 있도록 v1.3.x 에서 v1.4 으로 업그레이드할 것을 강력히 권장합니다. v1.4.x 릴리스 시리즈는 이 릴리스 이후에도 6개월 동안 버그 수정이 계속 지원되며, 1년간 보안 수정이 제공됩니다. 수정 사항은 패치 릴리스를 통해 적용될 예정입니다. 릴리스 일정과 지원 주기에 대한 자세한 내용은 릴리스 일정에 대한 자세한 문서가 있는 qiskit-sdk-version-strategy를 참조한다.
회로 기능
- 새로운 메서드가 추가되었습니다,
QuantumCircuit.estimate_duration()에서 예약된 회로 출력의 예상 지속 시간을 계산하는 새로운 메서드인transpiler. 더 이상 사용되지 않는 속성인QuantumCircuit.duration어트리뷰트 대신 전체 회로 지속 시간을 추정해야 할 때 사용합니다.
회로 사용 중단
-
서브클래싱
Register또는Bit또는 그 하위 클래스(예를 들어QuantumRegister또는Qubit)는 키스킷 v1.4 에서 더 이상 사용되지 않는다. 이러한 유형을 서브클래싱하는 것은 키스킷에서 명시적으로 지원되지 않았으며, 그 의미도 정의되지 않았습니다. 키스킷 v2.0 에서는 기술적 한계로 인해 서브클래싱이 불가능해질 수 있으며, 회로에 저장되지 않을 것입니다. 이는 성능 향상을 위해 데이터 모델을 Rust 공간으로 이동했기 때문입니다. -
DAGNode서브클래스의 생성자(즉,DAGOpNode)에 있는dag옵션 매개변수는 키스킷 v1.2 이후 사용되지 않고 무시되어 왔으며, 이제 키스킷 v1.4 에서 더 이상 사용되지 않으며 키스킷 v2.0 에서 제거될 예정입니다. -
MCMT의 다중 제어 다중 대상(MCMT) 클래스는 이제 더 이상 사용되지 않으며 다음과 같이 대체됩니다MCMTGate로 대체되며, 이는 적절한Gate서브클래스로 대체되었습니다. 회로 대신 게이트를 사용하면 컴파일러가 더 높은 수준의 추상화에서 객체를 추론할 수 있고 여러 합성 플러그인을 사용할 수 있습니다. -
모듈과
qiskit.circuit.classicalfunction모듈과 함께ClassicalFunction클래스 및 관련classical_function()및BooleanExpression유틸리티는 키스킷 v1.4 에서 더 이상 사용되지 않으며 키스킷 v2.0 에서 제거될 예정이다.이 변경은 더 이상 키스킷의 모든 지원 플랫폼 및 Python 버전과 호환되지 않는 외부 라이브러리
tweedledum에 대한 종속성을 피하기 위해 수행됩니다. 비슷한 기능을 사용하려면PhaseOracle을 사용하지 않는 구현이 있는tweedledum과 키스킷에 추가될BitFlipOraclev2.0 을 참고하세요.BitFlipOracle이 추가되기 전까지는 위상 플립 오라클을 결과 큐비트에 컨디셔닝하고 다음 예제(오라클은qr_x, 결과는qr_y)에서와 같이 오라클 적용 전후에 Hadamard 게이트를 적용하여 비트 플립 오라클로 변환할 수 있습니다:from qiskit import QuantumRegister, QuantumCircuit from qiskit.circuit.library.phase_oracle import PhaseOracle bool_expr = "(x0 & x1 | ~x2) & x4" qr_x = QuantumRegister(4, "x") qr_y = QuantumRegister(1, "y") bit_flip_oracle = QuantumCircuit(qr_x, qr_y) phase_flip_oracle = PhaseOracle(bool_expr) controlled_phase_flip_oracle = phase_flip_oracle.control(1) bit_flip_oracle.h(qr_y) bit_flip_oracle.compose(controlled_phase_flip_oracle, qubits=[*qr_y, *qr_x], inplace=True) bit_flip_oracle.h(qr_y) print(bit_flip_oracle)그 결과
┌───────────────┐ x_0: ─────┤0 ├───── │ │ x_1: ─────┤1 ├───── │ Phase Oracle │ x_2: ─────┤2 ├───── │ │ x_3: ─────┤3 ├───── ┌───┐└───────┬───────┘┌───┐ y: ┤ H ├────────■────────┤ H ├ └───┘ └───┘
기본형 폐기
- 타입의 입력 제공
BackendV1의backend인수에BackendSamplerV2와BackendEstimatorV2는 키스킷 1.4 에서 더 이상 사용되지 않으며 키스킷 2.0 에서 제거될 예정이다. 대신BackendV2인스턴스를 사용하세요.
제공자 기능 폐기
-
클래스와
BackendV2Converter클래스와convert_to_target()함수는 키스킷 v1.4 에서 더 이상 사용되지 않습니다BackendV1. 함수는convert_to_target()함수는 더 이상 사용되지 않는 일련의 객체에서Target인스턴스를 빌드하는 데 사용되며, 더 이상 사용되지 않는BackendV1워크플로우의BackendConfiguration,BackendProperties와PulseDefaults.BackendV2Converter를BackendV1를BackendV2로 변환하는 데 사용되며BackendV1가 제거되면 유지 관리할 수 없습니다. -
메서드
BasicSimulator.run_experiment()메서드는 더 이상 사용되지 않으며 키스킷 v2.0 에서 제거될 예정입니다. 이 메서드는QasmQobjExperiment를 입력 인수로 받는데,Qobj클래스 및 기타 관련 기능과 함께 더 이상 사용되지 않습니다. 전화할 수 있습니다BasicSimulator.run()대신QuantumCircuit입력으로 호출할 수 있습니다. -
오류 유형
BackendPropertyError과BackendConfigurationError은 키스킷 1.4 에서 더 이상 사용되지 않으며 키스킷 2.0 에서 제거될 예정입니다. 이러한 오류는 더 이상 사용되지 않는BackendProperties및BackendConfiguration객체에서 항목을 검색할 때만 발생합니다. -
클래스
GateProperties,BackendStatus및qiskit.providers.models.JobStatus클래스는 레거시 워크플로우의 일부인BackendV1클래스는 이제 더 이상 사용되지 않습니다. 이들은 Qiskit 1.2 에서 관련 요소와 함께 더 이상 사용되지 않아야 한다qiskit.providers.models.
합성 기능의 사용 중단
-
클래스의 생성자에서
atomic_evolution인자의 서명LieTrotter,ProductFormula및SuzukiTrotter는 키스킷 v1.2 에서 출력 회로의 시각화를 개선하기 위해 수정되었습니다. 이전 서명은 이제 새로운 대체 서명을 위해 더 이상 사용되지 않습니다. 키스킷 v2.0 에서 새로운 대안만 유효합니다.마이그레이션하려면
Callable[[Pauli | SparsePauliOp, float], QuantumCircuit]에서Callable[[QuantumCircuit, Pauli | SparsePauliOp, float], None]으로 콜러블을 수정하세요.
트랜스파일러 사용 중단 사항
-
그리고
DAGOpNode.sort_key,DAGOutNode.sort_key및DAGInNode.sort_key속성은 더 이상 사용되지 않으며 키스킷 v2.0 릴리스에서 제거될 예정입니다. 이러한 어트리뷰트는 원래 위상 정렬 노드의 사전 키로DAGCircuit. 그러나 이제 정렬은 Rust 코드에서 내부적으로 수행되므로 이 키는 더 이상 사용되지 않습니다. 이 속성을 사용하는 경우 노드의 다른 속성에서 키를 다시 만들 수 있습니다. 예를 들어 다음과 같은 함수를 사용할 수 있습니다:def get_sort_key(node: DAGNode): if isinstance(node, (DAGInNode, DAGOutNode)): return str(node.wire) return ",".join( f"{dag.find_bit(q).index:04d}" for q in itertools.chain(node.qargs, node.cargs) )를 입력하면 정렬 키처럼 문자열을 생성합니다.
-
번역 파이프라인에서 다음과 같은
BackendProperties객체의 다음 사용은 키스킷 v1.4 에서 더 이상 사용되지 않으며 키스킷에서 제거될 예정이다 v2.0:backend_prop의 입력 인수를DenseLayoutproperties의 입력 인수를VF2Layoutproperties및coupling_map입력 인수를VF2PostLayout.coupling_map은properties이 있을 때만 사용되었습니다.backend_props의 입력 인수를UnitarySynthesisbackend_properties의 입력 인수를PassManagerConfigbackend_propertiesinTarget.from_configuration()backend_propertiesingenerate_routing_passmanager()backend_propertiesingenerate_translation_passmanager()
클래스는
BackendProperties클래스는 키스킷 v1.2 이후 더 이상 사용되지 않으며, 다른 요소들과 함께BackendV1워크플로우의 다른 요소들과 함께 사용되지 않으며, 키스킷 v2.0 에서 제거될 예정입니다. 하드웨어 정보를 트랜스필레이션 인자로 전달하기 위한 다른 경로는Target클래스이며,target입력 인수를 사용하여 설정할 수 있습니다. 게이트 에러 또는 지속 시간과 같은 특정 명령어 속성을Target메서드를 통해Target.add_instruction()메서드를 통해 추가할 수 있습니다.의 경우
generate_routing_passmanager()및generate_translation_passmanager()의 경우backend_properties인수는 선택 사항이며 필수 인자인target인수가 채워지면 대체됩니다. 인수의 사용은 1.x 에서 안전하게 제거할 수 있으며, 이는 권장되는 사용 방법입니다. -
키스킷의 펄스 사용 중단 v1.3, 캘리브레이션 빌더 패스에는 다음과 같은
RXCalibrationBuilder. 패스는NormalizeRXAngle패스는RXCalibrationBuilder의 요구 사항이므로, 키스킷 v1.4 에서 더 이상 사용되지 않습니다. 보정 모듈의rzx_templates()함수도 코드베이스에서 사용되지 않으므로 더 이상 사용되지 않습니다.
시각화 기능의 사용 중단
-
타임라인 서랍의
show_idle및show_barrier매개변수는 키스킷 v1.4 에서 더 이상 사용되지 않습니다. 대안은 각각 키스킷 v1.1 에 도입된idle_wires과plot_barriers파라미터로, 완전히 동일합니다. 레거시 매개변수 이름은 키스킷 v2.0 에서 제거됩니다. -
키스킷 v1.4 에서 타임라인 드로어
timeline_drawer()함수는target를 지정하지 않으면 사용 중단 경고를 발행합니다. 키스킷 v2.0 부터는target이 필요하며timeline_drawer()를 지정하지 않으면 실패합니다. -
타입의 입력 제공
BackendV1의backend인수에plot_gate_map(),plot_circuit_layout()와plot_error_map()는 키스킷 1.4 에서 더 이상 사용되지 않으며 키스킷 2.0 에서 제거될 예정이다. 대신BackendV2인스턴스를 사용하세요.
기타 지원 중단
- 의 생성자에서 위치 인자를 사용하는 것은
Result의 생성자 인자 사용은 키스킷 1.4 에서 더 이상 사용되지 않으며, 키스킷 2.0 에서 비활성화될 예정이다. 모든 인수는 kwarg 구문을 사용하여 설정하세요(예:Result(backend_name="name", ....)). 이 외에도,qobj_id인수는 더 이상 사용되지 않으며 키스킷 2.0 에서 더 이상 사용되지 않습니다. 그러나qobj_id을 일반 kwarg로 설정하면 다른 일반 kwarg와 함께 메타데이터 필드에 표시될 수 있습니다.
버그 수정
- 의 문제를 수정했습니다
Target.has_calibration()및Target.get_calibration()에서 매개변수화된 게이트 전달이 예상대로 작동하지 않던 문제를 수정했습니다. 를 참조하세요 qiskit/#11657 및 qiskit/#11658 를 참조하세요.
기타 참고사항
-
property_set을 임의의 키워드 인자로 서브클래스의 메서드에run()메서드에BasePassManager의 서브클래스의 메서드에 전달하면 키스킷 v2.0 의 동작이 변경됩니다. 이 메서드의 임의 키워드 인수는 현재 패스 매니저의 내부 표현 변환 함수로 전달되며, 해당 메서드에 대한 임의의 키워드 인수도 전달됩니다. 키스킷 v2.0 에서부터 이 옵션은 대신 파이프라인 실행을 위한 시드를 설정하는 데 사용됩니다PropertySet의 시드를 설정하는 데 사용되며, 인수는 변환 함수에 전달되지 않습니다.이 참고 사항은 다음과 같은 서브 클래스의 구현자에게만 해당됩니다
BasePassManager의 하위 클래스 구현자만 해당되며,_passmanager_frontend및_passmanager_backend구현에서property_set라는 키워드 인수를 허용하도록 선택했습니다.