记录Tornado-4.0.2源码的阅读,学习,分析
1 from __future__ import absolute_import, division, print_function, with_statement
future_statement 即:from __futuren import XXX. 参见 XiaoKL学Python(C)__future__
1 import datetime 2 import numbers 3 import re 4 import sys 5 import os 6 import textwrap
1 from tornado.escape import _unicode 2 from tornado.log import define_logging_options 3 from tornado import stack_context 4 from tornado.util import basestring_type, exec_in
该类负责解析命令行的Option, 每个option被抽象为类_Option的对象。
代表命令行上的每个option,该类为内部类。
定义了一个全局的OptionParser对象。options.py提供的接口都是在该对象上进行操作的。
末尾调用了以下接口来将log相关的option添加到options.py模块中。
1 define_logging_options(options)
[Todo]
1 def define(name, default=None, type=None, help=None, metavar=None, 2 multiple=False, group=None, callback=None)
1 def parse_config_file(path, final=True)
import sys
https://docs.python.org/2/library/sys.html?highlight=sys#module-sys
sys._getframe([depth])
"Return a frame object from the call stack. If optional integer depth is given, return the frame
object that many calls below the top of the stack. If that is deeper than the call stack, ValueError
is raised. The default fordepth is zero, returning the frame at the top of the call stack."
在options.py中的使用,在OptionParser类的define方法的实现中:
1 frame = sys._getframe(0)
https://docs.python.org/2/library/inspect.html
"The inspect module provides several useful functions to help get information about live
objects such as modules, classes, methods, functions, tracebacks, frame objects, and code objects. "
该模块中包含 frame 类型(即: sys._getframe() 返回值的类型 )的说明。
mock 模块
Python中的单元测试。
1 def value(self): 2 return self.default if self._value is _Option.UNSET else self._value
1 _TIMEDELTA_ABBREV_DICT = dict( 2 (abbrev, full) for full, abbrevs in _TIMEDELTA_ABBREVS 3 for abbrev in abbrevs)
1 _FLOAT_PATTERN = r'[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?'
1. http://www.tornadoweb.org/en/stable/options.html