Skip to content

Commit 9a1c4af

Browse files
authored
[HfFileSystem] Add top level hffs (#3556)
* add top level hffs * style * docs
1 parent a9bd7ed commit 9a1c4af

File tree

6 files changed

+45
-39
lines changed

6 files changed

+45
-39
lines changed

docs/source/cn/guides/hf_file_system.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,25 @@
1111
## 使用方法
1212

1313
```python
14-
>>> from huggingface_hub import HfFileSystem
15-
>>> fs = HfFileSystem()
14+
>>> from huggingface_hub import hffs
1615

1716
>>> # 列出目录中的所有文件
18-
>>> fs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
17+
>>> hffs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
1918
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
2019

2120
>>> # 列出仓库中的所有 ".csv" 文件
22-
>>> fs.glob("datasets/my-username/my-dataset-repo/**/*.csv")
21+
>>> hffs.glob("datasets/my-username/my-dataset-repo/**/*.csv")
2322
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
2423

2524
>>> # 读取远程文件
26-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
25+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
2726
... train_data = f.readlines()
2827

2928
>>> # 远程文件内容读取为字符串
30-
>>> train_data = fs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
29+
>>> train_data = hffs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
3130

3231
>>> # 写入远程文件
33-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
32+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
3433
... f.write("text,label")
3534
... f.write("Fantastic movie!,good")
3635
```
@@ -109,7 +108,7 @@ hf://[<repo_type_prefix>]<repo_id>[@<revision>]/<path/in/repo>
109108

110109
```python
111110
>>> from huggingface_hub import HfFileSystem
112-
>>> fs = HfFileSystem(token=token)
111+
>>> hffs = HfFileSystem(token=token)
113112
```
114113

115114
如果您以这种方式登录,请注意在共享源代码时不要意外泄露令牌!

docs/source/de/guides/hf_file_system.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,25 @@ Zusätzlich zur [`HfApi`] bietet die `huggingface_hub` Bibliothek [`HfFileSystem
99
## Verwendung
1010

1111
```python
12-
>>> from huggingface_hub import HfFileSystem
13-
>>> fs = HfFileSystem()
12+
>>> from huggingface_hub import hffs
1413

1514
>>> # Alle Dateien in einem Verzeichnis auflisten
16-
>>> fs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
15+
>>> hffs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
1716
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
1817

1918
>>> # Alle ".csv"-Dateien in einem Repo auflisten
20-
>>> fs.glob("datasets/my-username/my-dataset-repo/**.csv")
19+
>>> hffs.glob("datasets/my-username/my-dataset-repo/**.csv")
2120
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
2221

2322
>>> # Eine entfernte Datei lesen
24-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
23+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
2524
... train_data = f.readlines()
2625

2726
>>> # Den Inhalt einer entfernten Datei als Zeichenkette / String lesen
28-
>>> train_data = fs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
27+
>>> train_data = hffs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
2928

3029
>>> # Eine entfernte Datei schreiben
31-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
30+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
3231
... f.write("text,label")
3332
... f.write("Fantastic movie!,good")
3433
```
@@ -104,7 +103,7 @@ Es ist auch möglich, sich programmatisch anzumelden, indem Sie Ihr `token` als
104103

105104
```python
106105
>>> from huggingface_hub import HfFileSystem
107-
>>> fs = HfFileSystem(token=token)
106+
>>> hffs = HfFileSystem(token=token)
108107
```
109108

110109
Wenn Sie sich auf diese Weise anmelden, seien Sie vorsichtig, das Token nicht versehentlich zu veröffentlichen, wenn Sie Ihren Quellcode teilen!

docs/source/en/guides/hf_file_system.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,25 @@ In addition to the [`HfApi`], the `huggingface_hub` library provides [`HfFileSys
1414
## Usage
1515

1616
```python
17-
>>> from huggingface_hub import HfFileSystem
18-
>>> fs = HfFileSystem()
17+
>>> from huggingface_hub import hffs
1918

2019
>>> # List all files in a directory
21-
>>> fs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
20+
>>> hffs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
2221
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
2322

2423
>>> # List all ".csv" files in a repo
25-
>>> fs.glob("datasets/my-username/my-dataset-repo/**/*.csv")
24+
>>> hffs.glob("datasets/my-username/my-dataset-repo/**/*.csv")
2625
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
2726

2827
>>> # Read a remote file
29-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
28+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
3029
... train_data = f.readlines()
3130

3231
>>> # Read the content of a remote file as a string
33-
>>> train_data = fs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
32+
>>> train_data = hffs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
3433

3534
>>> # Write a remote file
36-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
35+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
3736
... f.write("text,label")
3837
... f.write("Fantastic movie!,good")
3938
```
@@ -112,7 +111,7 @@ It is also possible to log in programmatically by passing your `token` as an arg
112111

113112
```python
114113
>>> from huggingface_hub import HfFileSystem
115-
>>> fs = HfFileSystem(token=token)
114+
>>> hffs = HfFileSystem(token=token)
116115
```
117116

118117
If you log in this way, be careful not to accidentally leak the token when sharing your source code!

docs/source/ko/guides/hf_file_system.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,25 @@ rendered properly in your Markdown viewer.
99
## 사용법[[usage]]
1010

1111
```python
12-
>>> from huggingface_hub import HfFileSystem
13-
>>> fs = HfFileSystem()
12+
>>> from huggingface_hub import hffs
1413

1514
>>> # 디렉터리의 모든 파일 나열하기
16-
>>> fs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
15+
>>> hffs.ls("datasets/my-username/my-dataset-repo/data", detail=False)
1716
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
1817

1918
>>> # 저장소(repo)에서 ".csv" 파일 모두 나열하기
20-
>>> fs.glob("datasets/my-username/my-dataset-repo/**.csv")
19+
>>> hffs.glob("datasets/my-username/my-dataset-repo/**.csv")
2120
['datasets/my-username/my-dataset-repo/data/train.csv', 'datasets/my-username/my-dataset-repo/data/test.csv']
2221

2322
>>> # 원격 파일 읽기
24-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
23+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/train.csv", "r") as f:
2524
... train_data = f.readlines()
2625

2726
>>> # 문자열로 원격 파일의 내용 읽기
28-
>>> train_data = fs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
27+
>>> train_data = hffs.read_text("datasets/my-username/my-dataset-repo/data/train.csv", revision="dev")
2928

3029
>>> # 원격 파일 쓰기
31-
>>> with fs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
30+
>>> with hffs.open("datasets/my-username/my-dataset-repo/data/validation.csv", "w") as f:
3231
... f.write("text,label")
3332
... f.write("Fantastic movie!,good")
3433
```
@@ -103,7 +102,7 @@ hf://[<repo_type_prefix>]<repo_id>[@<revision>]/<path/in/repo>
103102

104103
```python
105104
>>> from huggingface_hub import HfFileSystem
106-
>>> fs = HfFileSystem(token=token)
105+
>>> hffs = HfFileSystem(token=token)
107106
```
108107

109108
이렇게 로그인하는 경우 소스 코드를 공유할 때 토큰이 실수로 누출되지 않도록 주의해야 합니다!

src/huggingface_hub/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@
296296
"HfFileSystemFile",
297297
"HfFileSystemResolvedPath",
298298
"HfFileSystemStreamFile",
299+
"hffs",
299300
],
300301
"hub_mixin": [
301302
"ModelHubMixin",
@@ -883,6 +884,7 @@
883884
"hf_hub_download",
884885
"hf_hub_url",
885886
"hf_raise_for_status",
887+
"hffs",
886888
"inspect_job",
887889
"inspect_scheduled_job",
888890
"interpreter_login",
@@ -1312,6 +1314,7 @@ def __dir__():
13121314
HfFileSystemFile, # noqa: F401
13131315
HfFileSystemResolvedPath, # noqa: F401
13141316
HfFileSystemStreamFile, # noqa: F401
1317+
hffs, # noqa: F401
13151318
)
13161319
from .hub_mixin import (
13171320
ModelHubMixin, # noqa: F401

src/huggingface_hub/hf_file_system.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,22 +133,26 @@ class HfFileSystem(fsspec.AbstractFileSystem, metaclass=_Cached):
133133
Usage:
134134
135135
```python
136-
>>> from huggingface_hub import HfFileSystem
137-
138-
>>> fs = HfFileSystem()
136+
>>> from huggingface_hub import hffs
139137
140138
>>> # List files
141-
>>> fs.glob("my-username/my-model/*.bin")
139+
>>> hffs.glob("my-username/my-model/*.bin")
142140
['my-username/my-model/pytorch_model.bin']
143-
>>> fs.ls("datasets/my-username/my-dataset", detail=False)
141+
>>> hffs.ls("datasets/my-username/my-dataset", detail=False)
144142
['datasets/my-username/my-dataset/.gitattributes', 'datasets/my-username/my-dataset/README.md', 'datasets/my-username/my-dataset/data.json']
145143
146144
>>> # Read/write files
147-
>>> with fs.open("my-username/my-model/pytorch_model.bin") as f:
145+
>>> with hffs.open("my-username/my-model/pytorch_model.bin") as f:
148146
... data = f.read()
149-
>>> with fs.open("my-username/my-model/pytorch_model.bin", "wb") as f:
147+
>>> with hffs.open("my-username/my-model/pytorch_model.bin", "wb") as f:
150148
... f.write(data)
151149
```
150+
151+
Specify a token for authentication:
152+
```python
153+
>>> from huggingface_hub import HfFileSystem
154+
>>> hffs = HfFileSystem(token=token)
155+
```
152156
"""
153157

154158
root_marker = ""
@@ -1255,3 +1259,6 @@ def make_instance(cls, args, kwargs, instance_state):
12551259
for attr, state_value in instance_state.items():
12561260
setattr(fs, attr, state_value)
12571261
return fs
1262+
1263+
1264+
hffs = HfFileSystem()

0 commit comments

Comments
 (0)