if not app.debug: import logging from logging.handlers import TimedRotatingFileHandler # https://docs.python.org/3.6/library/logging.handlers.html#timedrotatingfilehandler file_handler = TimedRotatingFileHandler( os.path.join(app.config['LOG_DIR'], 'hseling_api_fake_corpora_interface.log'), 'midnight') file_handler.setLevel(logging.WARNING) file_handler.setFormatter( logging.Formatter('<%(asctime)s> <%(levelname)s> %(message)s')) app.logger.addHandler(file_handler) log = getLogger(__name__) app.register_blueprint(api.as_blueprint(), url_prefix="/rpc") ALLOWED_EXTENSIONS = ['txt'] def do_process_task(file_ids_list): files_to_process = boilerplate.list_files(recursive=True, prefix=boilerplate.UPLOAD_PREFIX) if file_ids_list: files_to_process = [ boilerplate.UPLOAD_PREFIX + file_id for file_id in file_ids_list if (boilerplate.UPLOAD_PREFIX + file_id) in files_to_process ] data_to_process = { file_id[len(boilerplate.UPLOAD_PREFIX):]: boilerplate.get_file(file_id) for file_id in files_to_process
def run(self): self.stopTimeout = self.timeout() self.app = Flask(__name__) self.app.register_blueprint(api.as_blueprint()) self.app.run(**self.params['rpc'])
from typing import Mapping import uuid from jsonrpc.backend.flask import api from neuroAPI.application import server from neuroAPI.application.ext import CoordinatesDict server.register_blueprint(api.as_blueprint()) @api.dispatcher.add_method(name='service.echo') def echo(*args, **kwargs): """ Echoes you back. :param args: args to echo back :type args: Set[] :param kwargs: key word args to echo back :type kwargs: Mapping[] :return: [args, {{kwargs}}] :rtype: Set[Set[], Mapping[]] """ return args, kwargs @api.dispatcher.add_method(name='predict.block.coordinates') def predict_block_by_coords(coordinates: CoordinatesDict, neural_model_id: str) -> Mapping[str, float]: """ Predicts block by coordinates.
from flask import Flask from flask import render_template, redirect, url_for from flask import request from jsonrpc.backend.flask import api from flask_cors import * import base64 from Crypto.Cipher import AES from datetime import date import time app = Flask(__name__, static_url_path='') CORS(app, supports_credentials=True) app.register_blueprint(api.as_blueprint()) @app.route('/', methods=['get', 'POST']) def index(): return render_template('index.html') @api.dispatcher.add_method def my_add(a, b): a = int(a) b = int(b) return a + b @api.dispatcher.add_method
""" Additional requirements for this example: - Flask>=0.10.1 - json-rpc>=1.10.1 """ import logging import logging.config from flask import Flask, g from jsonrpc.backend.flask import api from jsonrpc_helpers.log import build_flask_decorator from jsonrpc_helpers.validation import validated app = Flask(__name__) app.register_blueprint(api.as_blueprint()) logging.config.dictConfig({ 'version': 1, 'formatters': { 'simple': { 'format': '%(levelname)s|%(module)s|%(message)s|%(method)s|'}}, 'handlers': { 'stdout': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'simple'}}, 'loggers': { 'default': { 'handlers': ['stdout'], 'level': 'DEBUG'}}})
from jsonrpc.backend.flask import api from pydbus import SessionBus blueprint = api.as_blueprint() bus = SessionBus() @api.dispatcher.add_method def ping(): return "pong" @api.dispatcher.add_method def dbus_call_p(name, path, method, *args): proxy = bus.get(name, path) fun = getattr(proxy, method) return fun(*args) @api.dispatcher.add_method def dbus_call(name, method, *args): return dbus_call_p(name, None, method, *args) @api.dispatcher.add_method def dbus_list_names(): return dbus_call(".DBus", "ListNames") @api.dispatcher.add_method def dbus_introspect_p(name, path):