stdlib“tokenize”的包装器。

tokenize-rt的Python项目详细描述


Build StatusAzure DevOps coverage

标记化rt

stdlibtokenize模块不能正确往返。这个包装纸 stdlib周围提供了两个额外的令牌ESCAPED_NLUNIMPORTANT_WS,和Token数据类型。使用src_to_tokenstokens_to_src往返。

如果要基于 python标记化。

安装

pip install tokenize-rt

用法

数据结构

tokenize_rt.Offset(line=None, utf8_byte_offset=None)

标记偏移量,在交叉引用ast和 标记化源。

tokenize_rt.Token(name, src, line=None, utf8_byte_offset=None)

构造标记

  • name:列出在token.tok_nameESCAPED_NLUNIMPORTANT_WS
  • src:令牌的源代码为文本
  • line:此标记出现的行号。这将是NoneESCAPED_NLUNIMPORTANT_WS标记。
  • utf8_byte_offset:此标记出现在 行。对于ESCAPED_NLUNIMPORTANT_WS令牌,这将是None

tokenize_rt.Token.offset

检索此令牌的Offset

转换到和从Token表示

tokenize_rt.src_to_tokens(text: str) -> List[Token]

tokenize_rt.tokens_to_src(Iterable[Token]) -> str

tokenize-rt

添加的附加令牌

tokenize_rt.ESCAPED_NL

tokenize_rt.UNIMPORTANT_WS

助手

tokenize_rt.NON_CODING_TOKENS

包含标记的frozenset,这些标记可能出现在其他标记之间,而不是 影响控制流或代码:

  • COMMENT
  • ESCAPED_NL
  • NL
  • UNIMPORTANT_WS

tokenize_rt.parse_string_literal(text: str) -> Tuple[str, str]

将字符串文本解析为其前缀和字符串内容

>>> parse_string_literal('f"foo"')('f', '"foo"')

tokenize_rt.reversed_enumerate(Sequence[Token]) -> Iterator[Tuple[int, Token]]

产生(index, token)对。用于重写源代码。

tokenize_rt.rfind_string_parts(Sequence[Token], i) -> Tuple[int, ...]

查找(连接的)字符串文本的字符串部分的索引

  • i应该从字符串文本的结尾开始
  • 对于不是字符串文本的内容,返回()(空元组)
>>> tokens=src_to_tokens('"foo" "bar".capitalize()')>>> rfind_string_parts(tokens,2)(0, 2)>>> tokens=src_to_tokens('("foo" "bar").capitalize()')>>> rfind_string_parts(tokens,4)(1, 3)

tokenize

的区别
  • tokenize-rt为反斜杠转义的换行符“token”添加ESCAPED_NL
  • tokenize-rt为空白添加UNIMPORTANT_WS(在tokenize中丢弃)
  • tokenize-rt规范化字符串前缀,即使未对其进行分析-- 例如,这意味着即使在 Python2。
  • tokenize-rt规范化python 2长文本(4l/4L)和八进制 python 3中的文本(0755)(以便在 运行python 3)。

示例用法

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
正则表达式Java使用关键字拆分字符串   Neo4j Java API模式索引范围查找?   java访问JButton[]   java如何混淆tomcat日志文件中的请求属性   apache运行CGI Java程序   java从一个Eclipse插件开始,我如何通过编程使Eclipse编辑某个文件?   从php中的SQL数据库到Java中的多个值作为单独的变量   java如何在多个osgi捆绑包之间共享资源   datetime Java time,无法从历元秒解析年份   java无法在安卓应用程序中使用morpho指纹扫描仪设备捕获指纹   java使用groovy/ratpack发送电子邮件   javascript在jsp页面中添加验证,但在控制台中仍然显示一些错误   java如何修复com。mysql。jdbc。DocsConnectionPropsHelper   java AlertDialog dispatchTouchEvent