Install
pip install sillon
That is the whole toolchain: the logging client, the CLI, and the analysis library. There is no server to configure and no account to create.
Optional extras
pip install "sillon[analysis]" # + pandas, for to_dataframe()
Figures need matplotlib, which sillon does not install for you — if you are
plotting, you already have it.
Requirements
- Python 3.11 or newer
- Linux, macOS or Windows
The client and the daemon talk over a Unix domain socket where one is available,
and over a loopback TCP port on Windows, where CPython does not expose
AF_UNIX. You do not configure this — sillon picks the right one. Set
SILLON_TRANSPORT=unix|tcp only if you want to force it (the test suite does,
to exercise the Windows path on Linux).
Check it worked
sillon --version
You get two commands on your PATH:
| Command | What it is |
|---|---|
sillon |
the CLI you use to explore runs |
sillon-server-daemon |
the background logging daemon — you never start this yourself |
What gets created, and where
Nothing until you log something. The first time a script calls sillonpy,
sillon creates a .sillon/ folder next to it:
.sillon/
config.toml the project's name and id
database.sql SQLite: one row per run
glob/<uuid>/glob.hdf5 heavy arrays
artifact/<uuid>/ files you logged
figure/<uuid>/ figures you logged
sources/<sha256> the code behind each run
daemon.log the background daemon's log
That folder is your project. Back it up like any other data, and mv it
wherever you like — it carries its own identity, so sillon notices the next
time you use it. To move runs rather than the whole directory, see
Moving runs between machines.
Add it to your .gitignore — it holds results, not source:
.sillon/
One file lives outside the project: a registry of every project on this machine,
so sillon projects can tell you where they all are. It goes in
~/.config/sillon/ (or %APPDATA%\sillon on Windows).
Install from source
git clone https://github.com/balerat/sillon
cd sillon
pip install -e ".[dev]" # or: make install
make test
See Development setup for the layout of the repository.