portability
#
跨操作系统可移植性的工具。
函数#
|
|
|
|
|
使用提供的 new_prefix 替换 placeholder 文本。提供的 mode 可以是 |
|
执行 data 的二进制替换,其中占位符 search 是 |
|
|
|
代码改编自 pyzzer。这旨在处理由 distlib 创建的入口点 exe, |
|
|
|
此函数可用于为 Python 入口点生成 shebang 行。 |
属性#
- SHEBANG_REGEX = b'^(#!(?:[ ]*)(/(?:\\\\ |[^ \\n\\r\\t])*)(.*))$'#
- MAX_SHEBANG_LENGTH#
- POPULAR_ENCODINGS = ('utf-8', 'utf-16-le', 'utf-16-be', 'utf-32-le', 'utf-32-be')#
- update_prefix(path, new_prefix, placeholder=PREFIX_PLACEHOLDER, mode=FileMode.text, subdir=context.subdir)#
- replace_prefix(mode: conda.models.enums.FileMode, data: bytes, placeholder: str, new_prefix: str, subdir: str = 'noarch') bytes #
使用提供的 new_prefix 替换 placeholder 文本。提供的 mode 可以是文本或二进制。
我们使用上面定义的 POPULAR_ENCODINGS 模块级常量,对替换占位符进行多次尝试。我们这样做是为了尽可能多地考虑编码。如果这在未来引起任何性能问题,则可能会将其删除(即仅使用最流行的“utf-8”编码”)。
更多信息/讨论请见此处: conda/conda#9946
- binary_replace(data: bytes, search: bytes, replacement: bytes, encoding: str = 'utf-8', subdir: str = 'noarch') bytes #
执行 data 的二进制替换,其中占位符 search 被替换为 replacement,剩余的字符串用空字符填充。所有输入参数都应为字节对象。
- 参数:
data -- 将被搜索和替换的字节对象
search -- 要查找的字节对象
replacement -- 将替换 search 的字节对象
encoding (str) -- 二进制文件中预期字符串的编码。
- has_pyzzer_entry_point(data)#
- replace_pyzzer_entry_point_shebang(all_data, placeholder, new_prefix)#
代码改编自 pyzzer。这旨在处理由 distlib 创建的入口点 exe,它由启动器、shebang 和要运行的入口点代码的 zip 存档组成。我们需要更改 shebang。 https://bitbucket.org/vinay.sajip/pyzzer/src/5d5740cb04308f067d5844a56fbe91e7a27efccc/pyzzer/__init__.py?at=default&fileviewer=file-view-default#__init__.py-112 # NOQA
- replace_long_shebang(mode, data)#
- generate_shebang_for_entry_point(executable, with_usr_bin_env=False)#
此函数可用于为 Python 入口点生成 shebang 行。
用例: - 在安装/链接时,生成 noarch: python 入口点。 - conda init 使用它在 conda-build 期间创建自己的入口点