跳转到主要内容

各种Python实用函数

项目描述

Boxine - bx_py_utils

各种Python实用函数

tests codecov bx_py_utils @ PyPi Python Versions License MIT

快速入门

pip install bx_py_utils

现有内容

这里只列出了现有工具的简单列表。请查看源代码和测试以获取更多信息。

bx_py_utils.anonymize

  • anonymize() - 对给定的字符串进行匿名化处理,特别处理电子邮件地址,并提供截断输出的可能性。
  • anonymize_dict() - 返回一个新的字典,其中包含包含给定关键字之一的键的匿名化值。

bx_py_utils.auto_doc

bx_py_utils.aws.client_side_cert_manager

bx_py_utils.aws.secret_manager

bx_py_utils.compat

bx_py_utils.dict_utils

bx_py_utils.doc_write

文档写入,见:https://github.com/boxine/bx_py_utils/blob/master/bx_py_utils/doc_write/README.md

bx_py_utils.environ

bx_py_utils.error_handling

  • print_exc_plus() - 打印带有每个框架中所有局部变量列表的跟踪信息。

bx_py_utils.file_utils

  • EmptyFileError() - 如果找到 0 字节的文件,则从 get_and_assert_file_size() 中引发。
  • FileError() - 所有 'file_utils' 异常的基础错误类。
  • FileHasher() - 在处理文件时,生成不同哈希值的上下文管理器。
  • FileSizeError() - 文件大小与预期大小不符。
  • NamedTemporaryFile2() - 使用给定的文件名生成一个临时文件,且不带任何随机名称序列。
  • OverlongFilenameError() - cut_filename() 错误:文件名无法缩短,因为后缀太短。
  • TempFileHasher() - 将 NamedTemporaryFile2 和 FileHasher 结合起来的文件类上下文管理器。
  • cut_filename() - 缩短文件名(并保留最后一个后缀)。如果无法适应,则引发 OverlongFilenameError。
  • get_and_assert_file_size() - 检查给定文件对象的文件大小。对于空文件引发 EmptyFileError,或返回大小。
  • safe_filename() - 将任意输入转换为适合用作文件名的形式。

bx_py_utils.filename_matcher

bx_py_utils.graphql_introspection

bx_py_utils.hash_utils

bx_py_utils.html_utils

bx_py_utils.humanize.pformat

  • pformat() - 格式化给定的对象:首先尝试 JSON,然后回退到 pformat()。

bx_py_utils.humanize.time

bx_py_utils.import_utils

  • import_string() - 导入点模块路径,并返回路径中最后一个名称指定的属性/类。

bx_py_utils.iteration

  • chunk_iterable() - 返回一个生成器,该生成器产生具有给定 chunk_size 的可迭代对象切片。

bx_py_utils.path

bx_py_utils.processify

bx_py_utils.pyproject_toml

bx_py_utils.rison

  • rison_dumps() - 将数据编码为 RISON,一种 URL 安全的编码格式。

bx_py_utils.stack_info

bx_py_utils.string_utils

bx_py_utils.test_utils.assertion

bx_py_utils.test_utils.context_managers

bx_py_utils.test_utils.datetime

  • parse_dt() - 通过字符串轻松生成 datetime 实例的帮助程序。

bx_py_utils.test_utils.deny_requests

bx_py_utils.test_utils.filesystem_utils

bx_py_utils.test_utils.log_utils

  • NoLogs() - 用于抑制所有日志输出的上下文管理器。
  • RaiseLogUsage() - 在每次日志输出时引发错误的日志处理程序。

bx_py_utils.test_utils.mock_aws_secret_manager

bx_py_utils.test_utils.mock_boto3session

bx_py_utils.test_utils.mock_uuid

  • MockUUIDGenerator() - 用于模拟 uuid.uuid4() 以获得可重复结果的辅助工具(例如,用于快照测试)。

bx_py_utils.test_utils.mocks3

Boto3 S3模块的简单模拟。

bx_py_utils.test_utils.redirect

  • RedirectOut() - 将标准输出和标准错误重定向到缓冲区(可选地剥离输出)。

bx_py_utils.test_utils.requests_mock_assertion

bx_py_utils.test_utils.snapshot

通过自动更新的快照文件和漂亮的差异错误消息断言复杂输出。

bx_py_utils.test_utils.time

bx_py_utils.test_utils.unittest_utils

  • BaseDocTests() - 用于在单元测试中包含所有 doctests 的辅助工具,无需更改单元测试设置。只需添加一个普通的 TestCase。
  • assert_no_flat_tests_functions() - 检查是否存在普通测试函数(这些函数不会由正常的单元测试执行)。

bx_py_utils.test_utils.xlsx

  • FreezeXlsxTimes() - 用于冻结xlsx文件创建时间的上下文管理器/装饰器,例如:openpyxl。
  • generate_xlsx_md_snapshot() - 生成一个XLSX的Markdown快照:显示ZIP信息和工作表内容作为Markdown。
  • xlsx2dict() - 将XLSX文件内容转换为字典:每个工作表是一个键,值是一个字典列表。
  • xlsx2markdown() - 将XLSX的所有工作表转换为Markdown表格。

bx_py_utils.test_utils.zip_file_utils

  • FreezeZipFileDatetime() - 用于冻结写入ZIP文件中的文件修改时间的上下文管理器/装饰器。
  • zip_info() - 生成类似于unzip -v的信息:为ZIP文件中的每个文件产生ZipFileInfo。
  • zip_info_markdown() - 生成ZIP文件内容的Markdown表示。类似于unzip -v的输出。

bx_py_utils.text_tools

  • cutout() - 使用行号+列和周围的上下文行标记长文本中的一个点。

关于快照的说明

关于快照的快速提示。如果你在项目中有很多快照,并且需要通过代码更改更改很多,那么你可以通过在环境中设置RAISE_SNAPSHOT_ERRORS=0来运行测试,而不会因为快照更改导致错误。

例如。

RAISE_SNAPSHOT_ERRORS=0 python3 -m unittest

使用以下方法更新所有快照文件

make update-test-snapshot-files

不兼容的更改

v36 -> v37 - 外包Django内容

我们拆分了bx_py_utils,并将所有与Django相关的实用工具移动到了单独的项目中

因此,bx_py_utils在非Django项目中更具可用性,因为Django将不会作为“bx_py_utils”的合适部分安装

开发

要开始开发,例如。

~$ git clone https://github.com/boxine/bx_py_utils.git
~$ cd bx_py_utils
~/bx_py_utils$ make
help                       List all commands
install-base-req           Install needed base packages via apt
install                    Install the project in a Python virtualenv
update-requirements        Update requirements
lint                       Run code formatters and linter
fix-code-style             Fix code formatting
tox-listenvs               List all tox test environments
tox                        Run tests via tox with all environments
test                       Run tests
coverage                   Run tests with coverage
update-test-snapshot-files Update all snapshot files (by remove and recreate all snapshot files)
mypy                       Run mypy
safety                     Run https://github.com/pyupio/safety
publish                    Release new version to PyPi
clean                      Remove created files from the test project

创建一个版本

  • bx_py_utils/__init__.py中增加版本号
  • 创建pull request
  • 合并后,调用:make publish

许可证

MIT. 欢迎补丁!

关于我们

我们一直在重新思考孩子的听觉体验,并创建了一个通过智能技术(Toniebox)结合触觉和听觉体验的生态系统。

我们一直在寻找工程师加入我们团队的各个领域。如果您有兴趣为我们的平台做出贡献,请查看:https://tonies.com/jobs/

链接

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

bx_py_utils-104.tar.gz (190.9 kB 查看哈希值)

上传时间

构建分发

bx_py_utils-104-py3-none-any.whl (175.5 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面