Пример #1
0
    def __init__(self, db, options):
        """
		Create a new KDTree instance.
		:param db		: Database with fields x,y
		:param options	: options for configuring the KDTree

		:Example:
		>>>	tree = KDTree(database,{"max-depth":3})
		"""
        keys = db.keys()
        data = np.asarray(db.query(keys))
        treef = btf.BalancedTreeFunctions

        if "max-depth" in options:
            self.max_depth = options["max-depth"]
        else:
            self.max_depth = treef.tree_depth(len(data))

        if "max-elements" in options:
            max_elem_depth = treef.tree_depth_max_leave_elements(
                len(data), options["max-elements"])
            if self.max_depth < max_elem_depth:
                self.max_depth = max_elem_depth

        self.partition = lambda x, index: np.argsort(x[:, index], axis=0)

        storage_size = int(math.pow(2, self.max_depth) - 1)

        self.storage = storage = [{} for x in range(storage_size)]

        self.traverse(data)

        self.bb = bb.BoundingBox.from_dataset(data,
                                              db.fields()["x"],
                                              db.fields()["y"])
Пример #2
0
def main(stdout=False):    
    if stdout:
        print() 
    #tornado.options.parse_command_line()
    #from tornado.log import enable_pretty_logging
    #enable_pretty_logging()
    #print(dir(tornado.options.options))

    tornado.options.options.log_file_prefix = myapp["logfile"]
    tornado.options.options.log_file_num_backups=5
    # size of a single logfile
    tornado.options.options.log_file_max_size = 10 * 1000 * 1000
    
    tornado.options.parse_command_line()

    gen_logger = logging.getLogger("tornado.general")
    gen_logger.addHandler(log_handler)

    access_logger = logging.getLogger("tornado.access")
    access_logger.addHandler(log_handler)
    #print(access_logger.handlers)
    #for elem in access_logger.handlers:
    #    print(dir(elem))


    app_logger = logging.getLogger("tornado.application")
    app_logger.addHandler(log_handler)

    #app = tornado.web.Application(handlers=routes, **app_settings)
    if stdout:
        for idx, elem in enumerate(db_settings.keys()):
            if elem != "default_values":
                if elem.lower() == "sql":
                    print("  DB #" +str(idx) + ": " + db_settings[elem]["type"] + "  enabled: " + str(db_settings[elem]["enabled"]) )
                else:
                    print("  DB #" +str(idx) + ": " + elem + " enabled: " + str(db_settings[elem]["enabled"]))
    #app.listen(app_settings["port"], **server_settings)#
    #app=Application()
    #print(app)
    if stdout:
        print()
        print(50*"-")
        print("Final routes (order matters from here on ;) " )
        print(50*"-")
        for idx,elem in enumerate(app.handlers[0][1]):
            print("#"+str(idx)+": " + str(elem.regex) + " --> " + str(elem.handler_class))
        
        print()
        print(50*"-")
        print("starting the pow server Server ")
        print(50*"-")
        print("visit: http://localhost:" + str(app_settings["port"]))
        print("running...")
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(app_settings["port"])
    ioloop = tornado.ioloop.IOLoop.instance()
    if app_settings["IOLoop.set_blocking_log_threshold"]:
        ioloop.set_blocking_log_threshold( app_settings["IOLoop.set_blocking_log_threshold"])
    ioloop.start()