Skip to main content

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
  • Per-queue concurrency limits
  • Rate limiting
  • Exclusive (stop-the-world) jobs
  • Multi-process (fork) mode
  • Memory-based worker recycling
  • Web dashboard
  • Automatic retries
  • Signal handling & graceful restart
  • Lifecycle hooks

Control Plane

Built-in web dashboard for monitoring jobs, queues, and workers in real-time.

Control Plane

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 BaseClass subclass whose __module__ falls under one of the given packages. Classes imported from elsewhere (e.g. from some.lib import JobMixin) are ignored.
  • Raises ValueError if 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 submodule ImportError. Pass on_error="warn" to emit a RuntimeWarning and 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.

Multi-Process Mode (fork supervisor)

By default qc.run() runs all components as threads in a single process. To scale across CPU cores, set QUEBEC_SUPERVISOR=1 to fork a pool of child processes instead:

QUEBEC_SUPERVISOR=1 python -m quebec your.jobs
# queue.yml (under your environment, e.g. production:)
workers:
  - queues: "*"
    threads: 5
    processes: 4        # fork 4 worker processes
dispatchers:
  - polling_interval: 1
    processes: 1        # fork 1 dispatcher process

The supervisor forks workers[].processes worker children and dispatchers[].processes dispatcher children, each taking its config from the matching yml entry, and reforks any child that dies (matching Solid Queue's process model). Fork mode is opt-in via the env var so an existing config with processes set doesn't silently switch process model on upgrade; spawn is ignored in this mode. Outside supervisor mode the processes keys are ignored and Quebec uses the single-process threaded runtime.

Force Queue Override (multi-branch development)

Set QUEBEC_FORCE_OVERRIDE_QUEUE to pin every enqueue and consumption to one queue — handy when several development branches share a single database:

QUEBEC_FORCE_OVERRIDE_QUEUE=branch_x python -m quebec your.jobs

Every enqueue path rewrites queue_name to this value (ignoring whatever the class, call site, or scheduler specified), and the worker only consumes that queue — so jobs enqueued by one branch are never picked up by another. URL-hostile characters in the name are sanitized to -.

Transactional Enqueue

[!IMPORTANT] Enqueuing is not part of your database transaction — even on the same database. Quebec's enqueue runs through the Rust engine on its own connection pool, completely separate from your Python connection (SQLAlchemy / Django / psycopg). There is no way to atomically commit a business write and a job enqueue together.

This is the deliberate cost of keeping the engine fully decoupled from your ORM and connection — the upside is that Quebec drags no Python database dependencies into your app, but it means the enqueue cannot join your transaction. Two failure windows follow:

  • The business transaction commits but the enqueue fails → the job is lost.
  • The enqueue commits but the business transaction rolls back → the job runs against missing or stale data.

Recommendations:

  • Enqueue after your business transaction commits. This removes the worse direction — a job running for a write that was rolled back.
  • Make jobs idempotent and tolerant of data that may not be visible yet; lean on retries.
  • If you genuinely need atomicity, use a transactional outbox: write an outbox row inside your own transaction (business + outbox commit atomically), then relay it into a real job (at-least-once delivery).

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,
            # Called once retries are exhausted; receives (job, error).
            handler=lambda job, error: notify_admin(error),
        ),
    ]

    def perform(self, order_id):
        process_payment(order_id)

Multiple RetryStrategy entries can target different exception types with independent wait/attempts. The optional handler fires only when a strategy's attempts are exhausted (mirroring ActiveJob's retry_on ... do |job, error| block) and is called with (job, error). discard_on and rescue_from handlers use the same (job, error) signature.

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.

Rate Limiting (experimental)

Cap how many jobs run within a sliding time window, scoped per key:

from datetime import timedelta

class ApiCallJob(quebec.BaseClass):
    rate_limit_max = 5                          # at most 5 runs...
    rate_limit_duration = timedelta(seconds=2)  # ...per rolling 2-second window
    rate_limit_on_throttle = quebec.RateLimitConflict.Reschedule  # default

    def rate_limit_key(self, region="us", **kwargs):
        return region                           # bucket key: "ApiCallJob/us"

    def perform(self, region="us"):
        call_external_api(region)

Like concurrency control, the bucket is "ClassName/key", and rate_limit_key defaults to the class name when not overridden. rate_limit_duration must be a datetime.timedelta of at least one second. When the window is exhausted, rate_limit_on_throttle decides what happens: Reschedule (the default) pushes the job to a later run, while Discard drops it.

Exclusive Jobs

Let an occasional memory-heavy job own the whole worker process while it runs:

class RebuildSearchIndexJob(quebec.BaseClass):
    exclusive = True

    def perform(self):
        rebuild_index()                         # runs alone on this worker

When an exclusive job is claimed, the worker stops claiming new jobs, waits for any in-flight siblings to finish, then runs the exclusive job by itself before resuming normal claiming. The scope is the current worker process — it does not coordinate across separate worker processes; pair it with concurrency_limit = 1 and a concurrency_key if you also need cluster-wide single-instance execution.

Graceful Restart (quiet-then-exit)

Drain in-flight work and exit on a quiet signal, for zero-downtime rolling restarts:

qc = quebec.Quebec(database_url="...", quiet_then_exit=True)
qc.run()

Sending SIGUSR1 (or SIGTSTP) puts the worker into quiet mode: it stops claiming new jobs but keeps running until every in-flight job finishes, then exits cleanly — with no time limit (unlike the SIGTERM path, which is bounded by shutdown_timeout). The usual flow is: signal the old instance quiet, start a new instance, and the old one exits once drained. Opt-in (default off), and standalone-only — under the fork supervisor a self-exited child would just be reforked, so use a supervisor-level rolling restart there instead. Also settable via QUEBEC_QUIET_THEN_EXIT=1.

Memory-Based Worker Recycling

Long-lived Python workers tend to hold onto RSS the interpreter never returns to the OS. Quebec can recycle a bloated worker by draining it and exiting with a dedicated code, leaving the actual restart to your process supervisor. It is configured by environment variables — there is no in-process restart:

QUEBEC_WORKER_MAX_RSS_MB=512                  # soft limit; unset = disabled
QUEBEC_WORKER_MEMORY_RECYCLE_CONFIRMATIONS=3  # consecutive over-limit samples before recycling (default)
QUEBEC_WORKER_MEMORY_CHECK_INTERVAL=5s        # how often RSS is sampled (default)

When a worker's RSS stays above the limit for that many consecutive samples, it enters quiet mode, stops claiming, drains its in-flight jobs (no time limit), and exits with code 75 — the planned-recycle code. The supervisor then relaunches a fresh process. Under the built-in fork supervisor (QUEBEC_SUPERVISOR=1) this refork is automatic; under systemd, Restart=on-failure relaunches the worker after the non-zero recycle exit:

# /etc/systemd/system/quebec-worker.service
[Service]
ExecStart=/usr/bin/python -m quebec your.jobs
Environment=QUEBEC_DATABASE_URL=postgresql://localhost/myapp
Environment=QUEBEC_WORKER_MAX_RSS_MB=512
Restart=on-failure

[Install]
WantedBy=multi-user.target

Exit code 75 is non-zero, so Restart=on-failure treats the planned recycle as a failure and relaunches the worker. If you'd rather not have planned recycles show up as failures (in systemctl status or the start-limit counter), add SuccessExitStatus=75 together with RestartForceExitStatus=75 — the former keeps 75 out of the failure tally, the latter still forces the restart.

Per-Queue Concurrency (experimental)

Cap how many jobs run concurrently across the cluster for specific queues, independent of per-class concurrency_key:

qc = quebec.Quebec(
    database_url="...",
    experimental_queue_concurrency={"reports": 2, "exports": 1},
)
qc.run()

Each listed queue acquires a queue:<name> semaphore at claim time; queues not present are unlimited. Useful for isolating a misbehaving queue during remediation. Naming and semantics are experimental and may change.

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=allow is rejected with a ValueError. Upstream sqlx-postgres 0.8 treats allow identically to disable (plaintext, marked FIXME in the driver); to avoid a silent downgrade, Quebec refuses it. Use prefer for opportunistic TLS, or require/verify-* to enforce it.

Note: some managed Postgres services (e.g. Neon) terminate TLS at a proxy layer. In those cases pg_stat_ssl.ssl may report false because 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quebec-0.3.8.tar.gz (809.4 kB view details)

Uploaded Source

Built Distributions

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

quebec-0.3.8-cp313-cp313t-win_arm64.whl (10.7 MB view details)

Uploaded CPython 3.13tWindows ARM64

quebec-0.3.8-cp313-cp313t-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.13tWindows x86-64

quebec-0.3.8-cp313-cp313t-win32.whl (10.0 MB view details)

Uploaded CPython 3.13tWindows x86

quebec-0.3.8-cp313-cp313t-musllinux_1_2_x86_64.whl (13.1 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

quebec-0.3.8-cp313-cp313t-musllinux_1_2_i686.whl (13.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

quebec-0.3.8-cp313-cp313t-musllinux_1_2_armv7l.whl (12.5 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

quebec-0.3.8-cp313-cp313t-musllinux_1_2_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

quebec-0.3.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

quebec-0.3.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (12.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

quebec-0.3.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (14.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

quebec-0.3.8-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl (13.3 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ i686

quebec-0.3.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (12.1 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

quebec-0.3.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

quebec-0.3.8-cp313-cp313t-macosx_11_0_arm64.whl (11.3 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

quebec-0.3.8-cp313-cp313t-macosx_10_12_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

quebec-0.3.8-cp39-abi3-win_arm64.whl (10.7 MB view details)

Uploaded CPython 3.9+Windows ARM64

quebec-0.3.8-cp39-abi3-win_amd64.whl (11.7 MB view details)

Uploaded CPython 3.9+Windows x86-64

quebec-0.3.8-cp39-abi3-win32.whl (10.0 MB view details)

Uploaded CPython 3.9+Windows x86

quebec-0.3.8-cp39-abi3-musllinux_1_2_x86_64.whl (12.9 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

quebec-0.3.8-cp39-abi3-musllinux_1_2_i686.whl (13.0 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

quebec-0.3.8-cp39-abi3-musllinux_1_2_armv7l.whl (12.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

quebec-0.3.8-cp39-abi3-musllinux_1_2_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

quebec-0.3.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

quebec-0.3.8-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (12.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

quebec-0.3.8-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.8 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

quebec-0.3.8-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (13.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ i686

quebec-0.3.8-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (12.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

quebec-0.3.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

quebec-0.3.8-cp39-abi3-macosx_11_0_arm64.whl (11.3 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

quebec-0.3.8-cp39-abi3-macosx_10_12_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file quebec-0.3.8.tar.gz.

File metadata

  • Download URL: quebec-0.3.8.tar.gz
  • Upload date:
  • Size: 809.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8.tar.gz
Algorithm Hash digest
SHA256 ae5aa8461e1e4bc9827559765fb0ca3d837bd800026e87852ca03b261a1e075d
MD5 f310da55c1eaa6082581bf21c94db035
BLAKE2b-256 fa4f75c53d8232f27efcfca265bb5e86a2e57a4682880e2e58a2abfdec5d8ff0

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-win_arm64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-win_arm64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.13t, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-win_arm64.whl
Algorithm Hash digest
SHA256 01a11c1600399346562ff06f7779b0be2714174aed34ef75c701da209c2481e3
MD5 292910dd72b3d05559beb168bc13dd0c
BLAKE2b-256 cd3f2d61c0016683415529ea1f0acfe5066703ae4fcbe8e614e0176acca683b9

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-win_amd64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-win_amd64.whl
  • Upload date:
  • Size: 11.6 MB
  • Tags: CPython 3.13t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 3d8cb5c7bee37a9ef7fd980a5c15efbe61b88b390c7538e820f7540fa97b471e
MD5 353b477a92d7406b745029fdf058acfd
BLAKE2b-256 b44d2b98c4b7a4a7e9acc48409264899501ea1ccef6a40555dae57f2f98a0fd1

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-win32.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-win32.whl
  • Upload date:
  • Size: 10.0 MB
  • Tags: CPython 3.13t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-win32.whl
Algorithm Hash digest
SHA256 bc901187df30b9bbecc3f2dc733fe8fe512aa85d1d6b2601d3283d29a50708d2
MD5 1158892094c8b3d2096aec87c8a1dae0
BLAKE2b-256 451e7ccfeb67dd1950eedd6ec6dee629326b353395e0e966fcac587d2b5acdef

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 13.1 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b28c4079e7f297614daa30e437bef627495c94365fbe39d3fce833a7f4fd8003
MD5 db8547db83d8a3b2ca380a0a270725e9
BLAKE2b-256 962ed0375fa8642941116c81d07d8c887f78971d6e29fd01b90df808107b8908

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 13.0 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 e5f86dca7be81f88f386799fc0706ef96b685b768cd27cc9d8b16131c5eb5fd0
MD5 baff8db922f2ba2706f5391f0f30b7a5
BLAKE2b-256 d3e10651f8c179365885aa94fc568ebb573494016556431216f16908f902d1a9

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 addc0cdfbd6500229a352c42d2cbe35431b559e34ccd7ae02c303dd0766ebb78
MD5 8d4214e541c091115f498479a0638548
BLAKE2b-256 3a6b46ab364e591eac5feb4f9580a32228d0246d91ff7be8cc0e7972733fb054

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 278932c27c6af2bd32b856e0d3e74ae18c9f0dcdaed2f05b84ad130bcdc1bcba
MD5 5dceb9b0fee3e7920f71b20b057dd92f
BLAKE2b-256 cbed30c28bab24076ee50e97cccdc662a1bc96fd5da6355fae61ba94e635087d

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 12.7 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43b8caea25d75edf699b9bc36a44be54074babb349e77f02a1c23829488d6ed4
MD5 681f6e183c3697e2577d0f64ce0e9aa0
BLAKE2b-256 762e0b6e026fa18a59c9237a9f781bf4b1d616e7e984cf1c8a4cd254cb31b68c

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3918076e2352c92203570185f4fe3d91aafb09328ce1ad1825bcc963e5235a8f
MD5 122d7c5ccc644eb006a2a3203363b32a
BLAKE2b-256 cb5d0cc026b174dfec4a4776143f6fefbda11e70f05e5901e11bdfa57784103e

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 14.0 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5c4b0ff96094a5993a39eb8c2e8d357672a2bffbbb6c12b2ef549d08edbb2554
MD5 4d7ab13fc138a2a42dbd1bdc3497ca55
BLAKE2b-256 db3f20c2e4122fc5636d7244c21a14239895fa869b318ad811bf5f173bf66780

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
  • Upload date:
  • Size: 13.3 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 16e2fefa37893a856da7abd248ccd3db6d273e2f6419fa9a588a7e2f57be9121
MD5 25c0358b14ff2af6368080694120a2d4
BLAKE2b-256 92e948202be1fae8e9f83f4ed2a9200c843b7f9a071f3d687bcb4ef3db29abf5

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 12.1 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 46c7385e328aa6052308559ffabbd61db662f8e0afe7a0c7da2899a79f3b8369
MD5 8639c977104ffd13ffc55996ff0b37da
BLAKE2b-256 f8b82bfe46264b6abed805acd227ba5a8cf5574bcb029a4da721cc529d763d03

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ad9c557309c71f26cbe37de025cdf21a568ac5f9f77cd48a84cf03cf646827ac
MD5 81f4cb200d62adda199f992b3787cf8a
BLAKE2b-256 969d70104d68621eb78d80bdcc9dfd4e582696f48cd9d9ffe21225b9e25dbf75

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.3 MB
  • Tags: CPython 3.13t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 526fc8d3e39d572b2709f4c0fb6363eeb8a3836463fe3c09229befec79f5a016
MD5 d217b39b9a497166d9dc96699e0f9f53
BLAKE2b-256 0e85e6e5c1c781e6ef5d1a473e28cdc6a73f8c4f6af75e8869864d166b5a1ccf

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp313-cp313t-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 11.9 MB
  • Tags: CPython 3.13t, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e7a59d5cc9995fa38e821766d6e79eae0510e7a791e0c493dfbc962d31b7050e
MD5 3f45dcfd2d83381d28f9c2fc9bcb2e17
BLAKE2b-256 aa3944f49aadf10a24ee780ba9c0519402d45c07f0efeeb6cfb4355e8a8f503c

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-win_arm64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 10.7 MB
  • Tags: CPython 3.9+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 2e34ad7d36361ac7b049bb9b051d688c4d5af3d3655d75c8a6a8d601eba98c7b
MD5 75950ec68eb59442d1cfbee7d93fad32
BLAKE2b-256 b58bef367ba68f4814a1d8a7cae8fcd9ac9dfac4dfd32e92571e3c39ebeff0e0

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 11.7 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ed64868521e5dc6be739dacd1b225ba95ce446d1af2e715ef9224b51a4f850e0
MD5 51a7c6b26a9c672d12c655fa5648ec82
BLAKE2b-256 9b836dca466bc234381f91a40d96f77acee50548ba4278530db8cfdd7836dbe5

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-win32.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-win32.whl
  • Upload date:
  • Size: 10.0 MB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 15ab3f85a8f1d18f57654fa535c9e0aeb1177e8bac1b8954b7ea98c3416e95fc
MD5 c3353057111c7c51d74813f8ead2002c
BLAKE2b-256 4c6e8efadd80ffda048418adb2da13a032f87e1389b658876d74a6d1c57c43d7

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 12.9 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58b17efec67bb2a5cdea7f2811e64e84eee6bdbba6652f278616570036d2b6cb
MD5 a6b9dc77986bdf3fb6fe3db1e9714cfc
BLAKE2b-256 5a423464bf3e13f54098aace5c9bed4e4cba9af7f753d8607f7cf07ac26f5303

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 13.0 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 06aa92e6e2bc9dab871119c942e9e6187ed12af16e65e8782f19a076531290a5
MD5 e5f71819dfba45cc7c2d64c136a78519
BLAKE2b-256 c29d31bc48b27f634b92a288b1b29b457faaf1af7d5c572cece27f0dca343ceb

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 39f7422e7503a0b694fb564de0d3bfb93e8b12e50f83b4599570034c27560c24
MD5 5d6bb55c29d684189480893a24f4622c
BLAKE2b-256 2cc9fbe02e028a346eb1ce2d044ef2868659ee1594f8c9d5be33628efb9b31cd

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a87d14b887c8140fe330a548a638ee232055f637c60b75dd8e1c754479230d00
MD5 776cf8076f602dc4b626f38ece0d82ce
BLAKE2b-256 518bdbbca49797eaa87e6cadcf8101726012c3709d17d5c5f08926b9fbc68146

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 12.6 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53632d6bbd71e3b2b3c30bc09e446e8ad24dbe7d0f115e947290649947c3051d
MD5 d465ff516def53665fade4c2dcf13fd1
BLAKE2b-256 bc7e1ed0cc716957c73776692da63ce35c0a16b2d369b89aa3e842cbfeb0e3c1

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 051c551925d17e8ddec7e0839497aa7856b0b1ef926ad41686c0d4175cb8eb8f
MD5 1c87176ff8c3e8d0794889e83a29eafc
BLAKE2b-256 b7ee76f6f364141424a6af7354419947d5398e9da41f1ca829b7fe51528418eb

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 13.8 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 223d543b7302527de99f122669b432c05d42a4909b957aa6cc4189d156cb0ec6
MD5 ab8009389b9748a48c511fd81fa35752
BLAKE2b-256 5833cd54660ce31ff8fa2f7668620f732380314a9954fa38fed3fa7f47d5cd77

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
  • Upload date:
  • Size: 13.3 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 18b5dbe3279986459209db68b8ead94f5cc5096a626cee3454b718f2ee4b2fc5
MD5 c976e3170d25414bfa0957fc24299e10
BLAKE2b-256 b927838d227ff9c107167111f79ccc1db6c72520ba13b2e63e0731485a48c355

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 12.1 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e0c1785215df6b69d17858995971515f143f254926b7809f294ca5002ed3b4ce
MD5 aee89c0ef9e8e727bb3603a5e9962a6e
BLAKE2b-256 659ca61565a01465d346bae2197aab417c029d62b1e868cbf6028b09ffa8f7f9

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 37fc011f54c194eab28517e7946ef4ba95069d54592713801b55dd3372705f85
MD5 a71e9117498e50ac5934002256a864f7
BLAKE2b-256 fafe568ef1f54005e5d9aaf2f45cb2c601fa1730590b885efdbba942ffaab23b

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.3 MB
  • Tags: CPython 3.9+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2325fc3b7c650e37bdec691e1cee347fe7c3a7a3502f2dcbfa64810bda0b9b4
MD5 ad344c66d1713757fd060bcb19ad89a6
BLAKE2b-256 6bf55826627db534a5ce054e3c5524a8dc7ebdee9f6ee58193446d693e1d0119

See more details on using hashes here.

File details

Details for the file quebec-0.3.8-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.8-cp39-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 11.9 MB
  • Tags: CPython 3.9+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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

Hashes for quebec-0.3.8-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 884ca99d63e62d97e3fb74af67f48c21fc39ba83b98bef6802dbcd344d447b91
MD5 a71ca136485d00a9396b8aed14de9bb4
BLAKE2b-256 92c7543bc6c526c1dd6f5a57bb0b2a98328b2af8ef345587fce1c2cbe000174a

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