我们从Python开源项目中,提取了以下40个代码示例,用于说明如何使用tornado.options.options.parse_config_file()。
def parse_config_file(self, path, final=True): """Parses and loads the Python config file at the given path. If ``final`` is ``False``, parse callbacks will not be run. This is useful for applications that wish to combine configurations from multiple sources. .. versionchanged:: 4.1 Config files are now always interpreted as utf-8 instead of the system default encoding. """ config = {} with open(path, 'rb') as f: exec_in(native_str(f.read()), config, config) for name in config: normalized = self._normalize_name(name) if normalized in self._options: self._options[normalized].set(config[name]) if final: self.run_parse_callbacks()
def option_handle(): """?????????""" parse_command_line() if options.config: if os.path.exists(options.config): options.parse_config_file(options.config) else: print "can not find %s"%options.config print "usage:python %s --help"%os.path.basename(__file__) sys.exit(1) if options.voicelist: def _parse_voicelist(): return tornado.escape.json_decode(options.voicelist) global ALL_VOICE ALL_VOICE = _parse_voicelist() logging.debug("conf voicelist: %s", ALL_VOICE) if options.cache_dir: mkdir_p(options.cache_dir)
def parse_config_file(self, path, final=True): """Parses and loads the Python config file at the given path. If ``final`` is ``False``, parse callbacks will not be run. This is useful for applications that wish to combine configurations from multiple sources. """ config = {} with open(path) as f: exec_in(f.read(), config, config) for name in config: if name in self._options: self._options[name].set(config[name]) if final: self.run_parse_callbacks()
def parse_config_file(self, path, final=True): """Parses and loads the Python config file at the given path. If ``final`` is ``False``, parse callbacks will not be run. This is useful for applications that wish to combine configurations from multiple sources. .. versionchanged:: 4.1 Config files are now always interpreted as utf-8 instead of the system default encoding. """ config = {} with open(path, 'rb') as f: exec_in(native_str(f.read()), config, config) for name in config: if name in self._options: self._options[name].set(config[name]) if final: self.run_parse_callbacks()
def parse_config_file(self, path, final=True): """Parses and loads the Python config file at the given path. If ``final`` is ``False``, parse callbacks will not be run. This is useful for applications that wish to combine configurations from multiple sources. .. versionchanged:: 4.1 Config files are now always interpreted as utf-8 instead of the system default encoding. .. versionchanged:: 4.4 The special variable ``__file__`` is available inside config files, specifying the absolute path to the config file itself. """ config = {'__file__': os.path.abspath(path)} with open(path, 'rb') as f: exec_in(native_str(f.read()), config, config) for name in config: normalized = self._normalize_name(name) if normalized in self._options: self._options[normalized].set(config[name]) if final: self.run_parse_callbacks()
def parse_config_file(path, final=True): """Parses global options from a config file. See `OptionParser.parse_config_file`. """ return options.parse_config_file(path, final=final)
def main(): options.parse_command_line() if os.path.exists(options.configFile): try: options.parse_config_file(options.configFile) options.parse_command_line() except Exception, E: print("Invalid config file {0}".format(options.configFile)) print(E) sys.exit(1) # Set Log level log.setLevel(getLogLevel(options.logLevel)) if not options.cookieSecret: log.error("cookieSecret option required") sys.exit(1) detectProxy() mailer.setup(options.smtpServer, options.smtpPort, options.emailSender, options.smtpUseTLS) log.info("Server starting on {0}:{1}...".format(options.address, options.port)) http_server = Application() http_server.listen(options.port, options.address, xheaders=True) io_loop = tornado.ioloop.IOLoop.instance() if options.autoReload: log.debug("Starting autoreloader") tornado.autoreload.watch(CONFIG_FILE) for f in os.listdir(http_server.settings["template_path"]): fn = os.path.join(http_server.settings["template_path"], f) if os.path.isfile(fn): tornado.autoreload.watch(fn) tornado.autoreload.start(io_loop) log.info("Server started. Listening on {0}:{1}".format(options.address, options.port)) io_loop.start()
def load_config_file(conf_dir): default_conf = os.path.join(conf_dir, 'default.conf') define_options(default_conf) local_conf = os.path.join(conf_dir, 'local.conf') if os.path.isfile(local_conf): options.parse_config_file(local_conf, final=False)
def parse_config(path): try: options.parse_config_file(path=path, final=False) except IOError: print('[WARNING] File no readable, run with default settings')
def main(): options.parse_command_line() if os.path.exists(options.configFile): try: options.parse_config_file(options.configFile) options.parse_command_line() except Exception, E: print("Invalid config file {0}".format(options.configFile)) print(E) sys.exit(1) # Set Log level log.setLevel(getLogLevel(options.logLevel)) detectProxy() # Load the credentials from file log.info("Loading credentials") try: credentialsFile = options.credentialsFile Keys.loadFromFile(credentialsFile) except Exception as E: log.error("Error opening the credentials file: {0}".format(credentialsFile)) log.error(E) sys.exit(1) # TMP fix for 'ValueError: I/O operation on closed epoll fd' # Fixed in Tornado 4.2 tornado.ioloop.IOLoop.instance() # Sync time to CertiVox time server if options.syncTime: Time.getTime(wait=True) Keys.getAPISettings(wait=True) log.info("Server starting on {0}:{1}...".format(options.address, options.port)) http_server = Application() http_server.listen(options.port, options.address, xheaders=True) main_loop = tornado.ioloop.IOLoop.instance() http_server.io_loop = main_loop if options.autoReload: log.debug("Starting autoreloader") tornado.autoreload.watch(CONFIG_FILE) tornado.autoreload.start(main_loop) process_dynamic_options( DYNAMIC_OPTION_MAPPING, DYNAMIC_OPTION_HANDLERS, application=http_server, initial=True) log.info("Server started. Listening on {0}:{1}".format(options.address, options.port)) main_loop.start()
def main(): options.parse_command_line() if os.path.exists(options.configFile): try: options.parse_config_file(options.configFile) options.parse_command_line() except Exception, E: print("Invalid config file {0}".format(options.configFile)) print(E) sys.exit(1) # Set Log level log.setLevel(getLogLevel(options.logLevel)) detectProxy() # Load the credentials from file log.info("Loading credentials") try: credentialsFile = options.credentialsFile Keys.loadFromFile(credentialsFile) except Exception as E: log.error("Error opening the credentials file: {0}".format(credentialsFile)) log.error(E) sys.exit(1) # TMP fix for 'ValueError: I/O operation on closed epoll fd' # Fixed in Tornado 4.2 tornado.ioloop.IOLoop.instance() # Sync time to CertiVox time server if options.syncTime: Time.getTime(wait=True) if options.backup and options.encrypt_master_secret and not options.passphrase: options.passphrase = getpass.getpass("Please enter passphrase:") http_server = Application() http_server.listen(options.port, options.address, xheaders=True) io_loop = tornado.ioloop.IOLoop.instance() if options.autoReload: log.debug("Starting autoreloader") tornado.autoreload.watch(CONFIG_FILE) tornado.autoreload.start(io_loop) if options.syncTime and (options.timePeriod > 0): scheduler = tornado.ioloop.PeriodicCallback(Time.getTime, options.timePeriod, io_loop=io_loop) scheduler.start() log.info("Server started. Listening on {0}:{1}".format(options.address, options.port)) io_loop.start()
def define(self, name, default=None, type=None, help=None, metavar=None, multiple=False, group=None, callback=None): """Defines a new command line option. If ``type`` is given (one of str, float, int, datetime, or timedelta) or can be inferred from the ``default``, we parse the command line arguments based on the given type. If ``multiple`` is True, we accept comma-separated values, and the option value is always a list. For multi-value integers, we also accept the syntax ``x:y``, which turns into ``range(x, y)`` - very useful for long integer ranges. ``help`` and ``metavar`` are used to construct the automatically generated command line help string. The help message is formatted like:: --name=METAVAR help string ``group`` is used to group the defined options in logical groups. By default, command line options are grouped by the file in which they are defined. Command line option names must be unique globally. They can be parsed from the command line with `parse_command_line` or parsed from a config file with `parse_config_file`. If a ``callback`` is given, it will be run with the new value whenever the option is changed. This can be used to combine command-line and file-based options:: define("config", type=str, help="path to config file", callback=lambda path: parse_config_file(path, final=False)) With this definition, options in the file specified by ``--config`` will override options set earlier on the command line, but can be overridden by later flags. """ if name in self._options: raise Error("Option %r already defined in %s" % (name, self._options[name].file_name)) frame = sys._getframe(0) options_file = frame.f_code.co_filename file_name = frame.f_back.f_code.co_filename if file_name == options_file: file_name = "" if type is None: if not multiple and default is not None: type = default.__class__ else: type = str if group: group_name = group else: group_name = file_name self._options[name] = _Option(name, file_name=file_name, default=default, type=type, help=help, metavar=metavar, multiple=multiple, group_name=group_name, callback=callback)
def define(self, name, default=None, type=None, help=None, metavar=None, multiple=False, group=None, callback=None): """Defines a new command line option. If ``type`` is given (one of str, float, int, datetime, or timedelta) or can be inferred from the ``default``, we parse the command line arguments based on the given type. If ``multiple`` is True, we accept comma-separated values, and the option value is always a list. For multi-value integers, we also accept the syntax ``x:y``, which turns into ``range(x, y)`` - very useful for long integer ranges. ``help`` and ``metavar`` are used to construct the automatically generated command line help string. The help message is formatted like:: --name=METAVAR help string ``group`` is used to group the defined options in logical groups. By default, command line options are grouped by the file in which they are defined. Command line option names must be unique globally. They can be parsed from the command line with `parse_command_line` or parsed from a config file with `parse_config_file`. If a ``callback`` is given, it will be run with the new value whenever the option is changed. This can be used to combine command-line and file-based options:: define("config", type=str, help="path to config file", callback=lambda path: parse_config_file(path, final=False)) With this definition, options in the file specified by ``--config`` will override options set earlier on the command line, but can be overridden by later flags. """ if name in self._options: raise Error("Option %r already defined in %s", name, self._options[name].file_name) frame = sys._getframe(0) options_file = frame.f_code.co_filename file_name = frame.f_back.f_code.co_filename if file_name == options_file: file_name = "" if type is None: if not multiple and default is not None: type = default.__class__ else: type = str if group: group_name = group else: group_name = file_name self._options[name] = _Option(name, file_name=file_name, default=default, type=type, help=help, metavar=metavar, multiple=multiple, group_name=group_name, callback=callback)