Skip to content

Commit f11141a

Browse files
Move calls to create_adapter to hide them at a lower level
1 parent daa4239 commit f11141a

2 files changed

Lines changed: 7 additions & 9 deletions

File tree

pins/_adaptors.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,7 @@ def create_adaptor(obj: Any) -> Adaptor: ...
148148
def create_adaptor(obj: Any | DataFrame) -> Adaptor | DFAdaptor:
149149
if isinstance(obj, AbstractPandasFrame):
150150
return PandasAdaptor(obj)
151+
elif isinstance(obj, Adaptor):
152+
return obj
151153
else:
152154
return Adaptor(obj)

pins/boards.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from datetime import datetime, timedelta
1111
from io import IOBase
1212
from pathlib import Path
13-
from typing import Protocol
13+
from typing import Any, Protocol
1414

1515
from importlib_resources import files
1616
from 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

Comments
 (0)