# Files pycodecad writes
Everything pycodecad writes, and where. Nothing else is written: no settings, logs or caches.
| What | Where | When |
|---|---|---|
| The script | part.py |
On Save; once from a small example when you open a file that does not exist, or a folder without .py files (not with --read-only) |
| A file of the folder (a helper module) | helper.py |
On Save, while you edit it in the window |
| A copy of the script | The name you give | On Save as |
| Last run | .pycodecad/part.py.last-run.json next to the script |
After every run: window, check, render, export, context |
| Window camera | .pycodecad/part.py.camera.json next to the script |
About a second after the camera stops moving in the window |
| Exports | part.stl, part.3mf... next to the script (or the name an embedding app gives) |
Export in the window |
| Picture | part.png next to the script |
Export > PNG picture of the view |
| Exports, pictures | The path you give | pycodecad export, pycodecad render |
| Temporary STL | ~/.cache/pycodecad/tmp/ (or $XDG_CACHE_HOME/pycodecad/tmp/) |
During import_mesh(..., solid=True), removed after use |
# Details
- Saves are atomic and keep the file's permissions: the new text is written to a temporary file next to the script, then replaces it in one step. Readers see the old or the new file, never a part of it.
- Last run: the JSON of
check, replaced by every run. Long texts in it are cut (traceback, output, warnings, objects), so it stays small. A stopped run records "Stopped". - Camera: what
render --views windowuses; also the view size. - The
.pycodecad/files are skipped silently when the script's folder is not writable (render --views windowthen says there is no camera). - The window's exports and picture overwrite files with the same name.
- Temporary files left behind by a stopped run are removed the next time pycodecad starts (when they are more than ten minutes old).
- No
__pycache__is written for your script or its helper modules. - In a folder, the last run, the camera, the exports and the
picture belong to the main file (the one Run runs):
.pycodecad/gear.py.last-run.json,gear.stl...
What your own script writes is up to it.