Skip to main content

The ultra-reliable, fast ASGI+WSGI framework for building data plane APIs at scale.

Project description

Falcon logo

Build status Falcon web framework docs codecov.io PyPI package Python versions

The Falcon Web Framework

Falcon is a minimalist ASGI/WSGI framework for building mission-critical REST APIs and microservices, with a focus on reliability, correctness, and performance at scale.

When it comes to building HTTP APIs, other frameworks weigh you down with tons of dependencies and unnecessary abstractions. Falcon cuts to the chase with a clean design that embraces HTTP and the REST architectural style.

Falcon apps work with any WSGI or ASGI server, and run like a champ under CPython 3.9+ and PyPy 3.9+.

What People are Saying

“Falcon is rock solid and it’s fast.”

“We have been using Falcon as a replacement for [another framework] and we simply love the performance (three times faster) and code base size (easily half of our [original] code).”

“I’m loving #falconframework! Super clean and simple, I finally have the speed and flexibility I need!”

“Falcon looks great so far. I hacked together a quick test for a tiny server of mine and was ~40% faster with only 20 minutes of work.”

“I feel like I’m just talking HTTP at last, with nothing in the middle. Falcon seems like the requests of backend.”

“The source code for Falcon is so good, I almost prefer it to documentation. It basically can’t be wrong.”

“What other framework has integrated support for 786 TRY IT NOW ?”

Features

Falcon tries to do as little as possible while remaining highly effective.

  • ASGI, WSGI, and WebSocket support

  • Native asyncio support

  • No reliance on magic globals for routing and state management

  • Stable interfaces with an emphasis on backwards-compatibility

  • Simple API modeling through centralized RESTful routing

  • Highly-optimized, extensible code base

  • Easy access to headers and bodies through request and response classes

  • DRY request processing via middleware components and hooks

  • Strict adherence to RFCs

  • Idiomatic HTTP error responses

  • Straightforward exception handling

  • Snappy testing with WSGI/ASGI helpers and mocks

  • CPython 3.9+ and PyPy 3.9+ support

A Big Thank You to Our Patrons!

TestMu AI CERT Gouvernemental Luxembourg Sentry

Has Falcon helped you make an awesome app? Show your support today with a one-time donation or by becoming a patron. Supporters get cool gear, an opportunity to promote their brand to Python developers, and prioritized support.

Thanks!

How is Falcon Different?

Perfection is finally attained not when there is no longer anything to add, but when there is no longer anything to take away.

- Antoine de Saint-Exupéry

We designed Falcon to support the demanding needs of large-scale microservices and responsive app backends. Falcon complements more general Python web frameworks by providing bare-metal performance, reliability, and flexibility wherever you need it.

Reliable. We go to great lengths to avoid introducing breaking changes, and when we do they are fully documented and only introduced (in the spirit of SemVer) with a major version increment. The code is rigorously tested with numerous inputs and we require 100% coverage at all times. Falcon has no dependencies outside the standard library, helping minimize your app’s attack surface while avoiding transitive bugs and breaking changes.

Debuggable. Falcon eschews magic. It’s easy to tell which inputs lead to which outputs. Unhandled exceptions are never encapsulated or masked. Potentially surprising behaviors, such as automatic request body parsing, are well-documented and disabled by default. Finally, when it comes to the framework itself, we take care to keep logic paths simple and understandable. All this makes it easier to reason about the code and to debug edge cases in large-scale deployments.

Fast. Same hardware, more requests. Falcon turns around requests significantly faster than other popular Python frameworks like Django and Flask. For an extra speed boost, Falcon compiles itself with Cython when available, and also works well with PyPy. Considering a move to another programming language? Benchmark with Falcon+PyPy first!

Flexible. Falcon leaves a lot of decisions and implementation details to you, the API developer. This gives you a lot of freedom to customize and tune your implementation. It also helps you understand your apps at a deeper level, making them easier to tune, debug, and refactor over the long run. Falcon’s minimalist design provides space for Python community members to independently innovate on Falcon add-ons and complementary packages.

Who’s Using Falcon?

Falcon is used around the world by a growing number of organizations, including:

  • 7ideas

  • Cronitor

  • EMC

  • Hurricane Electric

  • Leadpages

  • OpenStack

  • Rackspace

  • Shiftgig

  • tempfil.es

  • Opera Software

If you are using the Falcon framework for a community or commercial project, please consider adding your information to our wiki under Who’s Using Falcon?

Community

A number of Falcon add-ons, templates, and complementary packages are available for use in your projects. We’ve listed several of these on the Falcon wiki as a starting point, but you may also wish to search PyPI for additional resources.

The Falconry community on Gitter is a great place to ask questions and share your ideas. You can find us in falconry/user. We also have a falconry/dev room for discussing the design and development of the framework itself.

Per our Code of Conduct, we expect everyone who participates in community discussions to act professionally, and lead by example in encouraging constructive discussions. Each individual in the community is responsible for creating a positive, constructive, and productive culture.

Installation

PyPy

PyPy is the fastest way to run your Falcon app. PyPy3.9+ is supported as of PyPy v7.3.10+.

$ pip install falcon

Or, to install the latest beta or release candidate, if any:

$ pip install --pre falcon

CPython

Falcon also fully supports CPython 3.9+.

The latest stable version of Falcon can be installed directly from PyPI:

$ pip install falcon

Or, to install the latest beta or release candidate, if any:

$ pip install --pre falcon

In order to provide an extra speed boost, Falcon automatically compiles itself with Cython under any PEP 517-compliant installer.

For your convenience, wheels containing pre-compiled binaries are available from PyPI for the majority of common platforms. Even if a binary build for your platform of choice is not available, pip will pick a pure-Python wheel. You can also cythonize Falcon for your environment; see our Installation docs for more information on this and other advanced options.

Dependencies

Falcon does not require the installation of any other packages.

WSGI Server

Falcon speaks WSGI (or ASGI; see also below). In order to serve a Falcon app, you will need a WSGI server. Gunicorn and uWSGI are some of the more popular ones out there, but anything that can load a WSGI app will do.

$ pip install [gunicorn|uwsgi]

ASGI Server

In order to serve a Falcon ASGI app, you will need an ASGI server. Uvicorn is a popular choice:

$ pip install uvicorn

Source Code

Falcon lives on GitHub, making the code easy to browse, download, fork, etc. Pull requests are always welcome! Also, please remember to star the project if it makes you happy. :)

Once you have cloned the repo or downloaded a tarball from GitHub, you can install Falcon like this:

$ cd falcon
$ pip install .

Or, if you want to edit the code, first fork the main repo, clone the fork to your desktop, and then run the following to install it using symbolic linking, so that when you change your code, the changes will be automagically available to your app without having to reinstall the package:

$ cd falcon
$ FALCON_DISABLE_CYTHON=Y pip install -e .

You can manually test changes to the Falcon framework by switching to the directory of the cloned repo and then running pytest:

$ cd falcon
$ pip install -r requirements/tests
$ pytest tests

Or, to run the default set of tests:

$ pip install tox && tox

See also the tox.ini file for a full list of available environments.

Read the Docs

The docstrings in the Falcon code base are quite extensive, and we recommend keeping a REPL running while learning the framework so that you can query the various modules and classes as you have questions.

Online docs are available at: https://falcon.readthedocs.io

You can build the same docs locally as follows:

$ pip install tox && tox -e docs

Once the docs have been built, you can view them by opening the following index page in your browser. On OS X it’s as simple as:

$ open docs/_build/html/index.html

Or on Linux:

$ xdg-open docs/_build/html/index.html

Getting Started

Here is a simple, contrived example showing how to create a Falcon-based WSGI app (the ASGI version is included further down):

# examples/things.py

# Let's get this party started!
from wsgiref.simple_server import make_server

import falcon


# Falcon follows the REST architectural style, meaning (among
# other things) that you think in terms of resources and state
# transitions, which map to HTTP verbs.
class ThingsResource:
    def on_get(self, req, resp):
        """Handles GET requests"""
        resp.status = falcon.HTTP_200  # This is the default status
        resp.content_type = falcon.MEDIA_TEXT  # Default is JSON, so override
        resp.text = ('\nTwo things awe me most, the starry sky '
                     'above me and the moral law within me.\n'
                     '\n'
                     '    ~ Immanuel Kant\n\n')


# falcon.App instances are callable WSGI apps...
# in larger applications the app is created in a separate file
app = falcon.App()

# Resources are represented by long-lived class instances
things = ThingsResource()

# things will handle all requests to the '/things' URL path
app.add_route('/things', things)

if __name__ == '__main__':
    with make_server('', 8000, app) as httpd:
        print('Serving on port 8000...')

        # Serve until process is killed
        httpd.serve_forever()

You can run the above example directly using the included wsgiref server:

$ pip install falcon
$ python things.py

Then, in another terminal:

$ curl localhost:8000/things

The ASGI version of the example is similar:

# examples/things_asgi.py

import falcon
import falcon.asgi


# Falcon follows the REST architectural style, meaning (among
# other things) that you think in terms of resources and state
# transitions, which map to HTTP verbs.
class ThingsResource:
    async def on_get(self, req, resp):
        """Handles GET requests"""
        resp.status = falcon.HTTP_200  # This is the default status
        resp.content_type = falcon.MEDIA_TEXT  # Default is JSON, so override
        resp.text = ('\nTwo things awe me most, the starry sky '
                     'above me and the moral law within me.\n'
                     '\n'
                     '    ~ Immanuel Kant\n\n')


# falcon.asgi.App instances are callable ASGI apps...
# in larger applications the app is created in a separate file
app = falcon.asgi.App()

# Resources are represented by long-lived class instances
things = ThingsResource()

# things will handle all requests to the '/things' URL path
app.add_route('/things', things)

You can run the ASGI version with uvicorn or any other ASGI server:

$ pip install falcon uvicorn
$ uvicorn things_asgi:app

A More Complex Example (WSGI)

Here is a more involved example that demonstrates reading headers and query parameters, handling errors, and working with request and response bodies. Note that this example assumes that the requests package has been installed.

(For the equivalent ASGI app, see: A More Complex Example (ASGI)).

# examples/things_advanced.py

import json
import logging
import uuid
from wsgiref import simple_server

import requests

import falcon


class StorageEngine:
    def get_things(self, marker, limit):
        return [{'id': str(uuid.uuid4()), 'color': 'green'}]

    def add_thing(self, thing):
        thing['id'] = str(uuid.uuid4())
        return thing


class StorageError(Exception):
    @staticmethod
    def handle(req, resp, ex, params):
        # TODO: Log the error, clean up, etc. before raising
        raise falcon.HTTPInternalServerError()


class SinkAdapter:
    engines = {
        'ddg': 'https://duckduckgo.com',
        'y': 'https://search.yahoo.com/search',
    }

    def __call__(self, req, resp, engine):
        url = self.engines[engine]
        params = {'q': req.get_param('q', True)}
        result = requests.get(url, params=params)

        resp.status = falcon.code_to_http_status(result.status_code)
        resp.content_type = result.headers['content-type']
        resp.text = result.text


class AuthMiddleware:
    def process_request(self, req, resp):
        token = req.get_header('Authorization')
        account_id = req.get_header('Account-ID')

        challenges = ['Token type="Fernet"']

        if token is None:
            description = 'Please provide an auth token as part of the request.'

            raise falcon.HTTPUnauthorized(
                title='Auth token required',
                description=description,
                challenges=challenges,
                href='http://docs.example.com/auth',
            )

        if not self._token_is_valid(token, account_id):
            description = (
                'The provided auth token is not valid. '
                'Please request a new token and try again.'
            )

            raise falcon.HTTPUnauthorized(
                title='Authentication required',
                description=description,
                challenges=challenges,
                href='http://docs.example.com/auth',
            )

    def _token_is_valid(self, token, account_id):
        return True  # Suuuuuure it's valid...


class RequireJSON:
    def process_request(self, req, resp):
        if not req.client_accepts_json:
            raise falcon.HTTPNotAcceptable(
                description='This API only supports responses encoded as JSON.',
                href='http://docs.examples.com/api/json',
            )

        if req.method in ('POST', 'PUT'):
            if 'application/json' not in req.content_type:
                raise falcon.HTTPUnsupportedMediaType(
                    title='This API only supports requests encoded as JSON.',
                    href='http://docs.examples.com/api/json',
                )


class JSONTranslator:
    # NOTE: Normally you would simply use req.media and resp.media for
    # this particular use case; this example serves only to illustrate
    # what is possible.

    def process_request(self, req, resp):
        # req.stream corresponds to the WSGI wsgi.input environ variable,
        # and allows you to read bytes from the request body.
        #
        # See also: PEP 3333
        if req.content_length in (None, 0):
            # Nothing to do
            return

        body = req.bounded_stream.read()
        if not body:
            raise falcon.HTTPBadRequest(
                title='Empty request body',
                description='A valid JSON document is required.',
            )

        try:
            req.context.doc = json.loads(body.decode('utf-8'))

        except (ValueError, UnicodeDecodeError):
            description = (
                'Could not decode the request body. The '
                'JSON was incorrect or not encoded as '
                'UTF-8.'
            )

            raise falcon.HTTPBadRequest(title='Malformed JSON', description=description)

    def process_response(self, req, resp, resource, req_succeeded):
        if not hasattr(resp.context, 'result'):
            return

        resp.text = json.dumps(resp.context.result)


def max_body(limit):
    def hook(req, resp, resource, params):
        length = req.content_length
        if length is not None and length > limit:
            msg = (
                'The size of the request is too large. The body must not '
                'exceed ' + str(limit) + ' bytes in length.'
            )

            raise falcon.HTTPContentTooLarge(
                title='Request body is too large', description=msg
            )

    return hook


class ThingsResource:
    def __init__(self, db):
        self.db = db
        self.logger = logging.getLogger('thingsapp.' + __name__)

    def on_get(self, req, resp, user_id):
        marker = req.get_param('marker') or ''
        limit = req.get_param_as_int('limit') or 50

        try:
            result = self.db.get_things(marker, limit)
        except Exception as ex:
            self.logger.error(ex)

            description = (
                'Aliens have attacked our base! We will '
                'be back as soon as we fight them off. '
                'We appreciate your patience.'
            )

            raise falcon.HTTPServiceUnavailable(
                title='Service Outage', description=description, retry_after=30
            )

        # NOTE: Normally you would use resp.media for this sort of thing;
        # this example serves only to demonstrate how the context can be
        # used to pass arbitrary values between middleware components,
        # hooks, and resources.
        resp.context.result = result

        resp.set_header('Powered-By', 'Falcon')
        resp.status = falcon.HTTP_200

    @falcon.before(max_body(64 * 1024))
    def on_post(self, req, resp, user_id):
        try:
            doc = req.context.doc
        except AttributeError:
            raise falcon.HTTPBadRequest(
                title='Missing thing',
                description='A thing must be submitted in the request body.',
            )

        proper_thing = self.db.add_thing(doc)

        resp.status = falcon.HTTP_201
        resp.location = '/{}/things/{}'.format(user_id, proper_thing['id'])


# Configure your WSGI server to load "things.app" (app is a WSGI callable)
app = falcon.App(
    middleware=[
        AuthMiddleware(),
        RequireJSON(),
        JSONTranslator(),
    ]
)

db = StorageEngine()
things = ThingsResource(db)
app.add_route('/{user_id}/things', things)

# If a responder ever raises an instance of StorageError, pass control to
# the given handler.
app.add_error_handler(StorageError, StorageError.handle)

# Proxy some things to another service; this example shows how you might
# send parts of an API off to a legacy system that hasn't been upgraded
# yet, or perhaps is a single cluster that all data centers have to share.
sink = SinkAdapter()
app.add_sink(sink, r'/search/(?P<engine>ddg|y)\Z')

# Useful for debugging problems in your API; works with pdb.set_trace(). You
# can also use Gunicorn to host your app. Gunicorn can be configured to
# auto-restart workers when it detects a code change, and it also works
# with pdb.
if __name__ == '__main__':
    httpd = simple_server.make_server('127.0.0.1', 8000, app)
    httpd.serve_forever()

Again this code uses wsgiref, but you can also run the above example using any WSGI server, such as uWSGI or Gunicorn. For example:

$ pip install requests gunicorn
$ gunicorn things:app

On Windows you can run Gunicorn and uWSGI via WSL, or you might try Waitress:

$ pip install requests waitress
$ waitress-serve --port=8000 things:app

To test this example, open another terminal and run:

$ http localhost:8000/1/things authorization:custom-token

You can also view the application configuration from the CLI via the falcon-inspect-app script that is bundled with the framework:

falcon-inspect-app things_advanced:app

A More Complex Example (ASGI)

Here’s the ASGI version of the app from above. Note that it uses the httpx package in lieu of requests.

# examples/things_advanced_asgi.py

import json
import logging
import uuid

import falcon
import falcon.asgi
import httpx


class StorageEngine:

    async def get_things(self, marker, limit):
        return [{'id': str(uuid.uuid4()), 'color': 'green'}]

    async def add_thing(self, thing):
        thing['id'] = str(uuid.uuid4())
        return thing


class StorageError(Exception):

    @staticmethod
    async def handle(ex, req, resp, params):
        # TODO: Log the error, clean up, etc. before raising
        raise falcon.HTTPInternalServerError()


class SinkAdapter:

    engines = {
        'ddg': 'https://duckduckgo.com',
        'y': 'https://search.yahoo.com/search',
    }

    async def __call__(self, req, resp, engine):
        url = self.engines[engine]
        params = {'q': req.get_param('q', True)}

        async with httpx.AsyncClient() as client:
            result = await client.get(url, params=params)

        resp.status = result.status_code
        resp.content_type = result.headers['content-type']
        resp.text = result.text


class AuthMiddleware:

    async def process_request(self, req, resp):
        token = req.get_header('Authorization')
        account_id = req.get_header('Account-ID')

        challenges = ['Token type="Fernet"']

        if token is None:
            description = ('Please provide an auth token '
                           'as part of the request.')

            raise falcon.HTTPUnauthorized(title='Auth token required',
                                          description=description,
                                          challenges=challenges,
                                          href='http://docs.example.com/auth')

        if not self._token_is_valid(token, account_id):
            description = ('The provided auth token is not valid. '
                           'Please request a new token and try again.')

            raise falcon.HTTPUnauthorized(title='Authentication required',
                                          description=description,
                                          challenges=challenges,
                                          href='http://docs.example.com/auth')

    def _token_is_valid(self, token, account_id):
        return True  # Suuuuuure it's valid...


class RequireJSON:

    async def process_request(self, req, resp):
        if not req.client_accepts_json:
            raise falcon.HTTPNotAcceptable(
                description='This API only supports responses encoded as JSON.',
                href='http://docs.examples.com/api/json')

        if req.method in ('POST', 'PUT'):
            if 'application/json' not in req.content_type:
                raise falcon.HTTPUnsupportedMediaType(
                    description='This API only supports requests encoded as JSON.',
                    href='http://docs.examples.com/api/json')


class JSONTranslator:
    # NOTE: Normally you would simply use req.get_media() and resp.media for
    # this particular use case; this example serves only to illustrate
    # what is possible.

    async def process_request(self, req, resp):
        # NOTE: Test explicitly for 0, since this property could be None in
        # the case that the Content-Length header is missing (in which case we
        # can't know if there is a body without actually attempting to read
        # it from the request stream.)
        if req.content_length == 0:
            # Nothing to do
            return

        body = await req.stream.read()
        if not body:
            raise falcon.HTTPBadRequest(title='Empty request body',
                                        description='A valid JSON document is required.')

        try:
            req.context.doc = json.loads(body.decode('utf-8'))

        except (ValueError, UnicodeDecodeError):
            description = ('Could not decode the request body. The '
                           'JSON was incorrect or not encoded as '
                           'UTF-8.')

            raise falcon.HTTPBadRequest(title='Malformed JSON',
                                        description=description)

    async def process_response(self, req, resp, resource, req_succeeded):
        if not hasattr(resp.context, 'result'):
            return

        resp.text = json.dumps(resp.context.result)


def max_body(limit):

    async def hook(req, resp, resource, params):
        length = req.content_length
        if length is not None and length > limit:
            msg = ('The size of the request is too large. The body must not '
                   'exceed ' + str(limit) + ' bytes in length.')

            raise falcon.HTTPContentTooLarge(
                title='Request body is too large', description=msg)

    return hook


class ThingsResource:

    def __init__(self, db):
        self.db = db
        self.logger = logging.getLogger('thingsapp.' + __name__)

    async def on_get(self, req, resp, user_id):
        marker = req.get_param('marker') or ''
        limit = req.get_param_as_int('limit') or 50

        try:
            result = await self.db.get_things(marker, limit)
        except Exception as ex:
            self.logger.error(ex)

            description = ('Aliens have attacked our base! We will '
                           'be back as soon as we fight them off. '
                           'We appreciate your patience.')

            raise falcon.HTTPServiceUnavailable(
                title='Service Outage',
                description=description,
                retry_after=30)

        # NOTE: Normally you would use resp.media for this sort of thing;
        # this example serves only to demonstrate how the context can be
        # used to pass arbitrary values between middleware components,
        # hooks, and resources.
        resp.context.result = result

        resp.set_header('Powered-By', 'Falcon')
        resp.status = falcon.HTTP_200

    @falcon.before(max_body(64 * 1024))
    async def on_post(self, req, resp, user_id):
        try:
            doc = req.context.doc
        except AttributeError:
            raise falcon.HTTPBadRequest(
                title='Missing thing',
                description='A thing must be submitted in the request body.')

        proper_thing = await self.db.add_thing(doc)

        resp.status = falcon.HTTP_201
        resp.location = '/%s/things/%s' % (user_id, proper_thing['id'])


# The app instance is an ASGI callable
app = falcon.asgi.App(middleware=[
    # AuthMiddleware(),
    RequireJSON(),
    JSONTranslator(),
])

db = StorageEngine()
things = ThingsResource(db)
app.add_route('/{user_id}/things', things)

# If a responder ever raises an instance of StorageError, pass control to
# the given handler.
app.add_error_handler(StorageError, StorageError.handle)

# Proxy some things to another service; this example shows how you might
# send parts of an API off to a legacy system that hasn't been upgraded
# yet, or perhaps is a single cluster that all data centers have to share.
sink = SinkAdapter()
app.add_sink(sink, r'/search/(?P<engine>ddg|y)\Z')

You can run the ASGI version with any ASGI server, such as uvicorn:

$ pip install falcon httpx uvicorn
$ uvicorn things_advanced_asgi:app

Contributing

Thanks for your interest in the project! We welcome pull requests from developers of all skill levels. To get started, simply fork the master branch on GitHub to your personal account and then clone the fork into your development environment.

If you would like to contribute but don’t already have something in mind, we invite you to take a look at the issues listed under our next milestone. If you see one you’d like to work on, please leave a quick comment so that we don’t end up with duplicated effort. Thanks in advance!

Please note that all contributors and maintainers of this project are subject to our Code of Conduct.

Before submitting a pull request, please ensure you have added/updated the appropriate tests (and that all existing tests still pass with your changes), and that your coding style follows PEP 8 and doesn’t cause pyflakes to complain.

Commit messages should be formatted using AngularJS conventions.

Comments follow Google’s style guide, with the additional requirement of prefixing inline comments using your GitHub nick and an appropriate prefix:

  • TODO(riker): Damage report!

  • NOTE(riker): Well, that’s certainly good to know.

  • PERF(riker): Travel time to the nearest starbase?

  • APPSEC(riker): In all trust, there is the possibility for betrayal.

The core Falcon project maintainers are:

  • Kurt Griffiths, Project Lead (kgriffs on GH, Gitter, and Twitter)

  • John Vrbanac (jmvrbanac on GH, Gitter, and Twitter)

  • Vytautas Liuolia (vytas7 on GH and Gitter, and vliuolia on Twitter)

  • Nick Zaccardi (nZac on GH and Gitter)

  • Federico Caselli (CaselIT on GH and Gitter)

Please don’t hesitate to reach out if you have any questions, or just need a little help getting started. You can find us in falconry/dev on Gitter.

See also: CONTRIBUTING.md

Release history Release notifications | RSS feed

Download files

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

Source Distribution

falcon-4.3.0b1.tar.gz (686.6 kB view details)

Uploaded Source

Built Distributions

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

falcon-4.3.0b1-py3-none-any.whl (332.8 kB view details)

Uploaded Python 3

falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_x86_64.whl (965.6 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_aarch64.whl (961.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

falcon-4.3.0b1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (973.5 kB view details)

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

falcon-4.3.0b1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (988.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

falcon-4.3.0b1-cp314-cp314-win_amd64.whl (417.6 kB view details)

Uploaded CPython 3.14Windows x86-64

falcon-4.3.0b1-cp314-cp314-musllinux_1_2_x86_64.whl (874.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

falcon-4.3.0b1-cp314-cp314-musllinux_1_2_aarch64.whl (862.9 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

falcon-4.3.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (875.9 kB view details)

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

falcon-4.3.0b1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (905.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

falcon-4.3.0b1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (872.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

falcon-4.3.0b1-cp314-cp314-macosx_11_0_arm64.whl (426.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

falcon-4.3.0b1-cp313-cp313-win_amd64.whl (415.7 kB view details)

Uploaded CPython 3.13Windows x86-64

falcon-4.3.0b1-cp313-cp313-musllinux_1_2_x86_64.whl (875.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

falcon-4.3.0b1-cp313-cp313-musllinux_1_2_aarch64.whl (859.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

falcon-4.3.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (880.2 kB view details)

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

falcon-4.3.0b1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (909.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

falcon-4.3.0b1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (870.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

falcon-4.3.0b1-cp313-cp313-macosx_11_0_arm64.whl (425.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

falcon-4.3.0b1-cp312-cp312-win_amd64.whl (416.6 kB view details)

Uploaded CPython 3.12Windows x86-64

falcon-4.3.0b1-cp312-cp312-musllinux_1_2_x86_64.whl (894.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

falcon-4.3.0b1-cp312-cp312-musllinux_1_2_aarch64.whl (877.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

falcon-4.3.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (898.4 kB view details)

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

falcon-4.3.0b1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (930.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

falcon-4.3.0b1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (889.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

falcon-4.3.0b1-cp312-cp312-macosx_11_0_arm64.whl (426.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

falcon-4.3.0b1-cp311-cp311-win_amd64.whl (415.6 kB view details)

Uploaded CPython 3.11Windows x86-64

falcon-4.3.0b1-cp311-cp311-musllinux_1_2_x86_64.whl (855.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

falcon-4.3.0b1-cp311-cp311-musllinux_1_2_aarch64.whl (847.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

falcon-4.3.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (857.4 kB view details)

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

falcon-4.3.0b1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (889.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

falcon-4.3.0b1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (856.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

falcon-4.3.0b1-cp311-cp311-macosx_11_0_arm64.whl (426.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

falcon-4.3.0b1-cp310-cp310-win_amd64.whl (415.6 kB view details)

Uploaded CPython 3.10Windows x86-64

falcon-4.3.0b1-cp310-cp310-musllinux_1_2_x86_64.whl (829.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

falcon-4.3.0b1-cp310-cp310-musllinux_1_2_aarch64.whl (820.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

falcon-4.3.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (831.1 kB view details)

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

falcon-4.3.0b1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (862.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390xmanylinux: glibc 2.28+ s390x

falcon-4.3.0b1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (830.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

falcon-4.3.0b1-cp310-cp310-macosx_11_0_arm64.whl (426.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file falcon-4.3.0b1.tar.gz.

File metadata

  • Download URL: falcon-4.3.0b1.tar.gz
  • Upload date:
  • Size: 686.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for falcon-4.3.0b1.tar.gz
Algorithm Hash digest
SHA256 61e7c2e0023cb0eacf6c8c3000fbda96f733e28a1b749469f89ccaeb184590a7
MD5 66a8c66846210a831a4ed92a313b8d75
BLAKE2b-256 93894c14b8dd0efdf908c7401a186cad085e107bea704c4cde8285fa94236f3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1.tar.gz:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-py3-none-any.whl.

File metadata

  • Download URL: falcon-4.3.0b1-py3-none-any.whl
  • Upload date:
  • Size: 332.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for falcon-4.3.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 489cc1b3e7235746f2a24326fa63a3f030ca80c970a83b4c0e19758a31071446
MD5 26bcc333a3e80056910d51b4ea3b75ef
BLAKE2b-256 d66ae16f014815b7e0141490d8752ebd6d94e89341bfd4ee88d118f4b7dd6ce7

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-py3-none-any.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b8ffb436ef35854323f2248f0464799b5d50e4e493e77e8f86c474ab018a542b
MD5 d7953c531ee271b779de64a8066d2d6f
BLAKE2b-256 04e9af6e609c6d598ae3bcdbfda55ed1ecc80b5c6c1ad9e1d619c6e687c3779e

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0379ad1f3a9579baf773b5d82f1b1de98c4a19730e4f5224a65bf481a46cbf0c
MD5 57fed2dd56db5bc68e2e7d8be53ddd4e
BLAKE2b-256 6c66ce7e766e545b4ac6ab1cc5b4ecc823fc7a533e62cb78e3d0c6e9d5440c6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8a438aa755d56686e5990bc80fe0d4e1346c3cea4ae0d9f04540914ae710629
MD5 a6d65c3552baf23da0cfa9f8c07e5abc
BLAKE2b-256 66810075b7b2722ace3ccbca774a8ee96273d33fa7bdba7c43ffd7ce81c2173f

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2745f63462aa5311ee026ca23ce8c1b46c82c14dfeec9dde9750af793d1d5c19
MD5 fc52a9c66b7d51fd0f249300b950a58f
BLAKE2b-256 41d266f9468a3e1bec9460b92053cc059136c8cefac6fcba440435df859cacee

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0b1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 417.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 881391a92121e9dc342b31a6c8cef8cc75d62681c1cc7b2d93401a4fada4de9c
MD5 e03b85f2ab965bd7436a8a39520c8189
BLAKE2b-256 b0fbfaaa6487db568c14b870736125325374d3f3cd4a772aa7b1d71fe5748995

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314-win_amd64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af75c3294829a41050d6b4f8e775466a45b58b6d284d57577fa0900d75b96ebc
MD5 be1f7dcfc37eaf1046105400a080c276
BLAKE2b-256 6804026ad728f616fbeda5b4cd8b963969a4045c0b84c5dc11276619f24686d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 55514ffe2f7006dcf7925ea0d9a585381ac622bbc3f661d8c0ba132c32a2fabe
MD5 4fd393746b65337671ae86e5cb42ca3e
BLAKE2b-256 b8678a7c670cd63c11fb78f31f41e4450eed6f51b28ac44058b07cc74c49df9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9f9395620feb037bc5362763884c89c3dd51c94ea4e2e1abcfc1935148e2383d
MD5 d293cd7355979fafd65dbfb9596c78d9
BLAKE2b-256 ca1dc65868730de60f8a9c35344cbb2b2ebec2597ca7cce5e5436e1be276207b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 f5715ef516188960e5b4117432f7d1913136c62d7b5069a920d89e63df34188c
MD5 eb42530c2a0f967dd7452bf1a7908675
BLAKE2b-256 19fff180dfb7cc17b9f9ff8e93a65a35cfa2ca36b316484f33095ca9eadbe6d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3dd69648981c623a76318ad0dfb2022fe9ae804db56353962a310d29acb78a70
MD5 bbcfae96bee42ed23159563163009f6a
BLAKE2b-256 406d25c963d3998aec583ea6282610436cef560ddda661dfe34dff36db1565cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 378c22815e2c29cbdc3e4147f47b62a4a70affe778d41a0f251a87a1a1dcf96f
MD5 eb0846d5b6ed40ada977a5c751773c99
BLAKE2b-256 92c2f8f76c2bcf3fbdfcea510cecc42f13f14adb0ea065f68fec7670772f02eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0b1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 415.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for falcon-4.3.0b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6e889264b61307509502ef3fca85e3e48ce79c48f4832499b7ac661a07d3707b
MD5 2b7831f307eb979474d23ed775bde74f
BLAKE2b-256 351b202bcc1230feaf97012b3275f0ebb83d47e2ee49af71b8a7f893b38fe153

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp313-cp313-win_amd64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4bafb081b09646a65cec2b569cd20a258104ade72fc5b7a4f133c14bb57d5729
MD5 dc8b827d3efcd9eeca8739203a9a7fdf
BLAKE2b-256 f2b4e09e7abc87f3b70ac4943144d09795709b4c5033535b233c960315bccbf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dc75ebefd95ab6924f1975c29d425ef6d63dd7512267a8656b4c1ea740706bfa
MD5 c917021c0e95376ea425016074a0daf7
BLAKE2b-256 5d7ae141437999e013f5884e10c61eb9bb9ec894b40541cdaa807dd23e1fd58e

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f11319f649bd5dd27dd8ebd9d627a5b0012be13e136109f770be4789137dc5c0
MD5 bc53b6cfcf7849e5530364bdc92b073a
BLAKE2b-256 014bb6564c00367ba4f31ff8fbb66093b8e565d86c6a606ce2795882cd1224a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 b4204819b76a909c56de41b56ac224b58e28051ea95b62c809c69a2897d9ac76
MD5 d944fccf60fdf43f344fafb0be35d736
BLAKE2b-256 ebce1d8168f6f691440c856d9379f365732ede2ec54e2477306feeb5dcad2603

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 43a4bdf7abdae81ef5286459f1c20d046fc60b50ea6a2ab0d4d00021ffbe1d41
MD5 bb9ceeafd1423a7ca6d50d25e769555d
BLAKE2b-256 ba13d53bd08fe0cd1813584736797ac66fe1e64fd915c2ee506f95cc312a51c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e924023ce9f0a12abdfeb26179676502ec88d7a954d34dd54ac27e8d50584480
MD5 4b22a71c61db50cecccf39daef78a372
BLAKE2b-256 01092df6841f73718dcb20c68fa849672250907f9f7258c6546015bcccd82789

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0b1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 416.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for falcon-4.3.0b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 93d3ecb66d4dd66cd97fccd79a9adac46eed0a0e3e69822f8b64d35cb39fc77f
MD5 36c862512cf460667f3e0aff36ff5ba4
BLAKE2b-256 6b9cfc9b27e7b57621758cf82a76e37aff7ef594a05d435621588ebb8f8adb59

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp312-cp312-win_amd64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f5fa8454efe824f5a503d0453599f81b33240533650c9422166e9167f9bf9364
MD5 474d60892db9bc04651ad65e5e949a1e
BLAKE2b-256 93fbaa870f1bd9dc8bc6517610d152918512f85ee8824bcbb2c8aa737300336d

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f760d46c9e5b10de906e9c1a8688562cdb165a57ccaef3703d4363706b0b149f
MD5 470baf06670b42ede105ad58e2414c30
BLAKE2b-256 9bb562ca151a2a1f7f00898577d1d3fcd400b631cd08ac1a3c503c33f69f846d

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d144a314257a4924999ae65ff57390114a2306c41cacd841555677a802195e1e
MD5 81ebac2bb9c42e6d19b71c463f579b36
BLAKE2b-256 442b78ed00cba518d4238a844cb9fb319c961a78751897c7e6e00699d1a23b1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 1f177c97eff58dc652dd00ce0792ac67cdd83143ef8e07dfa05bdde5cfea5603
MD5 5b20cb96b53b5cc239f1426d04b31694
BLAKE2b-256 0e7879bbc3ba9d643bc5acbbb495f27c70e14b401de4d172105a1a4ce45d0db8

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7b4ddb535755ea7ea0bffa5e3960c152d1d650f3477ae68f02bb79a1cd29c6aa
MD5 d58e458dc04b57873b0a3249cba30ad1
BLAKE2b-256 99c91f64295d8ed44798cebd2c2475042ced517bad102a7e63ede3d16f249f77

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41fd6876819c366eff8122bde06267b930b1319c61a2402b89d028941e61ed77
MD5 52a82c80568c427ae1d0ea4d752a0532
BLAKE2b-256 782abc57f479c4b635245bb616d5b337c2cbbf6a02a867c142bfd446dda8a830

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0b1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 415.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for falcon-4.3.0b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cdc18465ccd1a5f0ec6b6e0e54d1aa7ce0b67babb33da45be938d41c4ec4ab27
MD5 d3c5d0941beacc5355cc92ccce3c1a34
BLAKE2b-256 15b5bc7c9eec57f1e81b8012c716e5d3ebe6866c1c51be5f96a84629f0199948

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp311-cp311-win_amd64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f8dcab8b4d30451e5c3f9ad64c89335f117257a8758196fa65c243af81753ef8
MD5 dd5f390e4e90856889b8f33fb3e78e22
BLAKE2b-256 7c23e57b0561a6ae2c3584c5bb96d52ad9ae682446222212d07f80fcdf48c4c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 be43121d9743934a2eaf710f16a1bf41f9095ad5d105920c2cc8752df84ec0a1
MD5 b57ad193afbb29a6f771687432b4c290
BLAKE2b-256 0eb42087a5375fd250bd6b43351860afe8f0d134294c357b82606e7bd86422f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe54f0b5835affa0457c0b0c602902557bf7b39673372143d883b54daf4d1929
MD5 fab5e3984674a330b99a80a1a2b3de62
BLAKE2b-256 a7b66067b4f7d6d6041492c322a52dcf029bf9a2dcca33eb6d42eff9780f08a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 11a10c52d9b4757b1c8e0fb1e6b20518c8d0092434180c9e3233f86a7faffafb
MD5 eaf4e0a2916f55bdd5071deb72408254
BLAKE2b-256 7d5120f802f6926e36bbf0847b11ae52c996817f6e783d5744997f31e9242006

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bdce0861bbaa8c8ab892994cb4223c5d8c346a371b35af2492392f541cb60ec5
MD5 2325ec9cdcb987e4d5be53a13225c8a7
BLAKE2b-256 6e707cbc8d2c9d55c904efef83e06afcc1fea8abff68a110e0bd73e7e8feaa2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0555109dcbdaf8c776169fd043ca5081ca8ba0bd1651e9a4627bc64789419d1c
MD5 07598b28376f74d2ddcd6ae5a93830f7
BLAKE2b-256 d62f1d1f7fe5fafa838200b187f24c3b8722520468786fdcda9040dc6df8edf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0b1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 415.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for falcon-4.3.0b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ea9942831ce0b87744e7c25e09691e7b355531b6b3755c422b22eb6173d34c6f
MD5 c567c33436dc65f7beda538d55fafccd
BLAKE2b-256 930bda0c701a82b8761f483ad95f386f9e1e7058f455c84c922c003d4c59faef

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp310-cp310-win_amd64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9e0d4f739bb3c0dda0a6be66bc518fd2d1edd467f1b7969b0d9d63911e325dca
MD5 8f19d7d22231639f8a7dc99406a6960c
BLAKE2b-256 4877dac50107c5d6b57866e1359cd712200549c724980d922c5a7dce79b48f9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3bc273e3072bfa206f6f69b10eb17ead03f7d7dd09b73db7c583b8e0bba51eea
MD5 4775b2ca2f2fbc2a59d4b8ff6c089a25
BLAKE2b-256 9b2185bb3e2ea194021bbea6dbc76464c9feb42ab23e4a4659b75953008378bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eaa48aad54246a3b348881aa653b1c5159342f4ddb0fc89ccdc92400d164d8b2
MD5 9a5b73b6ff10605fe09f1477c2b4be78
BLAKE2b-256 245ad3910bd5ccbebf8eb4c55d588874c2ddfe7f99233923c7352369a656b333

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 cb24fcaab7697962f0dc40be9cec7b11f868c349a3feae0a22d9c9beb7cc411d
MD5 2b0c1e8d78f619e3c1826282ef2a0ce2
BLAKE2b-256 98ff90be41fa423eda650374fcfb68af16d4ad7e8cc1b40c9941d748ab98932f

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 aa237b2db7cc521e97407fa8448a6c596f1ceee0dc823fb63fc628ffa7f893c4
MD5 a76cc40bc4c6f56784cae890df8e269e
BLAKE2b-256 d0deb63ed85b016e18111dc3c8c3b67144e295a6cdcd0538d7e99fb05fe7ee2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file falcon-4.3.0b1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 487b83563ef59dd9c2fa4cf316cb1a0d10f7290c823171a855421096172675f8
MD5 906dece2ae086a534321c7f82e15b3c7
BLAKE2b-256 a3b345218c7ba410059ba049ce8b392c5655050aba9d8ef7c59bf06bd4efdf96

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0b1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yaml on falconry/falcon

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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