chipfoundry-cli 1.0.2__tar.gz → 1.0.4__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.
- {chipfoundry_cli-1.0.2 → chipfoundry_cli-1.0.4}/PKG-INFO +108 -6
- {chipfoundry_cli-1.0.2 → chipfoundry_cli-1.0.4}/README.md +107 -5
- {chipfoundry_cli-1.0.2 → chipfoundry_cli-1.0.4}/chipfoundry_cli/main.py +307 -55
- chipfoundry_cli-1.0.4/chipfoundry_cli/utils.py +399 -0
- {chipfoundry_cli-1.0.2 → chipfoundry_cli-1.0.4}/pyproject.toml +1 -1
- chipfoundry_cli-1.0.2/chipfoundry_cli/utils.py +0 -209
- {chipfoundry_cli-1.0.2 → chipfoundry_cli-1.0.4}/LICENSE +0 -0
- {chipfoundry_cli-1.0.2 → chipfoundry_cli-1.0.4}/chipfoundry_cli/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: chipfoundry-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
4
4
|
Summary: CLI tool to automate ChipFoundry project submission to SFTP server
|
|
5
5
|
Home-page: https://chipfoundry.io
|
|
6
6
|
License: Apache-2.0
|
|
@@ -27,13 +27,13 @@ Description-Content-Type: text/markdown
|
|
|
27
27
|
[](https://badge.fury.io/py/chipfoundry-cli)
|
|
28
28
|
[](https://pypi.org/project/chipfoundry-cli/)
|
|
29
29
|
|
|
30
|
-
A command-line tool to automate the submission of ChipFoundry projects to the SFTP server.
|
|
30
|
+
A command-line tool to automate the submission of ChipFoundry projects to the SFTP server and manage project results.
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
34
|
## Overview
|
|
35
35
|
|
|
36
|
-
`cf-cli` is a user-friendly command-line tool for securely submitting your ChipFoundry project files to the official SFTP server. It automatically collects the required files, generates or updates your project configuration,
|
|
36
|
+
`cf-cli` is a user-friendly command-line tool for securely submitting your ChipFoundry project files to the official SFTP server and downloading project results. It automatically collects the required files, generates or updates your project configuration, uploads everything to the correct location on the server, and provides tools to view project results and reports.
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
@@ -72,6 +72,16 @@ cf --help
|
|
|
72
72
|
cf push
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
+
6. **Download results** (when available):
|
|
76
|
+
```bash
|
|
77
|
+
cf pull
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
7. **View tapeout report**:
|
|
81
|
+
```bash
|
|
82
|
+
cf view-tapeout-report
|
|
83
|
+
```
|
|
84
|
+
|
|
75
85
|
---
|
|
76
86
|
|
|
77
87
|
## Project Structure Requirements
|
|
@@ -82,6 +92,7 @@ Your project directory **must** contain:
|
|
|
82
92
|
- `user_project_wrapper.gds` (for digital projects)
|
|
83
93
|
- `user_analog_project_wrapper.gds` (for analog projects)
|
|
84
94
|
- `openframe_project_wrapper.gds` (for openframe projects)
|
|
95
|
+
- **Note**: Both compressed (`.gz`) and uncompressed (`.gds`) files are supported
|
|
85
96
|
- `verilog/rtl/user_defines.v` (required for digital/analog)
|
|
86
97
|
- `.cf/project.json` (optional; will be created/updated automatically)
|
|
87
98
|
|
|
@@ -180,15 +191,44 @@ cf push [OPTIONS]
|
|
|
180
191
|
4. Uploads files to SFTP with progress bars
|
|
181
192
|
5. Shows clean, informative output
|
|
182
193
|
|
|
183
|
-
|
|
194
|
+
**GDS File Handling:**
|
|
195
|
+
- **Both compressed (`.gz`) and uncompressed (`.gds`) files are supported**
|
|
196
|
+
- **No automatic compression** - files are uploaded as-is
|
|
197
|
+
- **Only one version allowed** - you cannot have both compressed and uncompressed versions of the same file
|
|
198
|
+
- **Prefers uncompressed files** when available
|
|
199
|
+
- **Falls back to compressed files** if no uncompressed version is available
|
|
200
|
+
|
|
201
|
+
### Pull Results (Download)
|
|
184
202
|
|
|
185
203
|
```bash
|
|
186
204
|
cf pull [--project-name NAME]
|
|
187
205
|
```
|
|
188
206
|
|
|
189
|
-
- Downloads project results from SFTP
|
|
207
|
+
- Downloads project results from SFTP server
|
|
190
208
|
- Saves to `sftp-output/<project_name>/`
|
|
191
|
-
-
|
|
209
|
+
- **Automatically updates** your local `.cf/project.json` with the pulled version
|
|
210
|
+
- Creates the expected directory structure:
|
|
211
|
+
```
|
|
212
|
+
sftp-output/
|
|
213
|
+
└── <project_name>/
|
|
214
|
+
├── config/
|
|
215
|
+
│ └── project.json
|
|
216
|
+
└── consolidated_reports/
|
|
217
|
+
└── consolidated_report.html
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### View Tapeout Report
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
cf view-tapeout-report [--project-name NAME] [--report-path PATH]
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
- Opens the consolidated tapeout report in your default browser
|
|
227
|
+
- **Auto-detects project name** from `.cf/project.json` if available
|
|
228
|
+
- Looks for report at `sftp-output/<project_name>/consolidated_reports/consolidated_report.html`
|
|
229
|
+
- **Options:**
|
|
230
|
+
- `--project-name`: Specify project name manually
|
|
231
|
+
- `--report-path`: Provide direct path to HTML report file
|
|
192
232
|
|
|
193
233
|
### Check Status
|
|
194
234
|
|
|
@@ -217,6 +257,7 @@ cf status
|
|
|
217
257
|
1. **File Collection:**
|
|
218
258
|
- Checks for required GDS and Verilog files
|
|
219
259
|
- Auto-detects project type (digital, analog, openframe) based on GDS file name
|
|
260
|
+
- **Supports both compressed and uncompressed GDS files**
|
|
220
261
|
|
|
221
262
|
2. **Configuration:**
|
|
222
263
|
- Creates or updates `.cf/project.json`
|
|
@@ -233,6 +274,26 @@ cf status
|
|
|
233
274
|
|
|
234
275
|
---
|
|
235
276
|
|
|
277
|
+
## What Happens When You Run `cf pull`?
|
|
278
|
+
|
|
279
|
+
1. **Connection:**
|
|
280
|
+
- Connects to SFTP server securely
|
|
281
|
+
- Shows clean connection status
|
|
282
|
+
|
|
283
|
+
2. **Download:**
|
|
284
|
+
- Downloads all project results recursively
|
|
285
|
+
- Shows professional download progress
|
|
286
|
+
- Saves to `sftp-output/<project_name>/`
|
|
287
|
+
|
|
288
|
+
3. **Config Update:**
|
|
289
|
+
- **Automatically updates** your local `.cf/project.json` with the pulled version
|
|
290
|
+
- No manual steps required
|
|
291
|
+
|
|
292
|
+
4. **Success:**
|
|
293
|
+
- Shows confirmation of downloaded files and updated config
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
236
297
|
## Examples
|
|
237
298
|
|
|
238
299
|
### Basic Workflow
|
|
@@ -258,6 +319,17 @@ cf push
|
|
|
258
319
|
# Uploading project.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%
|
|
259
320
|
# Uploading user_project_wrapper.gds ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%
|
|
260
321
|
# ✓ Uploaded to incoming/projects/my_awesome_project
|
|
322
|
+
|
|
323
|
+
# Later, download results
|
|
324
|
+
cf pull
|
|
325
|
+
# ✓ Connected to sftp.chipfoundry.io
|
|
326
|
+
# Downloading project results from outgoing/results/my_awesome_project...
|
|
327
|
+
# ✓ All files downloaded to sftp-output/my_awesome_project
|
|
328
|
+
# ✓ Project config automatically updated
|
|
329
|
+
|
|
330
|
+
# View the tapeout report
|
|
331
|
+
cf view-tapeout-report
|
|
332
|
+
# ✓ Opened tapeout report in browser: sftp-output/my_awesome_project/consolidated_reports/consolidated_report.html
|
|
261
333
|
```
|
|
262
334
|
|
|
263
335
|
### Advanced Usage
|
|
@@ -272,10 +344,33 @@ cf push --force-overwrite
|
|
|
272
344
|
# Use different project root
|
|
273
345
|
cf push --project-root /path/to/project
|
|
274
346
|
|
|
347
|
+
# Pull results for specific project
|
|
348
|
+
cf pull --project-name other_project
|
|
349
|
+
|
|
350
|
+
# View report for specific project
|
|
351
|
+
cf view-tapeout-report --project-name other_project
|
|
352
|
+
|
|
353
|
+
# View custom report file
|
|
354
|
+
cf view-tapeout-report --report-path /path/to/custom_report.html
|
|
355
|
+
|
|
275
356
|
# Check project status
|
|
276
357
|
cf status
|
|
277
358
|
```
|
|
278
359
|
|
|
360
|
+
### GDS File Examples
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
# Uncompressed GDS file (preferred)
|
|
364
|
+
gds/user_project_wrapper.gds
|
|
365
|
+
|
|
366
|
+
# Compressed GDS file (also supported)
|
|
367
|
+
gds/user_project_wrapper.gds.gz
|
|
368
|
+
|
|
369
|
+
# ❌ INVALID: Both files exist - this will cause an error
|
|
370
|
+
gds/user_project_wrapper.gds # ← Choose ONE version only
|
|
371
|
+
gds/user_project_wrapper.gds.gz # ← Remove this one
|
|
372
|
+
```
|
|
373
|
+
|
|
279
374
|
---
|
|
280
375
|
|
|
281
376
|
## Troubleshooting
|
|
@@ -294,6 +389,13 @@ cf status
|
|
|
294
389
|
|
|
295
390
|
- **Project type detection:**
|
|
296
391
|
- Only one of the recognized GDS files should be present in your `gds/` directory
|
|
392
|
+
- Both compressed and uncompressed versions of the same type are supported
|
|
393
|
+
- **Important**: You cannot have both compressed (`.gz`) and uncompressed (`.gds`) versions of the same file - the tool will error out and ask you to remove one
|
|
394
|
+
|
|
395
|
+
- **Report viewing errors:**
|
|
396
|
+
- Ensure you've run `cf pull` first to download the report
|
|
397
|
+
- Check that the report exists at the expected location
|
|
398
|
+
- Use `--report-path` to specify a custom report location
|
|
297
399
|
|
|
298
400
|
- **ModuleNotFoundError:**
|
|
299
401
|
- Upgrade the CLI: `pip install --upgrade chipfoundry-cli`
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
[](https://badge.fury.io/py/chipfoundry-cli)
|
|
4
4
|
[](https://pypi.org/project/chipfoundry-cli/)
|
|
5
5
|
|
|
6
|
-
A command-line tool to automate the submission of ChipFoundry projects to the SFTP server.
|
|
6
|
+
A command-line tool to automate the submission of ChipFoundry projects to the SFTP server and manage project results.
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
## Overview
|
|
11
11
|
|
|
12
|
-
`cf-cli` is a user-friendly command-line tool for securely submitting your ChipFoundry project files to the official SFTP server. It automatically collects the required files, generates or updates your project configuration,
|
|
12
|
+
`cf-cli` is a user-friendly command-line tool for securely submitting your ChipFoundry project files to the official SFTP server and downloading project results. It automatically collects the required files, generates or updates your project configuration, uploads everything to the correct location on the server, and provides tools to view project results and reports.
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -48,6 +48,16 @@ cf --help
|
|
|
48
48
|
cf push
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
6. **Download results** (when available):
|
|
52
|
+
```bash
|
|
53
|
+
cf pull
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
7. **View tapeout report**:
|
|
57
|
+
```bash
|
|
58
|
+
cf view-tapeout-report
|
|
59
|
+
```
|
|
60
|
+
|
|
51
61
|
---
|
|
52
62
|
|
|
53
63
|
## Project Structure Requirements
|
|
@@ -58,6 +68,7 @@ Your project directory **must** contain:
|
|
|
58
68
|
- `user_project_wrapper.gds` (for digital projects)
|
|
59
69
|
- `user_analog_project_wrapper.gds` (for analog projects)
|
|
60
70
|
- `openframe_project_wrapper.gds` (for openframe projects)
|
|
71
|
+
- **Note**: Both compressed (`.gz`) and uncompressed (`.gds`) files are supported
|
|
61
72
|
- `verilog/rtl/user_defines.v` (required for digital/analog)
|
|
62
73
|
- `.cf/project.json` (optional; will be created/updated automatically)
|
|
63
74
|
|
|
@@ -156,15 +167,44 @@ cf push [OPTIONS]
|
|
|
156
167
|
4. Uploads files to SFTP with progress bars
|
|
157
168
|
5. Shows clean, informative output
|
|
158
169
|
|
|
159
|
-
|
|
170
|
+
**GDS File Handling:**
|
|
171
|
+
- **Both compressed (`.gz`) and uncompressed (`.gds`) files are supported**
|
|
172
|
+
- **No automatic compression** - files are uploaded as-is
|
|
173
|
+
- **Only one version allowed** - you cannot have both compressed and uncompressed versions of the same file
|
|
174
|
+
- **Prefers uncompressed files** when available
|
|
175
|
+
- **Falls back to compressed files** if no uncompressed version is available
|
|
176
|
+
|
|
177
|
+
### Pull Results (Download)
|
|
160
178
|
|
|
161
179
|
```bash
|
|
162
180
|
cf pull [--project-name NAME]
|
|
163
181
|
```
|
|
164
182
|
|
|
165
|
-
- Downloads project results from SFTP
|
|
183
|
+
- Downloads project results from SFTP server
|
|
166
184
|
- Saves to `sftp-output/<project_name>/`
|
|
167
|
-
-
|
|
185
|
+
- **Automatically updates** your local `.cf/project.json` with the pulled version
|
|
186
|
+
- Creates the expected directory structure:
|
|
187
|
+
```
|
|
188
|
+
sftp-output/
|
|
189
|
+
└── <project_name>/
|
|
190
|
+
├── config/
|
|
191
|
+
│ └── project.json
|
|
192
|
+
└── consolidated_reports/
|
|
193
|
+
└── consolidated_report.html
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### View Tapeout Report
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
cf view-tapeout-report [--project-name NAME] [--report-path PATH]
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
- Opens the consolidated tapeout report in your default browser
|
|
203
|
+
- **Auto-detects project name** from `.cf/project.json` if available
|
|
204
|
+
- Looks for report at `sftp-output/<project_name>/consolidated_reports/consolidated_report.html`
|
|
205
|
+
- **Options:**
|
|
206
|
+
- `--project-name`: Specify project name manually
|
|
207
|
+
- `--report-path`: Provide direct path to HTML report file
|
|
168
208
|
|
|
169
209
|
### Check Status
|
|
170
210
|
|
|
@@ -193,6 +233,7 @@ cf status
|
|
|
193
233
|
1. **File Collection:**
|
|
194
234
|
- Checks for required GDS and Verilog files
|
|
195
235
|
- Auto-detects project type (digital, analog, openframe) based on GDS file name
|
|
236
|
+
- **Supports both compressed and uncompressed GDS files**
|
|
196
237
|
|
|
197
238
|
2. **Configuration:**
|
|
198
239
|
- Creates or updates `.cf/project.json`
|
|
@@ -209,6 +250,26 @@ cf status
|
|
|
209
250
|
|
|
210
251
|
---
|
|
211
252
|
|
|
253
|
+
## What Happens When You Run `cf pull`?
|
|
254
|
+
|
|
255
|
+
1. **Connection:**
|
|
256
|
+
- Connects to SFTP server securely
|
|
257
|
+
- Shows clean connection status
|
|
258
|
+
|
|
259
|
+
2. **Download:**
|
|
260
|
+
- Downloads all project results recursively
|
|
261
|
+
- Shows professional download progress
|
|
262
|
+
- Saves to `sftp-output/<project_name>/`
|
|
263
|
+
|
|
264
|
+
3. **Config Update:**
|
|
265
|
+
- **Automatically updates** your local `.cf/project.json` with the pulled version
|
|
266
|
+
- No manual steps required
|
|
267
|
+
|
|
268
|
+
4. **Success:**
|
|
269
|
+
- Shows confirmation of downloaded files and updated config
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
212
273
|
## Examples
|
|
213
274
|
|
|
214
275
|
### Basic Workflow
|
|
@@ -234,6 +295,17 @@ cf push
|
|
|
234
295
|
# Uploading project.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%
|
|
235
296
|
# Uploading user_project_wrapper.gds ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100%
|
|
236
297
|
# ✓ Uploaded to incoming/projects/my_awesome_project
|
|
298
|
+
|
|
299
|
+
# Later, download results
|
|
300
|
+
cf pull
|
|
301
|
+
# ✓ Connected to sftp.chipfoundry.io
|
|
302
|
+
# Downloading project results from outgoing/results/my_awesome_project...
|
|
303
|
+
# ✓ All files downloaded to sftp-output/my_awesome_project
|
|
304
|
+
# ✓ Project config automatically updated
|
|
305
|
+
|
|
306
|
+
# View the tapeout report
|
|
307
|
+
cf view-tapeout-report
|
|
308
|
+
# ✓ Opened tapeout report in browser: sftp-output/my_awesome_project/consolidated_reports/consolidated_report.html
|
|
237
309
|
```
|
|
238
310
|
|
|
239
311
|
### Advanced Usage
|
|
@@ -248,10 +320,33 @@ cf push --force-overwrite
|
|
|
248
320
|
# Use different project root
|
|
249
321
|
cf push --project-root /path/to/project
|
|
250
322
|
|
|
323
|
+
# Pull results for specific project
|
|
324
|
+
cf pull --project-name other_project
|
|
325
|
+
|
|
326
|
+
# View report for specific project
|
|
327
|
+
cf view-tapeout-report --project-name other_project
|
|
328
|
+
|
|
329
|
+
# View custom report file
|
|
330
|
+
cf view-tapeout-report --report-path /path/to/custom_report.html
|
|
331
|
+
|
|
251
332
|
# Check project status
|
|
252
333
|
cf status
|
|
253
334
|
```
|
|
254
335
|
|
|
336
|
+
### GDS File Examples
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
# Uncompressed GDS file (preferred)
|
|
340
|
+
gds/user_project_wrapper.gds
|
|
341
|
+
|
|
342
|
+
# Compressed GDS file (also supported)
|
|
343
|
+
gds/user_project_wrapper.gds.gz
|
|
344
|
+
|
|
345
|
+
# ❌ INVALID: Both files exist - this will cause an error
|
|
346
|
+
gds/user_project_wrapper.gds # ← Choose ONE version only
|
|
347
|
+
gds/user_project_wrapper.gds.gz # ← Remove this one
|
|
348
|
+
```
|
|
349
|
+
|
|
255
350
|
---
|
|
256
351
|
|
|
257
352
|
## Troubleshooting
|
|
@@ -270,6 +365,13 @@ cf status
|
|
|
270
365
|
|
|
271
366
|
- **Project type detection:**
|
|
272
367
|
- Only one of the recognized GDS files should be present in your `gds/` directory
|
|
368
|
+
- Both compressed and uncompressed versions of the same type are supported
|
|
369
|
+
- **Important**: You cannot have both compressed (`.gz`) and uncompressed (`.gds`) versions of the same file - the tool will error out and ask you to remove one
|
|
370
|
+
|
|
371
|
+
- **Report viewing errors:**
|
|
372
|
+
- Ensure you've run `cf pull` first to download the report
|
|
373
|
+
- Check that the report exists at the expected location
|
|
374
|
+
- Use `--report-path` to specify a custom report location
|
|
273
375
|
|
|
274
376
|
- **ModuleNotFoundError:**
|
|
275
377
|
- Upgrade the CLI: `pip install --upgrade chipfoundry-cli`
|