#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.

from keystone.server.flask.core import *  # noqa
from keystone.server.flask import application  # noqa


__all__ = ('application', 'core', 'fail_gracefully', 'initialize_application',
           'setup_app_middleware')

fail_gracefully = application.fail_gracefully

#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.

# NOTE(morgan): Import relevant stuff so importing individual under-pinnings
# isn't needed, keystone.server.flask exposes all the interesting bits
# needed to develop restful APIs for keystone.

from keystone.server.flask import application
from keystone.server.flask.common import APIBase  # noqa
from keystone.server.flask.common import base_url  # noqa
from keystone.server.flask.common import construct_json_home_data  # noqa
from keystone.server.flask.common import construct_resource_map  # noqa
from keystone.server.flask.common import full_url  # noqa
from keystone.server.flask.common import JsonHomeData  # noqa
from keystone.server.flask.common import ResourceBase  # noqa
from keystone.server.flask.common import ResourceMap  # noqa
from keystone.server.flask.core import *  # noqa


# NOTE(morgan): This allows for from keystone.flask import * and have all the
# cool stuff needed to develop new APIs within a module/subsystem
__all__ = ('APIBase', 'JsonHomeData', 'ResourceBase', 'ResourceMap',
           'base_url', 'construct_json_home_data', 'construct_resource_map',
           'full_url', 'fail_gracefully')

application_factory = application.application_factory
fail_gracefully = application.fail_gracefully

Make keystone.server.flask more interesting for importing
Make keystone.server.flask more interesting for importing

Importing keystone.server.flask now exposes all the relevant bits
from the sub modules to develop APIs without needing to understand
all the underlying modules. __all__ has also be setup in a meaningful
way to allow for `from keystone.server.flask import *` and have
all the needed objects to start developing APIs for keystone.

Change-Id: Iab22cabb71c6690e6ffb0c9de68ed8437c4848de
Partial-Bug: #1776504
