def activate(self, callback=None, app=None, twisted=False):
        self.setup()
        if self.swagger.has_api:
            swagger_file = '{}/{}'.format(self.swagger.path, self.swagger.file)
            if not Path(swagger_file).is_file():
                self.logger.info(
                    'Unable to access swagger file "{}"'.format(swagger_file))
                return

            swagger_ui = self.get('swagger_ui', 'ui')
            app = App(__name__,
                      specification_dir='{}/{}'.format(getcwd(),
                                                       self.swagger.path))
            app.add_api(self.swagger.file,
                        arguments={'title': self.ms_name},
                        swagger_url=swagger_ui)

            self.swagger.add_healthcheck(app)
            CORS(app.app)

            @app.app.teardown_appcontext
            def flush_session_manager(_):
                self.db.session.remove()

        else:
            if not app:
                app = Flask(__name__)
                CORS(app)

            @app.teardown_appcontext
            def flush_session_manager(_):
                self.db.session.remove()

        reactor.suggestThreadPoolSize(200)
        client._HTTP11ClientFactory.noisy = False
        if callback:
            callback(app)

        #   Sorry, flask_private is the only remotely sane way I can think of doing
        #   this at the moment. It's a special case for endpoints in the API gateway.
        if self.get('flask_private', False, boolean=True):
            port = self.get('flask_port')
        else:
            port = self.flask_port

        self.logger.info('* starting listening port "{}"'.format(port))
        if twisted:
            self.logger.info('* starting Twisted WSGI server')
            Twisted(app).run(host='0.0.0.0', port=port, debug=False)
        else:
            self.logger.info('* starting Flask dev server')
            app.run(host='0.0.0.0', port=port, debug=False)
Beispiel #2
0
    def flask_thread():
        resource = 'data/openapi'
        if (not resource_exists(__name__, resource)
                or not resource_isdir(__name__, resource)):
            print(
                "Unable to load OpenAPI specifications - installation broken?")
            return -1

        options = {'swagger_path': swagger_ui_3_path}
        spec_dir = resource_filename(__name__, resource)
        print("Options: " + str(options))

        app = App(__name__, specification_dir=spec_dir, options=options)
        app.app.json_encoder = Encoder
        app.add_api('landingpage.yaml')
        app.add_api('brewerycontrol.yaml')

        app.run(host="0.0.0.0", port=5000)
Beispiel #3
0

def network(ident):
    response = fetch_value(ident)
    return response


def echo(ident):
    return {'value': ident}


if __name__ == '__main__':
    from argparse import ArgumentParser
    from os.path import abspath
    from os.path import dirname
    from os.path import join

    from connexion import App

    parser = ArgumentParser(__doc__)
    parser.add_argument('--host', default='127.0.0.1')
    parser.add_argument('--port', default=8080, type=int)
    parser.add_argument('--server', default='tornado')
    parser.add_argument('--api',
                        default=abspath(join(dirname(__file__), 'api.yaml')))
    args = parser.parse_args()

    app = App(__name__)
    app.add_api(args.api)
    app.run(host=args.host, port=args.port, server=args.server)
Beispiel #4
0
#!/usr/bin/env python3

from os import getenv, getcwd
from pathlib import Path

from connexion import App
from flask_cors import CORS

from swagger_server.encoder import JSONEncoder

if __name__ == '__main__':
    cf_app_env = getenv('VCAP_APPLICATION')
    in_cf_env = cf_app_env is not None
    if in_cf_env:
        import yaml
        import json
        cwd = getcwd()
        config = './swagger_server/swagger/swagger.yaml'
        if Path(config).is_file():
            with open(config) as io:
                code = yaml.load(io)
            code['host'] = json.loads(cf_app_env)['application_uris'][0]
            with open(config, 'w') as io:
                io.write(yaml.dump(code))

    app = App(__name__, specification_dir='./swagger/')
    CORS(app.app)
    app.app.json_encoder = JSONEncoder
    app.add_api('swagger.yaml', arguments={'title': 'ONS Microservice'})
    app.run(host='0.0.0.0', port=int(getenv('PORT', '5000')), debug=not in_cf_env)
Beispiel #5
0
def get_timestamp():
    return datetime.now().strftime(("%Y-%m-%d %H:%M:%S"))

out_home={
    "Farrell": {
        "fname": "Doug",
        "lname": "Farrell",
        "timestamp": get_timestamp(),
    },
    "Brockman": {
        "fname": "Kent",
        "lname": "Brockman",
        "timestamp": get_timestamp(),
    },
    "Easter": {
        "fname": "Bunny",
        "lname": "Easter",
        "timestamp": get_timestamp(),
    },
}

app=App(__name__)

@app.route('/')
def home():
    return jsonify(out_home)

if __name__=='__main__':
    app.run(debug=True,port=6969,host='0.0.0.0')
Beispiel #6
0
from connexion import App
import logging


logging.basicConfig(level=logging.INFO)
app = App(__name__)
app.add_api('swagger.yaml')
# set the WSGI application callable to allow using uWSGI
application = app.app

if __name__ == '__main__':
    app.run(port=8080, server='gevent')
Beispiel #7
0
from connexion import App
import logging

logging.basicConfig(level=logging.INFO)
app = App(__name__)
app.add_api('swagger.yaml')
# set the WSGI application callable to allow using uWSGI
application = app.app

if __name__ == '__main__':
    app.run(port=8080, server='gevent')
Beispiel #8
0
#!/usr/bin/env python3
##############################################################################
#                                                                            #
#   Microservices header template                                            #
#   Date:    18 May 2017                                                     #
#   Author:  Gareth Bult                                                     #
#   License: MIT                                                             #
#   Copyright (c) 2017 Crown Copyright (Office for National Statistics)      #
#                                                                            #
##############################################################################
from connexion import App
from flask_cors import CORS
from .encoder import JSONEncoder
from .configuration import ons_env

if __name__ == '__main__':
    ons_env.activate()
    app = App(__name__, specification_dir='./swagger/')
    CORS(app.app)
    app.app.json_encoder = JSONEncoder
    app.add_api('swagger.yaml', arguments={'title': 'ONS Microservice'})
    app.run(host='0.0.0.0', port=ons_env.port)

    #from twisted.internet import reactor
    #from flask_twisted import Twisted
    #reactor.callLater(1, print, '<<Twisted is running>>')
    #Twisted(app).run(port=getenv('PORT',8080))
Beispiel #9
0
                labels.append(label)

    for data in training_data:
        containedlabels = list()
        for label in labels:
            if label in data['ic']:
                containedlabels.append(1.0)
            else:
                containedlabels.append(0.0)
        data['ic'] = containedlabels

    print("Building network...")
    config.neuralnet = network.get_network(256, len(labels))
    config.labels = labels

    training_input = []
    training_output = []

    for data in training_data:
        training_input.append(data['img'])
        training_output.append(data['ic'])

    print("Training network...")
    history = network.train(config.neuralnet, np.array(training_input),
                            np.array(training_output))
    print("Done, ready for predictions")

    app = App(__name__, specification_dir='./')
    app.add_api('swagger.yml')
    app.run(debug=True, host='0.0.0.0', use_reloader=False)