SQL-style querying for static HTML with a deterministic node model.
Project description
XSQL Documentation (v1.2.0)
XSQL is a SQL-style query language for static HTML. It treats each HTML element as a row in a node table and lets you filter by tag, attributes, and position. The project is now at v1.2.0 as an offline-first C++20 tool.
Quick Start
Build:
./build.sh
Run on a file:
./build/xsql --query "SELECT a FROM doc WHERE attributes.id = 'login'" --input ./data/index.html
Interactive mode:
./build/xsql --interactive --input ./data/index.html
Python API (xsql package)
import xsql
doc = xsql.load("data/index.html")
print(xsql.summarize(doc))
rows = xsql.execute("SELECT a FROM document WHERE attributes.href IS NOT NULL")
doc = xsql.load("https://example.com", allow_network=True)
rows = xsql.execute("SELECT title FROM document")
Install:
pip install pyxsql
Security Notes:
- Network access is disabled by default; enable with
allow_network=True. - Private/localhost targets are blocked unless
allow_private_network=True. - File reads are confined to
base_dirwhen provided. - Downloads are capped by
max_bytes, and query output bymax_results.
Build on Linux/macOS/Windows
Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build pkg-config bison flex
./build.sh
macOS (Homebrew):
brew install cmake ninja pkg-config bison flex
./build.sh
Windows (PowerShell, MSVC):
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows
cmake --build build --config Release
Optional dependencies via vcpkg:
vcpkg install nlohmann-json libxml2 curl arrow[parquet]
If you do not want Parquet, configure with -DXSQL_WITH_ARROW=OFF.
Python Build & Tests
Create a virtual environment and install the editable package:
python3 -m venv xsql_venv
source ./xsql_venv/bin/activate
pip install -U pip
pip install -e .[test]
Run Python tests:
pytest -v python/tests
Shorthand:
./install_python.sh
./test_python.sh
CLI Usage
./build/xsql --query "<query>" --input <path>
./build/xsql --query-file <file> --input <path>
./build/xsql --interactive [--input <path>]
./build/xsql --mode duckbox|json|plain
./build/xsql --display_mode more|less
./build/xsql --highlight on|off
./build/xsql --color=disabled
Notes:
--inputis required unless reading HTML from stdin.- Colors are auto-disabled when stdout is not a TTY.
- Default output mode is
duckbox(table-style). --highlightonly affects duckbox headers (auto-disabled when not a TTY).--display_mode moredisables JSON truncation in non-interactive mode.TO CSV()/TO PARQUET()write files instead of printing results.
Interactive Mode (REPL)
Commands:
.help: show help.load <path|url>/:load <path|url>: load input (path or URL).mode duckbox|json|plain: set output mode.display_mode more|less: control JSON truncation.max_rows <n|inf>: set duckbox max rows (inf= unlimited).summarize [doc|path|url]: list all tags and counts for the active input or target.quit/.q/:quit/:exit: exit the REPL
Keys:
- Up/Down: history (max 5 entries)
- Left/Right: move cursor
- Ctrl+L: clear screen
Data Model
Each HTML element becomes a row with fields:
node_id(int64)tag(string)attributes(map<string,string>)parent_id(int64 or null)sibling_pos(int64, 1-based position among siblings)source_uri(string)
Query Language
Basic Form
SELECT <tag_list> FROM <source> [WHERE <expr>] [LIMIT <n>]
[TO LIST() | TO TABLE([HEADER=ON|OFF][, EXPORT='file.csv']) | TO CSV('file.csv') | TO PARQUET('file.parquet')]
Source
FROM document
FROM 'path.html'
FROM 'https://example.com' (URL fetching requires libcurl)
FROM RAW('<div class="card"></div>')
FROM FRAGMENTS(RAW('<ul><li>1</li><li>2</li></ul>')) AS frag
FROM FRAGMENTS(SELECT inner_html(div) FROM doc WHERE attributes.class = 'pagination') AS frag
FROM doc (alias for document)
FROM document AS doc
Notes:
RAW('<html>')parses an inline HTML string as the document source.FRAGMENTS(...)builds a temporary document by concatenating HTML fragments.FRAGMENTSaccepts eitherRAW('<html>')or a subquery returning a single HTML string column (useinner_html(...)).FRAGMENTSsubqueries cannot use file or URL sources.
Tags
SELECT div
SELECT div,span
SELECT *
Exclude columns:
SELECT * EXCLUDE source_uri FROM doc
SELECT * EXCLUDE (source_uri, tag) FROM doc
WHERE Expressions
Supported operators:
=IN<>/!=IS NULL/IS NOT NULL~(regex, ECMAScript)CONTAINS(attributes only, case-insensitive)HAS_DIRECT_TEXT(case-insensitive substring match on direct text)AND,OR
Attribute references:
attributes.id = 'main'
parent.attributes.class = 'menu'
child.attributes.href <> ''
ancestor.attributes.id = 'root'
descendant.attributes.class IN ('nav','top')
attributes.href CONTAINS 'example'
Field references:
text <> ''
tag = 'div'
parent.tag = 'section'
child.tag = 'a'
ancestor.text ~ 'error|warning'
div HAS_DIRECT_TEXT 'login'
sibling_pos = 2
Shorthand attribute filters:
title = "Menu"
doc.title = "Menu"
Aliases
Alias the source and qualify attribute filters:
SELECT a FROM document AS d WHERE d.attributes.id = 'login'
Projections
Project a field from a tag:
SELECT a.parent_id FROM doc
SELECT link.href FROM doc
SELECT a.attributes FROM doc
SELECT div(node_id, tag, parent_id) FROM doc
Supported base fields:
node_id,tag,parent_id,sibling_pos,source_uri,attributes
Attribute value projection:
SELECT link.href FROM docreturns thehrefvalue
Function projection:
SELECT inner_html(div) FROM docreturns the raw inner HTML for eachdivSELECT inner_html(div, 1) FROM dockeeps only tags up to depth 1 (drops deeper tags)SELECT trim(inner_html(div)) FROM doctrims leading/trailing whitespaceSELECT TEXT(div) FROM doc WHERE tag = 'div'returns descendant text for eachdiv
Notes:
TEXT()andINNER_HTML()require aWHEREclause with a non-tag filter (e.g., attributes or parent).attributes IS NULLmatches elements with no attributes.
TO LIST()
Output a JSON list for a single projected column:
SELECT link.href FROM doc WHERE attributes.rel = "preload" TO LIST()
TO TABLE()
Extract an HTML <table> into rows (array of arrays). By default the first row
is treated as column headers for duckbox rendering; set HEADER=OFF to render
all rows as data (CSV exports will include generated col1..colN headers):
SELECT table FROM doc TO TABLE()
SELECT table FROM doc TO TABLE(HEADER=OFF)
SELECT table FROM doc WHERE attributes.id = 'stats' TO TABLE(EXPORT='stats.csv')
If multiple tables match, the output is a list of objects:
[{ "node_id": 123, "rows": [[...], ...] }, ...]
Note: TO LIST() always returns JSON output. TO TABLE() uses duckbox by default and JSON in --mode json|plain.
EXPORT='file.csv' requires a single table result, so filter by node_id or attributes when multiple tables match.
TO CSV()
Write any rectangular result to a CSV file:
SELECT a.href, a.text FROM doc WHERE attributes.href IS NOT NULL TO CSV('links.csv')
TO PARQUET()
Write any rectangular result to a Parquet file (requires Apache Arrow feature):
SELECT * FROM doc TO PARQUET('nodes.parquet')
Note: TO CSV() and TO PARQUET() write files and do not print the result set.
If you SELECT table ... TO CSV(...), XSQL exports the HTML table rows directly (legacy).
Prefer TO TABLE(EXPORT='file.csv') for explicit table exports.
LIMIT
SELECT a FROM doc LIMIT 5
COUNT()
Minimal aggregate:
SELECT COUNT(a) FROM doc
SELECT COUNT(*) FROM doc
SELECT COUNT(link) FROM doc WHERE attributes.rel = "preload"
Regex
Use ~ with ECMAScript regex:
SELECT a FROM doc WHERE attributes.href ~ '.*\\.pdf$'
Contains (attributes)
Case-insensitive substring match for attribute values:
SELECT a FROM doc WHERE attributes.href CONTAINS 'techkhmer'
SELECT a FROM doc WHERE attributes.href CONTAINS ALL ('https', '.html')
SELECT a FROM doc WHERE attributes.href CONTAINS ANY ('https', 'mailto')
Direct Text
Case-insensitive substring match on direct text only (excluding nested tags):
SELECT div FROM doc WHERE div HAS_DIRECT_TEXT 'computer science'
TFIDF()
Compute per-node TF-IDF scores across the matched nodes. Each matched node is treated as a document in the IDF corpus.
SELECT TFIDF(p, li, TOP_TERMS=30, MIN_DF=1, MAX_DF=0, STOPWORDS=ENGLISH)
FROM doc WHERE attributes.class = 'article'
Output columns: node_id, parent_id, tag, terms_score (term → score map).
Options:
TOP_TERMS(default 30): max terms per node.MIN_DF(default 1): minimum document frequency.MAX_DF(default 0 = no max): maximum document frequency.STOPWORDS(ENGLISHorNONE, defaultENGLISH).
Notes:
- Tags must come before options inside
TFIDF(...). - TFIDF is an aggregate and must be the only select item.
- TFIDF ignores HTML tags and skips script/style/noscript content.
Examples
-- Filters
SELECT ul FROM doc WHERE attributes.id = 'countries';
SELECT table FROM doc WHERE parent.attributes.id = 'table-01';
SELECT div FROM doc WHERE descendant.attributes.class = 'card';
SELECT span FROM doc WHERE parent_id = 1;
SELECT span FROM doc WHERE node_id = 1;
SELECT div FROM doc WHERE attributes IS NULL;
-- Lists and exports
SELECT link.href FROM doc WHERE attributes.rel = "preload" TO LIST();
SELECT a.href, a.text FROM doc WHERE attributes.href IS NOT NULL TO CSV('links.csv');
SELECT * FROM doc TO PARQUET('nodes.parquet');
-- Fragments
SELECT li FROM FRAGMENTS(SELECT inner_html(ul) FROM doc WHERE attributes.id = 'menu') AS frag;
-- Ordering
SELECT div FROM doc ORDER BY node_id DESC;
SELECT * FROM doc ORDER BY tag, parent_id LIMIT 10;
-- Summaries
SELECT summarize(*) FROM doc;
SELECT summarize(*) FROM doc ORDER BY count DESC LIMIT 5;
TODO
| Item | Priority |
|---|---|
DOM mutation: UPDATE / INSERT / DELETE |
High |
DOM mutation: attribute ops (SET, REMOVE) |
High |
DOM mutation: content ops (SET TEXT, SET INNER_HTML) |
High |
DB bridge: TO DB() / FROM DB() (XSQL stays front-end) |
High |
Multi-source JOIN (doc ↔ doc, doc ↔ table) |
Medium |
WITH / subqueries for reuse |
Medium |
GROUP BY + HAVING + DISTINCT |
Medium |
| Performance profiling + hot-path optimizations | Medium |
| Session cache for parsed DOM (if a clear use case appears) | Low |
| BM25 ranking (simple explainer on demand) | Exploration |
Known Limitations
- No XPath or positional predicates.
ORDER BYis limited tonode_id,tag,text, orparent_id.- No
GROUP BYor joins. - No XML mode (HTML only).
- URL fetching requires libcurl.
- Default output is duckbox tables; JSON output is available via
--mode json. TO PARQUET()requires Apache Arrow support at build time.
Build Dependencies
Optional:
nlohmann/jsonfor pretty JSON output (vcpkg recommended).libxml2for robust HTML parsing (fallback to naive parser if missing).libcurlfor URL fetching.apache-arrow(Arrow/Parquet) forTO PARQUET()export.
Troubleshooting
- If you see
No input loadedin REPL, run:load <path|url>. - If a query fails with
Expected FROM, include aFROMclause. - If output is compact JSON, ensure
nlohmann/jsonis linked via vcpkg.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 pyxsql-1.2.0-cp314-cp314t-win_amd64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314t-win_amd64.whl
- Upload date:
- Size: 211.9 kB
- Tags: CPython 3.14t, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
784ab477179ac62c614f8ca39e06598057805b009127e0624f6c7ae778c76e92
|
|
| MD5 |
d6c021f2a01f57676174714be9f9b66b
|
|
| BLAKE2b-256 |
918efc37e6048845f4ed09231c42489efba9c5ebbd75fe6b2f96605e6a365242
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314t-win32.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314t-win32.whl
- Upload date:
- Size: 182.2 kB
- Tags: CPython 3.14t, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f85a0fb4faab2079cd6f07c20a1777c42ad290f6e2d6551d8ec120e32b1fff62
|
|
| MD5 |
408cb7dd46f12fe58685f51d444ba401
|
|
| BLAKE2b-256 |
3cd736cc1fcad654418acc59b9bebc7b2fb8d987b1dbcbb3716b8eefbe5e2d87
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
463ca49a1910b4382e45660f2781a363f2f95fe102393cb2b6c485aac703b6c2
|
|
| MD5 |
9a16b40093a649194cf269b03f11b57f
|
|
| BLAKE2b-256 |
6319ae066e3cfcccd6bc7da7525d10820b5c48b55fba1afdafa7065e01dda7a8
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 375.5 kB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a55f058b2f37b7addab5d92ab796b22359a98e97cbd691b629c673a18c13590
|
|
| MD5 |
629508d576b3c6e69415c58470d58103
|
|
| BLAKE2b-256 |
3913253503220f5f894ddaacefdcf846b0b3538054a379631a60f8fa51526f0c
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl
- Upload date:
- Size: 224.5 kB
- Tags: CPython 3.14t, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37cfe76dcb1f842fcbcf6cdbeca510b1f4241f67ac122eb84e0ea73be3ed32f2
|
|
| MD5 |
81c72fb71b3cec0bb360bbac0b6ddd8a
|
|
| BLAKE2b-256 |
132c78929242c814b4bc2b46f9c6d24640ee95d160a27088aa19b7aaef1ad19c
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 206.2 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6cbba096fe83f62b27a4d4b3e85fc5d5c180cf8b72cb9ae5f6cb7c3eeb02d82
|
|
| MD5 |
e55ad9df3527012eb07eacaf5827f67a
|
|
| BLAKE2b-256 |
8ad3b3370d776d0ec2ac6013be6b8da874d7972f0a6345f05596207c0068a5d8
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314-win32.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314-win32.whl
- Upload date:
- Size: 177.7 kB
- Tags: CPython 3.14, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82ad89f8778bd8885df1f1ec58f81000191659b3bf5b785517945b52eb8d56b8
|
|
| MD5 |
de30174849e932e0bfd2709170d615f1
|
|
| BLAKE2b-256 |
86bb889b548faf2727ae1402ececafbbf374de43641925f0452f98f72c43aa5a
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5766afb22e4f2466b5221e7cf528308f36bbfbad96c2754df73c6d37c61bfdaa
|
|
| MD5 |
e4f1722034838331e7a6ee60a8fe1566
|
|
| BLAKE2b-256 |
f9e7c9579e8ce92a8bbd0a7543ba3f7ec474d1d565dff54db16f01132ff9505b
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 374.1 kB
- Tags: CPython 3.14, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
638adb68bcd3f5f125bad8d50fd0af2bc275494731d5b5e48dfc421e6da1ea4a
|
|
| MD5 |
20765cc193a0cdd8f40ea94f2ed3b62a
|
|
| BLAKE2b-256 |
1be54452d117850d4030ba7cdd23b3b2b72af3b0d62c1e3ecc225963457df6a4
|
File details
Details for the file pyxsql-1.2.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 220.7 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95f4d32d2cdb922892472349e3dd4d50164947660236c4bf2c571cb6b62f74f6
|
|
| MD5 |
84967de91fa4e4d850fcb750b78fbf4b
|
|
| BLAKE2b-256 |
fbf6894c1da268c44b8d98fd64d34fc69510555521c445a8b7982c39a16e5171
|
File details
Details for the file pyxsql-1.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 201.1 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15aadca079ea16fdb166b62fad5a1bc39f890aaf1ee50d6d7d924a9bb446d939
|
|
| MD5 |
3223168f62d07c6c267062edbe93ce10
|
|
| BLAKE2b-256 |
457e4ad43ae664f9b38875b0163bb895b6dcb5c32545c2a253df3eabb0ef5a4e
|
File details
Details for the file pyxsql-1.2.0-cp313-cp313-win32.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp313-cp313-win32.whl
- Upload date:
- Size: 174.2 kB
- Tags: CPython 3.13, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
816e6f0dabee19b664957adf2cff4fbdfbeb3284e4de6a693ae6120261cbef81
|
|
| MD5 |
12d11670b15d9b070914f038f7f7c778
|
|
| BLAKE2b-256 |
a6b947920a9efd901cdc31da0110d99a991d3417cdd26ebabe8adb25ac4f24ac
|
File details
Details for the file pyxsql-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c118bf4353dcc1e6b603497a90f63dc97e3ee13af795e8310308777fd198d11d
|
|
| MD5 |
97c6bfd9b10f91c67d32948638dcb01b
|
|
| BLAKE2b-256 |
9c3b71c8168d57fac4eda7874e93346c14744f2f2252ddda88d08175f5f941bb
|
File details
Details for the file pyxsql-1.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 374.0 kB
- Tags: CPython 3.13, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a15bd998c4a48b76d37d74171f24fe647ce9db2e86fd9e9b0d616c9f84525738
|
|
| MD5 |
5999fd20c39093397bb93698a9e71480
|
|
| BLAKE2b-256 |
9aa47ff3c6c7e3f17e13b683e5569d523c89019a64cc7fe9aa063bc08ef37ee5
|
File details
Details for the file pyxsql-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 220.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
648daf1ecb983c8ce98cd7ba78be4e39b1985ff92a420d9177fb697125be8c5d
|
|
| MD5 |
64e858e5b0d746c840e1270e84ee42c2
|
|
| BLAKE2b-256 |
ee4be5b2fbc8ab994ed1d0005be76e2d51462dfc36fefac0fe7510bbb07a156b
|
File details
Details for the file pyxsql-1.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 201.0 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c2d3876ee77e38691dfd0a1477cf0b72ef0419cedc4fd8e57c08a1ce9dd272e
|
|
| MD5 |
e5a41e6c00f4b9384e3804ea42e3afe5
|
|
| BLAKE2b-256 |
5740db6a085e047f9b9b3e445d77a01cbf38aa400952690551e744635071d1cf
|
File details
Details for the file pyxsql-1.2.0-cp312-cp312-win32.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp312-cp312-win32.whl
- Upload date:
- Size: 174.2 kB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c083a35afd24347be9d229a73e8b4ff1efc5c738bf6a925fadbbb94ab67f167
|
|
| MD5 |
c0a481a34022480c9e9c81f6e97cbd31
|
|
| BLAKE2b-256 |
5862ee4c8b41428ef8cacd88d51aa0a8780744f904b2719ecc75db67f04c17a4
|
File details
Details for the file pyxsql-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cc9d2270c9a6c4b7bdbf074ede16920b9c076512a341188790a827cc8f3bc89
|
|
| MD5 |
4072637dce05c038a9ba7efa7fdece62
|
|
| BLAKE2b-256 |
acd7b9e519d9bdfad81cc1ba151fd3450c701c067471060654ef35bf677d7143
|
File details
Details for the file pyxsql-1.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 373.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58be3627f97d82a7381db9e3b7961a1cbacf668fac81878070cbc3bafab0cf36
|
|
| MD5 |
576fa2635ce822d97865217cb40f6a21
|
|
| BLAKE2b-256 |
93579c9c4343a0e3c249590a2bb0a9afc685fd92a7e747633db9dc6c4a5d3061
|
File details
Details for the file pyxsql-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 220.1 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e30b61a2132da6836e92118baf161178960d0a25adb7b21333b51d290241cc5
|
|
| MD5 |
a6fed2292a07b0ab4c1daa94e8f78dd5
|
|
| BLAKE2b-256 |
b02f5f8d1ca6c00df9b43fdef8e32ec9fdaab7bedc9a1908b94ea8859d2a787f
|
File details
Details for the file pyxsql-1.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 199.8 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
956526b38cce05486d6700a37264265df67174c93c56b743a2c6ee1831e1e9d2
|
|
| MD5 |
9e04ad4938edcaeaa87ebdb06b44a82f
|
|
| BLAKE2b-256 |
366fb99db0efc771f1ae53e5a7ab29f8bd27dac07d89e38b876c4ff1e2169cb7
|
File details
Details for the file pyxsql-1.2.0-cp311-cp311-win32.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp311-cp311-win32.whl
- Upload date:
- Size: 173.3 kB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac386f5b17533ad798bc0ea07aad6ced872a5f253a16d0935c29c2dfbb9f1af9
|
|
| MD5 |
ac907da1938a7a30b51cfc6beff5f803
|
|
| BLAKE2b-256 |
814e5c8a7181dd9b29770b6a07c26682faa94813bb017db559be76942cb8c08a
|
File details
Details for the file pyxsql-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7aa30964a2ea9b61cd80c517c1203ac3745bc48325d6c85fb7f558db69a3a60b
|
|
| MD5 |
ba609f767e17e8789b3038fdeb917424
|
|
| BLAKE2b-256 |
a7af7e5c2483a5c98ad14e4a175f07b4a09b62bb0ec6686ca376c110a426362c
|
File details
Details for the file pyxsql-1.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 372.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0de122cad59ab36f90134e649c37ab21bdfefe0f81800dfa412a34e88a692bf6
|
|
| MD5 |
116ca16c8d44fbe9f48cff748bd2a6b3
|
|
| BLAKE2b-256 |
cdc16547388f2d7ae5ab5dcefb4119dc1f06a0efc13f3344efff3273bfcfb216
|
File details
Details for the file pyxsql-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 219.4 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a827e3dfeb3c57d2cdf580d3f978de9988a2d4981fd44078268fa585e552bd9
|
|
| MD5 |
2b498e98901b54cdb27722554a028388
|
|
| BLAKE2b-256 |
a35721b8695cd92d8491edad58d6f712c16619ba7f16d1b7414ac0e65f19f8a8
|
File details
Details for the file pyxsql-1.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 199.1 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a87698c5642339dedab5d44eed6b8ba27a5850774a3c844f2fffb0e48363ce1e
|
|
| MD5 |
829ba9ee59004784f90801d1fd615215
|
|
| BLAKE2b-256 |
b4d40ff43ebb7f5cabf9d97779206e452449573efd26112d84f61e3d942f7b6b
|
File details
Details for the file pyxsql-1.2.0-cp310-cp310-win32.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp310-cp310-win32.whl
- Upload date:
- Size: 172.5 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92d8ebabe0cbde142fe1f556bd9f806f3947a86fbd55143b821662bc033f56c7
|
|
| MD5 |
501f1f83f2f69b553aa7c6d69b3c507c
|
|
| BLAKE2b-256 |
51dd75b20edbcd47fb967e8392242aad6aedfd6bc0daf7dc88109db2b6905a42
|
File details
Details for the file pyxsql-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea9e699a299312aa174398354ded1502f3c82444be32943e9d3afd095dc2ec0e
|
|
| MD5 |
668caf6975b7967a648a35990c3b6055
|
|
| BLAKE2b-256 |
bf856994c5dada3df32d83aaef3dd1e6c0b3ae5f0112796caa0d6faf350eb110
|
File details
Details for the file pyxsql-1.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 370.1 kB
- Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91884b31656a60ca6eb15b23d2d1b5c7d2103c86e5155fc624e9a6d62e02ed70
|
|
| MD5 |
0da83593a078e7382365868c69322abe
|
|
| BLAKE2b-256 |
7e7f0e17ceecc31d97d5672ef160d7024392db4f11d2b4cb73d34cb0667b1781
|
File details
Details for the file pyxsql-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 218.0 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5794d998cf4e3c4afd581c90d17c57da0ab26703a03e0390573d5045f9e2f83e
|
|
| MD5 |
c36baf4a01a6022a924868e3adb4f558
|
|
| BLAKE2b-256 |
1f4d541a5d8409ff47e1ecedf93b93e0a13f1c6dc0b3a16570585ddb045c5a06
|
File details
Details for the file pyxsql-1.2.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 199.5 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da8eb07b1a0dd6a46c87bc7d56d3d4c19aff93c4daa08bc46a5f648841b2bd97
|
|
| MD5 |
bc720d7e688b5a4105d0e29933bc7da1
|
|
| BLAKE2b-256 |
c9bcfab3116fe6bdcaf0a6d08a5e80458204f4e939201f86b08ab3dc6dc72a16
|
File details
Details for the file pyxsql-1.2.0-cp39-cp39-win32.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp39-cp39-win32.whl
- Upload date:
- Size: 172.6 kB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a8b82794b4339326e9c3b3ae403f6fb8bc51cf41a5e8c10d105c8f159d9f3aaa
|
|
| MD5 |
13262fd9489490dea4ffbb605b6e6bb3
|
|
| BLAKE2b-256 |
be7bc0c01a41b07401ff4d56a7af23ecd0a626c42991d5b14d58183ad7a7d73c
|
File details
Details for the file pyxsql-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcffc22a5937cbbf5b4bd0634ae073a13038b6a0df1d057d956ba8e7ded67d71
|
|
| MD5 |
abeeb8d351b540cf235467b282a2c8b6
|
|
| BLAKE2b-256 |
e41445d56d1f67d6e1ad5afdda4395292c7555f69f726c16e97f7e9562568cbc
|
File details
Details for the file pyxsql-1.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 370.1 kB
- Tags: CPython 3.9, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5271541a3ee50c664748c1dbf6957a9f4766a5da100f0511382c7006ddf97612
|
|
| MD5 |
61810cd812f25ce640f5f7c8942d23e4
|
|
| BLAKE2b-256 |
d34fd68a729d26cddca1d1d66e6993594890dcee5d149e4777e1680ca5800db2
|
File details
Details for the file pyxsql-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyxsql-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 218.0 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80105ba74be835dc9c0b0e3b2f0483945a2ddf5a70a95cb58d25fe0e0cc4e586
|
|
| MD5 |
5f459cc78252b8ae0cbae8cf240229f0
|
|
| BLAKE2b-256 |
567f2ec092aa9e331abcc054e63f0907be0eba13f65ffae740066893aee19428
|