Skip to main content

An unladen web framework for building APIs and app backends.

Project description

Build Status Falcon web framework docs codecov.io

The Falcon Web Framework

Falcon is a reliable, high-performance Python web framework for building large-scale app backends and microservices. It encourages the REST architectural style, and tries to do as little as possible while remaining highly effective.

Falcon apps work with any WSGI or ASGI server, and run like a champ under CPython 3.5+ and PyPy 3.5+ (3.6+ required for ASGI).

What People are Saying

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

“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.”

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

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

“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.5+ and PyPy 3.5+ support

Support Falcon Development

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.

Fast. Same hardware, more requests. Falcon turns around requests several times faster than most other Python frameworks. 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.

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 does not depend on any external Python packages.

Debuggable. Falcon eschews magic. It’s easy to tell which inputs lead to which outputs. To avoid incentivizing the use of hard-to-debug global state, Falcon does not use decorators to define routes. Unhandled exceptions are never encapsulated or masked. Potentially surprising behaviors, such as automatic request body parsing, are well-documented and disabled by default. Finally, we take care to keep logic paths within the framework simple, shallow and understandable. All of this makes it easier to reason about the code and to debug edge cases in large-scale deployments.

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. Due to Falcon’s minimalist design, Python community members are free 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.5+ is supported as of PyPy v5.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.5+.

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 can compile itself with Cython. Wheels containing pre-compiled binaries are available from PyPI for several common platforms. However, if a wheel for your platform of choice is not available, you can choose to stick with the source distribution, or use the instructions below to cythonize Falcon for your environment.

The following commands tell pip to install Cython, and then to invoke Falcon’s setup.py, which will in turn detect the presence of Cython and then compile (AKA cythonize) the Falcon framework with the system’s default C compiler.

$ pip install cython
$ pip install --no-build-isolation --no-binary :all: falcon

Note that --no-build-isolation is necessary to override pip’s default PEP 517 behavior that can cause Cython not to be found in the build environment.

If you want to verify that Cython is being invoked, simply pass -v to pip in order to echo the compilation commands:

$ pip install -v --no-build-isolation --no-binary :all: falcon

Installing on OS X

Xcode Command Line Tools are required to compile Cython. Install them with this command:

$ xcode-select --install

The Clang compiler treats unrecognized command-line options as errors, for example:

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

You might also see warnings about unused functions. You can work around these issues by setting additional Clang C compiler flags as follows:

$ export CFLAGS="-Qunused-arguments -Wno-unused-function"

Dependencies

Falcon does not require the installation of any other packages, although if Cython has been installed into the environment, it will be used to optimize the framework as explained above.

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
$ pip install --no-use-pep517 -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.HTTPPayloadTooLarge(
                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 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.HTTPPayloadTooLarge(
                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-3.0.0rc3.tar.gz (632.5 kB view details)

Uploaded Source

Built Distributions

falcon-3.0.0rc3-cp39-cp39-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

falcon-3.0.0rc3-cp39-cp39-manylinux2014_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.9

falcon-3.0.0rc3-cp39-cp39-manylinux2014_s390x.whl (9.2 MB view details)

Uploaded CPython 3.9

falcon-3.0.0rc3-cp39-cp39-manylinux2010_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

falcon-3.0.0rc3-cp39-cp39-manylinux1_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.9

falcon-3.0.0rc3-cp39-cp39-macosx_10_14_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

falcon-3.0.0rc3-cp38-cp38-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

falcon-3.0.0rc3-cp38-cp38-manylinux2014_x86_64.whl (9.8 MB view details)

Uploaded CPython 3.8

falcon-3.0.0rc3-cp38-cp38-manylinux2014_s390x.whl (10.2 MB view details)

Uploaded CPython 3.8

falcon-3.0.0rc3-cp38-cp38-manylinux2010_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

falcon-3.0.0rc3-cp38-cp38-manylinux1_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.8

falcon-3.0.0rc3-cp38-cp38-macosx_10_14_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

falcon-3.0.0rc3-cp37-cp37m-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.7m Windows x86-64

falcon-3.0.0rc3-cp37-cp37m-manylinux2014_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.7m

falcon-3.0.0rc3-cp37-cp37m-manylinux2014_s390x.whl (8.4 MB view details)

Uploaded CPython 3.7m

falcon-3.0.0rc3-cp37-cp37m-manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.7m

falcon-3.0.0rc3-cp37-cp37m-manylinux2010_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

falcon-3.0.0rc3-cp37-cp37m-manylinux1_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.7m

falcon-3.0.0rc3-cp37-cp37m-macosx_10_14_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

falcon-3.0.0rc3-cp36-cp36m-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.6m Windows x86-64

falcon-3.0.0rc3-cp36-cp36m-manylinux2014_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0rc3-cp36-cp36m-manylinux2014_s390x.whl (8.4 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0rc3-cp36-cp36m-manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0rc3-cp36-cp36m-manylinux2010_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

falcon-3.0.0rc3-cp36-cp36m-manylinux1_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0rc3-cp36-cp36m-macosx_10_14_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.6m macOS 10.14+ x86-64

falcon-3.0.0rc3-cp35-cp35m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.5m Windows x86-64

falcon-3.0.0rc3-cp35-cp35m-manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0rc3-cp35-cp35m-manylinux2014_s390x.whl (8.0 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0rc3-cp35-cp35m-manylinux2014_aarch64.whl (7.7 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0rc3-cp35-cp35m-manylinux2010_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.5m manylinux: glibc 2.12+ x86-64

falcon-3.0.0rc3-cp35-cp35m-manylinux1_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0rc3-cp35-cp35m-macosx_10_14_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.5m macOS 10.14+ x86-64

File details

Details for the file falcon-3.0.0rc3.tar.gz.

File metadata

  • Download URL: falcon-3.0.0rc3.tar.gz
  • Upload date:
  • Size: 632.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for falcon-3.0.0rc3.tar.gz
Algorithm Hash digest
SHA256 b22e097a8547866c0d2c5204e84a330a3c45db7819306c091815276d0ccb873c
MD5 245916bc091b7b4427ec1c0b372048da
BLAKE2b-256 4e0ef4bad6410d6033b54a6c8533e0331a4078c41a8de56dd6b017a319ea7297

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for falcon-3.0.0rc3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 41f8dca1c6259f11caeda0773476e7696884320cdc21c9eb9d1389464870aaa1
MD5 8bfd9c71163e428fa09aa3800ee87726
BLAKE2b-256 cde219dfc0d67d2552ed4326f7651caadb21a2416fea7e3aa39657ac8e72606f

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for falcon-3.0.0rc3-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 927ba2a927c74f994befe3e69f701f02fc3c44099d66d62497ad137b3288195b
MD5 6674f7bc40d9e07cf8f3e92f08368b5c
BLAKE2b-256 7e4b53167ab6d023aab38c185c014076d04ab0c50e7759ac0e2a03a79875c4cf

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp39-cp39-manylinux2014_s390x.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp39-cp39-manylinux2014_s390x.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp39-cp39-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 62313f9e18aefe1fef60cbadb32841b9eab9a7d89ff78208040da44af51c14b2
MD5 892fec197f7202deff1e3abb3d92f76e
BLAKE2b-256 aeaae3520ef9b07df1aee6a43a784f778f429706d949dd2d3a3ef83af3d89876

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp39-cp39-manylinux2014_aarch64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp39-cp39-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 8.9 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp39-cp39-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa18a4ff173a43bff9faa021503b15a16c5cf1122214b376994611279bca179b
MD5 a2eed6aedc0ee98c0f8227eec38a39c1
BLAKE2b-256 8539ad435d2987d14aeb76759cc643519d842f14cf5ae9956a9a9c989189a4be

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for falcon-3.0.0rc3-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1654cc8d5f6aa53accb9d2e08ed7e20e7b0246db494cfc767a77e258a4c4f106
MD5 7b90e0089f9a68127c150f07206cfde1
BLAKE2b-256 64e98e942fa27dbe7bd342246ccfcc33bf6669733c8eec00d948e65e6304ff74

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp39-cp39-manylinux1_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for falcon-3.0.0rc3-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f72aa82053fbf206ec62b974a58ec22f12e71dd6e35c027f1c8a6a0733fb855f
MD5 27c46f14dc2b9caf1a07436177e88663
BLAKE2b-256 eb311f7d5d4159c6e5a10a042b429f0da3fdc174eb42988068eb72636a6fb90d

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for falcon-3.0.0rc3-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a950effa2ac93dba5ee84860ec6367442714a60116d4cca27fc5e0dea7382236
MD5 8e8a8f2e3f67cd21038764b7cf82ef6a
BLAKE2b-256 6ffcab582be006adb42576f5d9c0e89c54b55eabb01bdf7e8acc8d835fe10655

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4523728b15ac0aebcaecde65d81ec566cfaf5bc505327cef99167635a594fe59
MD5 0b6193dc01c22216a9d5fc07909a8d64
BLAKE2b-256 d4feacd0dd421016233e89f4d1a77134db4005342371ac3ab7dc782b02804118

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c329d19dfb479987e097cae90f9a632debe7c023199c10ce3e6cafc837b42a9
MD5 f38c49a848eb20ff62b90d7f634fb7b8
BLAKE2b-256 0bcec1cd7914993df6cc908d99c48b993e8498a4a049f9ceadf4d0e7edc2660e

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp38-cp38-manylinux2014_s390x.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp38-cp38-manylinux2014_s390x.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp38-cp38-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 9ed864e2cca74fce5efef26b974760429d8813b19e4394b13dfa3f4991131c91
MD5 8a82da1318777611ee4a04903819fb19
BLAKE2b-256 25ddd1217a1ed0d3dfb1f3dab7a74cf246c8813873bcb5e63668a79c33b0e8dd

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp38-cp38-manylinux2014_aarch64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp38-cp38-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd660090fd9adee8b446e9f33416ddcd52a25b96fd2b3688a8ab8486ccab838e
MD5 f49a84d1e03e12d0d71e715a2ae65a23
BLAKE2b-256 225bff094e202d43accd7471a84ee853637b62de89b0f79395e6ccefac93fd59

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fe0a8d4263b0bb3a1ca9ebe2515f281b8f7435761042b80a191981a96aaf8a31
MD5 d3a0e2044c70b4e5cb2e29196e79f2af
BLAKE2b-256 81aa2a30da859c18a98e06590443a54c345018239ac1fc10d8569ef9c3d52d56

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5c94b9f3ece2aca377759792c5b0fbec7058aae63b124ffb73709adadcfccd9a
MD5 f546a6156b75dc6ccce7efb0f3cdb2d9
BLAKE2b-256 bad973d6d309a756bcc475f962c6b98076c9b0de8cb24411711a86d4eb61395c

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 bd2478e1ad39c5c875e0fa27f5dd28f48fe5814ba698ca9de3aef1d13f286554
MD5 7b3a7d3c7309958a7820028759daef62
BLAKE2b-256 60b9be3a9fbb37611aaee6a7d2529b375f7913e670f00b5ce8a167ceeb8391ba

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.9

File hashes

Hashes for falcon-3.0.0rc3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 66bc4b03b2ce81723ff24d408f2dbbbc035d7fc65c2d9948c7938fef1268b17e
MD5 881f678d7aa912b3a274f099d475b9d9
BLAKE2b-256 c101cce4e526ff036b40b5a87dcacec6b10fc7044beacb7d7c4af3e49de0c91a

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for falcon-3.0.0rc3-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 924e284d4a08716982e34981a47d955677d7760b5f9926778d4d8b170034b500
MD5 b6f20b1dba3552baa62ba00a9b902f76
BLAKE2b-256 6c01931d52ef2a946922a3585dbcf5beb6a8a18906d48a4e84ab6c7add92e5e0

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp37-cp37m-manylinux2014_s390x.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp37-cp37m-manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.4 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp37-cp37m-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d172b61194c4313a89c2496bbd527321b6d2f6526b1a60439ad6836b2f9369c5
MD5 e067cb708dd6dd8ae8dec6cd3cc30f50
BLAKE2b-256 68a73fd5d300138aecb0d19e2430b9ab76677e7dc77bbe12a0ac4269ed565a8b

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp37-cp37m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp37-cp37m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a294f477dde370ef429e9060575dab7196397682a8351e30797e2bc3320f538a
MD5 0cd42f0a18b3e0b3f7862a67f5217a30
BLAKE2b-256 64f4481bc56f2dfd47c425c84e6df13116bf47f9e31a796e0cdeca7d19b03939

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for falcon-3.0.0rc3-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 107efd616d2282509a7dc93688eb82e615fe394ef88b4fb512a70fc36c735b40
MD5 6a932dd36f8e0a8730ae2bfd3fdac5f9
BLAKE2b-256 65bc6277bdec3215001d116d39560c4b0a948234798bf6eed843ef8165e192ee

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for falcon-3.0.0rc3-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d4a286770cf0459c5ca9d08c1bd4307b74a840004c1b4707ff44f9b3808f02ce
MD5 709c057e9558f2325237f6847e8089b6
BLAKE2b-256 563e0d8f61defbc64f48496f69e86f3c09ec5c3470b40956bbfdd7cabde0fa67

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for falcon-3.0.0rc3-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 aefa094cbadfbca1db0e3dac65f02a752d9ac6126197ba20027d84c88caa18eb
MD5 454693d013f04ecb5a98eda762bbec16
BLAKE2b-256 43565e19e1cd0a506104ea787a493707f5f6646dd2d0c2d9e7b4edaa23572ad2

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.8

File hashes

Hashes for falcon-3.0.0rc3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9bc953dbd932c0ca14e7b0a5950fae38b6fa028669060fe9c563f2c98839c5f7
MD5 9976c1cb4672b30418f39a523433fd2b
BLAKE2b-256 7f735b3f857417c4aecece5719769a7738645f664ada94bf366cc90c7c014b73

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.13

File hashes

Hashes for falcon-3.0.0rc3-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ce06a0020c508938b89e11411ebc37ab220c90c52f5e400832c9969960cedb8
MD5 194f5768b100b04da6eb54ba3fabb72d
BLAKE2b-256 cd286a9d6a1d269733b6f42ffc1e6919c7e58eac56191517ab43c9e83e47dc7d

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp36-cp36m-manylinux2014_s390x.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp36-cp36m-manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.4 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp36-cp36m-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 da9313c70a0dd0faabf51c4edb318a91c72bdbed83a6cb1e7a0b1cd8e5d81268
MD5 2ca6ec35a89e256442c7a45c549c1b06
BLAKE2b-256 caea4cc7b54458bf432ebb749590a1490b04facbf3ecd34794c1baff8e642003

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp36-cp36m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp36-cp36m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7cdb4a1695747efd51239c863e1f2ad8b8b166462bc6fa4a82ba5a943dfaeccf
MD5 70e4fa6a7a4b860b872c35a108cf2369
BLAKE2b-256 84edde6b50dab3d0510b4d44a12f88e4fabebf37ea97b2540f3be2c678b025e1

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.13

File hashes

Hashes for falcon-3.0.0rc3-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 6772d96dcf8b8313bd6a44dc6351c517d524d0592daf8ec065eb5c4d5423ac9f
MD5 ad6b7e8ec8f39cbcef1c4431dc0bee2c
BLAKE2b-256 937d4614654f074964ba54cc2712f93301542db4ecef9ed357b773af6b75e3bf

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.13

File hashes

Hashes for falcon-3.0.0rc3-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1a42947d013fcd1130d870a249521f84f1585feff7339c8f1bc79292ec8b812e
MD5 6efdcf9d8484df440b255f0f2e4eeb08
BLAKE2b-256 559f4ed7772a5625f1cba07fb50b51fc592d073778d73e14e7da6e6d2f256306

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.13

File hashes

Hashes for falcon-3.0.0rc3-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f38baf6222d460b2026c4843938bd74a6d73d819bc1d0ec77bd9215da923eddf
MD5 60006332da361df4f227107e331d0bac
BLAKE2b-256 7fbc082ee9e3bbf61b427d0b84afd6e9e70c91eb85cf1668710df1c3ae86902c

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.5.4

File hashes

Hashes for falcon-3.0.0rc3-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 e510335159ca43e4e93f07cbefb497efefb72dc12c01dc0d343997015bc463da
MD5 1f7a532c6d08cddfdf6d8695a6467bd7
BLAKE2b-256 2e3c423e5865eb67a28669bd33c929b0246c2ed9ee0c39c99d2f8e884f1e2e2b

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp35-cp35m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp35-cp35m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 7.8 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.5.10

File hashes

Hashes for falcon-3.0.0rc3-cp35-cp35m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e19375cef7384b41e04c5a42c6df754b31835472ba8cc4fcab497167b5cc917
MD5 aaf120a4eedbf234f9a616718e959146
BLAKE2b-256 013f24507cd89a6459422b501b8199963f3879a1ace6b90a650b1724445db397

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp35-cp35m-manylinux2014_s390x.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp35-cp35m-manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp35-cp35m-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 48cc0842cb321efdd092e84ee4c26656b3b24368a31306e7ac09b624e3551dd1
MD5 83e758357605695a89e3a71728384d73
BLAKE2b-256 a42ff5b4299b29c1309abc9203f315a81d23bbf43ecfe5ef79a3f9abd0892ef7

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp35-cp35m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp35-cp35m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for falcon-3.0.0rc3-cp35-cp35m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e78e97503b08a433779894b99a2354806800c44d90a62d91e2f7e14ce67e4113
MD5 f4df4aeeba2f1dcad5085e528c518dd5
BLAKE2b-256 01e0bafbc22390eda435028fa23dd5bf73fe6ee7b3593e8c1315efab6c8f6e7f

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp35-cp35m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 7.2 MB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.5.10

File hashes

Hashes for falcon-3.0.0rc3-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b3221c01c427df17e7bafebc23173a2a47fcf2947edb90023e49ac3f4bac63c3
MD5 8af3c6c627c43842f4dd6a61ea034246
BLAKE2b-256 d37628dc2d4e7ad8d8b041d664e6f2e35a9f2408e50b57763b738657e3dd969c

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 7.2 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.5.10

File hashes

Hashes for falcon-3.0.0rc3-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a7cc66f935dbe888306bb7d0d469fa17a327888297d1e22b8de97c8d5793d647
MD5 7a24f60cf33e5c594b58c8df400b6af9
BLAKE2b-256 758002e1d098f5cb6c67e647f52f8ec531dd994c0c79fe501579d80e98f5f319

See more details on using hashes here.

File details

Details for the file falcon-3.0.0rc3-cp35-cp35m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: falcon-3.0.0rc3-cp35-cp35m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.9 MB
  • Tags: CPython 3.5m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.5.10

File hashes

Hashes for falcon-3.0.0rc3-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 fdb2330396cdb9558370baeef15cf981043ad1212a3a471f470b1eff9cd38548
MD5 797e686a201bc015b97106c22d019a78
BLAKE2b-256 a3b8399b73b16ef0aa41161339eef97cb3a746d92e571e259f8156cdaf320e24

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page