本文整理汇总了Python中tornado.ioloop.IOLoop.install方法的典型用法代码示例。如果您正苦于以下问题:Python IOLoop.install方法的具体用法?Python IOLoop.install怎么用?Python IOLoop.install使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tornado.ioloop.IOLoop
的用法示例。
在下文中一共展示了IOLoop.install方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run
# 需要导入模块: from tornado.ioloop import IOLoop [as 别名]
# 或者: from tornado.ioloop.IOLoop import install [as 别名]
#.........这里部分代码省略.........
if self._debug:
events.DebugEventListener()
# setup access control
userManagerName = s.get(["accessControl", "userManager"])
try:
clazz = octoprint.util.get_class(userManagerName)
userManager = clazz()
except AttributeError as e:
self._logger.exception("Could not instantiate user manager {}, falling back to FilebasedUserManager!".format(userManagerName))
userManager = octoprint.users.FilebasedUserManager()
finally:
userManager.enabled = s.getBoolean(["accessControl", "enabled"])
loginManager = LoginManager()
loginManager.session_protection = "strong"
loginManager.user_callback = load_user
if not userManager.enabled:
loginManager.anonymous_user = users.DummyUser
principals.identity_loaders.appendleft(users.dummy_identity_loader)
loginManager.init_app(app)
# register API blueprint
self._setup_blueprints()
## Tornado initialization starts here
if self._host is None:
self._host = s.get(["server", "host"])
if self._port is None:
self._port = s.getInt(["server", "port"])
ioloop = IOLoop()
ioloop.install()
self._router = SockJSRouter(self._create_socket_connection, "/sockjs")
upload_suffixes = dict(name=s.get(["server", "uploads", "nameSuffix"]), path=s.get(["server", "uploads", "pathSuffix"]))
def mime_type_guesser(path):
from octoprint.filemanager import get_mime_type
return get_mime_type(path)
download_handler_kwargs = dict(
as_attachment=True,
allow_client_caching=False
)
additional_mime_types=dict(mime_type_guesser=mime_type_guesser)
admin_validator = dict(access_validation=util.tornado.access_validation_factory(app, loginManager, util.flask.admin_validator))
no_hidden_files_validator = dict(path_validation=util.tornado.path_validation_factory(lambda path: not octoprint.util.is_hidden_path(path), status_code=404))
def joined_dict(*dicts):
if not len(dicts):
return dict()
joined = dict()
for d in dicts:
joined.update(d)
return joined
server_routes = self._router.urls + [
# various downloads
(r"/downloads/timelapse/([^/]*\.mp[g4])", util.tornado.LargeResponseHandler, joined_dict(dict(path=s.getBaseFolder("timelapse")), download_handler_kwargs, no_hidden_files_validator)),
(r"/downloads/files/local/(.*)", util.tornado.LargeResponseHandler, joined_dict(dict(path=s.getBaseFolder("uploads")), download_handler_kwargs, no_hidden_files_validator, additional_mime_types)),
(r"/downloads/logs/([^/]*)", util.tornado.LargeResponseHandler, joined_dict(dict(path=s.getBaseFolder("logs")), download_handler_kwargs, admin_validator)),
# camera snapshot
示例2: test_install_should_assert_ioloop_is_not_initialized
# 需要导入模块: from tornado.ioloop import IOLoop [as 别名]
# 或者: from tornado.ioloop.IOLoop import install [as 别名]
def test_install_should_assert_ioloop_is_not_initialized(self):
IOLoop.instance() # initialized
with self.assertRaises(AssertionError):
io_loop = IOLoop()
io_loop.install()
示例3: install
# 需要导入模块: from tornado.ioloop import IOLoop [as 别名]
# 或者: from tornado.ioloop.IOLoop import install [as 别名]
def install(self):
"""Installs IOLoop"""
IOLoop.install(self)
return self
示例4: test_install_ioloop_as_the_singleton_instance
# 需要导入模块: from tornado.ioloop import IOLoop [as 别名]
# 或者: from tornado.ioloop.IOLoop import install [as 别名]
def test_install_ioloop_as_the_singleton_instance(self):
io_loop = IOLoop()
io_loop.install()
self.assertEqual(io_loop, IOLoop.instance())
示例5: run_socket
# 需要导入模块: from tornado.ioloop import IOLoop [as 别名]
# 或者: from tornado.ioloop.IOLoop import install [as 别名]
def run_socket(datasource):
io_loop = IOLoop()
io_loop.install()
host = pop_clean()
if host is None:
log("[E]",
'''No clean host found. Use "--seed default.txt" to add more.''')
return
log("[I]", "Connecting to (%s:%d)" % host)
with SQLiteControlledExecution(DB_PATH) as c:
c.execute('INSERT INTO history VALUES (?,?,?,?,?,?,?,?)',
(None, "", "", "CONNECTING", None, None, host[0], host[1]))
c.execute('SELECT id FROM history WHERE ROWID = ?', (c.lastrowid, ))
row_id = c.fetchone()[0]
received = StringIO()
sent = StringIO()
def update_connected():
c.execute('''UPDATE history SET status = ?, connected_at = ?
WHERE id = ?''',
("CONNECTED", datetime.utcnow(), row_id, ))
def update_status(status):
c.execute('UPDATE history SET status = ? WHERE id = ?',
(status, row_id, ))
def update_final_status(status):
c.execute('''UPDATE history SET disconnected_at = ?, status = ?,
sent = ?, received = ?
WHERE id = ?''',
(datetime.utcnow(), status, sent.getvalue(),
received.getvalue(), row_id, ))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect(host)
except socket.error as e:
if e.errno == errno.ECONNRESET:
update_final_status("RESET")
else:
raise
s.setblocking(0)
set_nonblocking(datasource)
log("[I]", "Connected.")
update_connected()
def read_till_block(fd, step=1):
data = ""
while True:
try:
tmp = os.read(fd, step)
if not tmp:
return data if data else None
data += tmp
except OSError as e:
if e.args[0] == errno.EWOULDBLOCK:
break
else:
raise
return data
@engine
def stop():
yield Task(io_loop.add_timeout, timedelta(milliseconds=STOP_DELAY))
io_loop.stop()
def process_socket_errno(no):
log("[E]", errno.errorcode[no] + ":", os.strerror(no))
if no == errno.ECONNRESET:
update_final_status("RESET")
else:
update_final_status(errno.errorcode[no])
io_loop.remove_handler(s.fileno())
io_loop.remove_handler(datasource.fileno())
stop()
def on_socket_events(fd, events):
if events & io_loop.READ:
try:
data = read_till_block(fd)
except OSError as e:
process_socket_errno(e.args[0])
return
if data is not None:
with ExceptionIgnored():
sys.stdout.write(data)
received.write(data)
else:
log("[I]", "Socket closed.")
update_final_status("DISCONNECTED")
io_loop.remove_handler(s.fileno())
io_loop.remove_handler(datasource.fileno())
stop()
#.........这里部分代码省略.........