1010from google .protobuf import symbol_database as _symbol_database
1111
1212from snet .sdk .exceptions import NoGroupsFoundError , GroupNotFoundError , ServiceMetadataMismatchError
13- from snet .sdk .registry .models import StorageType
13+ from snet .sdk .registry .models import StorageType , FileURI
1414from snet .sdk .registry .organization_metadata import OrganizationMetadata
1515from snet .sdk .registry .registry_contract import RegistryContract
1616from snet .sdk .registry .service_metadata import ServiceMetadata , Group
@@ -75,15 +75,18 @@ def create_service_client(
7575 options = None ,
7676 concurrent_calls : int = 1 ,
7777 ):
78-
79- # Create and instance of the Config object,
80- # so we can create an instance of ClientLibGenerator
78+ service_metadata = self ._enhance_service_metadata (org_id , service_id )
8179 lib_generator = ClientLibGenerator (self .storage_provider , org_id , service_id )
8280
83- # Download the proto file and generate stubs if needed
81+ if service_metadata .service_api_source is not None :
82+ service_api_source = service_metadata .service_api_source
83+ else :
84+ service_api_source = service_metadata .model_ipfs_hash
85+ service_api_source = FileURI .from_raw_uri (service_api_source )
86+
8487 force_update = config .FORCE_UPDATE
8588 if force_update :
86- lib_generator .generate_client_library ()
89+ lib_generator .generate_client_library (service_api_source )
8790 else :
8891 path_to_pb_files = lib_generator .proto_dir
8992 pb_2_file_name = find_file_by_keyword (
@@ -94,7 +97,7 @@ def create_service_client(
9497 )
9598 if not pb_2_file_name or not pb_2_grpc_file_name :
9699 print ("Generating client library..." )
97- lib_generator .generate_client_library ()
100+ lib_generator .generate_client_library (service_api_source )
98101
99102 if options is None :
100103 options = dict ()
@@ -104,7 +107,6 @@ def create_service_client(
104107 if payment_strategy is None :
105108 payment_strategy = payment_strategy_type .value ()
106109
107- service_metadata = self ._enhance_service_metadata (org_id , service_id )
108110 group = self ._get_service_group (org_id , service_id , service_metadata , group_name )
109111
110112 service_stubs = self .get_service_stub (lib_generator )
@@ -249,7 +251,9 @@ def update_organization(
249251 organization_metadata : OrganizationMetadata ,
250252 storage_type : StorageType = StorageType .IPFS ,
251253 ) -> bool :
252- metadata_uri = self .storage_provider .publish_organization_metadata (organization_metadata , storage_type )
254+ metadata_uri = self .storage_provider .publish_organization_metadata (
255+ organization_metadata , storage_type
256+ )
253257 receipt = self .registry_contract .update_org_metadata (self .account , org_id , metadata_uri )
254258
255259 return receipt ["status" ] != 0
0 commit comments