sekejap
Embedded, graph-first multimodel database. Graph traversal, spatial search, vector similarity, and full-text search — composable in a single query, zero external dependencies, runs in-process.
Built for workloads that need more than one data model at a time:
- root-cause analysis — traverse a causal graph filtered by text relevance
- hybrid RAG — find semantically similar nodes then walk their graph context
- knowledge graph discovery — spatial + graph + vector in one query
- spatiotemporal intelligence — who was where, connected to what, when
Available as a Rust library, Rust CLI, and Python library.
Hello World — One Piece
The Grand Line is a graph. Islands are nodes. Sailing routes are edges. Characters have bounties, affiliations, fighting styles, and coordinates.
from sekejap import DB
db = DB()
# ── Schema ────────────────────────────────────────────────────────────────────
db.execute("""
CREATE TABLE characters (
_key TEXT PRIMARY KEY,
name TEXT,
crew TEXT,
bounty INTEGER,
location GEO,
embedding VECTOR
)
""")
db.execute("""
CREATE TABLE islands (
_key TEXT PRIMARY KEY,
name TEXT,
sea TEXT,
geometry GEO
)
""")
db.execute("CREATE INDEX ON characters USING hash (crew)")
db.execute("CREATE INDEX ON characters USING btree (bounty)")
db.execute("CREATE INDEX ON characters USING gin (name)")
db.execute("CREATE INDEX ON characters USING spatial (location)")
db.execute("CREATE INDEX ON characters USING hnsw (embedding)")
db.execute("CREATE INDEX ON islands USING spatial (geometry)")
# ── Nodes ─────────────────────────────────────────────────────────────────────
db.execute("INSERT INTO characters (_key, name, crew, bounty) VALUES ('luffy', 'Monkey D. Luffy', 'straw-hat', 3000000000)")
db.execute("INSERT INTO characters (_key, name, crew, bounty) VALUES ('zoro', 'Roronoa Zoro', 'straw-hat', 1111000000)")
db.execute("INSERT INTO characters (_key, name, crew, bounty) VALUES ('sanji', 'Vinsmoke Sanji', 'straw-hat', 1032000000)")
db.execute("INSERT INTO characters (_key, name, crew, bounty) VALUES ('shanks', 'Red Hair Shanks', 'red-hair', 4048900000)")
db.execute("INSERT INTO characters (_key, name, crew, bounty) VALUES ('mihawk', 'Dracule Mihawk', 'shichibukai', 0)")
db.execute("INSERT INTO islands (_key, name, sea) VALUES ('marineford', 'Marineford', 'grand-line')")
db.execute("INSERT INTO islands (_key, name, sea) VALUES ('dressrosa', 'Dressrosa', 'grand-line')")
db.execute("INSERT INTO islands (_key, name, sea) VALUES ('wano', 'Wano Kuni', 'grand-line')")
db.execute("INSERT INTO islands (_key, name, sea) VALUES ('fishman-island', 'Fishman Island', 'grand-line')")
# ── Edges ─────────────────────────────────────────────────────────────────────
db.execute("INSERT ('characters/luffy')-[:rival {strength: 10}]->('characters/mihawk')")
db.execute("INSERT ('characters/zoro')-[:student_of {years: 3}]->('characters/mihawk')")
db.execute("INSERT ('characters/shanks')-[:allied_with {trust: 10}]->('characters/luffy')")
db.execute("INSERT ('islands/marineford')-[:route_to {days: 3}]->('islands/fishman-island')")
db.execute("INSERT ('islands/fishman-island')-[:route_to {days: 7}]->('islands/dressrosa')")
db.execute("INSERT ('islands/dressrosa')-[:route_to {days: 5}]->('islands/wano')")
# ── Graph: who trained under Mihawk, and who are their rivals? ────────────────
hits = db.query("""
SELECT b._key AS name
FROM MATCH (a:characters)-[:student_of]->(:characters {_key: 'mihawk'})<-[:rival]-(b:characters)
""")
# ── Graph: reachable islands within 3 hops from Marineford ───────────────────
hits = db.query("""
SELECT dest._key AS island
FROM MATCH (start:islands)-[:route_to*1..3]->(dest:islands)
WHERE start._key = 'marineford'
""")
# ── Aggregate: total route days from Marineford to each destination ───────────
hits = db.query("""
SELECT dest._key AS island, SUM(r.days) AS total_days
FROM MATCH (start:islands)-[r:route_to*1..3]->(dest:islands)
WHERE start._key = 'marineford'
GROUP BY dest._key
ORDER BY total_days ASC
""")
# ── Spatial: islands within 1000 km of Marineford (0°, 0°) ───────────────────
hits = db.query("""
SELECT * FROM islands
WHERE ST_DWithin(geometry, POINT(0.0 0.0), 1000.0)
""")
# ── Vector: characters with similar fighting style to Zoro ───────────────────
zoro_vec = [0.95, 0.02, 0.01, 0.02] # hypothetical embedding
hits = db.query(f"SELECT * FROM characters WHERE VECTOR_NEAR(embedding, {zoro_vec}, 5)")
# ── BM25: search bounty posters by wanted description ────────────────────────
hits = db.query("""
SELECT * FROM characters
WHERE BM25(description, 'swordsman pirate dangerous') > 0.3
ORDER BY BM25(description, 'swordsman pirate dangerous') DESC
""")
Data Types
| Type | SQL keyword | Stored as | Use for |
|---|---|---|---|
| Text | TEXT |
UTF-8 string | names, categories, IDs |
| Integer | INTEGER |
i64 | counts, years, bounties |
| Float | REAL |
f64 | scores, weights, ratios |
| Timestamp | TIMESTAMPTZ |
ISO-8601 | events, creation time |
| Geometry | GEO |
GeoJSON object | points, polygons, lines |
| Vector | VECTOR |
[f32, ...] array |
embeddings |
| JSON | JSON |
arbitrary JSON | nested / unstructured |
GEO accepts any GeoJSON geometry — Point, Polygon, LineString, MultiPolygon, etc.
VECTOR is inserted as a SQL array literal: [0.12, -0.03, 0.87, ...]
Indexes
| Index | USING keyword |
Enables |
|---|---|---|
| Hash | hash |
field = 'val', IN (...), equality lookups |
| B-tree | btree |
>, <, BETWEEN, ORDER BY field |
| GIN | gin |
ILIKE '%pattern%' (exact trigram postings, no verification step) |
| Spatial | spatial |
ST_DWithin, ST_Contains, ST_Within, ST_Intersects |
| HNSW | hnsw |
VECTOR_NEAR(field, [...], k), ORDER BY field <=> [...], VECTOR_COSINE(field, [...]) in score expressions |
| BM25 | bm25 |
BM25(field, 'query') > score, ORDER BY BM25(...) DESC, BM25(...) in score expressions |
All indexes are built via CREATE INDEX:
CREATE INDEX ON characters USING hash (crew)
CREATE INDEX ON characters USING btree (bounty)
CREATE INDEX ON characters USING gin (name)
CREATE INDEX ON characters USING spatial (location)
CREATE INDEX ON characters USING hnsw (embedding)
CREATE INDEX ON characters USING bm25 (bio)
Or declared inline in CREATE TABLE WITH (...):
CREATE TABLE characters (
_key TEXT PRIMARY KEY,
name TEXT,
bounty INTEGER,
location GEO,
embedding VECTOR,
bio TEXT
) WITH (hash: ['_key'], range: ['bounty'], fulltext: ['name'], spatial: ['location'], vector: ['embedding'], bm25: ['bio'])
GIN stores exact trigram→document postings (no lossy signatures), so ILIKE queries require no verification pass. GIN is maintained automatically on every insert — declaring the index before loading data is the standard workflow.
HNSW is rebuilt automatically after each put_vector call when an index is declared. For large bulk loads, call REINDEX once after all data is in to rebuild the graph in one pass.
BM25 is batch-built at CREATE INDEX time. Run REINDEX after inserting new documents.
All index types survive a cold restart. Hash, B-tree, GIN, and BM25 indexes are rebuilt from persisted schema hints on open. HNSW and Spatial indexes are stored directly in the snapshot.
Interfaces
sekejap has three interfaces. Use whichever fits the context.
SQL
Standard SQL for schema, mutations, and queries. Use this most of the time.
-- Schema
CREATE TABLE islands (_key TEXT PRIMARY KEY, name TEXT, sea TEXT, geometry GEO)
CREATE INDEX ON islands USING spatial (geometry)
-- Mutations
INSERT INTO islands (_key, name, sea) VALUES ('wano', 'Wano Kuni', 'grand-line')
UPDATE islands SET sea = 'new-world' WHERE _key = 'wano'
DELETE FROM islands WHERE sea = 'east-blue'
-- Schema lifecycle
DROP TABLE islands
DROP TABLE IF EXISTS islands
-- DROP INDEX
DROP INDEX ON islands USING spatial (geometry)
DROP INDEX IF EXISTS ON islands USING btree (elevation)
-- REINDEX (force rebuild — useful after large bulk loads)
REINDEX ON researchers USING hnsw (embedding)
REINDEX ON papers USING bm25 (abstract)
REINDEX ON characters USING gin (name)
-- ALTER TABLE (PostgreSQL-style)
ALTER TABLE islands ADD COLUMN elevation INTEGER
ALTER TABLE islands DROP COLUMN elevation
ALTER TABLE islands DROP COLUMN IF EXISTS elevation
ALTER TABLE islands RENAME COLUMN sea TO ocean
ALTER TABLE islands RENAME TO atolls
ALTER TABLE islands ALTER COLUMN elevation TYPE REAL
-- Edges
INSERT ('islands/marineford')-[:route_to {days: 3}]->('islands/fishman-island')
DELETE ('islands/marineford')-[:route_to]->('islands/fishman-island')
-- Graph traversal
SELECT dest._key AS island
FROM MATCH (a:islands)-[:route_to*1..5]->(dest:islands)
WHERE a._key = 'marineford'
-- Graph aggregation
SELECT b._key AS name, COUNT(a) AS allies, SUM(r.strength) AS total_strength
FROM MATCH (a:characters)-[r:collaborated_with]->(b:characters)
GROUP BY b._key
ORDER BY total_strength DESC
LIMIT 10
-- Multi-stage graph query with WITH chaining
SELECT c.name AS island, COUNT(*) AS visitors
FROM MATCH (a:characters)-[:allied_with]->(b:characters)
WHERE a._key = 'luffy'
WITH b
MATCH (b)-[:visited]->(c:islands)
GROUP BY c.name
ORDER BY visitors DESC
-- MATCH...RETURN (Cypher-style, also via query())
MATCH (a:characters)-[:rival]->(b:characters)
RETURN a._key AS name, b.bounty AS rival_bounty
-- Edge intrinsics: _depth, _path_keys, _path_strength, _avg_strength, _min/_max_strength
-- Available on any named edge binding (e.g. [r:route_to] or [r*])
SELECT dest._key AS island, r2._depth AS hops, r2._path_keys AS route
FROM MATCH (start:islands)-[r:route_to]->(stop:islands)-[r2:route_to]->(dest:islands)
WHERE start._key = 'marineford'
-- PATH_* aggregates — operate on a JSON array in a path intrinsic field
-- PATH_AVG, PATH_SUM, PATH_MIN, PATH_MAX, PATH_PRODUCT, PATH_FIRST, PATH_LAST
SELECT c._key AS dest,
PATH_PRODUCT(r2._path_strength) AS combined_reliability,
PATH_FIRST(r2._path_keys) AS departure,
PATH_LAST(r2._path_keys) AS arrival
FROM MATCH (a:islands)-[r:route_to]->(b:islands)-[r2:route_to]->(c:islands)
WHERE a._key = 'marineford'
-- CASE WHEN — conditional expression in SELECT list
SELECT b._key AS name,
CASE WHEN r._depth = 1 THEN 'direct'
WHEN r._depth = 2 THEN 'indirect'
ELSE 'distant'
END AS rivalry_type
FROM MATCH (a:characters)-[r:rival]->(b:characters)
-- Time expressions: NOW(), AGE_DAYS(var.field), AGE_HOURS(var.field)
-- NOW() returns current Unix timestamp (seconds as i64)
-- AGE_DAYS / AGE_HOURS accept a Unix int or "YYYY-MM-DD" string field
SELECT b._key AS name,
AGE_DAYS(b.last_seen) AS days_since_seen,
NOW() AS queried_at
FROM MATCH (a:characters)-[r:rival]->(b:characters)
-- JSON_ARRAY_LENGTH — length of a JSON array field
SELECT b._key AS dest, JSON_ARRAY_LENGTH(r._path_keys) AS hops_plus_one
FROM MATCH (a:islands)-[r:route_to*1..3]->(b:islands)
WHERE a._key = 'marineford'
-- Shortest path — 0 rows = unreachable, 1 row = found (path fields via r.*)
SELECT a.name AS from_name, b.name AS to_name, r.length AS hops, r._path_keys AS route
FROM MATCH SHORTEST (a)-[r*]->(b)
WHERE a._key = 'islands/marineford' AND b._key = 'islands/wano'
-- Path predicates (ANY / ALL / NONE / SINGLE)
AND ANY(n IN nodes(r) WHERE n.climate = 'tropical')
-- Multi-FROM cross-join — two independent sources Cartesian-producted
SELECT a._key AS island, b._key AS character
FROM MATCH ('crews/straw-hats')-[:member]->(b), islands AS a
-- Spatial
SELECT * FROM islands WHERE ST_DWithin(geometry, POINT(0.0 0.0), 500.0)
SELECT * FROM zones WHERE ST_Contains(geometry, POINT(144.9671 -37.8183))
-- Vector
SELECT * FROM characters WHERE VECTOR_NEAR(embedding, [0.9, 0.1, 0.0], 5)
-- Full-text (GIN — fast exact ILIKE, no score)
SELECT * FROM characters WHERE name ILIKE '%shanks%'
-- Full-text (BM25 — relevance-ranked)
SELECT * FROM papers WHERE BM25(abstract, 'neural network') > 0.3
ORDER BY BM25(abstract, 'neural network') DESC
-- Arithmetic ORDER BY (weighted multi-signal ranking)
-- Combine any signals with +, -, *, /, (), and unary negation
ORDER BY BM25(title, 'pirate') * 0.7 + BM25(bio, 'pirate') * 0.3 DESC
ORDER BY BM25(title, 'pirate') * 0.5 + bounty * 0.5 DESC
ORDER BY VECTOR_COSINE(embedding, [0.9, 0.1, 0.0]) * 0.6 + BM25(bio, 'pirate') * 0.4 DESC
ORDER BY (BM25(title, 'luffy') + BM25(bio, 'luffy')) * 0.8 + threat_level * 0.2 DESC
-- Spatial signal: ST_DISTANCE_KM(geometry_field, POINT(lon lat)) → km (f64)
-- Negate to rank nearest-first: -ST_DISTANCE_KM(...) DESC
ORDER BY -ST_DISTANCE_KM(location, POINT(144.9671 -37.8183)) DESC
-- Vector distance operators (compile to same score node as the function forms)
-- a <=> b == VECTOR_COSINE(a, b) cosine distance (lower = more similar)
-- a <-> b == VECTOR_L2(a, b) Euclidean / L2
-- a <#> b == VECTOR_DOT(a, b) inner product (NOT negated, unlike pgvector)
-- a <+> b == VECTOR_L1(a, b) Manhattan / L1
ORDER BY embedding <=> [0.9, 0.1, 0.0] ASC -- nearest cosine first
-- VECTOR_COSINE(field, [vec]) returns cosine distance (lower = more similar)
-- Numeric payload fields are coerced to f64 (absent or non-numeric = 0.0)
-- Default direction for score expressions is DESC (highest score first)
-- Filters
WHERE bounty BETWEEN 1000000000 AND 4000000000
WHERE crew IN ('straw-hat', 'red-hair')
WHERE name ILIKE '%luffy%'
WHERE description IS NOT NULL
AND / OR / NOT
-- Introspection
SHOW TABLES -- all collections with row counts
SHOW EDGES -- full graph schema with edge counts
SHOW EDGES FROM characters -- edge types leaving a collection + counts
SHOW EDGES FROM characters TO islands -- edge types between two collections + counts
SHOW characters -- field structure (declared schema or inferred)
Graph path queries
SELECT … FROM MATCH SHORTEST finds the shortest directed path between two nodes.
Returns 1 row when a path is found, 0 rows when none exists.
Path fields are exposed via the path-bind variable (e.g. r):
r.length, r._path_keys, r._path_strength, r.nodes, r.edges.
hits = db.query("""
SELECT a.name AS from_name, b.name AS to_name,
r.length AS hops, r._path_keys AS route
FROM MATCH SHORTEST (a)-[r*]->(b)
WHERE a._key = 'islands/marineford' AND b._key = 'islands/wano'
""")
if hits:
import json
row = json.loads(hits[0].payload)
print(f"Shortest route: {row['hops']} hops")
for slug in row['route']:
print(" ", slug)
Path predicates filter on intermediate nodes:
# Only keep paths where every node has a tropical climate
hits = db.query("""
SELECT r.length AS hops
FROM MATCH SHORTEST (a)-[r*]->(b)
WHERE a._key = 'islands/marineford' AND b._key = 'islands/wano'
AND ALL(n IN nodes(r) WHERE n.climate = 'tropical')
""")
### Atomic (Rust fluent builder)
Use when you need lower-level control — pre-resolved hashes, programmatic step composition, or performance-sensitive inner loops.
```rust
use sekejap::CoreDB;
let mut db = CoreDB::open("./data")?;
// Fluent scan with filters
let hits = db.collection("characters")
.where_eq("crew", "straw-hat")
.where_gte("bounty", 1_000_000_000)
.order_by("bounty", true) // true = descending
.limit(10)
.collect();
// Vector similarity
let hits = db.collection("characters")
.vector_near("embedding", query_vec, 10)
.collect();
// Spatial radius
let hits = db.collection("islands")
.st_dwithin(-37.8183, 144.9671, 5.0) // lat, lon, km
.collect();
// Raw node operations
db.put("characters/luffy", r#"{"_collection":"characters","_key":"luffy","name":"Luffy"}"#)?;
db.get("characters/luffy");
db.remove("characters/luffy");
// Edges
db.link("characters/zoro", "characters/mihawk", "student_of", 1.0);
db.link_meta("islands/marineford", "islands/fishman-island", "route_to", 1.0, r#"{"days":3}"#)?;
db.unlink("characters/zoro", "characters/mihawk", "student_of");
// Shortest path — 0 rows = unreachable, 1 row = found
let hits = db.query(
"SELECT a.name AS from_n, b.name AS to_n, r.length AS hops, r._path_keys AS route \
FROM MATCH SHORTEST (a)-[r*]->(b) \
WHERE a._key = 'islands/marineford' AND b._key = 'islands/wano'"
)?.collect();
if let Some(hit) = hits.first() {
if let Some(p) = &hit.payload {
println!("{} hops", p["hops"]);
if let Some(arr) = p["route"].as_array() {
for slug in arr { println!(" {}", slug); }
}
}
}
Python DataFrame (db.df)
Use for data science workflows — loading from CSV/parquet, returning query results as DataFrames.
import pandas as pd
import json
from sekejap import DB
db = DB("./data")
# ── Load from DataFrame ───────────────────────────────────────────────────────
df = pd.read_csv("characters.csv")
# map DataFrame columns to schema field names
db.df.load_nodes(df, "characters", id_col="character_id",
mapping={"character_id": "_key", "full_name": "name"})
df_routes = pd.read_csv("routes.csv") # columns: from_island, to_island, days
db.df.load_edges(
df_routes,
source_col="from_island",
target_col="to_island",
edge_type="route_to",
source_collection="islands",
target_collection="islands",
weight_col="days",
)
# ── Query → DataFrame ─────────────────────────────────────────────────────────
df = db.df.query("SELECT * FROM characters WHERE bounty >= 1000000000")
df = db.df.query("SELECT * FROM characters WHERE VECTOR_NEAR(embedding, [0.9, 0.1, 0.0], 20)")
df = db.df.query("SELECT * FROM islands WHERE ST_DWithin(geometry, POINT(0.0 0.0), 500.0)")
# ── Create collection from field spec ────────────────────────────────────────
db.df.create_collection(
"characters",
fields={
"_key": "TEXT PRIMARY KEY",
"name": "TEXT",
"bounty": "INTEGER",
"location": "GEO",
"embedding": "VECTOR",
},
hash_index=["_key", "crew"],
range_index=["bounty"],
spatial_index=["location"],
vector_index=["embedding"],
)
Full Data Science Example — Grand Line Intelligence
A pirate intelligence system combining all four data models.
Schema and data loading
from sekejap import DB
import pandas as pd
import numpy as np
import json
db = DB("./grandline_db")
db.execute("""
CREATE TABLE characters (
_key TEXT PRIMARY KEY,
name TEXT,
crew TEXT,
role TEXT,
bounty INTEGER,
location GEO,
embedding VECTOR
)
""")
db.execute("""
CREATE TABLE bounty_posters (
_key TEXT PRIMARY KEY,
subject TEXT,
description TEXT,
bounty INTEGER,
year INTEGER
)
""")
db.execute("CREATE INDEX ON characters USING hash (crew)")
db.execute("CREATE INDEX ON characters USING btree (bounty)")
db.execute("CREATE INDEX ON characters USING gin (name)")
db.execute("CREATE INDEX ON characters USING spatial (location)")
db.execute("CREATE INDEX ON characters USING hnsw (embedding)")
db.execute("CREATE INDEX ON bounty_posters USING bm25 (description)")
# Load from CSV + numpy embeddings
df = pd.read_csv("characters.csv")
embeddings = np.load("embeddings.npy") # shape (n, 384)
df["location"] = df.apply(
lambda r: json.dumps({"type": "Point", "coordinates": [r.lon, r.lat]}), axis=1
)
df["embedding"] = [e.tolist() for e in embeddings]
db.df.load_nodes(df, "characters", id_col="character_id",
mapping={"character_id": "_key"})
db.df.load_edges(
pd.read_csv("rivalries.csv"),
source_col="from_id",
target_col="to_id",
edge_type="rival",
source_collection="characters",
target_collection="characters",
weight_col="intensity",
)
Spatial — powerful pirates in the New World
df = db.df.query("""
SELECT * FROM characters
WHERE ST_DWithin(location, POINT(0.0 0.0), 500.0)
AND crew != 'marine'
AND bounty >= 1000000000
ORDER BY bounty DESC
LIMIT 20
""")
Vector — characters with similar fighting style
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("all-MiniLM-L6-v2")
vec = model.encode("swordsman close-range power haki").tolist()
df = db.df.query(f"""
SELECT * FROM characters
WHERE VECTOR_NEAR(embedding, {vec}, 10)
AND bounty >= 500000000
""")
Graph — rival and alliance networks, path queries
# Shortest path between two characters (0 rows = unreachable)
hits = db.query("""
SELECT r.length AS hops, r._path_keys AS route
FROM MATCH SHORTEST (a)-[r*]->(b)
WHERE a._key = 'characters/luffy' AND b._key = 'characters/mihawk'
""")
if hits:
import json
row = json.loads(hits[0].payload)
print(f"Degrees of separation: {row['hops']}")
for slug in row['route']:
print(" ", slug)
# 2-hop rival network from Luffy
hits = db.query("""
SELECT b._key AS name
FROM MATCH (a:characters)-[:rival*1..2]->(b:characters)
WHERE a._key = 'luffy'
""")
# Most feared pirates by rival count
hits = db.query("""
SELECT b._key AS pirate, COUNT(a) AS rivals, SUM(r.intensity) AS total_threat
FROM MATCH (a:characters)-[r:rival]->(b:characters)
GROUP BY b._key
ORDER BY total_threat DESC
LIMIT 10
""")
# Cross-crew rivalries
hits = db.query("""
SELECT a.crew AS from_crew, b.crew AS to_crew, COUNT(r) AS clashes
FROM MATCH (a:characters)-[r:rival]->(b:characters)
GROUP BY a.crew, b.crew
ORDER BY clashes DESC
""")
PATH_* aggregates — aggregate over path arrays
Edge bindings expose path intrinsics as JSON arrays: _path_keys, _path_strength, _path_length.
PATH_* functions aggregate over those arrays in a single SELECT expression.
# PATH_PRODUCT: multiply all strengths along a 2-hop route (reliability score)
hits = db.query("""
SELECT dest._key AS island,
PATH_PRODUCT(r2._path_strength) AS route_reliability,
PATH_FIRST(r2._path_keys) AS departure,
PATH_LAST(r2._path_keys) AS arrival
FROM MATCH (start:islands)-[r:route_to]->(mid:islands)-[r2:route_to]->(dest:islands)
WHERE start._key = 'marineford'
ORDER BY route_reliability DESC
""")
# PATH_AVG / PATH_SUM / PATH_MIN / PATH_MAX / PATH_FIRST / PATH_LAST work the same way
hits = db.query("""
SELECT c._key AS target,
PATH_MIN(r2._path_strength) AS weakest_link,
PATH_AVG(r2._path_strength) AS avg_intensity
FROM MATCH (a:characters)-[r:rival]->(b:characters)-[r2:rival]->(c:characters)
WHERE a._key = 'shanks'
ORDER BY avg_intensity DESC
""")
CASE WHEN, time functions, JSON_ARRAY_LENGTH
# CASE WHEN — conditional expression in SELECT list
hits = db.query("""
SELECT b._key AS name,
CASE WHEN r._depth = 1 THEN 'direct rival'
WHEN r._depth = 2 THEN 'indirect rival'
ELSE 'distant connection'
END AS rivalry_type
FROM MATCH (a:characters)-[r:rival]->(b:characters)
""")
# AGE_DAYS / AGE_HOURS — time since a field's epoch (Unix int or "YYYY-MM-DD")
# NOW() — current Unix timestamp in seconds
hits = db.query("""
SELECT b._key AS name,
AGE_DAYS(b.last_seen) AS days_inactive,
NOW() AS queried_at
FROM MATCH (a:characters)-[r:rival]->(b:characters)
ORDER BY days_inactive DESC
""")
# JSON_ARRAY_LENGTH — length of a JSON array field (e.g. _path_keys)
hits = db.query("""
SELECT dest._key AS island,
JSON_ARRAY_LENGTH(r._path_keys) AS stops
FROM MATCH (start:islands)-[r:route_to*1..3]->(dest:islands)
WHERE start._key = 'marineford'
ORDER BY stops ASC
""")
BM25 — search bounty posters
df = db.df.query("""
SELECT * FROM bounty_posters
WHERE BM25(description, 'swordsman dangerous haki') > 0.2
AND bounty >= 100000000
ORDER BY BM25(description, 'swordsman dangerous haki') DESC
""")
Multi-modal — spatial + graph + vector in one workflow
# "Pirates near Marineford who are in Shanks' rival network
# and have a similar fighting style to Whitebeard"
whitebeard_vec = model.encode("massive power conqueror close-range").tolist()
# Step 1: find pirates near Marineford (0°, 0°)
nearby = db.df.query("SELECT * FROM characters WHERE ST_DWithin(location, POINT(0.0 0.0), 300.0)")
# Step 2: walk Shanks' rival graph
rivals = db.query("""
SELECT b._key AS name
FROM MATCH (a:characters)-[:rival*1..3]->(b:characters)
WHERE a._key = 'shanks'
""")
rival_keys = {json.loads(h.payload)["name"] for h in rivals if h.payload}
# Step 3: filter nearby pirates who appear in the rival graph
candidates = nearby[nearby["_key"].isin(rival_keys)]
keys_clause = ", ".join(f"'{k}'" for k in candidates["_key"])
# Step 4: rank by vector similarity to Whitebeard
result = db.df.query(f"""
SELECT * FROM characters
WHERE _key IN ({keys_clause})
AND VECTOR_NEAR(embedding, {whitebeard_vec}, 5)
""")
Installation
# Rust library
cargo add sekejap
# Rust CLI
cargo install sekejap-cli
# Python
pip install sekejap
CLI
sekejap # in-memory REPL
sekejap ./data # persistent REPL
sekejap ./data "SELECT * FROM r;" # one-shot
echo "SELECT...;" | sekejap ./data # pipe script
sekejap> CREATE TABLE islands (_key TEXT, name TEXT, geometry GEO);
sekejap> INSERT INTO islands (_key, name, sea) VALUES ('wano', 'Wano Kuni', 'grand-line');
sekejap> SELECT * FROM islands WHERE ST_DWithin(geometry, POINT(0.0 0.0), 500.0);
-- Introspection (SQL)
sekejap> SHOW TABLES;
sekejap> SHOW EDGES;
sekejap> SHOW EDGES FROM characters;
sekejap> SHOW characters;
-- Introspection (dot commands — same results, tabular output)
sekejap> .tables
sekejap> .edges
sekejap> .edges characters
sekejap> .schema islands
sekejap> .stats
sekejap> .help
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sekejap-0.12.0.tar.gz.
File metadata
- Download URL: sekejap-0.12.0.tar.gz
- Upload date:
- Size: 364.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d80559a2b19052f57a17749ecb56b40676c9cd6cceab1d33d856c60e38c65ea4
|
|
| MD5 |
b12ae510b7205f75dc204676ad05e5f7
|
|
| BLAKE2b-256 |
3ed8ac691b601c2aea14df1ebd65f3db4d7cc87624df97709cf2c5272b60ad3e
|
Provenance
The following attestation bundles were made for sekejap-0.12.0.tar.gz:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0.tar.gz -
Subject digest:
d80559a2b19052f57a17749ecb56b40676c9cd6cceab1d33d856c60e38c65ea4 - Sigstore transparency entry: 2194691024
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3af12a7654079d2689369fd95f462b3fb9c183fafdb030281af10f7cf877da5b
|
|
| MD5 |
3ad8b66beac47ba11e324e95ce18b3ca
|
|
| BLAKE2b-256 |
55934665368f63bef4b2c5a34d917bfc4339948a473e23ae74249f6ef54a8b3f
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp313-cp313-win_amd64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp313-cp313-win_amd64.whl -
Subject digest:
3af12a7654079d2689369fd95f462b3fb9c183fafdb030281af10f7cf877da5b - Sigstore transparency entry: 2194691052
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a1317b8c1eb285556a70ed638210e3257e8cf9ff30aa5bd8749409b3df326f1
|
|
| MD5 |
9f5d3a567be04a0ddcc3d0e003cfe97e
|
|
| BLAKE2b-256 |
1750b29a4b8f06246fdd09234218f5bc3943b4baf8ea1dbb454294a77c27407c
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl -
Subject digest:
6a1317b8c1eb285556a70ed638210e3257e8cf9ff30aa5bd8749409b3df326f1 - Sigstore transparency entry: 2194691054
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bf5a187094677153396b269cc38265bcd27fdd31e810e8e2b2e959d948be86d
|
|
| MD5 |
74e15c8a0f7486ea5ce0d532ed97faad
|
|
| BLAKE2b-256 |
66eede9c4eb93f536531b253094faf6c387b0ef11707e0c5d9784a05d32b2d71
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
8bf5a187094677153396b269cc38265bcd27fdd31e810e8e2b2e959d948be86d - Sigstore transparency entry: 2194691079
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
301b8df99d80fd103f351ced27f8fc7f621fa38c635071ada51d1dd29183a985
|
|
| MD5 |
ff8ac31428ccf03876f888fe0d43412d
|
|
| BLAKE2b-256 |
f8b1182698ae5444aad2066d01d93583870c9106dbe6929e57ca95be07f1c2b3
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp312-cp312-win_amd64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp312-cp312-win_amd64.whl -
Subject digest:
301b8df99d80fd103f351ced27f8fc7f621fa38c635071ada51d1dd29183a985 - Sigstore transparency entry: 2194691074
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cbf138c0ddd7fa5dbf680004e26d1f23e6509623659de7927db706625dca085
|
|
| MD5 |
3a084fe97482f2d7e49e48a9dea6e3cc
|
|
| BLAKE2b-256 |
3bd45ee00e05d91daacdae19edd6898bf8866f29fc3811bc1f1d78fbd38f6bb1
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl -
Subject digest:
0cbf138c0ddd7fa5dbf680004e26d1f23e6509623659de7927db706625dca085 - Sigstore transparency entry: 2194691060
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99cbee51b4dab4c430bd358d02ada6407c13bd58b1f4e1482caef6499e2eb09d
|
|
| MD5 |
ab0f14a16c6f338c7bd5fcb520f3ddc6
|
|
| BLAKE2b-256 |
9a7e321b97ac2eaa040dedbc8c0b8fb52359dd75b540ad6515251b013f10fa70
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
99cbee51b4dab4c430bd358d02ada6407c13bd58b1f4e1482caef6499e2eb09d - Sigstore transparency entry: 2194691084
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4722012e18fcf19465fa7e41367232defab87991423142bd4b446ff092329a9
|
|
| MD5 |
43457547c6db9ee5fbfc5b16b17174a7
|
|
| BLAKE2b-256 |
20fc5309f62e235a7849e5e8bae679e002e7b02117e2dfdd3a8021fcb9c45b98
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp311-cp311-win_amd64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp311-cp311-win_amd64.whl -
Subject digest:
d4722012e18fcf19465fa7e41367232defab87991423142bd4b446ff092329a9 - Sigstore transparency entry: 2194691088
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21d253cefb5d720c24ca72f8568a3dae479eb5a181e49e48130420c02a33cb82
|
|
| MD5 |
9be35c5e53f5a65946ec379051086c83
|
|
| BLAKE2b-256 |
42392ddd4b2d011565b29f1153ce09dd54069cc9606b55e43b403424fb0fa74e
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl -
Subject digest:
21d253cefb5d720c24ca72f8568a3dae479eb5a181e49e48130420c02a33cb82 - Sigstore transparency entry: 2194691031
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a38cee4e40c92a0256e2c7b00ce312b4d3f5fed26461b14789b9f97099775db2
|
|
| MD5 |
61e50ecc6530e7016cbe886f48f01090
|
|
| BLAKE2b-256 |
1e03639e10b0ea3378a22f8466cc1f689c32f849c8d7e151f045a4e75183096e
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
a38cee4e40c92a0256e2c7b00ce312b4d3f5fed26461b14789b9f97099775db2 - Sigstore transparency entry: 2194691047
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 4.9 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bada007e8d43de72517056ad239f3ee069f3927a88026ee0e82ed6df14b78ed
|
|
| MD5 |
5d629746599bf4de19e453382c480752
|
|
| BLAKE2b-256 |
b3023c326b989dbb5bf205ace27776f3956c6b107a105b417b5f0702171e3e1d
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp310-cp310-win_amd64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp310-cp310-win_amd64.whl -
Subject digest:
8bada007e8d43de72517056ad239f3ee069f3927a88026ee0e82ed6df14b78ed - Sigstore transparency entry: 2194691040
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp310-cp310-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp310-cp310-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
920f0cadf2381e3f25c2bae8e516093ace0a60e4f627c93cd8c5551ed5351ab7
|
|
| MD5 |
881f367d910e4d0f376217e4a92fbe8f
|
|
| BLAKE2b-256 |
d966f5ff4b83b312c013b34b5be7345f56ccef992788b337b7323115d5004bc9
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp310-cp310-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp310-cp310-manylinux_2_28_aarch64.whl -
Subject digest:
920f0cadf2381e3f25c2bae8e516093ace0a60e4f627c93cd8c5551ed5351ab7 - Sigstore transparency entry: 2194691083
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eebf4c4f0bbeadb8aff085d4027c3bacc6039a0ecd5cee4316cae3c936697fd
|
|
| MD5 |
68c1b74f5120002bf8bd6d18d8e33a3f
|
|
| BLAKE2b-256 |
078858f65f308758f05b757c466444f69e0d664041a38440971b14340ff5b83d
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
2eebf4c4f0bbeadb8aff085d4027c3bacc6039a0ecd5cee4316cae3c936697fd - Sigstore transparency entry: 2194691036
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65462745709a5bda7afc439a33012e59f65c4e1f241b9619844f855ef455bc59
|
|
| MD5 |
1b0a4bc29821f4e1fe368dae2c374275
|
|
| BLAKE2b-256 |
270093a5d675380fc65b2648eaefc70158790cbe3b1fd95e4a69888c998de2c5
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp39-cp39-win_amd64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp39-cp39-win_amd64.whl -
Subject digest:
65462745709a5bda7afc439a33012e59f65c4e1f241b9619844f855ef455bc59 - Sigstore transparency entry: 2194691081
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp39-cp39-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp39-cp39-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.9, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cac9a4ec2cc1654b68c2c6dbf8f7c29e794beeb73de68300263ffd2fad03a137
|
|
| MD5 |
ecb2bd4564737482e2ded7d14c10c801
|
|
| BLAKE2b-256 |
405390b0fac399c6fc90a663e92a6d99cd7c8bdb560be7ea1fa7ab1f86fa9af1
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp39-cp39-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp39-cp39-manylinux_2_28_aarch64.whl -
Subject digest:
cac9a4ec2cc1654b68c2c6dbf8f7c29e794beeb73de68300263ffd2fad03a137 - Sigstore transparency entry: 2194691043
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7bfa3e257d94aa7407c1b8a6f3ff16957447a47e1c0a6712b1ea20660473d19
|
|
| MD5 |
bba42965e611d79fab3c27deed84d8ee
|
|
| BLAKE2b-256 |
bad1ee03a5aefd2fe8cb178c0b7e43a1282b09cf3bb759f4d7bafcf0a5d145f1
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
b7bfa3e257d94aa7407c1b8a6f3ff16957447a47e1c0a6712b1ea20660473d19 - Sigstore transparency entry: 2194691085
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 4.8 MB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9981b5e7aa2cc91304f98b385ae62b76755176c742b17ed049d641dce93ce9bc
|
|
| MD5 |
a3f4087b8d0097a0039cfacd4d837d74
|
|
| BLAKE2b-256 |
10d7994521dcc8ed5c5aec3518d9f5b3fb350fa728dfc3dd72c88bea73f10b33
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp38-cp38-win_amd64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp38-cp38-win_amd64.whl -
Subject digest:
9981b5e7aa2cc91304f98b385ae62b76755176c742b17ed049d641dce93ce9bc - Sigstore transparency entry: 2194691072
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp38-cp38-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp38-cp38-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 5.6 MB
- Tags: CPython 3.8, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd8338a20372790e24123069c15c4489fd856f6a6731839ca24a3675736fa769
|
|
| MD5 |
5be4ccd53aa111acefb0ca11a1ac01c7
|
|
| BLAKE2b-256 |
0b5f34313143233e6c49eeff9dfe119d120f4a786f88873b7c41ebbccbef1d48
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp38-cp38-manylinux_2_28_aarch64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp38-cp38-manylinux_2_28_aarch64.whl -
Subject digest:
fd8338a20372790e24123069c15c4489fd856f6a6731839ca24a3675736fa769 - Sigstore transparency entry: 2194691091
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type:
File details
Details for the file sekejap-0.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: sekejap-0.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 5.7 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cd8bf56a3e1bfe28dfae4cb30972a149f25cdab24f7f832228908afadcb7de6
|
|
| MD5 |
1b3aeea1c4c93cbd675241cda2f9933a
|
|
| BLAKE2b-256 |
14401eb66107a835736a0643577b41a66128be22985d7c07da892f6d950276ea
|
Provenance
The following attestation bundles were made for sekejap-0.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on insanalamin/sekejap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sekejap-0.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
8cd8bf56a3e1bfe28dfae4cb30972a149f25cdab24f7f832228908afadcb7de6 - Sigstore transparency entry: 2194691068
- Sigstore integration time:
-
Permalink:
insanalamin/sekejap@e5821d9a631a1afd6f3780211760276b360e6bdd -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/insanalamin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e5821d9a631a1afd6f3780211760276b360e6bdd -
Trigger Event:
push
-
Statement type: