1 of 2 files were uploaded without provenance metadata. View details.
SciDB
Database operations layer for SciStack. Provides abstractions for defining typed variables, configuring the database, and saving/loading data by metadata.
Named Filters (value-based, reusable)
Filter objects are first-class values — assign them to a variable and reuse
them in any where= clause, or compose them with & / | / ~:
# Define once (this IS a ColumnFilter — no special wrapper needed)
clean_gr = GAITRiteLoadedCycle["StepLengths_GR"] != 0
# Use anywhere
for_each(mean_change_from_reference,
inputs={"baseline": Fixed(GAITRiteLoadedCycle["StepLengths_GR"], session="BL"),
"value": GAITRiteLoadedCycle["StepLengths_GR"]},
outputs=[DeltaStepLength],
where=clean_gr & (UAStartFoot() == "A"))
# Compose named filters
clean_and_unilateral = clean_gr & (UAStartFoot() == "U")
for_each(..., where=clean_and_unilateral)
MATLAB equivalent:
clean_gr = GAITRiteLoadedCycle("StepLengths_GR") ~= 0;
scidb.for_each(@meanChangeFromReference, ..., where=clean_gr & (UAStartFoot() == "A"));
Permanent Schema-Level Exclusions
For data that should be excluded from every analysis (e.g., a failed recording session), use the exclusion registry instead of per-call filters.
# Mark a specific trial as excluded (persisted in the database)
scidb.exclude_schema(subject=1, trial=2,
reason="equipment malfunction during recording")
# Exclude an entire subject (trial omitted = wildcard)
scidb.exclude_schema(subject=3, reason="participant withdrew")
# Inspect currently-excluded combinations
exclusions_df = scidb.list_exclusions()
# Re-include (logged; the original exclusion row is preserved)
scidb.include_schema(subject=1, trial=2,
reason="re-reviewed video, recording was valid")
MATLAB equivalent:
scidb.exclude_schema("equipment malfunction", 'subject', 1, 'trial', 2)
scidb.include_schema("re-reviewed, recording was valid", 'subject', 1, 'trial', 2)
tbl = scidb.list_exclusions()
Exclusions are applied automatically by for_each before the iteration loop.
The full exclusion table is hashed and stored in version_keys
(__schema_overrides_hash) so that adding or removing an exclusion
invalidates cached results.
from scidb import configure_database, BaseVariable
import numpy as np
db = configure_database("experiment.duckdb", ["subject", "session"])
class RawSignal(BaseVariable):
schema_version = 1
RawSignal.save(np.array([1, 2, 3]), subject=1, session="A")
(raw,) = RawSignal.load(subject=1, session="A") # generator; unpack for single result
all_versions = list(RawSignal.load(subject=1, session="A", version="all"))
Data Inventory (missing schema-key combinations)
"Which combinations of these schema keys have no data?" The inventory crosses
every value each chosen key has anywhere in _schema (in the declared
[schema_keys] order) and gives each combination a status: present,
missing, or excluded (an active exclude_schema matches it; excluded wins
over present). A deeper row counts for its projection onto the chosen keys,
and only the database is consulted, never a Variable.
from scidb.inventory import schema_inventory, write_inventory_csv
inv = schema_inventory(db, ["subject", "session"]) # None = every key
inv.counts # {"present": 10, "missing": 2, "excluded": 0}
write_inventory_csv(inv, "missing.csv", missing_only=True)
scidb inventory --keys subject,session # counts + missing table
scidb inventory --all --csv inventory.csv # every combination + status
scidb inventory --within group # one inventory per study arm
within=["group"] (CLI --within group) runs the inventory separately for
each group value and crosses only the values found in that arm, so a subject
of one arm is never reported missing at the other arm's sessions. Use it for
design keys (arm, site, protocol).
Above 1,000,000 combinations the call raises before building the product. The
GUI's 📋 Inventory button shows the same table. Details:
docs/claude/data-inventory.md.
Logging
Every scidb operation logs through the shared scistacklog facade. configure_database() points the file sink at scidb.log next to the database file and writes a run-context header (package versions, Python version, pid), so each log file is self-describing.
Two sinks with independent levels, both defaulting to INFO:
- console (stderr): the pipeline narrative — for_each banner, periodic progress, run summary with failure reasons,
[timing]summaries. - file (
scidb.log): the same narrative, with date + millisecond timestamps and the originating layer ([scidb],[scifor],[matlab], …) on every line; one record per line.
For debugging, raise a sink to DEBUG to capture the full execution trace (named internal steps with durations, per-iteration [run]/[skip] lines, per-phase [timing] tables, column/dtype dumps):
from scidb import Log
Log.set_level("DEBUG", sink="file") # full detail in scidb.log only
Log.set_level("DEBUG") # both sinks
or set the SCIDB_LOG_LEVEL environment variable, or pass -v to the scidb CLI.
Metadata
Release files for scistack-db 0.1.42
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Incomplete provenance
1 of 2 files were uploaded without provenance metadata.
We recommend further investigation before installing these files. View details.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| scistack_db-0.1.42.tar.gz | 503.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scistack_db-0.1.42-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / scistack_db-0.1.42.tar.gz
Incomplete provenance
This file belongs to a release with incomplete provenance: while other files in this release have provenance metadata, this file does not.
We recommend further investigation before installing this file. View details.
| Download URL | scistack_db-0.1.42.tar.gz |
|---|---|
| Size | 503.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
527896fd62ae3795b01e6a3a374fb149260073e6aa26a200a27a677885fee51b
|
|
BLAKE2b-256 checksum How to use checksums |
9ce92ce3378fec498821d0eb5e02812f0e1691f384089b93e9a14ec5c288a61d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.11
|
Release files / scistack_db-0.1.42-py3-none-any.whl
Incomplete provenance
This file belongs to a release with incomplete provenance: while this file has provenance metadata, other files in this release do not.
We recommend further investigation before installing this file. View details.
| Download URL | scistack_db-0.1.42-py3-none-any.whl |
|---|---|
| Size | 543.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d153e88e35a98ba808c9a9ac0c487bc08876e8f32575d41cbada637f09367ff7
|
|
BLAKE2b-256 checksum How to use checksums |
8e9c4551c7ead818825e9fd6b9da0a85c8097eceef482d474aae39c0061307b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logSecurity for scistack-db 0.1.42
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.
Incomplete provenance
1 of 2 files were uploaded without provenance metadata.
Attestations for scistack_db-0.1.42.tar.gz
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.