1010)
1111from soda_core .common .logging_constants import Emoticons , soda_logger
1212from soda_core .common .yaml import ContractYamlSource
13- from soda_core .contracts .api import test_contracts , verify_contracts
14- from soda_core .contracts .contract_publication import ContractPublication
13+ from soda_core .contracts .api import test_contract , verify_contract
14+ from soda_core .contracts .api . publish_api import publish_contract
1515from soda_core .contracts .contract_verification import ContractVerificationSessionResult
1616
1717
1818def handle_verify_contract (
19- contract_file_paths : Optional [list [ str ] ],
20- dataset_identifiers : Optional [list [ str ] ],
19+ contract_file_path : Optional [str ],
20+ dataset_identifier : Optional [str ],
2121 data_source_file_paths : Optional [str ],
2222 soda_cloud_file_path : Optional [str ],
2323 variables : Optional [Dict [str , str ]],
@@ -29,9 +29,9 @@ def handle_verify_contract(
2929 diagnostics_warehouse_file_path : Optional [str ],
3030) -> ExitCode :
3131 try :
32- contract_verification_result = verify_contracts (
33- contract_file_paths = contract_file_paths ,
34- dataset_identifiers = dataset_identifiers ,
32+ contract_verification_result = verify_contract (
33+ contract_file_path = contract_file_path ,
34+ dataset_identifier = dataset_identifier ,
3535 data_source_file_path = None ,
3636 data_source_file_paths = data_source_file_paths ,
3737 soda_cloud_file_path = soda_cloud_file_path ,
@@ -74,19 +74,11 @@ def interpret_contract_verification_result(verification_result: ContractVerifica
7474
7575
7676def handle_publish_contract (
77- contract_file_paths : Optional [list [ str ] ],
77+ contract_file_path : Optional [str ],
7878 soda_cloud_file_path : Optional [str ],
7979) -> ExitCode :
8080 try :
81- contract_publication_builder = ContractPublication .builder ()
82-
83- for contract_file_path in contract_file_paths :
84- contract_publication_builder .with_contract_yaml_file (contract_file_path )
85-
86- if soda_cloud_file_path :
87- contract_publication_builder .with_soda_cloud_yaml_file (soda_cloud_file_path )
88-
89- contract_publication_result = contract_publication_builder .build ().execute ()
81+ contract_publication_result = publish_contract (contract_file_path , soda_cloud_file_path )
9082 if contract_publication_result .has_errors :
9183 # TODO: detect/deal with exit code 4?
9284 return ExitCode .LOG_ERRORS
@@ -101,18 +93,15 @@ def handle_publish_contract(
10193
10294
10395def handle_test_contract (
104- contract_file_paths : Optional [list [ str ] ],
96+ contract_file_path : Optional [str ],
10597 variables : Optional [Dict [str , str ]],
10698) -> ExitCode :
107- for contract_file_path in contract_file_paths :
108- contract_verification_result = test_contracts (contract_file_paths = [contract_file_path ], variables = variables )
109- if contract_verification_result .has_errors :
110- return ExitCode .LOG_ERRORS
111- else :
112- soda_logger .info (f"{ Emoticons .WHITE_CHECK_MARK } { contract_file_path } is valid" )
113- return ExitCode .OK
114-
115- return ExitCode .OK
99+ contract_verification_result = test_contract (contract_file_path = contract_file_path , variables = variables )
100+ if contract_verification_result .has_errors :
101+ return ExitCode .LOG_ERRORS
102+ else :
103+ soda_logger .info (f"{ Emoticons .WHITE_CHECK_MARK } { contract_file_path } is valid" )
104+ return ExitCode .OK
116105
117106
118107def handle_fetch_contract (
0 commit comments