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.0rc1.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.0rc1-py3-none-any.whl (332.8 kB view details)

Uploaded Python 3

falcon-4.3.0rc1-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.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl (961.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

falcon-4.3.0rc1-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.0rc1-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.0rc1-cp314-cp314-win_amd64.whl (417.6 kB view details)

Uploaded CPython 3.14Windows x86-64

falcon-4.3.0rc1-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.0rc1-cp314-cp314-musllinux_1_2_aarch64.whl (862.9 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

falcon-4.3.0rc1-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.0rc1-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.0rc1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (872.8 kB view details)

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

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

falcon-4.3.0rc1-cp313-cp313-musllinux_1_2_x86_64.whl (875.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

falcon-4.3.0rc1-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.0rc1-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.0rc1-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.0rc1-cp313-cp313-macosx_11_0_arm64.whl (425.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

falcon-4.3.0rc1-cp312-cp312-musllinux_1_2_x86_64.whl (894.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

falcon-4.3.0rc1-cp312-cp312-musllinux_1_2_aarch64.whl (877.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

falcon-4.3.0rc1-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.0rc1-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.0rc1-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.0rc1-cp312-cp312-macosx_11_0_arm64.whl (426.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

falcon-4.3.0rc1-cp311-cp311-musllinux_1_2_x86_64.whl (855.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

falcon-4.3.0rc1-cp311-cp311-musllinux_1_2_aarch64.whl (847.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

falcon-4.3.0rc1-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.0rc1-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.0rc1-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.0rc1-cp311-cp311-macosx_11_0_arm64.whl (426.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

falcon-4.3.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl (829.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

falcon-4.3.0rc1-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.0rc1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (862.7 kB view details)

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

falcon-4.3.0rc1-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.0rc1-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.0rc1.tar.gz.

File metadata

  • Download URL: falcon-4.3.0rc1.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.0rc1.tar.gz
Algorithm Hash digest
SHA256 8baf0f6f598dd25e1dcb139a54d9beb7c69ed630c2112f21e8aaa569a3c239b5
MD5 16f923c2f22809a59b032d112a3a9455
BLAKE2b-256 3144b6931667186428af10c2f23864cdd69c15ee6c6c3cdabdccf42450b4487d

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1.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.0rc1-py3-none-any.whl.

File metadata

  • Download URL: falcon-4.3.0rc1-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.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9b2b1e1703f99f39b8169c9b1ebaeba677c8353388adf412e84ceaa0654929f
MD5 38d612c16f8772f8993042a1dd3da7fc
BLAKE2b-256 ae56216ce4437938e0c31c8a95a1830bee6e0c71279c8d6190727cc256483e8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d3e5a4ec7739e3097e3c5247f8bffe8d23ae204aaea6906b78c1eca4904a7cfa
MD5 20e1e3709363cb7bdbf7cb1ba9ce9803
BLAKE2b-256 e9db4bd43cadd2dde49ecd0ed60bb287588b9052250a1e6e22bc9bba2849a537

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f3e3bb76c711aa0bb45578d6f40c54159a27e266ff0515bebe42985fbfb9a1ba
MD5 54e1ee2372f380e77fffb2afa1d5b52d
BLAKE2b-256 8cdb3803a10062ebf291572d674ef0b612542a863ca73b6fa4b426c4cecf81d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-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.0rc1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c8e7542f2ad56a323b821102ea4e8639697a4137a7ef1f198ef58bdfadacb7f
MD5 97c24e4d503b2abc8147b2610a754eab
BLAKE2b-256 56dcc5dfacdf00406eb12aba1c5c6d7d6a7b0a46273c9805b1a2c071cd83aa72

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 707a56166226b2bb2e03b4d47874195da0784197acc696fb63ab7024eb716fac
MD5 a8d3d99e3dff40a4ac1399fd0398a62d
BLAKE2b-256 25e359988fe59fa60ee97fadb49e1869b16b613300c764e1cd9ad59040f4ce56

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0rc1-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.0rc1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f01c7c5d51e75673e35e6b983ee9234f85fb83fee14b44820519e6f092382986
MD5 98671fc352cde4956b6f4d0805fc4d5c
BLAKE2b-256 3c3d161886062fbf032b5c99c614e9232718e25d9670ee68677e8f03a1238313

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8ecb09cd69e5e263a4f85058d15f39bb293779aeaa5b181a4a88c88bc1ffd989
MD5 96e8bef17f6807d3ffee4533bd4a530f
BLAKE2b-256 57668f8882992e89a9031b2177410545b3f022b4ab417c0db3954a5211d915ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2ca2f7c257854bd359ec29da28b1bb855ec72da639b8942b84a2286b4b0a03c4
MD5 8eb08e9fe99832b55660e521c9cc71f6
BLAKE2b-256 3f2006a4ae1ca1dac8bcbcc963c658952045d0f718e448f0f1524a9f6a1f989a

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-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.0rc1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 224e18dd568bd33f2dfa92e34ceb505a22337f1aa30d40d6d8353582ebea84f2
MD5 df4f4b177b647c36c50e438fcd9e48d8
BLAKE2b-256 a756f2b4ade310b5f97ad0366fcd3a8e3972fdb7b49f530a70bbd9486ecac1eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 c2b401970293ad8c0d12d33503c7794eddf736b386fdfa74a197dccb5b0f59c8
MD5 1885409f12386db3e36b05e687636a6b
BLAKE2b-256 dc8e86cb95b340031a18e1368863d3c9c861ba9af371c756cdaeb0875e13df3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0dab66d37c66bda1e829a5a882ad5f2d4bb56dd2a936aebd9a8b443cc96dd526
MD5 15071d2552b92c8c213297c2be351210
BLAKE2b-256 0b3babb7dab008f47bca29cf27971cd6df21e4b8b505af380ff54d190cdedfdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 584831c939ba99682f619b33bb52c3dbd262bb10e1e863334c3aa94c2dff0fdf
MD5 62596433ca338bdf33a7a8b7bc1aa3bb
BLAKE2b-256 d0ca8413505e1575f2c4d89b0f18204ef02c487af22d4a025726e2d4194f9fd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0rc1-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.0rc1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8d37df719e188daf59bd9128f3ebe975565fe0259387ea6f45aa76eab35c8fd3
MD5 ae759571dd26b25e76ff1ebfb5314ae8
BLAKE2b-256 ba15ae1f5df8073cf24c1e0dfc3b0c12ea70b76f79d05391d51d1b8a80609f1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b27b284f1381a837c06a9c1607e89c21117354a9ba8e5dcdc50f49a5e4a59944
MD5 2d3db5f0513acee77ed67af5a576303a
BLAKE2b-256 ab37e4bb7c3f4a2ee0a13dec2907a5bc6a3737d642a940365d4e6f750c08377c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3c1a60043b1a18c418639ed2497784388f9d0cbb670e37671c723f7e26790adb
MD5 7b07996d477577af2a1ba57a38130767
BLAKE2b-256 e9b376bf275acea5d476bf2798ac77b9ba5b55b9ee6837e587b0d05177f8da4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-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.0rc1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6342e0b2e6aa6da10656a7990dbe88945a7efaaf1b7b9ff9bf00c819d98b2807
MD5 ab043c32cc3dc5335dac67f0a1aabda9
BLAKE2b-256 436f78618ca4aac953b56c9c765ba97cd1e0b1293b2d94b10eafe49dbbc3cd63

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 e56c98491b365aa657b9f2477f94bd2fb1b48d9d0f06d05e68a03e4971a4326a
MD5 b47605644cf71088be2c3156bdfc377f
BLAKE2b-256 1f221b41ac5914423a567584a7a332ecb79b8cc4e89c48bb633ec18b7660a193

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 11780eb0a874d1edc6537e715a8edce6be50032238841a81cdb3b66609ebc501
MD5 2220cbcde92b9d4712b91642f303a84c
BLAKE2b-256 f17208f6a3cb1c37a4b71d8fad64ea4dc4ef564a82815af1affbc27a0c8a164c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd39207e749debd0613d0f6f8b0ac01a0ae68665b62d2a0a1c75e5a2e436e276
MD5 5ba6b242087b01b24571721ea557f40a
BLAKE2b-256 46774d10e15ee50642156aa2bf67e2a0b813fe8877d076d56a69d33c8272de90

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0rc1-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.0rc1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7f1d9de173ad0a24a37d317a3788def0a706a01ca430b9574fae031318de028d
MD5 721d3a6c3eb88df80e9c8ddb9c15d283
BLAKE2b-256 843bc9d5e27ecb20293f9f31367af0d46a92876651caead06c72e98452668aea

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 09d59e0e336bd0be44b3936360dc55241f7ceae3997e83a79bd8786345a3da9d
MD5 88b58442d44e44d966efb4a4833e4e91
BLAKE2b-256 d57505ce2e73b20fbfa483bde81a8475a6c4fd875fce48f68943631613294fe1

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cb59aaa9eed982ab504e64b99bfcbad717a7adf30081a7ec161b9fae415f4c18
MD5 e1f5e62b1d4ddf01bb9448b641debc0b
BLAKE2b-256 31e87fe2f13095ddcc7bf89e608aa02887ae7861c19ad34eb1a9eae22b702ed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-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.0rc1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff9d723562747bcffe39da330eadbf821f14d72c64508f1db6cb47cdc7fc93f8
MD5 69e5e6449e981e7a3788b2881f8b864d
BLAKE2b-256 0a3c0fde59f7c12328f5f4a7eefbb10d7e4ff40e0bb25d740cdd2f7199234b2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 cc35739d4306f74a66c8a1098fb2871bec43d6d1960845e27d4b3ec7d088f3c4
MD5 e1133fa49c2d9c3a27b99c9a9a294ced
BLAKE2b-256 ecf0908ac37938c7498312a1968c8f813067748b2638ff906904df40a8b5c9ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 44e1563450a009bfd2d024ce2a17d2a4566d2a88109d949009300fac4e726542
MD5 584360469da212372ead03fa8defeb96
BLAKE2b-256 260b90c46bf44affb519d4521e5e01ecb31b3d495e2004ade516deee7110b784

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d8be2bf9d8344721a3be42470f8c3ea9776f2abb72b113477ac1a1a2309b8c5
MD5 dcdfb2c8c6aba8382769d677ccf849a1
BLAKE2b-256 85765cce320eba8fabc5784e30d2d0926df4a21a0571f6f91e28f11ac6527f67

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0rc1-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.0rc1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 28e1a177db966360cd62ffa51a1d77b0e54d8e7af182598c0c8fa952c9109e7d
MD5 01d6619d2f8046c3ad05bfbf1d771ff9
BLAKE2b-256 ee2b69ab67393e714fbf3915b772f55550335e961f9aa4050c2f7058a8f5bbe6

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 105b2c15adece532dda6ff89acdb92d09660f6c752ec09c80df968b4e6552140
MD5 4f8e078ffbe82e15c784b651337d7de7
BLAKE2b-256 c8c622e4e3e58d318d193556596b69883a27be8d5d4f1893992efde12a4ad594

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 17cfc74a320f6d4f26703350f94c7e46cfb1f0f0d66f90a7d0d5932359f86fcb
MD5 b87bc94a3f85ed3ceca2c276204c0408
BLAKE2b-256 99d8654620f65dfcb9608bf43c60ffdd8f91b9ca6b6ea6112e84ca290680c6c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-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.0rc1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6c353dcee3b4e7a65447dca1bbf899f6cdbb63e1325a0683f4bdccdf55f227d
MD5 22f5544effbea62cf47b8fefaca48bc8
BLAKE2b-256 3540439ed735214952dbe1a073c48dd47fc9599c37ff1df600aae54444e5fc2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 ff97714c089349381ff5da450097db64edb2a2721ec7f993044f11bc32327333
MD5 fa185394161fa8567b1a719f4bf7579b
BLAKE2b-256 f1b06c522a9be882a2f6beb10069afd1adfdee46462e49729aaf42756bcb028f

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0030128f678fd9e807adc11e834cdf24bfc113ba94cd420578f45d41214f8381
MD5 9419c2cbe8d3d65d0e7c18dcbf9d625a
BLAKE2b-256 f9493d657472afca1f2f3c23e087e401831b58fe53572de7b2da6c7978592a03

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 531f6434ab2ae1bb53714d2d57e0345868751286ec3ad15fcd3021e9b2362c35
MD5 d0d62b374f1c6b3b27d2b5cf5e0321cc
BLAKE2b-256 53b156f10cc257ad4100c1696641f016a05b66ff31dc6709b5dede4aff12347c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: falcon-4.3.0rc1-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.0rc1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cd648d61062c007b7f8faae001d8dca1af3df3d35dd87bc2021ee2a1d7f09b10
MD5 8f55aa3ee8553f34cce8e4ec62da1c84
BLAKE2b-256 7f33977182f4613299cccef27923e716494fbe90c69f3d3e1e6bc32fe87b423c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 57e063699ffec25fd405671c16e2fd318cbe99237050be4aba765fc8549b54ff
MD5 c22d56f7250dbe5d758542b3c16c3ad9
BLAKE2b-256 dbb2158a6cd3d1b36c561c648f1329b7f884d6f1e6d53105dc7040b547961b8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b365ffe09a0c99cc0253f781a32fa160e0eee23c029d2199b5d848b53b18b519
MD5 76c15ef698401283b5bf0bdfba05101e
BLAKE2b-256 ecd49aa9db9de5722f5d07e7385822dc2c41914d67b30ba3aeef088bc5df2a69

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-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.0rc1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a2b83141b50a2f4be1d49f57d2730eea14677cba23b13f6941b95fc647c743a6
MD5 65a9a246a3fda1eddecfce467916d197
BLAKE2b-256 f6671c2e59371cd2d84973f30800881f2f526fabd55326d2cc110df2ed57f7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 cc4ea86843ffd71090592d15b481db6dfbc1b1c3cfe7ce9610a085914736c779
MD5 8948c785f42fca3499ce55a7ed71f624
BLAKE2b-256 c9c6b125be5d7fb2469f44519725c4f071461991279b2dc584518994a1f2c51d

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5c770de377812fb1e41bff1a2350820a25795df1502822b7e55f5a3be482d343
MD5 a1a55bfef736887f0130be7d82dd8720
BLAKE2b-256 4b8985fdc3aba7873766950d1bd5daee8d2d25505c245ebd79773748f7299600

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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.0rc1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.3.0rc1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 165fbdcf6f1ca94b5e50bc8d257ff43f8b292e41d9e0fb1a3c5e26b9150d4b8b
MD5 17a592cda0e94377400b8e648f303eca
BLAKE2b-256 4ce9ffced7cd9ebbdb32186b64bd318fca0f2181985a74aef4c7cacf9aee12bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.3.0rc1-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