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.8+ and PyPy 3.8+.

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.8+ and PyPy 3.8+ support

A Big Thank You to Our Patrons!

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.8+ is supported as of PyPy v7.3.7+.

$ 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.8+.

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 falcon
import requests


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(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',
    }

    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 = str(result.status_code) + ' ' + result.reason
        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.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 = '/%s/things/%s' % (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

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

falcon-4.1.0b1.tar.gz (659.0 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.1.0b1-py3-none-any.whl (323.2 kB view details)

Uploaded Python 3

falcon-4.1.0b1-cp314-cp314-win_amd64.whl (407.4 kB view details)

Uploaded CPython 3.14Windows x86-64

falcon-4.1.0b1-cp314-cp314-musllinux_1_2_x86_64.whl (829.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

falcon-4.1.0b1-cp314-cp314-musllinux_1_2_aarch64.whl (817.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

falcon-4.1.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (828.5 kB view details)

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

falcon-4.1.0b1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (854.8 kB view details)

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

falcon-4.1.0b1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (824.9 kB view details)

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

falcon-4.1.0b1-cp314-cp314-macosx_11_0_arm64.whl (404.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

falcon-4.1.0b1-cp314-cp314-macosx_10_13_x86_64.whl (408.1 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

falcon-4.1.0b1-cp313-cp313-win_amd64.whl (405.3 kB view details)

Uploaded CPython 3.13Windows x86-64

falcon-4.1.0b1-cp313-cp313-musllinux_1_2_x86_64.whl (830.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

falcon-4.1.0b1-cp313-cp313-musllinux_1_2_aarch64.whl (816.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

falcon-4.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (833.0 kB view details)

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

falcon-4.1.0b1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (858.0 kB view details)

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

falcon-4.1.0b1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (824.2 kB view details)

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

falcon-4.1.0b1-cp313-cp313-macosx_11_0_arm64.whl (404.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

falcon-4.1.0b1-cp313-cp313-macosx_10_13_x86_64.whl (408.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

falcon-4.1.0b1-cp312-cp312-win_amd64.whl (406.8 kB view details)

Uploaded CPython 3.12Windows x86-64

falcon-4.1.0b1-cp312-cp312-musllinux_1_2_x86_64.whl (846.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

falcon-4.1.0b1-cp312-cp312-musllinux_1_2_aarch64.whl (833.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

falcon-4.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (850.7 kB view details)

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

falcon-4.1.0b1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (878.5 kB view details)

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

falcon-4.1.0b1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (843.9 kB view details)

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

falcon-4.1.0b1-cp312-cp312-macosx_11_0_arm64.whl (406.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

falcon-4.1.0b1-cp312-cp312-macosx_10_13_x86_64.whl (409.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

falcon-4.1.0b1-cp311-cp311-win_amd64.whl (406.8 kB view details)

Uploaded CPython 3.11Windows x86-64

falcon-4.1.0b1-cp311-cp311-musllinux_1_2_x86_64.whl (833.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

falcon-4.1.0b1-cp311-cp311-musllinux_1_2_aarch64.whl (825.4 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

falcon-4.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (832.2 kB view details)

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

falcon-4.1.0b1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (863.3 kB view details)

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

falcon-4.1.0b1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (831.3 kB view details)

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

falcon-4.1.0b1-cp311-cp311-macosx_11_0_arm64.whl (407.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

falcon-4.1.0b1-cp311-cp311-macosx_10_9_x86_64.whl (410.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

falcon-4.1.0b1-cp310-cp310-win_amd64.whl (406.5 kB view details)

Uploaded CPython 3.10Windows x86-64

falcon-4.1.0b1-cp310-cp310-musllinux_1_2_x86_64.whl (805.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

falcon-4.1.0b1-cp310-cp310-musllinux_1_2_aarch64.whl (797.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

falcon-4.1.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (802.6 kB view details)

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

falcon-4.1.0b1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl (835.8 kB view details)

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

falcon-4.1.0b1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (803.4 kB view details)

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

falcon-4.1.0b1-cp310-cp310-macosx_11_0_arm64.whl (407.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

falcon-4.1.0b1-cp310-cp310-macosx_10_9_x86_64.whl (409.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for falcon-4.1.0b1.tar.gz
Algorithm Hash digest
SHA256 7245e8f45268178640388f9dd3df0c5aeaf37f1b2be4720dc382d783791ad3f6
MD5 0c7c23e8f77638f1901be03500ea78d4
BLAKE2b-256 e938f321c6f1f84b2f1702f409fd4cf8f34aa340f92d31939aabb882d64c39e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for falcon-4.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 a82adbb90ce31f710e8c41482321225e1faf4c439f15aab2a6f7b1427fb538e8
MD5 488827c75d4b4856648c2c1b9cabf803
BLAKE2b-256 35cb7b172e9ac9eb89fa8441b4b2465551574348511e8d538e0a4a3583aaa5ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp314-cp314-win_amd64.whl.

File metadata

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

File hashes

Hashes for falcon-4.1.0b1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bf2dd2001d4f4b57deef7a84ec6b1a17722e908f64240639740cae638d72c9e9
MD5 21807801e9e96c2fce085a3cf358f47d
BLAKE2b-256 fdda1bd19a989d7f2f81c0bf10148c2ac05e342f42e1cffbc11d82e88d156ed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d885c02864234d2f6e6f2729e678053b38475af663515a705df04a5de70e4e6
MD5 eb0b576bc39fdffac64e2ea005ba45d4
BLAKE2b-256 60c455237de151ceadce23bc1e1e0c5319b3621b0a6c11d75e55c5da0a147572

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5fc51bc10d4f2dd005307bf5349eaba983f4ecbf1b84ad7cc1d4038679b0118a
MD5 92ebb1e7a0d025325e8dc83807d2e08a
BLAKE2b-256 e40c1a9a57ac9266ec39fa3104e10690cc205893c3cba94f3b9a1a3e41aa8eee

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.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.1.0b1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a3a8c92ac1315d3aae6e8fddd668323fa19c98da7a9f4164d8a12d7bb817eab
MD5 e06df26607608b4710c2489733f0d058
BLAKE2b-256 f3e4aed05ecf0c39a7b39821a1537f8bc0d244d96489eb09c84891f345063650

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 97c06962eeb5f581bcc98a3d12dddbb879e5bc2ef36950747ee5ba68ae119df3
MD5 d4dc4c5f23e0bfb1c6a6ffef60a75909
BLAKE2b-256 cf4c24e14f293617e0a5e137d22f1c91e5ad0063483ba43aa30122d04b76fb7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3a2c9f53a060daf29b0693c8727b6aefc9895f1d6129a10aec93b79734aba68a
MD5 6f4b9ca4246418c2bff77371312061d4
BLAKE2b-256 9669da2ad34cbc2f59a058488ed879e0ddaf438920b08fe3b4933f121cf35f3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4852281093b89e3991b180ae88b80ec7060395b8a30adbe32ed6db769d418201
MD5 b2393195c4beaa2985420c7e5284cc99
BLAKE2b-256 3e95ac67ffeeb8b8714c1df626e889174380dd7c1ece910065fe9e0cc8859029

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9f27f1b1f87d7b532e7e323bfec72ca60ebeb84c503493b1213d0c7be48eb523
MD5 9c6f3d1b1ae96e22578ed9e9bf999818
BLAKE2b-256 39727a05f6eb235acc4abcb2fecec030c8529d67da6b4b366972766163371b7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.0b1-cp314-cp314-macosx_10_13_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.1.0b1-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for falcon-4.1.0b1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8cf682648dbe444b47405d1bf15dc97012b1ceeca85c7c48785063de846f2661
MD5 43600e82d74ff7999e75df1dace69f05
BLAKE2b-256 e4d10604b4f7eb8f3f6cc8028e95ff2de5fdf2398e6d8a893ad59b6a74edbddb

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c19fbf8d330c02a8acc3fb37c56f9531dddb4ad191e367ea15a5ad9e69dd2f3
MD5 9c69f1cad21225747990fd8862103f21
BLAKE2b-256 e74a8f4ff3fbdd7e34d5a31c9a2669734bc344e452e84ff81eaf6819a53a5b4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a37ba585e7edb3dec1a64940607842f0495e915fd57c329e76d76f50a9d42e77
MD5 d987c09a0f77900079b1ffdbc29eac6a
BLAKE2b-256 c20999d4975959cf7d8367267feec6dde1f54ff1749a73e54fa7d0ba620c213d

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.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.1.0b1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95ab308186899a22c841c9d4ba353fe7d5d56508d68707c4cd1445f98ff953a5
MD5 bfcaf124772c0d3f81b52c16aa385a99
BLAKE2b-256 107ca49717dc5994a0e8fe9f543899887ba06abb41bace12ee6a8b0b3896f8bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 db7ed86ee0ec34984be18e690fbc338e2aa008ae2b1635ad4d85e6cdb263c816
MD5 358da3574a43a155ede4dc57ffd41bfc
BLAKE2b-256 e1e225e678dd81f6585c29ba851acf6880d13c029b3b04424fd2648e3a80b949

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 29603e6855d094696e1c6df006f0b1c8b0cd8a6794d35fa4cdcfa4e91237725e
MD5 d2e9f379c7688137146c1e71270e3aa8
BLAKE2b-256 3a07449a09de5ccc5f89492e9690f66220894356a3db09cefe3383647ea5054b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f740f044c1569bf09abd0373cfbd816f0d29919e5ecc18e2e9299cf82617d5da
MD5 b9f7909ae90a98397b81e1ccd8827ced
BLAKE2b-256 eb109dc4522551335483c59ac3955f76533a1388eb2f31489cf57e6108f7f97c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0880621075049d2b910be3784d4c156643e4d0b130a2ad6b8b3d37f413ed5066
MD5 e69144844ba290ab6ae7ea921f5e6d70
BLAKE2b-256 9a5d43ec0878d141b9c7f28d6340fe35fb084542ea075a9a339f83b8bd2bbc06

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.0b1-cp313-cp313-macosx_10_13_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.1.0b1-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for falcon-4.1.0b1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0b4220aaaacc8fc2bf4ae4ab0a4ab6264dd59f36d8142bbc7810f11ac91df0ad
MD5 d058bcdf9246ddc54c1a98864244ff88
BLAKE2b-256 f3190af4a90a136cf28ea89f936470fe037b696785bd7d904324f6d04168e23b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a32e52c144e6b4145f7df1b32bf035b0b1f9f931927baaea452c43a06089eec9
MD5 c06871ff843f6d58e890afee3ea73723
BLAKE2b-256 626291f7440172c5a0935be66a3608bfc5b7cf33534882b0a6a2a1ed9cea4523

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1d92c3b07e9e73eb12b4fff88a3cce92c02410b0e620da622bdb98f99ce66a4b
MD5 87e044d76baa3f4e808b28baa0728da0
BLAKE2b-256 8d09bd5995cf85b42ce3af253b32ca42e26223eef6d48c0bd7efd3e5e78f36ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.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.1.0b1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 556bbd970d45f9b12f2e8014028b817f4661d4f3d781a01f030d8289e7c038a8
MD5 48a331906570ae7def1fb84177669533
BLAKE2b-256 802c808ed5dd1f7b2e345718a0df51aaf458b7500c9fb4fbd9352d90c1b5fa42

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 aa26b1c6436a18497687ffa7f9e83d48e3f80e76e42f428a36bd9aa10bcb7fc8
MD5 52c60ba8c3d404507f0e7aed5240e12f
BLAKE2b-256 853270e48cd2499cf3e704f5c358622d8dc8911b71422c8dbef026594d101b8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 88c601b87feb583e9c79140204d946ee722ccba79221f02f6d279df10ae5e644
MD5 97d9df1b9ae625e2723ee3856ca1e69f
BLAKE2b-256 b1c9be6b3fa34525cf12296b1292f428dddbe4bf9999a4b5efee02e93f2a68c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba2ff25675302bd01b9aeeb4e7d12e186ee4f31150f74bd71c74da5dbd940dc3
MD5 0f63518712b50828f240840b80ba00b4
BLAKE2b-256 013b2b4e0d711c6e68561b16ddcb2b7d90fb8729daa692d3a3aec741f7997541

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 35330691867950574eb80471dec533c9cfe4bbd5682fcd79b3f8ea9959911d7f
MD5 24b6533e351cd0098e705d18dedb77e3
BLAKE2b-256 7a6268576ec00efb9cb7cf27c0bfb23faa697d5aab5ea651f6efd16540fc920c

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.0b1-cp312-cp312-macosx_10_13_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.1.0b1-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for falcon-4.1.0b1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b78f724ca919ed2fa30dee3e8270d4ea51f3520f8f683c76ae261b9c19121c95
MD5 afec123bd93355a953b4e43522d33476
BLAKE2b-256 f66cf467c09a072283f307e890796c50c023a3b321c111346c4b0d0a1172bea8

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 83dd5cb11b25a3a1c978024a9d14cdead4eb8210fa949d14a48ceceef47b41d0
MD5 4ab12adb055f738a56d61189940a1268
BLAKE2b-256 0f82ce6620a0e392789ed731604162062d3f8ecad7cddf700c11306f9d08b9bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 339b5897b5b2c0b79cab37479d8284865c8f47d8541b8c8b82afc8bc70c639db
MD5 578e1407092a7f8dfabf67612bf50398
BLAKE2b-256 241a3d2cf569a0ab4a4f378732bcb2a3c20de8ee357540e46213bcebe692244f

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.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.1.0b1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3e6ab2b80676a663b83048fcb5e1445669209731b3687fcd4e1d11b6f73cb738
MD5 6d8de731228b01cb69d051094af0970f
BLAKE2b-256 4fbb4a4d692e92dee7bb136d278e6166b85e38b7a2905144fa4753eaa87a67b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 9e9cf32cdbb067112c80bcdbfe4eef1ddc9859a3bc479b69e4249d7ab2a1dd9b
MD5 3b1f2dc70ea23fd5d4474e44c3ee2fde
BLAKE2b-256 f9c077be581c0ac3d8726e34ad55c1a71b6202c450136ce8c22126ce1605c9a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a7a239031008b8e7b160736de2d1f7032ae342cea257fd5fd6fa5181914f6fc0
MD5 933fa46cd67e38f858371b9555a48bcc
BLAKE2b-256 710b9c3606a5a3d001b773ff4fb44fae6c4043a9f339313d6ea62e125dd6a7c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a9b8312a273f2979e6e22b90216bf2b09ce987a58cccb61653d764a880aacde
MD5 d63b5f79fe8e315304f7aa275601b18c
BLAKE2b-256 e3c5f1251c9bd51215328dd26d8102b863ac5cfe5be6b158b98eaea672fe36e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 148d94d99eda8dba09925beaf89737dc79d4015349f5402d41245fd8347da222
MD5 dd663eec9b545ed662f4c95e1b11a182
BLAKE2b-256 77a2fecae35af43b389a32fe42eb3f11d7ec605df118d3a80940dc907887e64f

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.0b1-cp311-cp311-macosx_10_9_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.1.0b1-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for falcon-4.1.0b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2bf9d38e7696ef78e730a3e9dc46a54bb35863468b2fde398b443039989fe3a2
MD5 7c4a885f1fb2b37a062841e3ff4943e3
BLAKE2b-256 98540b7f98f9f2af8943d8b6fcb0504365c0cccd7f51a514ba1930469e563098

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7533aa33f1ec6b277780b892b83e6fa249d058eed1c56dbbf4f0645b27fb09b4
MD5 f2a7518da3075abb090a4468044a37d3
BLAKE2b-256 c2736ff7022b13228b41286cf90b18858ff4bc4bb0f5d1724c785b59492b9583

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 27d711ee8a170de88d6507a67b61a63867aa6e05c2695159d20081e8a4784446
MD5 18aa126866e57b2a53d90dd5aa02c569
BLAKE2b-256 ac246ba0ed6fc3d92e4ed1fdf8d87120d3a3f4448571a3021fd24c2cb73ce7db

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.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.1.0b1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76fc1d05c3fcf1df0b97a56ff1fc3fc39e7fa83cf1916fd750c35fe2720be621
MD5 7ca3eeeef108c0e1fb5df65f6dbfb229
BLAKE2b-256 52a2cebcb074a7d7f0f2950da49eafe2db65f97e3cd1e2d399a99ad18070661a

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl
Algorithm Hash digest
SHA256 25a72197bb878f823428cd5fc58346534728fddcf0bfd3788cf351fd6ad9c861
MD5 25e1f42ce442115653e7cbe630cd2774
BLAKE2b-256 0b3014bcfe0bddc1f676cf4d934f0340ca1ba0ecc26a66dc891a1a011a3f4592

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df0786bcca8eaa849684e3e9c35189bd7a7cc734071bff4a38dad7a60f92c98b
MD5 3f6ef24567026e31f55204674336cf11
BLAKE2b-256 32774cf20245208a4b095acbf0382e2e9307444683539349ba125ead775d2a43

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.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.1.0b1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6634ab34408245691ff13948a51273192606c0f5480ef5cd46b68511ef9e2e75
MD5 78b1d92db977162c7b37d0ded0904e9a
BLAKE2b-256 b6492804abb9b7d619a51ce27f03380c4b53ca29669b8ab8de08e4f2b954f395

See more details on using hashes here.

Provenance

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

File details

Details for the file falcon-4.1.0b1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for falcon-4.1.0b1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5cada1f1dfe4a6a32986bafe1b4f06eb3281c57dc76294b56369ba64de30f0c4
MD5 e6c8b0f62c20dbd654d6df6fa208f516
BLAKE2b-256 79dbb9b355c81868a4dddb625ed3e199fcf4325efbc4590ffc6f47c304009603

See more details on using hashes here.

Provenance

The following attestation bundles were made for falcon-4.1.0b1-cp310-cp310-macosx_10_9_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.

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