1
+ from __future__ import annotations
2
+
1
3
import functools
2
4
import inspect
3
5
import logging
7
9
from datetime import datetime , timedelta
8
10
from io import IOBase
9
11
from pathlib import Path
10
- from typing import Mapping , Optional , Protocol , Sequence
12
+ from typing import Mapping , Protocol , Sequence
11
13
12
14
from importlib_resources import files
13
15
23
25
24
26
25
27
class IFileSystem (Protocol ):
26
- protocol : " str | list"
28
+ protocol : str | list
27
29
28
30
def ls (self , path : str ) -> Sequence [str ]: ...
29
31
@@ -47,11 +49,11 @@ class BaseBoard:
47
49
48
50
def __init__ (
49
51
self ,
50
- board : " str | Path" ,
52
+ board : str | Path ,
51
53
fs : IFileSystem ,
52
54
versioned = True ,
53
55
meta_factory = MetaFactory (),
54
- allow_pickle_read : " bool | None" = None ,
56
+ allow_pickle_read : bool | None = None ,
55
57
):
56
58
self .board = str (board )
57
59
self .fs = fs
@@ -81,7 +83,7 @@ def pin_versions(self, name: str, as_df: bool = True) -> Sequence[VersionRaw]:
81
83
"""
82
84
83
85
if not self .pin_exists (name ):
84
- raise PinsError ("Cannot check version, since pin %s does not exist" % name )
86
+ raise PinsError (f "Cannot check version, since pin { name } does not exist" )
85
87
86
88
detail = isinstance (self , BoardRsConnect )
87
89
@@ -170,7 +172,7 @@ def pin_list(self):
170
172
171
173
return [name for name in pin_names if name not in self .reserved_pin_names ]
172
174
173
- def pin_fetch (self , name : str , version : Optional [ str ] = None ) -> Meta :
175
+ def pin_fetch (self , name : str , version : str | None = None ) -> Meta :
174
176
meta = self .pin_meta (name , version )
175
177
176
178
# TODO: sanity check caching (since R pins does a cache touch here)
@@ -182,7 +184,7 @@ def pin_fetch(self, name: str, version: Optional[str] = None) -> Meta:
182
184
# so they could pin_fetch and then examine the result, a la pin_download
183
185
return meta
184
186
185
- def pin_read (self , name , version : Optional [ str ] = None , hash : Optional [ str ] = None ):
187
+ def pin_read (self , name , version : str | None = None , hash : str | None = None ):
186
188
"""Return the data stored in a pin.
187
189
188
190
Parameters
@@ -216,13 +218,13 @@ def pin_read(self, name, version: Optional[str] = None, hash: Optional[str] = No
216
218
def _pin_store (
217
219
self ,
218
220
x ,
219
- name : Optional [ str ] = None ,
220
- type : Optional [ str ] = None ,
221
- title : Optional [ str ] = None ,
222
- description : Optional [ str ] = None ,
223
- metadata : Optional [ Mapping ] = None ,
224
- versioned : Optional [ bool ] = None ,
225
- created : Optional [ datetime ] = None ,
221
+ name : str | None = None ,
222
+ type : str | None = None ,
223
+ title : str | None = None ,
224
+ description : str | None = None ,
225
+ metadata : Mapping | None = None ,
226
+ versioned : bool | None = None ,
227
+ created : datetime | None = None ,
226
228
) -> Meta :
227
229
if type == "feather" :
228
230
warn_deprecated (
@@ -301,13 +303,13 @@ def _pin_store(
301
303
def pin_write (
302
304
self ,
303
305
x ,
304
- name : Optional [ str ] = None ,
305
- type : Optional [ str ] = None ,
306
- title : Optional [ str ] = None ,
307
- description : Optional [ str ] = None ,
308
- metadata : Optional [ Mapping ] = None ,
309
- versioned : Optional [ bool ] = None ,
310
- created : Optional [ datetime ] = None ,
306
+ name : str | None = None ,
307
+ type : str | None = None ,
308
+ title : str | None = None ,
309
+ description : str | None = None ,
310
+ metadata : Mapping | None = None ,
311
+ versioned : bool | None = None ,
312
+ created : datetime | None = None ,
311
313
) -> Meta :
312
314
"""Write a pin object to the board.
313
315
@@ -386,7 +388,7 @@ def pin_download(self, name, version=None, hash=None) -> Sequence[str]:
386
388
387
389
def pin_upload (
388
390
self ,
389
- paths : " str | list[str]" ,
391
+ paths : str | list [str ],
390
392
name = None ,
391
393
title = None ,
392
394
description = None ,
@@ -440,7 +442,7 @@ def pin_version_delete(self, name: str, version: str):
440
442
pin_version_path = self .construct_path ([pin_name , version ])
441
443
self .fs .rm (pin_version_path , recursive = True )
442
444
443
- def pin_versions_prune (self , name , n : " int | None" = None , days : " int | None" = None ):
445
+ def pin_versions_prune (self , name , n : int | None = None , days : int | None = None ):
444
446
"""Delete old versions of a pin.
445
447
446
448
Parameters
@@ -534,7 +536,7 @@ def pin_search(self, search=None, as_df=True):
534
536
# looks with meta objects in it.
535
537
return res
536
538
537
- def pin_delete (self , names : " str | Sequence[str]" ):
539
+ def pin_delete (self , names : str | Sequence [str ]):
538
540
"""Delete a pin (or pins), removing it from the board.
539
541
540
542
Parameters
@@ -548,7 +550,7 @@ def pin_delete(self, names: "str | Sequence[str]"):
548
550
549
551
for name in names :
550
552
if not self .pin_exists (name ):
551
- raise PinsError ("Cannot delete pin, since pin %s does not exist" % name )
553
+ raise PinsError (f "Cannot delete pin, since pin { name } does not exist" )
552
554
553
555
path_to_pin = self .construct_path ([self .path_to_pin (name )])
554
556
self .fs .rm (path_to_pin , recursive = True )
@@ -611,14 +613,14 @@ def prepare_pin_version(
611
613
self ,
612
614
pin_dir_path ,
613
615
x ,
614
- name : Optional [ str ] = None ,
615
- type : Optional [ str ] = None ,
616
- title : Optional [ str ] = None ,
617
- description : Optional [ str ] = None ,
618
- metadata : Optional [ Mapping ] = None ,
619
- versioned : Optional [ bool ] = None ,
620
- created : Optional [ datetime ] = None ,
621
- object_name : Optional [ str ] = None ,
616
+ name : str | None = None ,
617
+ type : str | None = None ,
618
+ title : str | None = None ,
619
+ description : str | None = None ,
620
+ metadata : Mapping | None = None ,
621
+ versioned : bool | None = None ,
622
+ created : datetime | None = None ,
623
+ object_name : str | None = None ,
622
624
):
623
625
meta = self ._create_meta (
624
626
pin_dir_path ,
@@ -642,14 +644,14 @@ def _create_meta(
642
644
self ,
643
645
pin_dir_path ,
644
646
x ,
645
- name : Optional [ str ] = None ,
646
- type : Optional [ str ] = None ,
647
- title : Optional [ str ] = None ,
648
- description : Optional [ str ] = None ,
649
- metadata : Optional [ Mapping ] = None ,
650
- versioned : Optional [ bool ] = None ,
651
- created : Optional [ datetime ] = None ,
652
- object_name : Optional [ str ] = None ,
647
+ name : str | None = None ,
648
+ type : str | None = None ,
649
+ title : str | None = None ,
650
+ description : str | None = None ,
651
+ metadata : Mapping | None = None ,
652
+ versioned : bool | None = None ,
653
+ created : datetime | None = None ,
654
+ object_name : str | None = None ,
653
655
):
654
656
if name is None :
655
657
raise NotImplementedError ("Name must be specified." )
@@ -933,9 +935,7 @@ def pin_list(self):
933
935
return names
934
936
935
937
@ExtendMethodDoc
936
- def pin_write (
937
- self , * args , access_type = None , versioned : Optional [bool ] = None , ** kwargs
938
- ):
938
+ def pin_write (self , * args , access_type = None , versioned : bool | None = None , ** kwargs ):
939
939
"""Write a pin.
940
940
941
941
Extends parent method in the following ways:
@@ -1121,7 +1121,7 @@ def path_to_deploy_version(self, name: str, version: str):
1121
1121
def user_name (self ):
1122
1122
return self .fs .api .get_user ()["username" ]
1123
1123
1124
- def prepare_pin_version (self , pin_dir_path , x , name : " str | None" , * args , ** kwargs ):
1124
+ def prepare_pin_version (self , pin_dir_path , x , name : str | None , * args , ** kwargs ):
1125
1125
# RSC pin names can have form <user_name>/<name>, but this will try to
1126
1126
# create the object in a directory named <user_name>. So we grab just
1127
1127
# the <name> part.
0 commit comments