1313
1414from importlib_resources import files
1515
16- from ._adaptors import _create_adaptor
16+ from ._adaptors import _Adaptor , _create_adaptor
1717from .cache import PinsCache
1818from .config import get_allow_rsc_short_name
1919from .drivers import default_title , load_data , load_file , save_data
2424
2525_log = logging .getLogger (__name__ )
2626
27+ _ = default_title # Keep this import for backward compatibility
28+
2729
2830class IFileSystem (Protocol ):
2931 protocol : str | list
@@ -623,6 +625,8 @@ def prepare_pin_version(
623625 created : datetime | None = None ,
624626 object_name : str | None = None ,
625627 ):
628+ x = _create_adaptor (x )
629+
626630 meta = self ._create_meta (
627631 pin_dir_path ,
628632 x ,
@@ -644,7 +648,7 @@ def prepare_pin_version(
644648 def _create_meta (
645649 self ,
646650 pin_dir_path ,
647- x ,
651+ x : _Adaptor ,
648652 name : str | None = None ,
649653 type : str | None = None ,
650654 title : str | None = None ,
@@ -661,7 +665,7 @@ def _create_meta(
661665 raise NotImplementedError ("Type argument is required." )
662666
663667 if title is None :
664- title = default_title (x , name )
668+ title = x . default_title (name )
665669
666670 # create metadata from object on disk ---------------------------------
667671 # save all pin data to a temporary folder (including data.txt), so we
@@ -673,7 +677,7 @@ def _create_meta(
673677 p_obj = Path (pin_dir_path ) / object_name
674678
675679 # file is saved locally in order to hash, calc size
676- file_names = save_data (x , str (p_obj ), type )
680+ file_names = save_data (x . _d , str (p_obj ), type )
677681
678682 meta = self .meta_factory .create (
679683 pin_dir_path ,
@@ -1122,7 +1126,6 @@ def path_to_deploy_version(self, name: str, version: str):
11221126 def user_name (self ):
11231127 return self .fs .api .get_user ()["username" ]
11241128
1125- # TODO(NAMC) what about the functions that call this one?
11261129 def prepare_pin_version (self , pin_dir_path , x , name : str | None , * args , ** kwargs ):
11271130 adaptor = _create_adaptor (x )
11281131
@@ -1133,9 +1136,7 @@ def prepare_pin_version(self, pin_dir_path, x, name: str | None, *args, **kwargs
11331136
11341137 # TODO(compat): py pins always uses the short name, R pins uses w/e the
11351138 # user passed, but guessing people want the long name?
1136- meta = super ()._create_meta (
1137- pin_dir_path , adaptor , short_name , * args , ** kwargs
1138- ) # TODO(NAMC) ensure .create_meta can accept adaptor
1139+ meta = super ()._create_meta (pin_dir_path , adaptor , short_name , * args , ** kwargs )
11391140 meta .name = name
11401141
11411142 # copy in files needed by index.html ----------------------------------
0 commit comments