88 import sys
99
1010 from obstore .store import (
11- AzureStore ,
1211 AzureConfig ,
12+ AzureCredentialProvider ,
13+ AzureSASToken ,
14+ AzureStore ,
1315 ClientConfig ,
1416 RetryConfig ,
15- AzureSASToken ,
1617 )
1718
1819 if sys .version_info >= (3 , 11 ):
2122 from typing_extensions import Unpack
2223
2324
24- def get_obstore_store ( # type: ignore[misc] # overlap with kwargs
25+ def get_obstore ( # type: ignore[misc] # overlap with kwargs
2526 account_name : str ,
2627 container_name : str ,
2728 * ,
2829 prefix : str | None = None ,
2930 config : AzureConfig | None = None ,
3031 client_options : ClientConfig | None = None ,
3132 retry_config : RetryConfig | None = None ,
33+ credential_provider : AzureCredentialProvider | None = None ,
3234 ** kwargs : Unpack [AzureConfig ], # type: ignore # noqa: PGH003 (container_name key overlaps with positional arg)
3335) -> AzureStore :
3436 try :
@@ -39,13 +41,15 @@ def get_obstore_store( # type: ignore[misc] # overlap with kwargs
3941 "the optional dependency 'obstore'."
4042 ) from e
4143
42- def credential_provider () -> AzureSASToken :
44+ def default_credential_provider () -> AzureSASToken :
4345 token = get_token (account_name , container_name )
4446 return {
4547 "sas_token" : token .token ,
4648 "expires_at" : token .expiry ,
4749 }
4850
51+ credential_provider = credential_provider or default_credential_provider
52+
4953 return obstore .store .AzureStore (
5054 account_name = account_name ,
5155 container_name = container_name ,
0 commit comments