Quebec is a simple background task queue for processing asynchronous tasks.
Project description
Quebec
Quebec is a simple background task queue for processing asynchronous tasks. The name is derived from the NATO phonetic alphabet for "Q", representing "Queue".
This project is inspired by Solid Queue.
Warning: This project is in early development stage. Not recommended for production use.
Why Quebec?
- Simplified Architecture: No dependencies on Redis or message queues
- Database-Powered: Leverages RDBMS capabilities for complex task queries and management
- Rust Implementation: High performance and safety with Python compatibility
- Framework Agnostic: Works with asyncio, Trio, threading, SQLAlchemy, Django, FastAPI, etc.
Features
- Scheduled tasks
- Recurring tasks
- Concurrency control
- Web dashboard
- Automatic retries
- Signal handling
- Lifecycle hooks
Control Plane
Built-in web dashboard for monitoring jobs, queues, and workers in real-time.
Database Support
- SQLite
- PostgreSQL
- MySQL
Quick Start
Module Runner (Recommended)
Define jobs in a package:
# jobs/email_job.py
import quebec
class EmailJob(quebec.BaseClass):
queue_as = "default"
def perform(self, to, subject):
self.logger.info(f"Sending email to {to}: {subject}")
Export them in __init__.py:
# jobs/__init__.py
from .email_job import EmailJob
Run with python -m quebec:
DATABASE_URL=sqlite:///demo.db?mode=rwc python -m quebec jobs
All configuration via QUEBEC_* environment variables — no boilerplate entry script needed.
Script Mode
For more control, use Quebec directly in a script:
import logging
from pathlib import Path
from quebec.logger import setup_logging
setup_logging(level=logging.DEBUG)
import quebec
db_path = Path('demo.db')
qc = quebec.Quebec(f'sqlite://{db_path}?mode=rwc')
@qc.register_job
class FakeJob(quebec.BaseClass):
def perform(self, *args, **kwargs):
self.logger.info(f"Processing job {self.id}: args={args}, kwargs={kwargs}")
if __name__ == "__main__":
# Enqueue a job (qc is inferred from @qc.register_job)
FakeJob.perform_later(123, foo='bar')
# Start Quebec (handles signal, spawns workers, runs main loop)
qc.run(
create_tables=not db_path.exists(),
control_plane='127.0.0.1:5006', # Optional: web dashboard
)
Or run the quickstart script directly:
curl -O https://raw.githubusercontent.com/ratazzi/quebec/refs/heads/master/quickstart.py
uv run quickstart.py
Auto-Discovering Jobs
If your jobs are organized in a package (e.g. app.jobs.*), call
Quebec.discover_jobs() instead of decorating each class with
@qc.register_job or calling qc.register_job_class(...) one by one:
# app/jobs/cleanup.py
class CleanupJob(quebec.BaseClass):
def perform(self, *args, **kwargs): ...
# main.py
qc = quebec.Quebec(dsn)
qc.discover_jobs("app.jobs", "worker.tasks") # recursively scans each
qc.run()
discover_jobs takes one or more dotted package paths as positional
arguments (varargs) — no need to wrap a single package in a list.
discover_jobs(*packages, recursive=True, on_error="raise"):
- Registers every
BaseClasssubclass whose__module__falls under one of the given packages. Classes imported from elsewhere (e.g.from some.lib import JobMixin) are ignored. - Raises
ValueErrorif two discovered classes share the same__qualname__, since Quebec's worker registry is keyed by qualname and the later registration would otherwise silently replace the earlier one. on_error="raise"(default) propagates submoduleImportError. Passon_error="warn"to emit aRuntimeWarningand keep scanning — useful when a package contains optional-integration modules that may fail to import in some environments. The top-level package is always imported strictly.
Multiple Quebec Instances
Quebec is designed for one instance per process. Registering a job class
(via @qc.register_job, qc.register_job_class, or qc.discover_jobs)
binds it to that Quebec instance, so MyJob.perform_later(...) shorthand
routes to the binding. If a process holds more than one Quebec instance
and registers the same job class to each, the most recent registration
wins — pass the target instance explicitly to disambiguate:
MyJob.perform_later(qc2, arg1) # route to qc2
MyJob.set(queue='critical').perform_later(qc2, arg1)
qc.run() Options
| Parameter | Type | Default | Description |
|---|---|---|---|
create_tables |
bool |
False |
Create database tables (requires DDL permissions) |
control_plane |
str |
None |
Web dashboard address, e.g. '127.0.0.1:5006' |
spawn |
list[str] |
None |
Components to spawn: ['worker', 'dispatcher', 'scheduler']. None = all |
Recommended: configure worker thread count in queue.yml via workers.threads.
If you need a one-off override, Quebec(..., worker_threads=3) is also supported.
Delayed Jobs
from datetime import timedelta
# Run after 1 hour
FakeJob.set(wait=3600).perform_later(arg1)
# Run at specific time
FakeJob.set(wait_until=tomorrow_9am).perform_later(arg1)
# Override queue and priority
FakeJob.set(queue='critical', priority=1).perform_later(arg1)
Automatic Retries
from datetime import timedelta
class PaymentJob(quebec.BaseClass):
retry_on = [
quebec.RetryStrategy(
(ConnectionError, TimeoutError),
wait=timedelta(seconds=30),
attempts=3,
),
quebec.RetryStrategy(
(ValueError,),
wait=timedelta(seconds=5),
attempts=1,
handler=lambda exc: True, # optional callback
),
]
def perform(self, order_id):
process_payment(order_id)
Multiple RetryStrategy entries can target different exception types with independent wait/attempts.
Concurrency Control
Limit how many jobs with the same key can run simultaneously:
class ReportJob(quebec.BaseClass):
concurrency_limit = 3 # max 3 concurrent executions per key
concurrency_duration = 120 # semaphore TTL in seconds
def concurrency_key(self, account_id, **kwargs):
return str(account_id) # final key: "ReportJob/123"
def perform(self, account_id):
generate_report(account_id)
The actual concurrency key is "ClassName/key" (e.g. "ReportJob/123"), so different job classes never conflict. When the limit is reached, new jobs are blocked until a slot becomes available. The concurrency_duration acts as a safety TTL — the semaphore is released automatically if a worker crashes.
TLS Configuration (PostgreSQL)
Quebec links sqlx against rustls + webpki-roots. Public CAs (AWS RDS,
Neon, Google Cloud SQL, Supabase, etc.) are trusted out of the box — no OS
trust store is consulted.
Pass libpq-style SSL options as Quebec(...) kwargs, as DSN query params, or
via QUEBEC_SSL* environment variables:
qc = quebec.Quebec(
"postgresql://user:pass@host:5432/db",
sslmode="verify-full", # or QUEBEC_SSLMODE
sslrootcert="/etc/ssl/certs/ca.pem", # internal CAs only
)
Priority is kwargs > env > DSN query. Passing any ssl* kwarg/env against
a non-postgres URL raises ValueError.
sslmode |
Transport | Certificate verification | Hostname verification |
|---|---|---|---|
disable |
plaintext | — | — |
prefer |
TLS if offered, else plaintext | — | — |
require |
TLS (fails if unsupported) | — (accepts any cert) | — |
verify-ca |
TLS | CA-signed | — |
verify-full |
TLS | CA-signed | hostname matches CN/SAN |
For public CAs, verify-full works zero-config. Use sslrootcert for
internal/self-signed CAs. sslcert + sslkey enable client certificate
(mTLS) auth.
sslmode=allowis rejected with aValueError. Upstreamsqlx-postgres0.8 treatsallowidentically todisable(plaintext, markedFIXMEin the driver); to avoid a silent downgrade, Quebec refuses it. Usepreferfor opportunistic TLS, orrequire/verify-*to enforce it.
Note: some managed Postgres services (e.g. Neon) terminate TLS at a proxy layer. In those cases
pg_stat_ssl.sslmay reportfalsebecause the backend sees plaintext from the proxy — not the client.
Lifecycle Hooks
Quebec provides several lifecycle hooks that you can use to execute code at different stages of the application lifecycle:
@qc.on_start: Called when Quebec starts@qc.on_stop: Called when Quebec stops@qc.on_worker_start: Called when a worker starts@qc.on_worker_stop: Called when a worker stops@qc.on_shutdown: Called during graceful shutdown
These hooks are useful for:
- Initializing resources
- Cleaning up resources
- Logging application state
- Monitoring worker lifecycle
- Graceful shutdown handling
Project details
Release history Release notifications | RSS feed
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 quebec-0.2.13.tar.gz.
File metadata
- Download URL: quebec-0.2.13.tar.gz
- Upload date:
- Size: 726.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d8c9fe42e3086a4ae088ea5ddeb513a81a7b5c1f8b56d0659839701eca40377
|
|
| MD5 |
67cf4d69c38794eb9aad84f5b6ff7d21
|
|
| BLAKE2b-256 |
239b47e9402b1f9d04d99f2ed79722edbb51e5cfab19c966c9f53ea1f0910477
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-win_amd64.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-win_amd64.whl
- Upload date:
- Size: 10.2 MB
- Tags: CPython 3.13t, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b46cb8bd7d83ace19445f7f6a7ccdee419ab333aab9d5b1dc3a0eed5a740277
|
|
| MD5 |
39c01e5277c305d04be814281ad81db2
|
|
| BLAKE2b-256 |
baa9533b2132ce7e6040b4ffdd08cefabf0fa173f402ca2dce9c585b2d6d40fd
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-win32.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-win32.whl
- Upload date:
- Size: 8.8 MB
- Tags: CPython 3.13t, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bed61f2ea5f94f9121c3b7c3db5c6eb087c69d793a77f66da4313d421307eb3e
|
|
| MD5 |
fcae91ccb60d6e5cdd15f8513e7e4980
|
|
| BLAKE2b-256 |
0705f4cdb3159a1eedd7980fb810750aa16d2fe468a759072c3832b8e2c948d9
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 11.7 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b845c7047756646a7e108f6fac0f54a4e25487ccb4ee87cd66568087caa06c19
|
|
| MD5 |
3ead44687deb9566ee98446b657f3690
|
|
| BLAKE2b-256 |
c5c95da3e76a273c9cd30038fd6412131d9c694397676d74dbce025b1d204929
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-musllinux_1_2_i686.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-musllinux_1_2_i686.whl
- Upload date:
- Size: 11.6 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98c22a0c7401a19abae1ff093a69bced45b1d23649b2a0087412e879b65b4dc9
|
|
| MD5 |
3ef26c09782856f386b41eff76bdbead
|
|
| BLAKE2b-256 |
c019c366fbc227daaf1738c48132c599978f4b6506e060db73fe570ac4ce4665
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 11.2 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36f71eea6982bb92aad3675b0fdca934ffbabb6b51a2a4ed3a7931601f6ba1a7
|
|
| MD5 |
243e29b6062ac4fa0cedd440fdf52ca2
|
|
| BLAKE2b-256 |
f27100799ce60a8e4980e8b3cfc0ff1fb75673d6ea92dd47611fff18f24f3013
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 11.4 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80824a7f17a22b1a9e39267dbf58e8ab4a3ce5b719a1204addcddda51e07d94c
|
|
| MD5 |
0ea663de4a4af792236d8b4f736a4322
|
|
| BLAKE2b-256 |
7c03bc65fe457a77828ca8aa87409bd7b06a1896d70069e9f32a31dfa5602215
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 11.3 MB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2090324a8e8ac354a93bcf7a2b6bd33cf935b6d57e638af505807d4a3bc4409
|
|
| MD5 |
5cb654597b560c7011392d4af2d07b17
|
|
| BLAKE2b-256 |
65a011de99c78e98dd9785f2ca06d9de7b8a6172ea92fbba6761d13713578820
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0d360175fc6bcf9c7c8745f2b4ce67f0e57ac95244ddac44b00010bdbcad21d
|
|
| MD5 |
928395fd4a5d0df8a2082511d80742fa
|
|
| BLAKE2b-256 |
596b4f179250d5368a77bf280c7aa00427fba821234d13ba375cb2020f15a86c
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2665df3cecdb78380349b3fe46e0e9d2d25bb30b5bbe552a1ed7190da74b519
|
|
| MD5 |
4566d1fe73a34d3c0ee902e8747849dc
|
|
| BLAKE2b-256 |
2abeae8da698c7e31cff6e0bdd26558a9ba8d87554e0c551d5910f77a5ba5a03
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 11.9 MB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed260b8a4bca65d17387a1975d68f59e50be61a7df9a38449950666c9af25361
|
|
| MD5 |
dfa7235e8dbdd106291015c092dd84ec
|
|
| BLAKE2b-256 |
9bd867ff91b6748f134b79af0ecc7ba709a2a7e537d9c912168ee9bb2fd050d7
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 10.8 MB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4ff6acf77e721310af4e2549dc9fd98359bfa58b4b14610b3e09c5330a92ffa
|
|
| MD5 |
3e20e002883c86289abb084ac43f479e
|
|
| BLAKE2b-256 |
8013d13d1373f231c792148f97caf1338edc2b873c77ad1627f087bd55ad1754
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.13t, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72f546d0be973ab8002f3bae4739f87a32f86a73d78d0733ff14896e2de0b060
|
|
| MD5 |
dde11908469a35f728e38cf695616a43
|
|
| BLAKE2b-256 |
e6b804e0d1c28dd5439b30307eb6a4b8c841d01e1950c4344fa5dcd6f3da42e3
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-macosx_11_0_arm64.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-macosx_11_0_arm64.whl
- Upload date:
- Size: 10.2 MB
- Tags: CPython 3.13t, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fca94d288cabbdaad04dff5d0e884d2079ba985edf3712974f91a4563646c7b
|
|
| MD5 |
a7baae0a1a8015c38b1416b30822cbc0
|
|
| BLAKE2b-256 |
133a85466977cb55d0d948faf40e22dc0c8cb774171120d345262fe27d109a92
|
File details
Details for the file quebec-0.2.13-cp313-cp313t-macosx_10_12_x86_64.whl.
File metadata
- Download URL: quebec-0.2.13-cp313-cp313t-macosx_10_12_x86_64.whl
- Upload date:
- Size: 10.7 MB
- Tags: CPython 3.13t, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a5c04aa8c1eddb6a145da716d7560a40a1cf0bab9400b9ee2093d179c43b8fe
|
|
| MD5 |
718c0e93ce82c221275f27f9445b60f1
|
|
| BLAKE2b-256 |
e10dba71aa460f39f45761995518307871a1bccfaa0df3bf84c0c2e623c7f47f
|
File details
Details for the file quebec-0.2.13-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 10.2 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b5c1a1cb93017d4304465b60b9defc57879ca424a9c56dadccef0dad6f9975c
|
|
| MD5 |
bda4048b3c74800686c4744dadf0c098
|
|
| BLAKE2b-256 |
2c1bf2f7b429879d91b872c9fff34aef05094473a614a0cf64c12c970c9af86d
|
File details
Details for the file quebec-0.2.13-cp39-abi3-win32.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-win32.whl
- Upload date:
- Size: 8.8 MB
- Tags: CPython 3.9+, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2af80d60680c0d5c23918dc80c04cae69c5f6496ad69020c14ee23691454683
|
|
| MD5 |
2d470ef1d3dd97ccc11c2d6ff2e68671
|
|
| BLAKE2b-256 |
55a32398963f8d7fa0000239676f1ee527e887c02932ef92da6640451439a604
|
File details
Details for the file quebec-0.2.13-cp39-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 11.7 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
197644874900859b5c87eed227dee8e523e905934e73ed201db26fba8cd36e3e
|
|
| MD5 |
db5b23ccfb3c1730509ae1d799e4c4d0
|
|
| BLAKE2b-256 |
f6206ba05e467f346d8e2a1931030ccdcf9d8728f9920a9db3534043f5ce33dc
|
File details
Details for the file quebec-0.2.13-cp39-abi3-musllinux_1_2_i686.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-musllinux_1_2_i686.whl
- Upload date:
- Size: 11.6 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23db11b4c5e487e6292a97e593b1345a7e6f6792074ecd4983f7b97dbf0cd997
|
|
| MD5 |
bc01da619aa3bc639a212e7930665898
|
|
| BLAKE2b-256 |
61d07754c5e35e84d43b0d396dd98532e8cec53768daa05e16c56b21e0eace12
|
File details
Details for the file quebec-0.2.13-cp39-abi3-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 11.2 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a4499029ceefc10a9424d8b7ec4ed3c393a150b7a3c920036bde829e1efc1d3
|
|
| MD5 |
d2134e58a49bd599e99a934d1e5bc486
|
|
| BLAKE2b-256 |
3c6a98c9af49631b9c5fecb593e3cefb99b698b82ce261a0de4ce04f387c1de0
|
File details
Details for the file quebec-0.2.13-cp39-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 11.4 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b09a7448a47293886f64d0bf757305b52bc2f9420dcdc18f086d7ac1a5c622af
|
|
| MD5 |
35c4538e93c40bd78beac9d0f638a3dc
|
|
| BLAKE2b-256 |
5e394fa75f69ab9b9ab938f081a3fbedf8f718db130f5856f1bc72cd603db422
|
File details
Details for the file quebec-0.2.13-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 11.3 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75af6f69faebc6e670670ae982515b2d18048b51d5fe4f5d33dd2adff5ebf322
|
|
| MD5 |
829fee0f7504e828ff9d3d1de19172a7
|
|
| BLAKE2b-256 |
8c8d4d7470f960db142de41cb0b2242b6cb04f892cb78ca381106f4770593fdc
|
File details
Details for the file quebec-0.2.13-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9843ca4ae09ab5776973df66deb4719348845d58a863627816ee5c8cd35cddf5
|
|
| MD5 |
92c47641990691506ea017105aa0e78f
|
|
| BLAKE2b-256 |
b365475d9f7ca8b10811db9a894d044d7be147dbe6fb36d50b131e3c6b2ebde2
|
File details
Details for the file quebec-0.2.13-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c1f99a2db5b4fc05efa0675e5dba3260a0ff91234214cb24cf1393758b5c83e
|
|
| MD5 |
fb7443639be2c2dea19b8fa2097e46a4
|
|
| BLAKE2b-256 |
4529e14cebde73922bdb67e0320401846ea5f09d2bc7eceb717454eb8839c70c
|
File details
Details for the file quebec-0.2.13-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 11.9 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cbc8c95d4119b9a7395f383ddf4bfd5e8cfe0e7e6b9172586b08f647ff0258a
|
|
| MD5 |
a77805ad0e586ce6ea8aef25e182a4e1
|
|
| BLAKE2b-256 |
d7711bb762058b7cddd01fee40d0ab12675f2b7eee2ab12570c7100749bb4ae1
|
File details
Details for the file quebec-0.2.13-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 10.8 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ed26803eb6f5e765e9417d6dcc14e39b4d6738a932bd4161efa2225329ad842
|
|
| MD5 |
c9f33c5f3ba77cec76c1d0622c5ca898
|
|
| BLAKE2b-256 |
fe7332ccd9c5b7033b0aadca70787b302d464b681738d5cd8f5e000761ab67f0
|
File details
Details for the file quebec-0.2.13-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 11.1 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56eb311ec10852e365cbb3b2ec5cb9fedb0628b45ad665f34f9c7bd7b1e08b51
|
|
| MD5 |
4e034be972e4f543cd13ebc3b19e89ed
|
|
| BLAKE2b-256 |
f5bab86cafa87fe323006c6d3ba687db977c44b8263035557c1c6baaff5c6960
|
File details
Details for the file quebec-0.2.13-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 10.2 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1110163edf75c33bc0addbaf1815665e5f02bd7448880b216f7fccd4ae5cd4af
|
|
| MD5 |
fb89169ec3d8197bde2d4d589d85951b
|
|
| BLAKE2b-256 |
6f424eae09a1164f38bf38ed6bd84a0bca409cfcf8dde53c23a6cb0784a9cc62
|
File details
Details for the file quebec-0.2.13-cp39-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: quebec-0.2.13-cp39-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 10.7 MB
- Tags: CPython 3.9+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56433b39800ee70dac6d668d1707160020a8a7f5f97098c489cee7f2c69dcee4
|
|
| MD5 |
2bb5fc19e4ef9d26c9ace75781777d76
|
|
| BLAKE2b-256 |
29609bbaa68c68eaa0913d7d41b8da93b1b8a4da6f681aa1ed8d0d4f2e2523be
|