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.10.tar.gz (815.2 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.10-cp314-cp314t-win_arm64.whl (10.5 MB view details)

Uploaded CPython 3.14tWindows ARM64

quebec-0.3.10-cp314-cp314t-win_amd64.whl (11.4 MB view details)

Uploaded CPython 3.14tWindows x86-64

quebec-0.3.10-cp314-cp314t-win32.whl (9.8 MB view details)

Uploaded CPython 3.14tWindows x86

quebec-0.3.10-cp314-cp314t-musllinux_1_2_x86_64.whl (12.8 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

quebec-0.3.10-cp314-cp314t-musllinux_1_2_i686.whl (12.8 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

quebec-0.3.10-cp314-cp314t-musllinux_1_2_armv7l.whl (12.3 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

quebec-0.3.10-cp314-cp314t-musllinux_1_2_aarch64.whl (12.4 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

quebec-0.3.10-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

quebec-0.3.10-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (12.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

quebec-0.3.10-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

quebec-0.3.10-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl (13.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ i686

quebec-0.3.10-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (12.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

quebec-0.3.10-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.3 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

quebec-0.3.10-cp314-cp314t-macosx_11_0_arm64.whl (11.2 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

quebec-0.3.10-cp314-cp314t-macosx_10_12_x86_64.whl (11.7 MB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

quebec-0.3.10-cp39-abi3-win_arm64.whl (10.5 MB view details)

Uploaded CPython 3.9+Windows ARM64

quebec-0.3.10-cp39-abi3-win_amd64.whl (11.5 MB view details)

Uploaded CPython 3.9+Windows x86-64

quebec-0.3.10-cp39-abi3-win32.whl (9.8 MB view details)

Uploaded CPython 3.9+Windows x86

quebec-0.3.10-cp39-abi3-musllinux_1_2_x86_64.whl (12.8 MB view details)

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

quebec-0.3.10-cp39-abi3-musllinux_1_2_i686.whl (12.8 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

quebec-0.3.10-cp39-abi3-musllinux_1_2_armv7l.whl (12.3 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

quebec-0.3.10-cp39-abi3-musllinux_1_2_aarch64.whl (12.4 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

quebec-0.3.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.5 MB view details)

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

quebec-0.3.10-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (12.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

quebec-0.3.10-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (13.7 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

quebec-0.3.10-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (13.1 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ i686

quebec-0.3.10-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (12.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

quebec-0.3.10-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

quebec-0.3.10-cp39-abi3-macosx_11_0_arm64.whl (11.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

quebec-0.3.10-cp39-abi3-macosx_10_12_x86_64.whl (11.7 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: quebec-0.3.10.tar.gz
  • Upload date:
  • Size: 815.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10.tar.gz
Algorithm Hash digest
SHA256 bc9eb2ea0090a4a991548615b649b140bc1f4ecc7deec98e837b6c7e99ee0ca4
MD5 df77d3277447d7e80355887371db9ea5
BLAKE2b-256 62aab743ff3a33e052c4c7053e456ac7c2726c3f44a4035fd28ce61c5988fceb

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 10.5 MB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 9e6fecd6e99ecc5233608f58d8a6afab93f57b914f6a09f0b80e6b3e8c89e44a
MD5 17526a1a6f358b32107fea275afb311c
BLAKE2b-256 af70a9dee04a171f8ba073b569ea208e7753ef1115bcda9b1edb854e0ff774a9

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 11.4 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 c9436bca6003c871f07cca04160dc9ebdf39120684aaedd23ff4b9d03db5ba79
MD5 e353a0c0d3d15e2612686ac60153c62a
BLAKE2b-256 571461bfa78705dabbd59fe7cdee1d4dc8a782e4c764b26bc6c565f685b45460

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-win32.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 ace3630e06c63f899cd62b28b13755bbb6df437fa49276b32d04f6b61d9d0bd3
MD5 c874fc8b6cfa259e3242b4ab312d65cb
BLAKE2b-256 4e796839f79a36ca2c69d89594b4cae0163263478a3d670e99286b388c32d4ae

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 12.8 MB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cace469e3424097caad074e2aa4ae02d4a17535b16be50cc3433b3dc9965de60
MD5 351b5173806de24249f213848640fa5c
BLAKE2b-256 e7c0ada0a48729ea4ea78048e5e20b3f5c7c6edaa87207fb6f02d7464aafdce6

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 12.8 MB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6fcbcfee99377c95a7763adb5929170fdd3b6cb8efda4ac9bfa84a502c72917c
MD5 28729d90ba1fa4b468fcc23dbffed33d
BLAKE2b-256 211f2f50fef25d0eaf4ed18e602ef1eee287ff9a37d4778a7eaab451c508e5c0

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c05f7a8c7872c8b03c40df48b235cc69955f2ce0f3ad18530edf6d9cc3c18535
MD5 fe360901c5096117b095d291192e6732
BLAKE2b-256 b00d54ca54be812e1f756c657544f1019b6bdebe112d57b81cc9ec1cd4fc7617

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 65b7d42d180867721123c71d26177004406bd32dfbd96ccafdc3cf0def9d0cdd
MD5 95a10fc6dc8085df6ac5a5d9d5b5cd40
BLAKE2b-256 461fbaf29cd32e654e3b139c9274243f629035ecdca0a26f48f973cdf09670c0

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60ffa2f475cec81ab790a7dfb44e680b4be23f9cc0701724e92db1ab9044c669
MD5 8e178d9669b18cb1e021ee1fdc39371b
BLAKE2b-256 9710cef64016411cb7ce2f3042cd3f6eeb0e2427fb87c85dc6ab58a2948e9579

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0803bc660697b990100d39418e8ec7c4b44ed6ebf480e357906155f16b781a26
MD5 07c9d5aa7e20ab724639dfb0a37d90f2
BLAKE2b-256 e47ef3fbf898d2af80423d0fccef8f131614bfa1d7ac199845f939c09c3197c3

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 13.7 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f28ab7bdbbf962d651e861b29debca7a88c8bb397ab8ccc3e122c414abd34348
MD5 e370a1ab8b8b9c0ac1d9946e32e87ab6
BLAKE2b-256 2414759b6266bf0de69cd682a5fb261cbb8cda3f3cc649c6db20852a000431e0

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl
  • Upload date:
  • Size: 13.1 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bf214077a3440fceb8663a56154c70c15f3adeca11ce719811add3e7dddb9266
MD5 d3aaee4e082d89f86437e8ef514736a1
BLAKE2b-256 0979a215fcfeb411d7177e79b5f2361228d3295cd61067062f2855450d88d9fb

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 12.0 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 47a83533ec3bf8188850c4a5d8e99c90db66312c7e0981e06fbae578e8b6b5d1
MD5 6cade8aee440335823750ae17dff628c
BLAKE2b-256 e1512aa2cd985baaafa38e82147e33e1e66d6e99c6d1cf8ea1da477138408296

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f2f18bcaac277c3ca7a5454c4c586e2626bab03374ac14a952aa5b0b279a833
MD5 5c4981e3343d582726208b7e1345339e
BLAKE2b-256 9df8038812ad0e88c112fcae2e826c8fdcdcf30599db5122c18392d810b8e624

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.2 MB
  • Tags: CPython 3.14t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20f9de2ecd6aed9561ead3d6ddb86a1447eb2710ec7b0f15f18a86f4f31481bf
MD5 e1917ce10287fb9d28f61eeff9195efc
BLAKE2b-256 6160241d3b8a5d5bbe5f90927f0beb23e9d90362aadfef9ad985a9196bf931be

See more details on using hashes here.

File details

Details for the file quebec-0.3.10-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: quebec-0.3.10-cp314-cp314t-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 11.7 MB
  • Tags: CPython 3.14t, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fa471106f3d64f9a315ee3e79837f47a5443d98b5857179b3e496fc076874675
MD5 157d0018d23f298a96ffe90188563c83
BLAKE2b-256 165e4297d14b6a6ecee4a47886ffd1d8c958d427d1eb1222f81be3b5f09ccb3d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 10.5 MB
  • Tags: CPython 3.9+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 a206c4d144d52098c9806b7cb27f15461ec93aa54e4a4cc372aae8bce91f05f6
MD5 f71feb3cd51cf22c4dd584488406a8d9
BLAKE2b-256 f2ce6a7093f05e4b76c6630cb976782caecd5d13d6ed1a7e0ed12c3cdf43b119

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 11.5 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 10ec45b711f92ab76d544a508d8fa5c743fa2b44764c4d671f1bc04b226c4fe3
MD5 8db345c05d74c6abd6e5d930f5667a8a
BLAKE2b-256 0025d0595a1457f397578c8921dd1748fa1e9ae0c4708c8fa054c5b709fdbbd1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-win32.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 c9f2e5acb2750c983390f60fa2853793322e3d7dd8287e261177188e25d7ec46
MD5 09424e011211f1ed3ca2602a9172ed0f
BLAKE2b-256 3b3132101f6922715deca33d42e496058fc7543b10759784122a3fae7031d456

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 12.8 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 75114cfccab1634702eaf35cea61bd1cbc07e86bea3937e454dfe7a7f05ffd10
MD5 37f050f7951dc0cc5ab73d9fdca98e4b
BLAKE2b-256 dad0ca1f1202a0114a1c2fb0e945465d9e5df637564b382230e16db2ff829384

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 12.8 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 d3d3b2e2f4dfde862d62f9e524a6c14d7f2480378742dada66a94a073a1a2992
MD5 453e9760a3e700e9ad01e14f6032497b
BLAKE2b-256 fb2514f4f08f26b3e3b291458380aedcd45b64a21d9358e9112d472d9c223e2b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 7e600919457622d062543a0b4440655e8e93f78d826c2fd7fbe865ddb355edf8
MD5 a963ee08c6676be3cad83912534d763c
BLAKE2b-256 232212acfa1547b13f3c48d6b90c8a9d4e5e57b20672d371f6e2d34f48c245f5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 97ee99ad314e7e179cbe8e104028fa0fe6a062b24060fa4ef5e06339e130abde
MD5 c78c8b105feafd5f8be5331135ac109e
BLAKE2b-256 f88e0bb9dd57dcd484700a9c059cbdc861e6c9f386428947e40946ad5803d160

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 12.5 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e97b35387c40547a6dc33ce2b4346b981e08dfa7704a71c1e96517e68eca40c9
MD5 3729cd1418772c0ef76c74442dcf6856
BLAKE2b-256 7a0c89246236fcedb3aa5a0080971bcfb0d427f32f46ab1fdf6fda8f8bc335a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 14ec51349ba62c1e408d593524711ce8b9e0b7463548594742d7f271fe26e3d3
MD5 285fcb2af76875591483d4a2d396e21e
BLAKE2b-256 e080537b678bf1dc8457960f33564b7d15e43c7b54c5bfd9062bf1c1ad4a4266

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 13.7 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 494e02884393c420cf0b957647c2139ad365a041e42492c245b9cf3959b402de
MD5 745b26746705ad1280cea77b167edc41
BLAKE2b-256 235f858d5444640c393c0273031d91a639ad688ab2579b9f36ea0eb3f8613e22

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
  • Upload date:
  • Size: 13.1 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6fc14586d4e58ed4ab391c620bdf2685acc82db8f72eb9562e986752f0547309
MD5 dcfd6b80e1055a360502775adc36e07f
BLAKE2b-256 b5b3547e420e33e8c0345eb0cecf869622ed5a1196460069029085de0d581f2a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 12.0 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e0eea846975db3e4f2024ef01197814b85cdba23cd0f35bdaac3a0bc9988f7d4
MD5 3e4740def7fc9fd9760895a85a912b4a
BLAKE2b-256 03349da5a8731be68da0b1ff4268fc311f0532da33e85c9595945d460100a14c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1669cfd3f9530a22b9788eb75b36127ef3c9180030840b9d3c00ad4ad7fc26b1
MD5 754c3a52ed1ec5d6951796bb52baae55
BLAKE2b-256 39521a1a1ea5eabd168bfc32878ec59e13a28166e61d63a54a4509be8ea4dcb1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 11.2 MB
  • Tags: CPython 3.9+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8ba8aef5d6b2c50370e1b47ba9254282f2b92c214623bb5f4a5a13b51ec9b08
MD5 f01b9e8970fdf8f350cc6250cab18b9b
BLAKE2b-256 2a76bbd0144d459a0f9f3a66bac3f0e7669ad7d1841684916beba4e99025bd75

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quebec-0.3.10-cp39-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 11.7 MB
  • Tags: CPython 3.9+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","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.10-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5e1bdb0a9e4783a792a5b166a18f36181f16f252d442e20f9696fe9cbfd39d30
MD5 0f30795a32142cf8dd35e12182e215e9
BLAKE2b-256 cd7f29f219ed622490f3708ac038f9208cabe31a8165f6caec9c5ef5a954a30c

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