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).

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.

Learn how to support Falcon development

Thanks!

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

  • ASGI and WSGI Support

  • WebSocket Support

  • Native asyncio support (no hacks or compatibility layers)

  • Strict adherence to RFCs

  • Highly-optimized, extensible code base

  • Intuitive routing via URI templates and REST-inspired resource classes

  • No reliance on magic globals for routing and state management

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

  • DRY request processing via middleware components and hooks

  • Idiomatic HTTP error responses

  • Straightforward exception handling

  • Snappy testing through WSGI/ASGI helpers and mocks

  • CPython 3.5+ and PyPy 3.5+ support

  • ~20% speed boost under CPython when Cython is available

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)

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.0b1.tar.gz (618.3 kB view details)

Uploaded Source

Built Distributions

falcon-3.0.0b1-py3-none-any.whl (289.9 kB view details)

Uploaded Python 3

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

Uploaded CPython 3.9 Windows x86-64

falcon-3.0.0b1-cp39-cp39-manylinux2014_x86_64.whl (8.8 MB view details)

Uploaded CPython 3.9

falcon-3.0.0b1-cp39-cp39-manylinux2014_s390x.whl (9.1 MB view details)

Uploaded CPython 3.9

falcon-3.0.0b1-cp39-cp39-manylinux2014_aarch64.whl (8.8 MB view details)

Uploaded CPython 3.9

falcon-3.0.0b1-cp39-cp39-manylinux2010_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

falcon-3.0.0b1-cp39-cp39-manylinux1_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.9

falcon-3.0.0b1-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.0b1-cp38-cp38-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

falcon-3.0.0b1-cp38-cp38-manylinux2014_x86_64.whl (9.7 MB view details)

Uploaded CPython 3.8

falcon-3.0.0b1-cp38-cp38-manylinux2014_s390x.whl (10.1 MB view details)

Uploaded CPython 3.8

falcon-3.0.0b1-cp38-cp38-manylinux2014_aarch64.whl (9.7 MB view details)

Uploaded CPython 3.8

falcon-3.0.0b1-cp38-cp38-manylinux2010_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

falcon-3.0.0b1-cp38-cp38-manylinux1_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.8

falcon-3.0.0b1-cp38-cp38-macosx_10_14_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

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

Uploaded CPython 3.7m Windows x86-64

falcon-3.0.0b1-cp37-cp37m-manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.7m

falcon-3.0.0b1-cp37-cp37m-manylinux2014_s390x.whl (8.3 MB view details)

Uploaded CPython 3.7m

falcon-3.0.0b1-cp37-cp37m-manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.7m

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

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

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

Uploaded CPython 3.7m

falcon-3.0.0b1-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.0b1-cp36-cp36m-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.6m Windows x86-64

falcon-3.0.0b1-cp36-cp36m-manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0b1-cp36-cp36m-manylinux2014_s390x.whl (8.3 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0b1-cp36-cp36m-manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0b1-cp36-cp36m-manylinux2010_x86_64.whl (7.3 MB view details)

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

falcon-3.0.0b1-cp36-cp36m-manylinux1_x86_64.whl (7.3 MB view details)

Uploaded CPython 3.6m

falcon-3.0.0b1-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.0b1-cp35-cp35m-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.5m Windows x86-64

falcon-3.0.0b1-cp35-cp35m-manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0b1-cp35-cp35m-manylinux2014_s390x.whl (7.9 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0b1-cp35-cp35m-manylinux2014_aarch64.whl (7.6 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0b1-cp35-cp35m-manylinux2010_x86_64.whl (7.1 MB view details)

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

falcon-3.0.0b1-cp35-cp35m-manylinux1_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.5m

falcon-3.0.0b1-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.0b1.tar.gz.

File metadata

  • Download URL: falcon-3.0.0b1.tar.gz
  • Upload date:
  • Size: 618.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1.tar.gz
Algorithm Hash digest
SHA256 6cd1381abad732e98636d1e525ed302cf94534be42660d9bb87ea191649e7732
MD5 67cb67bf0b62db61ba3190bd70b5bf41
BLAKE2b-256 a477ae7ea0e8a7b4d4c457ffbfc84798a403e4571f9b365144ab13d23cad7bbd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-py3-none-any.whl
  • Upload date:
  • Size: 289.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5d465e9b7ed5520e8434d230f10f93d45999890b0a57b040d1252c5360195d3
MD5 9a8c93c6ab5989b69bfef13e87bd1ca1
BLAKE2b-256 45b657fec0f275ee1ba0d1b2461e7b67e056ffee2640f2247434db05f7e45756

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2ba90e0cb51a0bbd132f07a311dd53c99fb732a17b58121735792a7b603c57cb
MD5 05e618b3341deb3648aa64305a02b952
BLAKE2b-256 cad2877173ff81e7602b567e3052cc6955e53452f5419cb400ce6e59a0d61732

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab902f4a66de935e7a349c5a3c19d59e0bc57f7ca7cf758cd3f5baa22218405d
MD5 da07bf10b3d5961cc2c20bc06c85a56b
BLAKE2b-256 cca8501e606e4668d047788573fc7cf5ae9ae578e37b3372f357a9e76c1f884d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp39-cp39-manylinux2014_s390x.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp39-cp39-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 828eb9c654e81e286bff5d3071e07d2ddb2a25ef02b1bd31fafddd47b0429403
MD5 e660bc02ac861ae0b9e884d489cc8209
BLAKE2b-256 84aa9ab287245f3c5d9ae8f2483f96a71348b5f51278fe8c1d4ecdff7b13f761

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp39-cp39-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 8.8 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp39-cp39-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50e0c3c76604bf56d6e76cdcd742257ae274c9ee11be606787c7b3157f1f71e8
MD5 661cb009ed75be79d5cb9fd932e67a84
BLAKE2b-256 e9223d41bb2db76ce1c93ff5ca0c22c77a86f329c20f920ac206a6fab2728993

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 80059841a331c2fb3dab50bdd3de1bffda350517f9ac8b7988e7d3c4e3daa65c
MD5 75292276049afb4e2476e81589223cdf
BLAKE2b-256 e73746e027390fb17c41984e7d37022a0d6d09c8b46cf7ba7ec9498f329a1992

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 8.1 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f260159b1a239c9bb2e6bc8a0b1a398de88b9e6bea084fe5afe9ab5f6020d943
MD5 7061b9805cde54bd418a31dafcf20647
BLAKE2b-256 b172357f2c9436467897a4d7815b2ebe5b9fe9c663f0b28dc757a3157efe1ad5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 9b24484fe4c6fd7484aa7b6f10209e8f7a77302bffd53ffcee3b8a20f5c1cd33
MD5 71bbe6d317116cc752121a57676ba7d1
BLAKE2b-256 331b2a081ee241ac90aa26c02eb93cf1d9fde3785eb88d1a808567b40dc85a4a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 29bbff06415e940908e8fa41972a9db45d1db0da58268abc6ea4c7256d110240
MD5 517801ef4e9dae9bbacf77cf2a626ccf
BLAKE2b-256 36956f87f1523987030307f6cabd94512018c444535a27793ba99756468901de

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54b2da273da8a7b80814ce7abb7e873ca47c78c4925d2b31b634aff2333da121
MD5 62d47036acf52a010e406bf5fbf32d1b
BLAKE2b-256 2f8d9f4777b4e4916656dbd56010d36e64f44a4c4ef567840b2e796e55046fd7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp38-cp38-manylinux2014_s390x.whl
  • Upload date:
  • Size: 10.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp38-cp38-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f6471b9e88f89c307586035ae80ac83e0d70528ea9d36bb1eed97a83ce9993dc
MD5 9ae0470ea66366225be712d2e707fbc6
BLAKE2b-256 da2018ddcaed21062e7ad11ae484f78c216b02c67f1081b98232e92182c53b1a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp38-cp38-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 563b49d59b37974592856d9d04e9e50208a62cdd809c496e114c9914e75f629f
MD5 17da0ecdf0f6a80c764f836dfa847827
BLAKE2b-256 148f58ac1411ab72fa8384eba8f09afff4a941b8c7427260119e03f38969b87b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ab4eb438ff4528ca5c5ffa8baa4d7c8d7811dc822685a3cf4538fafbada3bfcf
MD5 5e6826576acde5a6e3a09abe610d63bb
BLAKE2b-256 332880a90a87d5bcb8c60a562e1e1d9992aaeb43dbc3878f48e7c0d18ab7be4d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 9.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7110b2227f3f796269f3ce0b3a68e05017127e2cdda0358d347481e8d2d27a7f
MD5 e7fa8607fedd938ddab047e9c1495a8c
BLAKE2b-256 181f02045f0fb8f451b3da657f93311946ec16e37f075b0b0e7bdf404eb2cd83

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a3523c5e75ef41dcbf42664ba39e8002251f32dea55556e38600c44d99bf826f
MD5 968601228f327f41493f161ab91b020e
BLAKE2b-256 959eaf1d349ec42694ecc427a238d7f0957262b460644db9554c194efad92d3b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0993b8274281fd4aaf3607340a847acec1a4b6d2fb431b0c391d0627a5d3f64a
MD5 59f0508ad54e9ffd65ccc7c24f12ff24
BLAKE2b-256 a3b6b427487478793f241d28fce11b3bf87c99783fdc43c763fb6fd5abed2068

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b75e75e517142bfa8f53dd4bf2f88ce0e47a10c57d09825f47a2ff51f4139b2
MD5 927aadedc38d1a1f59f464340e1d8b5e
BLAKE2b-256 f363ccb2c819c1e6b4e6d9d3c2156eab75baf24dbf5a4be7a6259765c2527d9f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp37-cp37m-manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp37-cp37m-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 74ba0c7002c11024c688c770548f4175c08ba2a92cb6cd1c185c65dcc882f7e1
MD5 dd23985576002b815f1df593e67c0916
BLAKE2b-256 046076a0b763dc225de776c9dc391351974ec507623777b1e46f151a81f45b3f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp37-cp37m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f19bec2c57e52705072fe8854379c59e1dd4fcb43720d28e15755b603ce0f778
MD5 65d80e89e579173d6288e044e5cbee5c
BLAKE2b-256 0c4ecfec2b4aabed40c9f9c4af0fb874d21c942cabb6917e0f5c98697c07a1d7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4f3593185cedd0ec7723ca810b5af374cb8a08d39b2cb2a6b59fbd84560347f6
MD5 1a5b6cacb4da19d494f2c8f7e038f290
BLAKE2b-256 bda4f5ed6b5962f08c8ff2af3041f477bdf17dc2c2e246d40d8d5459850052eb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4184640eb6a3012c84637ad938c9477a047be814960343b238c4cd1b64bdd5b6
MD5 8c2b8b95f1e1f70707bfe02af945148c
BLAKE2b-256 ef761cb78126ff03e04d1fcfabd7e3a4f11d72a5ba760a641f6a4cc593b357da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 fced85f5a50076a23a488dbc2ed14f474d543750f18b7dd82cedbfc1e369cba3
MD5 5558d4deaf36796ad58b2ea646ba2791
BLAKE2b-256 2e40044ba23af153b310149b44f3986060e59cefe73dffd0009f222c4226e5e5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 57967fd91047c248519b1064e104141a54a842476245411efaa83d479f11b6fd
MD5 326d499373dfb5121f087ab067e912e4
BLAKE2b-256 8df0f762fbce6383a6a3cfe0b0fe937087e4d4cb5612d702172b6e65e1264b89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14b37bed59113d972be572fcd2c625b9577fa410f6ca23ce84c7cb71af15b0ee
MD5 11894938bd4c02f45e7432baccca1962
BLAKE2b-256 b50cfd5d34ca33901c05774874ab1c84334cba7a6ba26da7e7070ceefcca728f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp36-cp36m-manylinux2014_s390x.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp36-cp36m-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 78128a2fcfd0723eb6da5223655fd37f7144986817c90ad096ed366aa13fafce
MD5 4f4597ea5a0c08bd1d0954f050a2589c
BLAKE2b-256 20db0bdc4c638b270e00b29a1dcefe394ad14f3689a4d2b881e543e2fc556217

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp36-cp36m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e04339efa1de004f2dd91b4b7377a9cb88b418ed266a7a8eb70e41491f51d7fd
MD5 b255eec8cb47463c39290cbaaa99c17a
BLAKE2b-256 6620b6ef9eda811b3e582716a6a38fa4212612ebd6855383a81ec0df4567e23e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f07a7cefcf25e2f9c3091bcda3f0537e556cfad742325cfeb8ea743fa95a722e
MD5 c6086371a2da4e2555bdf70f1bef6ad4
BLAKE2b-256 035a8cfb4b7d7d6b606a67174cde55d00a81f17b64e3ca88d62a0415dbd3cedc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 f9b4b542425dc32089356506ff7a7e3f4083fda5207d7c9b373fdace2da72b59
MD5 35011f44f293000278dfd726b9376595
BLAKE2b-256 68f45389785ba23db1eddf13c859288ffce8c945c806f650a22d79e8cce53377

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 09d407d9d1c6ffe11a27efa0c86c60e5385a08abbd1cf07e624337d4ef69b950
MD5 36f47559acec0e5ca78eddfab6395d63
BLAKE2b-256 08fe68a18d4dbed1ca319b21c29f677f36abf4ad49daab58d35ef87e0c9f30ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 a60f7afb286c94f3743f796bf1011ca8c33d6cc2af2030f435464566e01eccbe
MD5 675a46861f1116cb27626cb06e239036
BLAKE2b-256 a414bdfe69ac78b2f10e468bd6b0a50b49343b099e7b045c3bc69e459f25f3c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp35-cp35m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp35-cp35m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7538e9ba02977a3e5d43c8a1fd8a46a94ea4db50934a7b98f29f43eb19d8cf21
MD5 18cffbfbeac616062f2aee833793c2fd
BLAKE2b-256 cee4c1f2b49d02664978e315d7a9fe0f1f77047d95aa44fafc063dd6fa2aaf59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp35-cp35m-manylinux2014_s390x.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp35-cp35m-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 41ecd770f6cb27294ff35a2ed065ca29e3fb3f9e8d4bc85f163d611629e5bcb6
MD5 0dc98a19e80dbf6cd4072c860db3c211
BLAKE2b-256 5e8f442548f23b5596c1c117c07d767adb5c0814a4a61e26203d5ea33c18a966

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp35-cp35m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp35-cp35m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5e314d64936f3014f7aba7bf28d558b68a96864b5a0911fe2d2e41cd77e3c225
MD5 c9fd3f3f08b693dfbf31ae18ce3e1af1
BLAKE2b-256 b70e67030b1ea316d5516674539997fda4b9bd29f90903d270ec762b27ea4545

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 7.1 MB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fe2130fa8a0fd80ac11e2de9342d2ae62a0f1510a0fa68da5f4169d59c82ae46
MD5 194acb561ae89ada6c24c4a16fe1f931
BLAKE2b-256 2feb09ff94fb6c82d97b22babdc249bc3da685dd1457b4da834a6113c338792f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 7.1 MB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 aae575ce0b284016e87afb3b5867107bdfed85fdf4b9b8b27b0f513b52ddefb6
MD5 fdf698cc16e850af07cbf0ccc1569cfa
BLAKE2b-256 7e2094db0968b42628e915f8460ab42dfcde4cebf08d4a809e05556530428363

See more details on using hashes here.

File details

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

File metadata

  • Download URL: falcon-3.0.0b1-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/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.8.0

File hashes

Hashes for falcon-3.0.0b1-cp35-cp35m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b7d9eb5eb5f7dfa04e98313ff6b989504137af7e08870f1aa71b858475e289b7
MD5 3ebc57ab0f8ef6915bcbe0c41400c8b0
BLAKE2b-256 1119d36dcd431ce4edd15aac1a083c53de8c7d9c83b7c917e2ee300d58f2f210

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