Skip to main content

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_dir when provided.
  • Downloads are capped by max_bytes, and query output by max_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:

  • --input is required unless reading HTML from stdin.
  • Colors are auto-disabled when stdout is not a TTY.
  • Default output mode is duckbox (table-style).
  • --highlight only affects duckbox headers (auto-disabled when not a TTY).
  • --display_mode more disables 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.
  • FRAGMENTS accepts either RAW('<html>') or a subquery returning a single HTML string column (use inner_html(...)).
  • FRAGMENTS subqueries 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 doc returns the href value

Function projection:

  • SELECT inner_html(div) FROM doc returns the raw inner HTML for each div
  • SELECT inner_html(div, 1) FROM doc keeps only tags up to depth 1 (drops deeper tags)
  • SELECT trim(inner_html(div)) FROM doc trims leading/trailing whitespace
  • SELECT TEXT(div) FROM doc WHERE tag = 'div' returns descendant text for each div

Notes:

  • TEXT() and INNER_HTML() require a WHERE clause with a non-tag filter (e.g., attributes or parent).
  • attributes IS NULL matches 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 (ENGLISH or NONE, default ENGLISH).

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 BY is limited to node_id, tag, text, or parent_id.
  • No GROUP BY or 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/json for pretty JSON output (vcpkg recommended).
  • libxml2 for robust HTML parsing (fallback to naive parser if missing).
  • libcurl for URL fetching.
  • apache-arrow (Arrow/Parquet) for TO PARQUET() export.

Troubleshooting

  • If you see No input loaded in REPL, run :load <path|url>.
  • If a query fails with Expected FROM, include a FROM clause.
  • If output is compact JSON, ensure nlohmann/json is 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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyxsql-1.2.0-cp314-cp314t-win_amd64.whl (211.9 kB view details)

Uploaded CPython 3.14tWindows x86-64

pyxsql-1.2.0-cp314-cp314t-win32.whl (182.2 kB view details)

Uploaded CPython 3.14tWindows x86

pyxsql-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pyxsql-1.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (375.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyxsql-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl (224.5 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pyxsql-1.2.0-cp314-cp314-win_amd64.whl (206.2 kB view details)

Uploaded CPython 3.14Windows x86-64

pyxsql-1.2.0-cp314-cp314-win32.whl (177.7 kB view details)

Uploaded CPython 3.14Windows x86

pyxsql-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pyxsql-1.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (374.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyxsql-1.2.0-cp314-cp314-macosx_11_0_arm64.whl (220.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pyxsql-1.2.0-cp313-cp313-win_amd64.whl (201.1 kB view details)

Uploaded CPython 3.13Windows x86-64

pyxsql-1.2.0-cp313-cp313-win32.whl (174.2 kB view details)

Uploaded CPython 3.13Windows x86

pyxsql-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pyxsql-1.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (374.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyxsql-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (220.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyxsql-1.2.0-cp312-cp312-win_amd64.whl (201.0 kB view details)

Uploaded CPython 3.12Windows x86-64

pyxsql-1.2.0-cp312-cp312-win32.whl (174.2 kB view details)

Uploaded CPython 3.12Windows x86

pyxsql-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pyxsql-1.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (373.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyxsql-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (220.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyxsql-1.2.0-cp311-cp311-win_amd64.whl (199.8 kB view details)

Uploaded CPython 3.11Windows x86-64

pyxsql-1.2.0-cp311-cp311-win32.whl (173.3 kB view details)

Uploaded CPython 3.11Windows x86

pyxsql-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pyxsql-1.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (372.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyxsql-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (219.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyxsql-1.2.0-cp310-cp310-win_amd64.whl (199.1 kB view details)

Uploaded CPython 3.10Windows x86-64

pyxsql-1.2.0-cp310-cp310-win32.whl (172.5 kB view details)

Uploaded CPython 3.10Windows x86

pyxsql-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pyxsql-1.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (370.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyxsql-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (218.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyxsql-1.2.0-cp39-cp39-win_amd64.whl (199.5 kB view details)

Uploaded CPython 3.9Windows x86-64

pyxsql-1.2.0-cp39-cp39-win32.whl (172.6 kB view details)

Uploaded CPython 3.9Windows x86

pyxsql-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pyxsql-1.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (370.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

pyxsql-1.2.0-cp39-cp39-macosx_11_0_arm64.whl (218.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Hashes for pyxsql-1.2.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 784ab477179ac62c614f8ca39e06598057805b009127e0624f6c7ae778c76e92
MD5 d6c021f2a01f57676174714be9f9b66b
BLAKE2b-256 918efc37e6048845f4ed09231c42489efba9c5ebbd75fe6b2f96605e6a365242

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 f85a0fb4faab2079cd6f07c20a1777c42ad290f6e2d6551d8ec120e32b1fff62
MD5 408cb7dd46f12fe58685f51d444ba401
BLAKE2b-256 3cd736cc1fcad654418acc59b9bebc7b2fb8d987b1dbcbb3716b8eefbe5e2d87

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 463ca49a1910b4382e45660f2781a363f2f95fe102393cb2b6c485aac703b6c2
MD5 9a16b40093a649194cf269b03f11b57f
BLAKE2b-256 6319ae066e3cfcccd6bc7da7525d10820b5c48b55fba1afdafa7065e01dda7a8

See more details on using hashes here.

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

File hashes

Hashes for pyxsql-1.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9a55f058b2f37b7addab5d92ab796b22359a98e97cbd691b629c673a18c13590
MD5 629508d576b3c6e69415c58470d58103
BLAKE2b-256 3913253503220f5f894ddaacefdcf846b0b3538054a379631a60f8fa51526f0c

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37cfe76dcb1f842fcbcf6cdbeca510b1f4241f67ac122eb84e0ea73be3ed32f2
MD5 81c72fb71b3cec0bb360bbac0b6ddd8a
BLAKE2b-256 132c78929242c814b4bc2b46f9c6d24640ee95d160a27088aa19b7aaef1ad19c

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b6cbba096fe83f62b27a4d4b3e85fc5d5c180cf8b72cb9ae5f6cb7c3eeb02d82
MD5 e55ad9df3527012eb07eacaf5827f67a
BLAKE2b-256 8ad3b3370d776d0ec2ac6013be6b8da874d7972f0a6345f05596207c0068a5d8

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 82ad89f8778bd8885df1f1ec58f81000191659b3bf5b785517945b52eb8d56b8
MD5 de30174849e932e0bfd2709170d615f1
BLAKE2b-256 86bb889b548faf2727ae1402ececafbbf374de43641925f0452f98f72c43aa5a

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5766afb22e4f2466b5221e7cf528308f36bbfbad96c2754df73c6d37c61bfdaa
MD5 e4f1722034838331e7a6ee60a8fe1566
BLAKE2b-256 f9e7c9579e8ce92a8bbd0a7543ba3f7ec474d1d565dff54db16f01132ff9505b

See more details on using hashes here.

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

File hashes

Hashes for pyxsql-1.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 638adb68bcd3f5f125bad8d50fd0af2bc275494731d5b5e48dfc421e6da1ea4a
MD5 20765cc193a0cdd8f40ea94f2ed3b62a
BLAKE2b-256 1be54452d117850d4030ba7cdd23b3b2b72af3b0d62c1e3ecc225963457df6a4

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95f4d32d2cdb922892472349e3dd4d50164947660236c4bf2c571cb6b62f74f6
MD5 84967de91fa4e4d850fcb750b78fbf4b
BLAKE2b-256 fbf6894c1da268c44b8d98fd64d34fc69510555521c445a8b7982c39a16e5171

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 15aadca079ea16fdb166b62fad5a1bc39f890aaf1ee50d6d7d924a9bb446d939
MD5 3223168f62d07c6c267062edbe93ce10
BLAKE2b-256 457e4ad43ae664f9b38875b0163bb895b6dcb5c32545c2a253df3eabb0ef5a4e

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 816e6f0dabee19b664957adf2cff4fbdfbeb3284e4de6a693ae6120261cbef81
MD5 12d11670b15d9b070914f038f7f7c778
BLAKE2b-256 a6b947920a9efd901cdc31da0110d99a991d3417cdd26ebabe8adb25ac4f24ac

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c118bf4353dcc1e6b603497a90f63dc97e3ee13af795e8310308777fd198d11d
MD5 97c6bfd9b10f91c67d32948638dcb01b
BLAKE2b-256 9c3b71c8168d57fac4eda7874e93346c14744f2f2252ddda88d08175f5f941bb

See more details on using hashes here.

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

File hashes

Hashes for pyxsql-1.2.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a15bd998c4a48b76d37d74171f24fe647ce9db2e86fd9e9b0d616c9f84525738
MD5 5999fd20c39093397bb93698a9e71480
BLAKE2b-256 9aa47ff3c6c7e3f17e13b683e5569d523c89019a64cc7fe9aa063bc08ef37ee5

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 648daf1ecb983c8ce98cd7ba78be4e39b1985ff92a420d9177fb697125be8c5d
MD5 64e858e5b0d746c840e1270e84ee42c2
BLAKE2b-256 ee4be5b2fbc8ab994ed1d0005be76e2d51462dfc36fefac0fe7510bbb07a156b

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1c2d3876ee77e38691dfd0a1477cf0b72ef0419cedc4fd8e57c08a1ce9dd272e
MD5 e5a41e6c00f4b9384e3804ea42e3afe5
BLAKE2b-256 5740db6a085e047f9b9b3e445d77a01cbf38aa400952690551e744635071d1cf

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 0c083a35afd24347be9d229a73e8b4ff1efc5c738bf6a925fadbbb94ab67f167
MD5 c0a481a34022480c9e9c81f6e97cbd31
BLAKE2b-256 5862ee4c8b41428ef8cacd88d51aa0a8780744f904b2719ecc75db67f04c17a4

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7cc9d2270c9a6c4b7bdbf074ede16920b9c076512a341188790a827cc8f3bc89
MD5 4072637dce05c038a9ba7efa7fdece62
BLAKE2b-256 acd7b9e519d9bdfad81cc1ba151fd3450c701c067471060654ef35bf677d7143

See more details on using hashes here.

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

File hashes

Hashes for pyxsql-1.2.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 58be3627f97d82a7381db9e3b7961a1cbacf668fac81878070cbc3bafab0cf36
MD5 576fa2635ce822d97865217cb40f6a21
BLAKE2b-256 93579c9c4343a0e3c249590a2bb0a9afc685fd92a7e747633db9dc6c4a5d3061

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e30b61a2132da6836e92118baf161178960d0a25adb7b21333b51d290241cc5
MD5 a6fed2292a07b0ab4c1daa94e8f78dd5
BLAKE2b-256 b02f5f8d1ca6c00df9b43fdef8e32ec9fdaab7bedc9a1908b94ea8859d2a787f

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 956526b38cce05486d6700a37264265df67174c93c56b743a2c6ee1831e1e9d2
MD5 9e04ad4938edcaeaa87ebdb06b44a82f
BLAKE2b-256 366fb99db0efc771f1ae53e5a7ab29f8bd27dac07d89e38b876c4ff1e2169cb7

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 ac386f5b17533ad798bc0ea07aad6ced872a5f253a16d0935c29c2dfbb9f1af9
MD5 ac907da1938a7a30b51cfc6beff5f803
BLAKE2b-256 814e5c8a7181dd9b29770b6a07c26682faa94813bb017db559be76942cb8c08a

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7aa30964a2ea9b61cd80c517c1203ac3745bc48325d6c85fb7f558db69a3a60b
MD5 ba609f767e17e8789b3038fdeb917424
BLAKE2b-256 a7af7e5c2483a5c98ad14e4a175f07b4a09b62bb0ec6686ca376c110a426362c

See more details on using hashes here.

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

File hashes

Hashes for pyxsql-1.2.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0de122cad59ab36f90134e649c37ab21bdfefe0f81800dfa412a34e88a692bf6
MD5 116ca16c8d44fbe9f48cff748bd2a6b3
BLAKE2b-256 cdc16547388f2d7ae5ab5dcefb4119dc1f06a0efc13f3344efff3273bfcfb216

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a827e3dfeb3c57d2cdf580d3f978de9988a2d4981fd44078268fa585e552bd9
MD5 2b498e98901b54cdb27722554a028388
BLAKE2b-256 a35721b8695cd92d8491edad58d6f712c16619ba7f16d1b7414ac0e65f19f8a8

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a87698c5642339dedab5d44eed6b8ba27a5850774a3c844f2fffb0e48363ce1e
MD5 829ba9ee59004784f90801d1fd615215
BLAKE2b-256 b4d40ff43ebb7f5cabf9d97779206e452449573efd26112d84f61e3d942f7b6b

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 92d8ebabe0cbde142fe1f556bd9f806f3947a86fbd55143b821662bc033f56c7
MD5 501f1f83f2f69b553aa7c6d69b3c507c
BLAKE2b-256 51dd75b20edbcd47fb967e8392242aad6aedfd6bc0daf7dc88109db2b6905a42

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ea9e699a299312aa174398354ded1502f3c82444be32943e9d3afd095dc2ec0e
MD5 668caf6975b7967a648a35990c3b6055
BLAKE2b-256 bf856994c5dada3df32d83aaef3dd1e6c0b3ae5f0112796caa0d6faf350eb110

See more details on using hashes here.

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

File hashes

Hashes for pyxsql-1.2.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91884b31656a60ca6eb15b23d2d1b5c7d2103c86e5155fc624e9a6d62e02ed70
MD5 0da83593a078e7382365868c69322abe
BLAKE2b-256 7e7f0e17ceecc31d97d5672ef160d7024392db4f11d2b4cb73d34cb0667b1781

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5794d998cf4e3c4afd581c90d17c57da0ab26703a03e0390573d5045f9e2f83e
MD5 c36baf4a01a6022a924868e3adb4f558
BLAKE2b-256 1f4d541a5d8409ff47e1ecedf93b93e0a13f1c6dc0b3a16570585ddb045c5a06

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 da8eb07b1a0dd6a46c87bc7d56d3d4c19aff93c4daa08bc46a5f648841b2bd97
MD5 bc720d7e688b5a4105d0e29933bc7da1
BLAKE2b-256 c9bcfab3116fe6bdcaf0a6d08a5e80458204f4e939201f86b08ab3dc6dc72a16

See more details on using hashes here.

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

Hashes for pyxsql-1.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a8b82794b4339326e9c3b3ae403f6fb8bc51cf41a5e8c10d105c8f159d9f3aaa
MD5 13262fd9489490dea4ffbb605b6e6bb3
BLAKE2b-256 be7bc0c01a41b07401ff4d56a7af23ecd0a626c42991d5b14d58183ad7a7d73c

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fcffc22a5937cbbf5b4bd0634ae073a13038b6a0df1d057d956ba8e7ded67d71
MD5 abeeb8d351b540cf235467b282a2c8b6
BLAKE2b-256 e41445d56d1f67d6e1ad5afdda4395292c7555f69f726c16e97f7e9562568cbc

See more details on using hashes here.

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

File hashes

Hashes for pyxsql-1.2.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5271541a3ee50c664748c1dbf6957a9f4766a5da100f0511382c7006ddf97612
MD5 61810cd812f25ce640f5f7c8942d23e4
BLAKE2b-256 d34fd68a729d26cddca1d1d66e6993594890dcee5d149e4777e1680ca5800db2

See more details on using hashes here.

File details

Details for the file pyxsql-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyxsql-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80105ba74be835dc9c0b0e3b2f0483945a2ddf5a70a95cb58d25fe0e0cc4e586
MD5 5f459cc78252b8ae0cbae8cf240229f0
BLAKE2b-256 567f2ec092aa9e331abcc054e63f0907be0eba13f65ffae740066893aee19428

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page