本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008
一图看懂 autopep8 模块:自动格式化Python代码,以使其符合PEP8规范,资料整理+笔记(大全)
- 🧊摘要
- 🧊模块图
- 🧊类关系图
- 🧊模块全展开
- ☘️【autopep8】
- 🔵统计
- 🔵常量
- 🔵模块
- 🔵函数
- 🌿36 open_with_encoding(filename, mode='r', encoding=None, limit_byte_check=-1)
- 🌿37 detect_encoding(filename, limit_byte_check=-1)
- 🌿38 readlines_from_file(filename)
- 🌿39 extended_blank_lines(logical_line, blank_lines, blank_before, indent_level, previous_logical)
- 🌿40 continued_indentation(logical_line, tokens, indent_level, hang_closing, indent_char, noqa)
- 🌿41 get_module_imports_on_top_of_file(source, import_line_index)
- 🌿42 get_index_offset_contents(result, source)
- 🌿43 get_fixed_long_line(target, previous_line, original, indent_word=' ', max_line_length=79, aggressive=False, experimental=False, verbose=False)
- 🌿44 longest_line_length(code)
- 🌿45 join_logical_line(logical_line)
- 🌿46 untokenize_without_newlines(tokens)
- 🌿47 _find_logical(source_lines)
- 🌿48 _get_logical(source_lines, result, logical_start, logical_end)
- 🌿49 get_item(items, index, default=None)
- 🌿50 reindent(source, indent_size, leave_tabs=False)
- 🌿51 code_almost_equal(a, b)
- 🌿52 split_and_strip_non_empty_lines(text)
- 🌿53 refactor(source, fixer_names, ignore=None, filename='')
- 🌿54 code_to_2to3(select, ignore, where='', verbose=False)
- 🌿55 fix_2to3(source, aggressive=True, select=None, ignore=None, filename='', where='global', verbose=False)
- 🌿56 find_newline(source)
- 🌿57 _get_indentword(source)
- 🌿58 _get_indentation(line)
- 🌿59 get_diff_text(old, new, filename)
- 🌿60 _priority_key(pep8_result)
- 🌿61 shorten_line(tokens, source, indentation, indent_word, max_line_length, aggressive=False, experimental=False, previous_line='')
- 🌿62 _shorten_line(tokens, source, indentation, indent_word, aggressive=False, previous_line='')
- 🌿63 _is_binary_operator(token_type, text)
- 🌿64 _parse_container(tokens, index, for_or_if=None)
- 🌿65 _parse_tokens(tokens)
- 🌿66 _reflow_lines(parsed_tokens, indentation, max_line_length, start_on_prefix_line)
- 🌿67 _shorten_line_at_tokens_new(tokens, source, indentation, max_line_length)
- 🌿68 _shorten_line_at_tokens(tokens, source, indentation, indent_word, key_token_strings, aggressive)
- 🌿69 token_offsets(tokens)
- 🌿70 normalize_multiline(line)
- 🌿71 fix_whitespace(line, offset, replacement)
- 🌿72 _execute_pep8(pep8_options, source)
- 🌿73 _remove_leading_and_normalize(line, with_rstrip=True)
- 🌿74 _reindent_stats(tokens)
- 🌿75 _leading_space_count(line)
- 🌿76 refactor_with_2to3(source_text, fixer_names, filename='')
- 🌿77 check_syntax(code)
- 🌿78 find_with_line_numbers(pattern, contents)
- 🌿79 get_disabled_ranges(source)
- 🌿80 filter_disabled_results(result, disabled_ranges)
- 🌿81 filter_results(source, results, aggressive)
- 🌿82 multiline_string_lines(source, include_docstrings=False)
- 🌿83 commented_out_code_lines(source)
- 🌿84 shorten_comment(line, max_line_length, last_comment=False)
- 🌿85 normalize_line_endings(lines, newline)
- 🌿86 mutual_startswith(a, b)
- 🌿87 code_match(code, select, ignore)
- 🌿88 fix_code(source, options=None, encoding=None, apply_config=False)
- 🌿108 standard_deviation(numbers)
- 🌿109 has_arithmetic_operator(line)
- 🌿110 count_unbalanced_brackets(line)
- 🌿111 split_at_offsets(line, offsets)
- 🌿116 is_python_file(filename)
- 🌿117 is_probably_part_of_multiline(line)
- 🌿118 wrap_output(output, encoding)
- 🌿119 get_encoding()
- 🌿120 main(argv=None, apply_config=True)
- 🔵类
- 🌿121 configparser.ConfigParser
- 🌿122 configparser.Error
- 🌿123 autopep8.FixPEP8
- method
- 1 fix(self)
- 2 fix_e112(self, result)
- 3 fix_e113(self, result)
- 4 fix_e116(self, result)
- 5 fix_e117(self, result)
- 6 fix_e125(self, result)
- 7 fix_e131(self, result)
- 8 fix_e201(self, result)
- 9 fix_e224(self, result)
- 10 fix_e225(self, result)
- 11 fix_e231(self, result)
- 12 fix_e251(self, result)
- 13 fix_e262(self, result)
- 14 fix_e265(self, result)
- 15 fix_e266(self, result)
- 16 fix_e271(self, result)
- 17 fix_e301(self, result)
- 18 fix_e302(self, result)
- 19 fix_e303(self, result)
- 20 fix_e304(self, result)
- 21 fix_e305(self, result)
- 22 fix_e401(self, result)
- 23 fix_e402(self, result)
- 24 fix_e502(self, result)
- 25 fix_e701(self, result)
- 26 fix_e702(self, result, logical)
- 27 fix_e704(self, result)
- 28 fix_e711(self, result)
- 29 fix_e712(self, result)
- 30 fix_e713(self, result)
- 31 fix_e714(self, result)
- 32 fix_e722(self, result)
- 33 fix_e731(self, result)
- 34 fix_long_line(self, target, previous_line,
- 35 fix_long_line_logically(self, result, logical)
- 36 fix_long_line_physically(self, result)
- 37 fix_w291(self, result)
- 38 fix_w391(self, _)
- 39 fix_w503(self, result)
- 40 fix_w504(self, result)
- 41 fix_w605(self, result)
- 🌿124 autopep8.Token
- 🌿125 autopep8.ReformattedLines
- method
- 1 add(self, obj, indent_amt, break_after_open_bracket)
- 2 add_comment(self, item)
- 3 add_indent(self, indent_amt)
- 4 add_line_break(self, indent)
- 5 add_line_break_at(self, index, indent_amt)
- 6 add_space_if_needed(self, curr_text, equal=False)
- 7 current_size(self)
- 8 emit(self)
- 9 fits_on_current_line(self, item_extent)
- 10 line_empty(self)
- 11 previous_item(self)
- 🌿126 autopep8.Atom
- 🌿127 autopep8.Container
- 🌿128 autopep8.Tuple
- 🌿129 autopep8.List
- 🌿130 autopep8.DictOrSet
- 🌿131 autopep8.ListComprehension
- 🌿132 autopep8.IfExpression
- 🌿133 autopep8.Reindenter
- 🌿134 autopep8.LineEndingWrapper
- 🌿135 autopep8.CachedTokenizer
- 🔵私有或局部
- 🔵剩余
- ☘️【argparse】
- ☘️【codecs】
- ☘️【collections】
- ☘️【copy】
- ☘️【difflib】
- ☘️【fnmatch】
- ☘️【inspect】
- ☘️【io】
- ☘️【itertools】
- ☘️【keyword】
- ☘️【locale】
- ☘️【os】
- ☘️【re】
- ☘️【signal】
- ☘️【sys】
- ☘️【textwrap】
- ☘️【token】
- ☘️【tokenize】
- ☘️【warnings】
- ☘️【ast】
- ☘️【pycodestyle】
🧊摘要
🧊模块图
autopep8
◆argparse
◆difflib
◆locale
◆signal
◆token
🧊类关系图
◆object
autopep8.Atom
autopep8.CachedTokenizer
autopep8.Container
autopep8.DictOrSet
autopep8.IfExpression
autopep8.List
autopep8.ListComprehension
autopep8.Tuple
autopep8.FixPEP8
autopep8.LineEndingWrapper
autopep8.ReformattedLines
autopep8.Reindenter
◆tuple
autopep8.Token
🧊模块全展开
☘️【autopep8】
自动格式化Python代码以符合PEP 8风格指南。
只需要做一次的修复可以通过在这个模块中添加一个形式为"fix_<code>(source)"的函数来添加。
它们应该返回固定的源代码。这些修复由 apply_global_fixes() 获取。
依赖于 pycodestyle 的修复应该作为方法添加到 FixPEP8。
有关更多信息,请参阅类文档。
🔵统计
🔵常量
🌿int
🌿str
🌿tuple
🌿dict
🔵模块
🌿15 argparse
🌿16 codecs
🌿17 collections
🌿18 copy
🌿19 difflib
🌿20 fnmatch
🌿21 inspect
🌿22 io
🌿23 itertools
🌿24 keyword
🌿25 locale
🌿26 os
🌿27 re
🌿28 signal
🌿29 sys
🌿30 textwrap
🌿31 token
🌿32 tokenize
🌿33 warnings
🌿34 ast
🌿35 pycodestyle
🔵函数
🌿36 open_with_encoding(filename, mode=‘r’, encoding=None, limit_byte_check=-1)
返回具有特定编码的打开文件。
🌿37 detect_encoding(filename, limit_byte_check=-1)
返回文件编码。
🌿38 readlines_from_file(filename)
返回文件的内容。
🌿39 extended_blank_lines(logical_line, blank_lines, blank_before, indent_level, previous_logical)
检查类声明后是否缺少空行。
🌿40 continued_indentation(logical_line, tokens, indent_level, hang_closing, indent_char, noqa)
重写pycodestyle的函数以提供缩进信息。
🌿41 get_module_imports_on_top_of_file(source, import_line_index)
返回import 或者 从关键字位置
举例:
> 0: import sys
1: import os
2:
3: def function():
🌿42 get_index_offset_contents(result, source)
返回 (line_index, column_offset, line_contents)
🌿43 get_fixed_long_line(target, previous_line, original, indent_word=’ ', max_line_length=79, aggressive=False, experimental=False, verbose=False)
分割长行并返回结果。
为此,可以生成多个重新格式化的候选项,然后对候选项进行排序,以启发式地选择最佳选项。
🌿44 longest_line_length(code)
返回最长行的长度。
🌿45 join_logical_line(logical_line)
根据逻辑行输入返回单行。
🌿46 untokenize_without_newlines(tokens)
基于令牌返回源代码。
🌿47 _find_logical(source_lines)
🌿48 _get_logical(source_lines, result, logical_start, logical_end)
返回与结果对应的逻辑行。假设输入已经是E702-clean。
🌿49 get_item(items, index, default=None)
🌿50 reindent(source, indent_size, leave_tabs=False)
重新缩进所有行。
🌿51 code_almost_equal(a, b)
如果代码相似则返回True。在比较特定行时忽略空白。
🌿52 split_and_strip_non_empty_lines(text)
返回以换行符分隔的行。忽略空行。
🌿53 refactor(source, fixer_names, ignore=None, filename=‘’)
使用lib2to3返回重构的代码。如果在重构的代码中产生忽略字符串,则跳过。
🌿54 code_to_2to3(select, ignore, where=‘’, verbose=False)
🌿55 fix_2to3(source, aggressive=True, select=None, ignore=None, filename=‘’, where=‘global’, verbose=False)
修复各种不推荐的代码(通过lib2to3)。
🌿56 find_newline(source)
返回源中使用的换行符类型。输入是一个行列表。
🌿57 _get_indentword(source)
返回缩进类型。
🌿58 _get_indentation(line)
返回前导空格。
🌿59 get_diff_text(old, new, filename)
返回统一的新旧差异文本。
🌿60 _priority_key(pep8_result)
排序PEP8结果的关键字。
应该首先进行全局修复。这对于缩进很重要。
🌿61 shorten_line(tokens, source, indentation, indent_word, max_line_length, aggressive=False, experimental=False, previous_line=‘’)
在OPERATOR处单独行。将产生多名候选。
🌿62 _shorten_line(tokens, source, indentation, indent_word, aggressive=False, previous_line=‘’)
在OPERATOR处单独行。
除了多行字符串内部和末尾,输入应该没有换行符。将产生多名候选人。
🌿63 _is_binary_operator(token_type, text)
🌿64 _parse_container(tokens, index, for_or_if=None)
解析高级容器,如列表、元组等。
🌿65 _parse_tokens(tokens)
解析令牌。
这将令牌转换成一种更容易操作的形式。
🌿66 _reflow_lines(parsed_tokens, indentation, max_line_length, start_on_prefix_line)
重新绘制线条,使其看起来更漂亮。
🌿67 _shorten_line_at_tokens_new(tokens, source, indentation, max_line_length)
考虑到线的长度,缩短线。
除了多行字符串内部和末尾,输入应该没有换行符。
🌿68 _shorten_line_at_tokens(tokens, source, indentation, indent_word, key_token_strings, aggressive)
通过在键令牌字符串中截断令牌来分隔行。
除了多行字符串内部和末尾,输入应该没有换行符。
🌿69 token_offsets(tokens)
产生令牌和偏移量。
🌿70 normalize_multiline(line)
规范化会导致语法错误的多行相关代码。这是为了检查语法。
🌿71 fix_whitespace(line, offset, replacement)
替换偏移处的空白并返回固定行。
🌿72 _execute_pep8(pep8_options, source)
通过python方法调用执行pycodestyle。
🌿73 _remove_leading_and_normalize(line, with_rstrip=True)
🌿74 _reindent_stats(tokens)
返回(lineno, indentlevel)对的列表。
每个stmt和注释行对应一个。对于注释行,Indentlevel为-1,作为tokenize不知道如何处理它们的信号;的确,他们让我们头疼!
🌿75 _leading_space_count(line)
返回行中前导空格的数目。
🌿76 refactor_with_2to3(source_text, fixer_names, filename=‘’)
使用lib2to3重构源代码。返回重构的源代码。
🌿77 check_syntax(code)
如果语法正确,返回True。
🌿78 find_with_line_numbers(pattern, contents)
're.finditer'的包装器,用于查找行号。返回在内容中找到模式的行号列表。
🌿79 get_disabled_ranges(source)
返回表示禁用范围的元组列表。如果禁用且没有重新启用,则将禁用文件的其余部分。
🌿80 filter_disabled_results(result, disabled_ranges)
根据禁用范围的元组过滤出报告。
🌿81 filter_results(source, results, aggressive)
从pycodestyle中过滤掉虚假报告。如果aggressive为True,我们允许可能不安全的修复(E711, E712)。
🌿82 multiline_string_lines(source, include_docstrings=False)
返回多行字符串中的行号。行号以1为索引。文档字符串将被忽略。
🌿83 commented_out_code_lines(source)
返回可能是代码的注释行号。
注释掉的代码是不好的做法,但是修改它只会增加更多的混乱。
🌿84 shorten_comment(line, max_line_length, last_comment=False)
返回经过修剪或分割的长注释行。
如果后面没有注释,则进行文本换行。对所有注释进行这种换行通常会导致注释文本参差不齐。
🌿85 normalize_line_endings(lines, newline)
返回固定行结尾。所有行将被修改为使用最常用的行结束。
🌿86 mutual_startswith(a, b)
🌿87 code_match(code, select, ignore)
🌿88 fix_code(source, options=None, encoding=None, apply_config=False)
返回固定的源代码。如果"source"是字节串,"encoding"将用于解码"source"。
"```
### 🌿89 _get_options(raw_options, apply_config)
> _get_options(raw_options, apply_config), module=autopep8, line:3509 at site-packages\autopep8.py
返回解析后的选项。
### 🌿90 fix_lines(source_lines, options, filename='')
> fix_lines(source_lines, options, filename=''), module=autopep8, line:3533 at site-packages\autopep8.py
返回固定的源代码。
### 🌿91 fix_file(filename, options=None, output=None, apply_config=False)
> fix_file(filename, options=None, output=None, apply_config=False), module=autopep8, line:3575 at site-packages\autopep8.py
### 🌿92 global_fixes()
> global_fixes(), module=autopep8, line:3622 at site-packages\autopep8.py
产生多个(代码,函数)元组。
### 🌿93 _get_parameters(function)
> _get_parameters(function), module=autopep8, line:3635 at site-packages\autopep8.py
### 🌿94 apply_global_fixes(source, options, where='global', filename='', codes=None)
> apply_global_fixes(source, options, where='global', filename='', codes=None), module=autopep8, line:3649 at site-packages\autopep8.py
在源代码上运行全局修复程序。
这些修复只需要做一次(不像FixPEP8中的那些,它依赖于pycodestyle)。
### 🌿95 extract_code_from_function(function)
> extract_code_from_function(function), module=autopep8, line:3691 at site-packages\autopep8.py
由函数处理的返回代码。
### 🌿96 _get_package_version()
> _get_package_version(), module=autopep8, line:3708 at site-packages\autopep8.py
### 🌿97 create_parser()
> create_parser(), module=autopep8, line:3713 at site-packages\autopep8.py
返回命令行解析器。
### 🌿98 _expand_codes(codes, ignore_codes)
> _expand_codes(codes, ignore_codes), module=autopep8, line:3786 at site-packages\autopep8.py
扩展到单独的E/W代码
### 🌿99 parse_args(arguments, apply_config=False)
> parse_args(arguments, apply_config=False), module=autopep8, line:3824 at site-packages\autopep8.py
解析命令行选项。
### 🌿100 _get_normalize_options(args, config, section, option_list)
> _get_normalize_options(args, config, section, option_list), module=autopep8, line:3958 at site-packages\autopep8.py
### 🌿101 read_config(args, parser)
> read_config(args, parser), module=autopep8, line:3978 at site-packages\autopep8.py
读取用户配置和本地配置。
### 🌿102 read_pyproject_toml(args, parser)
> read_pyproject_toml(args, parser), module=autopep8, line:4029 at site-packages\autopep8.py
读 pyproject.toml 和加载配置。
### 🌿103 _split_comma_separated(string)
> _split_comma_separated(string), module=autopep8, line:4086 at site-packages\autopep8.py
返回一组字符串。
### 🌿104 decode_filename(filename)
> decode_filename(filename), module=autopep8, line:4091 at site-packages\autopep8.py
返回Unicode文件名。
### 🌿105 supported_fixes()
> supported_fixes(), module=autopep8, line:4099 at site-packages\autopep8.py
产生autopep8修复的pep8错误代码。我们生成的每一项都是一个代码元组,后面跟着它的描述。
### 🌿106 docstring_summary(docstring)
> docstring_summary(docstring), module=autopep8, line:4127 at site-packages\autopep8.py
返回文档字符串的摘要。
### 🌿107 line_shortening_rank(candidate, indent_word, max_line_length, experimental=False)
> line_shortening_rank(candidate, indent_word, max_line_length, experimental=False), module=autopep8, line:4132 at site-packages\autopep8.py
返回候选人的级别。这是用来排序候选人的。
"```
🌿108 standard_deviation(numbers)
返回标准差。
🌿109 has_arithmetic_operator(line)
如果行包含任何算术运算符则返回True。
🌿110 count_unbalanced_brackets(line)
返回不匹配的开/闭括号的个数。
🌿111 split_at_offsets(line, offsets)
在偏移量处分割行。返回字符串列表。
"```
### 🌿112 match_file(filename, exclude)
> match_file(filename, exclude), module=autopep8, line:4347 at site-packages\autopep8.py
如果文件可以修改/递归,返回True。
### 🌿113 find_files(filenames, recursive, exclude)
> find_files(filenames, recursive, exclude), module=autopep8, line:4366 at site-packages\autopep8.py
Yield文件名。
### 🌿114 _fix_file(parameters)
> _fix_file(parameters), module=autopep8, line:4388 at site-packages\autopep8.py
用于可选地并行运行fix_file()的辅助函数。
### 🌿115 fix_multiple_files(filenames, options, output=None)
> fix_multiple_files(filenames, options, output=None), module=autopep8, line:4399 at site-packages\autopep8.py
修复文件列表。可选地递归修复文件。
"```
🌿116 is_python_file(filename)
如果filename是Python文件返回True。
🌿117 is_probably_part_of_multiline(line)
如果line可能是多行字符串的一部分,则返回True。当涉及到多行字符串时,pep8将错误报告为位于多行字符串的开头,这对我们来说不起作用。
🌿118 wrap_output(output, encoding)
返回带有指定编码的输出。
🌿119 get_encoding()
返回首选编码。
🌿120 main(argv=None, apply_config=True)
命令行条目。
🔵类
🌿121 configparser.ConfigParser
ConfigParser实现插值。
method
在配置中创建一个新部分。RawConfigParser.add_section 延伸,通过验证节名是否为字符串来添加节。
"```
> #### 2 set(self, section, option, value=None)
> kind=method class=ConfigParser objtype=function line:1194 at ...\configparser.py
设置一个选项。RawConfigParser.set 延伸,通过验证值的类型和插值语法来设置。
"```
🌿122 configparser.Error
ConfigParser异常的基类。
🌿123 autopep8.FixPEP8
修复无效代码。
Fixer方法的前缀是"fix_"。_fix_source()方法会自动查找这些错误。
fixer方法可以接受一个或两个参数(除了self)。第一个参数是"result",它是pycodestyle中的错误信息。
第二个参数“logical”仅用于逻辑行修复。
fixer方法可以返回修改行列表或None。空列表意味着没有做任何更改。
没有表示只修改了pycodestyle错误中报告的行。
注意,返回的修改后的行号以1为索引。
这通常与pycodestyle错误信息中报告的行号相对应。
[固定方法列表]
- e111,e114,e115,e116
- e121,e122,e123,e124,e125,e126,e127,e128,e129
- e201,e202,e203
- e211
- e221,e222,e223,e224,e225
- e231
- e251,e252
- e261,e262
- e271,e272,e273,e274,e275
- e301,e302,e303,e304,e305,e306
- e401,e402
- e502
- e701,e702,e703,e704
- e711,e712,e713,e714
- e722
- e731
- w291
- w503,504
method
返回修复了PEP 8违规的源代码版本。
修复缩进不足的注释。
修复意外缩进。
修复过度缩进的注释。
修复over-indented。
修复与下一个逻辑行不区分的缩进。
修复与下一个逻辑行不区分的缩进。
删除多余的空白。
删除操作符周围多余的空白。
修复了操作符周围缺失的空白。
添加缺失的空白。
删除参数'='符号周围的空白。
修复内联注释散列后的空格。
修复块注释散列后的空格。
修复了过多的块注释哈希。
修复关键字周围多余的空白。
添加缺失的空行。
添加缺失的2个空白行。
删除多余的空行。
删除函数装饰器后面的空白行。
在函数或类结束后添加缺失的2个空行。
将导入放到单独的行上。
删除多余的换行符。
将冒号分隔的复合语句放在单独的行上。
将分号分隔的复合语句放在单独的行上。
修复一行定义中的多条语句
修复与None的比较。
修复与布尔值的比较(微不足道的情况)。
修复非成员性检查的问题。
修复对象标识应该是'is not'的情况。
修复裸除
修复了不分配lambda表达式检查的问题。
尽量使行适合 --max-line-length 字符。
尽量使行适合 --max-line-length 字符。
删除尾随空格。
删除尾随的空行。
🌿124 autopep8.Token
Token(token_type, token_string, spos, epos, line)
property
🌿125 autopep8.ReformattedLines
原子的回流线。
这条线的每一部分都表示为一个“原子”。可以在需要时移动它们以获得最佳格式。
method
当前行的大小减去缩进。
返回前一个非空白项。
🌿126 autopep8.Atom
可以回流的最小的牢不可破的单元。
property
method
🌿127 autopep8.Container
所有容器类型的基类。
property
method
🌿128 autopep8.Tuple
元组的高级表示。
property
🌿129 autopep8.List
列表的高级表示形式。
property
🌿130 autopep8.DictOrSet
字典或集合的高级表示形式。
property
🌿131 autopep8.ListComprehension
列表推导式的高级表示形式。
property
🌿132 autopep8.IfExpression
if表达式的高级表示形式。
🌿133 autopep8.Reindenter
重新缩进严重缩进的代码,统一使用四个空格缩进。由Tim Peters于2000年10月3日发布到公共领域。
"```
#### method
> #### 1 getline(self)
> kind=method class=Reindenter objtype=function line:3103 at ...\lib\site-packages\autopep8.py
用于标记的行getter。
> #### 2 run(self, indent_size=DEFAULT_INDENT_SIZE)
> kind=method class=Reindenter objtype=function line:3021 at ...\lib\site-packages\autopep8.py
修复缩进并返回修改后的行号。行号以1为索引。
"```
🌿134 autopep8.LineEndingWrapper
将行尾替换为sys.stdout。似乎……无论平台如何,标准输出只期望'\n'作为行结尾。否则,我们会得到重复的行尾。
method
🌿135 autopep8.CachedTokenizer
围绕 tokenize.generate_tokens() 的单元素缓存。
原始代码由Ned Batchelder编写,在coverage.py中。
method
tokenize.generate_tokens() 标准输入。