1010from datetime import datetime , timedelta
1111from io import IOBase
1212from pathlib import Path
13- from typing import Protocol
13+ from typing import Any , Protocol
1414
1515from importlib_resources import files
1616from importlib_resources .abc import Traversable
@@ -697,8 +697,6 @@ def prepare_pin_version(
697697 created : datetime | None = None ,
698698 object_name : str | list [str ] | None = None ,
699699 ):
700- x = create_adaptor (x )
701-
702700 meta = self ._create_meta (
703701 pin_dir_path ,
704702 x ,
@@ -720,7 +718,7 @@ def prepare_pin_version(
720718 def _create_meta (
721719 self ,
722720 pin_dir_path ,
723- x : Adaptor ,
721+ x : Adaptor | Any ,
724722 name : str | None = None ,
725723 type : str | None = None ,
726724 title : str | None = None ,
@@ -737,7 +735,7 @@ def _create_meta(
737735 raise NotImplementedError ("Type argument is required." )
738736
739737 if title is None :
740- title = x .default_title (name )
738+ title = create_adaptor ( x ) .default_title (name )
741739
742740 # create metadata from object on disk ---------------------------------
743741 # save all pin data to a temporary folder (including data.txt), so we
@@ -1203,16 +1201,14 @@ def user_name(self):
12031201 return self .fs .api .get_user ()["username" ]
12041202
12051203 def prepare_pin_version (self , pin_dir_path , x , name : str | None , * args , ** kwargs ):
1206- adaptor = create_adaptor (x )
1207-
12081204 # RSC pin names can have form <user_name>/<name>, but this will try to
12091205 # create the object in a directory named <user_name>. So we grab just
12101206 # the <name> part.
12111207 short_name = name .split ("/" )[- 1 ]
12121208
12131209 # TODO(compat): py pins always uses the short name, R pins uses w/e the
12141210 # user passed, but guessing people want the long name?
1215- meta = super ()._create_meta (pin_dir_path , adaptor , short_name , * args , ** kwargs )
1211+ meta = super ()._create_meta (pin_dir_path , x , short_name , * args , ** kwargs )
12161212 meta .name = name
12171213
12181214 # copy in files needed by index.html ----------------------------------
@@ -1238,7 +1234,7 @@ def prepare_pin_version(self, pin_dir_path, x, name: str | None, *args, **kwargs
12381234 "pin_files" : pin_files ,
12391235 "pin_metadata" : meta ,
12401236 "board_deparse" : board_deparse (self ),
1241- "data_preview" : adaptor .data_preview ,
1237+ "data_preview" : create_adaptor ( x ) .data_preview ,
12421238 }
12431239
12441240 # do not show r code if not round-trip friendly
0 commit comments