pocklo 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pocklo-0.2.0/PKG-INFO ADDED
@@ -0,0 +1,210 @@
1
+ Metadata-Version: 2.4
2
+ Name: pocklo
3
+ Version: 0.2.0
4
+ Summary: Command-line client for the Pocklo file workspace
5
+ Project-URL: Homepage, https://pocklo.jyonn.space/
6
+ Project-URL: Documentation, https://pocklo.jyonn.space/cli
7
+ Project-URL: Source, https://github.com/pocklo-app/pocklo-cli
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: qiniu<8,>=7.13
11
+ Requires-Dist: rich<14,>=13.9
12
+ Requires-Dist: requests<3,>=2.32
13
+
14
+ # Pocklo CLI · 小兜
15
+
16
+ `pocklo` is the command-line client for the Pocklo file workspace. It supports:
17
+
18
+ - SSO-based login by exchanging an authorization `code` for the backend JWT token
19
+ - Listing remote directories
20
+ - Switching into a remote working directory with `cd`
21
+ - Uploading a local file into a remote directory
22
+ - Uploading a local directory recursively while recreating its folder structure remotely
23
+ - Resumable multipart uploads with real remote-part progress
24
+
25
+ ## Install
26
+
27
+ ```bash
28
+ python3 -m pip install pocklo
29
+ ```
30
+
31
+ For local development:
32
+
33
+ ```bash
34
+ pip install -e .
35
+ ```
36
+
37
+ ## Commands
38
+
39
+ Print the SSO authorization URL:
40
+
41
+ ```bash
42
+ pocklo login --print-url
43
+ ```
44
+
45
+ Interactive login:
46
+
47
+ ```bash
48
+ pocklo login
49
+ ```
50
+
51
+ You can also paste the full callback URL directly:
52
+
53
+ ```bash
54
+ pocklo login --code 'https://pocklo.jyonn.space/oauth/qtb/callback?code=...'
55
+ ```
56
+
57
+ Show the authenticated user:
58
+
59
+ ```bash
60
+ pocklo whoami
61
+ ```
62
+
63
+ Change into a remote directory:
64
+
65
+ ```bash
66
+ pocklo cd @Ab12Cd
67
+ pocklo cd Projects
68
+ pocklo cd ../Archive
69
+ ```
70
+
71
+ Print the current remote directory:
72
+
73
+ ```bash
74
+ pocklo pwd
75
+ ```
76
+
77
+ List the current remote directory:
78
+
79
+ ```bash
80
+ pocklo ls
81
+ ```
82
+
83
+ List the remote root directory explicitly:
84
+
85
+ ```bash
86
+ pocklo ls /
87
+ ```
88
+
89
+ List a nested remote directory by relative path:
90
+
91
+ ```bash
92
+ pocklo ls Photos/2024
93
+ ```
94
+
95
+ List a remote resource directly by resource ID:
96
+
97
+ ```bash
98
+ pocklo ls id:Ab12Cd
99
+ ```
100
+
101
+ The shorter `@资源ID` form works too:
102
+
103
+ ```bash
104
+ pocklo ls @Ab12Cd
105
+ ```
106
+
107
+ Upload a local file into a remote directory:
108
+
109
+ ```bash
110
+ pocklo upload ./report.pdf
111
+ ```
112
+
113
+ Upload a local directory recursively. The local directory name is created or reused under the target remote directory:
114
+
115
+ ```bash
116
+ pocklo upload ./albums
117
+ ```
118
+
119
+ Only upload selected extensions:
120
+
121
+ ```bash
122
+ pocklo upload ./albums /Photos --include-ext jpg --include-ext png
123
+ ```
124
+
125
+ Exclude specific extensions:
126
+
127
+ ```bash
128
+ pocklo upload ./albums /Photos --exclude-ext tmp --exclude-ext log
129
+ ```
130
+
131
+ You can combine both flags. `--exclude-ext` takes precedence when both match the same file.
132
+
133
+ Create a directory under the remote root:
134
+
135
+ ```bash
136
+ pocklo mkdir Projects
137
+ pocklo cd Projects
138
+ pocklo mkdir 2026
139
+ ```
140
+
141
+ Create a directory under a specific remote folder:
142
+
143
+ ```bash
144
+ pocklo mkdir 2026 /Photos
145
+ pocklo mkdir Archive @Ab12Cd
146
+ ```
147
+
148
+ Rename a remote resource:
149
+
150
+ ```bash
151
+ pocklo rename /Photos/old-name.jpg new-name.jpg
152
+ ```
153
+
154
+ Move a remote resource into another remote directory:
155
+
156
+ ```bash
157
+ pocklo mv new-name.jpg ../Archive
158
+ ```
159
+
160
+ Delete a remote file:
161
+
162
+ ```bash
163
+ pocklo rm new-name.jpg
164
+ ```
165
+
166
+ Delete a non-empty remote directory recursively:
167
+
168
+ ```bash
169
+ pocklo rm --recursive Archive
170
+ ```
171
+
172
+ Download a remote file to the current directory:
173
+
174
+ ```bash
175
+ pocklo download report.pdf
176
+ ```
177
+
178
+ Download a remote file into a chosen local path:
179
+
180
+ ```bash
181
+ pocklo download @Ab12Cd ./downloads/report.pdf
182
+ ```
183
+
184
+ Download a remote directory recursively:
185
+
186
+ ```bash
187
+ pocklo download @Ab12Cd ./downloads/Archive
188
+ ```
189
+
190
+ Create a remote link resource:
191
+
192
+ ```bash
193
+ pocklo link Search https://www.google.com
194
+ ```
195
+
196
+ ## State File
197
+
198
+ The CLI stores the backend JWT token and the last fetched user payload in:
199
+
200
+ ```text
201
+ ~/.config/pocklo-cli/state.json
202
+ ```
203
+
204
+ On first use, Pocklo imports existing login state and the remote working directory from `~/.config/htx-cli` or `~/.config/disk-cli` when present. Existing upload resume records remain in their configured directory. `DISK_*` environment variables are still read as fallbacks. Use `--config` to point to a different state file.
205
+
206
+ Multipart upload resume records are stored under:
207
+
208
+ ```text
209
+ ~/.config/pocklo-cli/upload-records/
210
+ ```
pocklo-0.2.0/README.md ADDED
@@ -0,0 +1,197 @@
1
+ # Pocklo CLI · 小兜
2
+
3
+ `pocklo` is the command-line client for the Pocklo file workspace. It supports:
4
+
5
+ - SSO-based login by exchanging an authorization `code` for the backend JWT token
6
+ - Listing remote directories
7
+ - Switching into a remote working directory with `cd`
8
+ - Uploading a local file into a remote directory
9
+ - Uploading a local directory recursively while recreating its folder structure remotely
10
+ - Resumable multipart uploads with real remote-part progress
11
+
12
+ ## Install
13
+
14
+ ```bash
15
+ python3 -m pip install pocklo
16
+ ```
17
+
18
+ For local development:
19
+
20
+ ```bash
21
+ pip install -e .
22
+ ```
23
+
24
+ ## Commands
25
+
26
+ Print the SSO authorization URL:
27
+
28
+ ```bash
29
+ pocklo login --print-url
30
+ ```
31
+
32
+ Interactive login:
33
+
34
+ ```bash
35
+ pocklo login
36
+ ```
37
+
38
+ You can also paste the full callback URL directly:
39
+
40
+ ```bash
41
+ pocklo login --code 'https://pocklo.jyonn.space/oauth/qtb/callback?code=...'
42
+ ```
43
+
44
+ Show the authenticated user:
45
+
46
+ ```bash
47
+ pocklo whoami
48
+ ```
49
+
50
+ Change into a remote directory:
51
+
52
+ ```bash
53
+ pocklo cd @Ab12Cd
54
+ pocklo cd Projects
55
+ pocklo cd ../Archive
56
+ ```
57
+
58
+ Print the current remote directory:
59
+
60
+ ```bash
61
+ pocklo pwd
62
+ ```
63
+
64
+ List the current remote directory:
65
+
66
+ ```bash
67
+ pocklo ls
68
+ ```
69
+
70
+ List the remote root directory explicitly:
71
+
72
+ ```bash
73
+ pocklo ls /
74
+ ```
75
+
76
+ List a nested remote directory by relative path:
77
+
78
+ ```bash
79
+ pocklo ls Photos/2024
80
+ ```
81
+
82
+ List a remote resource directly by resource ID:
83
+
84
+ ```bash
85
+ pocklo ls id:Ab12Cd
86
+ ```
87
+
88
+ The shorter `@资源ID` form works too:
89
+
90
+ ```bash
91
+ pocklo ls @Ab12Cd
92
+ ```
93
+
94
+ Upload a local file into a remote directory:
95
+
96
+ ```bash
97
+ pocklo upload ./report.pdf
98
+ ```
99
+
100
+ Upload a local directory recursively. The local directory name is created or reused under the target remote directory:
101
+
102
+ ```bash
103
+ pocklo upload ./albums
104
+ ```
105
+
106
+ Only upload selected extensions:
107
+
108
+ ```bash
109
+ pocklo upload ./albums /Photos --include-ext jpg --include-ext png
110
+ ```
111
+
112
+ Exclude specific extensions:
113
+
114
+ ```bash
115
+ pocklo upload ./albums /Photos --exclude-ext tmp --exclude-ext log
116
+ ```
117
+
118
+ You can combine both flags. `--exclude-ext` takes precedence when both match the same file.
119
+
120
+ Create a directory under the remote root:
121
+
122
+ ```bash
123
+ pocklo mkdir Projects
124
+ pocklo cd Projects
125
+ pocklo mkdir 2026
126
+ ```
127
+
128
+ Create a directory under a specific remote folder:
129
+
130
+ ```bash
131
+ pocklo mkdir 2026 /Photos
132
+ pocklo mkdir Archive @Ab12Cd
133
+ ```
134
+
135
+ Rename a remote resource:
136
+
137
+ ```bash
138
+ pocklo rename /Photos/old-name.jpg new-name.jpg
139
+ ```
140
+
141
+ Move a remote resource into another remote directory:
142
+
143
+ ```bash
144
+ pocklo mv new-name.jpg ../Archive
145
+ ```
146
+
147
+ Delete a remote file:
148
+
149
+ ```bash
150
+ pocklo rm new-name.jpg
151
+ ```
152
+
153
+ Delete a non-empty remote directory recursively:
154
+
155
+ ```bash
156
+ pocklo rm --recursive Archive
157
+ ```
158
+
159
+ Download a remote file to the current directory:
160
+
161
+ ```bash
162
+ pocklo download report.pdf
163
+ ```
164
+
165
+ Download a remote file into a chosen local path:
166
+
167
+ ```bash
168
+ pocklo download @Ab12Cd ./downloads/report.pdf
169
+ ```
170
+
171
+ Download a remote directory recursively:
172
+
173
+ ```bash
174
+ pocklo download @Ab12Cd ./downloads/Archive
175
+ ```
176
+
177
+ Create a remote link resource:
178
+
179
+ ```bash
180
+ pocklo link Search https://www.google.com
181
+ ```
182
+
183
+ ## State File
184
+
185
+ The CLI stores the backend JWT token and the last fetched user payload in:
186
+
187
+ ```text
188
+ ~/.config/pocklo-cli/state.json
189
+ ```
190
+
191
+ On first use, Pocklo imports existing login state and the remote working directory from `~/.config/htx-cli` or `~/.config/disk-cli` when present. Existing upload resume records remain in their configured directory. `DISK_*` environment variables are still read as fallbacks. Use `--config` to point to a different state file.
192
+
193
+ Multipart upload resume records are stored under:
194
+
195
+ ```text
196
+ ~/.config/pocklo-cli/upload-records/
197
+ ```
@@ -0,0 +1,29 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "pocklo"
7
+ version = "0.2.0"
8
+ description = "Command-line client for the Pocklo file workspace"
9
+ readme = "README.md"
10
+ requires-python = ">=3.9"
11
+ dependencies = [
12
+ "qiniu>=7.13,<8",
13
+ "rich>=13.9,<14",
14
+ "requests>=2.32,<3",
15
+ ]
16
+
17
+ [project.scripts]
18
+ pocklo = "pocklo_cli.cli:main"
19
+
20
+ [project.urls]
21
+ Homepage = "https://pocklo.jyonn.space/"
22
+ Documentation = "https://pocklo.jyonn.space/cli"
23
+ Source = "https://github.com/pocklo-app/pocklo-cli"
24
+
25
+ [tool.setuptools]
26
+ package-dir = {"" = "src"}
27
+
28
+ [tool.setuptools.packages.find]
29
+ where = ["src"]
pocklo-0.2.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,210 @@
1
+ Metadata-Version: 2.4
2
+ Name: pocklo
3
+ Version: 0.2.0
4
+ Summary: Command-line client for the Pocklo file workspace
5
+ Project-URL: Homepage, https://pocklo.jyonn.space/
6
+ Project-URL: Documentation, https://pocklo.jyonn.space/cli
7
+ Project-URL: Source, https://github.com/pocklo-app/pocklo-cli
8
+ Requires-Python: >=3.9
9
+ Description-Content-Type: text/markdown
10
+ Requires-Dist: qiniu<8,>=7.13
11
+ Requires-Dist: rich<14,>=13.9
12
+ Requires-Dist: requests<3,>=2.32
13
+
14
+ # Pocklo CLI · 小兜
15
+
16
+ `pocklo` is the command-line client for the Pocklo file workspace. It supports:
17
+
18
+ - SSO-based login by exchanging an authorization `code` for the backend JWT token
19
+ - Listing remote directories
20
+ - Switching into a remote working directory with `cd`
21
+ - Uploading a local file into a remote directory
22
+ - Uploading a local directory recursively while recreating its folder structure remotely
23
+ - Resumable multipart uploads with real remote-part progress
24
+
25
+ ## Install
26
+
27
+ ```bash
28
+ python3 -m pip install pocklo
29
+ ```
30
+
31
+ For local development:
32
+
33
+ ```bash
34
+ pip install -e .
35
+ ```
36
+
37
+ ## Commands
38
+
39
+ Print the SSO authorization URL:
40
+
41
+ ```bash
42
+ pocklo login --print-url
43
+ ```
44
+
45
+ Interactive login:
46
+
47
+ ```bash
48
+ pocklo login
49
+ ```
50
+
51
+ You can also paste the full callback URL directly:
52
+
53
+ ```bash
54
+ pocklo login --code 'https://pocklo.jyonn.space/oauth/qtb/callback?code=...'
55
+ ```
56
+
57
+ Show the authenticated user:
58
+
59
+ ```bash
60
+ pocklo whoami
61
+ ```
62
+
63
+ Change into a remote directory:
64
+
65
+ ```bash
66
+ pocklo cd @Ab12Cd
67
+ pocklo cd Projects
68
+ pocklo cd ../Archive
69
+ ```
70
+
71
+ Print the current remote directory:
72
+
73
+ ```bash
74
+ pocklo pwd
75
+ ```
76
+
77
+ List the current remote directory:
78
+
79
+ ```bash
80
+ pocklo ls
81
+ ```
82
+
83
+ List the remote root directory explicitly:
84
+
85
+ ```bash
86
+ pocklo ls /
87
+ ```
88
+
89
+ List a nested remote directory by relative path:
90
+
91
+ ```bash
92
+ pocklo ls Photos/2024
93
+ ```
94
+
95
+ List a remote resource directly by resource ID:
96
+
97
+ ```bash
98
+ pocklo ls id:Ab12Cd
99
+ ```
100
+
101
+ The shorter `@资源ID` form works too:
102
+
103
+ ```bash
104
+ pocklo ls @Ab12Cd
105
+ ```
106
+
107
+ Upload a local file into a remote directory:
108
+
109
+ ```bash
110
+ pocklo upload ./report.pdf
111
+ ```
112
+
113
+ Upload a local directory recursively. The local directory name is created or reused under the target remote directory:
114
+
115
+ ```bash
116
+ pocklo upload ./albums
117
+ ```
118
+
119
+ Only upload selected extensions:
120
+
121
+ ```bash
122
+ pocklo upload ./albums /Photos --include-ext jpg --include-ext png
123
+ ```
124
+
125
+ Exclude specific extensions:
126
+
127
+ ```bash
128
+ pocklo upload ./albums /Photos --exclude-ext tmp --exclude-ext log
129
+ ```
130
+
131
+ You can combine both flags. `--exclude-ext` takes precedence when both match the same file.
132
+
133
+ Create a directory under the remote root:
134
+
135
+ ```bash
136
+ pocklo mkdir Projects
137
+ pocklo cd Projects
138
+ pocklo mkdir 2026
139
+ ```
140
+
141
+ Create a directory under a specific remote folder:
142
+
143
+ ```bash
144
+ pocklo mkdir 2026 /Photos
145
+ pocklo mkdir Archive @Ab12Cd
146
+ ```
147
+
148
+ Rename a remote resource:
149
+
150
+ ```bash
151
+ pocklo rename /Photos/old-name.jpg new-name.jpg
152
+ ```
153
+
154
+ Move a remote resource into another remote directory:
155
+
156
+ ```bash
157
+ pocklo mv new-name.jpg ../Archive
158
+ ```
159
+
160
+ Delete a remote file:
161
+
162
+ ```bash
163
+ pocklo rm new-name.jpg
164
+ ```
165
+
166
+ Delete a non-empty remote directory recursively:
167
+
168
+ ```bash
169
+ pocklo rm --recursive Archive
170
+ ```
171
+
172
+ Download a remote file to the current directory:
173
+
174
+ ```bash
175
+ pocklo download report.pdf
176
+ ```
177
+
178
+ Download a remote file into a chosen local path:
179
+
180
+ ```bash
181
+ pocklo download @Ab12Cd ./downloads/report.pdf
182
+ ```
183
+
184
+ Download a remote directory recursively:
185
+
186
+ ```bash
187
+ pocklo download @Ab12Cd ./downloads/Archive
188
+ ```
189
+
190
+ Create a remote link resource:
191
+
192
+ ```bash
193
+ pocklo link Search https://www.google.com
194
+ ```
195
+
196
+ ## State File
197
+
198
+ The CLI stores the backend JWT token and the last fetched user payload in:
199
+
200
+ ```text
201
+ ~/.config/pocklo-cli/state.json
202
+ ```
203
+
204
+ On first use, Pocklo imports existing login state and the remote working directory from `~/.config/htx-cli` or `~/.config/disk-cli` when present. Existing upload resume records remain in their configured directory. `DISK_*` environment variables are still read as fallbacks. Use `--config` to point to a different state file.
205
+
206
+ Multipart upload resume records are stored under:
207
+
208
+ ```text
209
+ ~/.config/pocklo-cli/upload-records/
210
+ ```
@@ -0,0 +1,13 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/pocklo.egg-info/PKG-INFO
4
+ src/pocklo.egg-info/SOURCES.txt
5
+ src/pocklo.egg-info/dependency_links.txt
6
+ src/pocklo.egg-info/entry_points.txt
7
+ src/pocklo.egg-info/requires.txt
8
+ src/pocklo.egg-info/top_level.txt
9
+ src/pocklo_cli/__init__.py
10
+ src/pocklo_cli/__main__.py
11
+ src/pocklo_cli/api.py
12
+ src/pocklo_cli/cli.py
13
+ src/pocklo_cli/config.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ pocklo = pocklo_cli.cli:main
@@ -0,0 +1,3 @@
1
+ qiniu<8,>=7.13
2
+ rich<14,>=13.9
3
+ requests<3,>=2.32
@@ -0,0 +1 @@
1
+ pocklo_cli
@@ -0,0 +1,3 @@
1
+ __all__ = ["__version__"]
2
+
3
+ __version__ = "0.2.0"
@@ -0,0 +1,5 @@
1
+ from .cli import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ raise SystemExit(main())