fpptools
Administration and debugging command line for emmegisoft FP Pro: structures (.STR), blocks (.BLK) and job records.
It works on the configuration that is active in FP Pro right now (read from %APPDATA%\Emmegisoft\FP_PRO\FP_PRO.INI).
Guía rápida en español más abajo.
Install
pip install fpptools # or: uv tool install fpptools
fpptools --help
Standalone exes (no Python needed) are built with scripts\build_exe.ps1:
fpptools.exe: the full command line.fpptools_estructuras.exe: double-click to export the structures of the active configuration toestructuras.xlsxnext to the exe (same asfpptools str list --lang es -o estructuras.xlsx). If that file is open in Excel, it writesestructuras_<date_time>.xlsxinstead. Also installed as thefpptools-estructurascommand.
Commands
| Command | What it does |
|---|---|
fpptools config |
Show the active configuration: folders, database (password hidden) |
fpptools str list |
List structures: folder, name, unique code, description |
fpptools fit list |
List fittings used in structures, blocks, one job or all jobs (kits expanded from the database) |
fpptools wipe panedefs |
Remove glass fittings, glass DXF and pane table from every pane of the structures |
fpptools wipe kits |
Remove every kit from structures or blocks |
Every command has --help.
Choosing files
Commands that read STR/BLK folders accept:
--under FOLDER: only that folder of the tree, e.g.--under 019_SERIE_22_PESADO--match PATTERN: file name pattern without extension, e.g.--match "VTA_*"(case-insensitive)--root FOLDER: another folder instead of the one in FP_PRO.INI
Output
--out file.csv (default), --out file.xlsx, or --out - for the console.
CSV files use ; and UTF-8 with BOM, so Excel opens them correctly with accents. --lang es writes Spanish headers.
Commands that modify files: simulate first
wipe commands only simulate by default: they report what would change and write nothing.
Add --apply to write. Before writing, every file is copied to --backup-dir (default .\fpptools_backups\<date_time>\, same sub-folders) together with a report.txt. To undo, copy the backed-up files back.
fpptools wipe panedefs --under "LINEA X" # simulation
fpptools wipe panedefs --under "LINEA X" --apply # backup + write
Close the structures in FP Pro before applying.
Structure fields
| Column | Where it comes from |
|---|---|
| Folder | Folder of the file inside STR_PATH (the tree in FP Pro's structure browser) |
| Name | File name without .STR (the "Nombre" field in FP Pro) |
| Unique code | FP_TREE/@NameStr ("nombre unívoco" in FP Pro) |
| Description | FP_TREE/FP_DESCRIPTION, stored as Base64 inside the file |
Database
fit list reads kits from the FP Pro database of the active configuration: MySQL (CONN_STR_FP_PRO=1, settings in [MYSQL]) or Access (Fp_Pro32.MDB in MDB_PATH). Queries are read-only.
Access needs the Microsoft Access ODBC driver with the same bitness (32/64-bit) as Python. Use --no-db to skip the database.
Other options
--ini PATH(or environment variableFPPTOOLS_INI): use another FP_PRO.INI.fpptools list_fittings --searchtype str(0.1 syntax) still works but is deprecated.
Guía rápida (español)
fpptools trabaja sobre la configuración activa en FP Pro.
Exportar nombre y descripción de las estructuras:
fpptools str list --lang es -o estructuras.xlsx
fpptools str list --under 019_SERIE_22_PESADO --lang es -o serie22.csv
Columnas: Carpeta, Nombre (nombre del archivo), Nombre único (nombre unívoco), Descripción.
Sin línea de comandos: doble clic en fpptools_estructuras.exe. Crea estructuras.xlsx en la misma carpeta del programa (si está abierto en Excel, crea estructuras_<fecha_hora>.xlsx). El programa debe estar en una carpeta donde se pueda escribir (no en C:\Program Files).
Comandos que modifican archivos (wipe): por defecto solo simulan y muestran qué cambiarían. Con --apply primero copian los originales a fpptools_backups\<fecha_hora>\ y luego escriben. Cierre las estructuras en FP Pro antes de aplicar.
fpptools config muestra qué configuración, carpetas y base de datos está usando.
Development
uv sync
uv run pytest
uv run fpptools --help
uv build ; uv publish # PyPI
.\scripts\build_exe.ps1 # dist_exe\fpptools.exe, dist_exe\fpptools_estructuras.exe (not in dist\: that is PyPI's)
License: MIT.
Metadata
Release files for fpptools 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fpptools-0.2.0.tar.gz | 23.2 kB | Without provenance | Details for fpptools-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fpptools-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for fpptools-0.2.0-py3-none-any.whl |
Total release size: 47.4 kB
Release files / fpptools-0.2.0.tar.gz
| Download URL | fpptools-0.2.0.tar.gz |
|---|---|
| Size | 23.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c86528fb7d9c7af3d9a041bb18431332b86b43828b37f5c1bce0fcad3368d7f3
|
|
BLAKE2b-256 checksum How to use checksums |
bb5d93f6730ccfef4597972b1b44839ccd9c6a41a68f3863bb1471e7f1b583db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / fpptools-0.2.0-py3-none-any.whl
| Download URL | fpptools-0.2.0-py3-none-any.whl |
|---|---|
| Size | 24.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dbfb535e47743fbf9978033be790ebeff709fc8da61f93a335904c3c28223bb8
|
|
BLAKE2b-256 checksum How to use checksums |
c3621f9756e04a704acb73baadc7eec798e2c0c363090b2a72f152179d3ef6bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for fpptools 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.