跳转到主要内容

通用Python工具

项目描述

https://travis-ci.org/visaplan/visaplan.tools.svg?branch=master https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336:target:https://pycqa.github.io/isort/

visaplan.tools

这是一个用于Python项目的实用模块集合。

特性

  • buildout模块,用于buildout构建的项目

    函数checkPathForPackage用于检查给定包是否与版本白名单匹配。如果您希望限制该包的版本而不实际需要它,则非常有用。

  • coding模块

    工厂函数,用于创建所需的safe_encode resp. safe_decode函数

  • classes模块

    从Python字典派生出的几个简单但有用的类,例如MirrorProxy

  • dates模块

    • 解析日期,支持多种格式

  • debug模块

    • trace_this装饰器

  • dicts模块

    • 与标准字典一起工作的几个工具

  • files模块

    • 与文件相关的函数;目前有make_mtime_checker

  • html模块

    • HtmlEntityProxy - 一个字典,当给定一个命名的HTML实体时返回Unicode字符

  • http模块

    • extract_hostname(使用url.split并引发ValueError

  • lands0模块

    • 用于处理列表和字符串的几个工具

  • minifuncs 模块

    • 非常小的函数,用于某些函数作为参数的情况

  • profile 模块

    • 一个 StopWatch 上下文管理器和 @profile 装饰器

  • sequences 模块

    • 用于序列的工具,例如 inject_indexes

  • sql 模块

    • 生成 SQL 语句的函数,包括 insertupdatedeleteselect

      visaplan.zope.reldb 包含了这个模块的一个副本,它使用 SQLAlchemy 占位符约定(:name)。

  • times 模块

    • 与日期和/或时间计算相关的函数

文档

这些模块由 doctests 进行文档说明。除此之外,我们还没有真正的用户文档(抱歉)。

安装

简单地通过 pip 安装 visaplan.tools

pip install visaplan.tools

或者将其添加到您的 buildout

[buildout]
...
eggs =
    visaplan.tools

然后运行 bin/buildout

贡献

支持

如果您遇到问题,请告诉我们;请使用上面提到的 问题跟踪器

许可协议

该项目采用 GNU 通用公共许可证 v2(GPLv2)。

待办事项

预计未来版本中的破坏性更改

  • 对于 dicts.update_dict 的签名更改(例如,第一个参数的名称:form –> dic

    (预计发布 2.0.0)

  • 移除已弃用的 .http 函数

    • http_statustext,因为 func 选项有问题

    • make_url

    (预计发布 1.5.0)

待修复的错误

  • 当前 .html.make_picture 函数创建带有宽度描述符的 srcset 属性,但没有 sizes 属性——这是使 srcset 受尊重所必需的!

其他要完成的事情

  • 在 .buildout 模块中使用 importlib-metadata

  • 将上述信息整理成一张漂亮的表格

贡献者

变更日志

1.5.0(预计)

破坏性更改

  • 移除已弃用的 .http 函数

    • http_statustext,因为 func 选项有问题

    • make_url

1.3.13 (2024-03-21)

新功能

  • 新增功能 .http.qad_hostname(仅适用于有效的绝对 URL)

改进

  • 改进 .words.head 以避免隐式字符串解码

杂项

  • 我们明确指出,我们的 .words.head 函数不能正确处理 HTML 标记(但仅在不请求的情况下转义实体)。请使用 visaplan.kitchen.extract 中的类似函数。

[tobiasherp]

1.3.12 (2023-05-02)

改进

  • .buildout.checkPathForPackage

    • invalid(路径条目)的默认值更改为 WARN,因为我们得到了找不到包的错误异常。

    • 由于我们现在需要 importlib-metadata,.buildout.checkPathForPackage 不再扫描 sys.path 以查找给定的包(除非指定为 path 或通过 use_importlib=False 请求),而是尝试 importlib_metadata.version()。

需求

[tobiasherp]

1.3.11 (2023-03-21)

  • 在 .minifuncs 模块中的新功能

    • NoneOrFloat

    • NoneOrDecimal

[tobiasherp]

1.3.10 (2023-03-08)

新功能

  • 新模块 .minicurr,用于将一些流行的货币规范映射到它们各自的 ISO 4217 代码

  • 新功能 .minifuncs.is_nonempty_string

[tobiasherp]

1.3.9 (2022-11-21)

错误修复

  • `.html.make_picture` 不支持 `sizes` 选项。我们现在支持 img[srcset](目前还不支持 picture 元素)。

改进

  • `.html.make_picture`

    • img_style 选项

[tobiasherp]

1.3.8 (2022-09-20)

改进

  • `.html.make_picture`

    • rel 选项(意味着 <a> 元素和需要 href

    • outer_class 选项(用于最外层元素;与 img_class 一起使用,没有 <a>,意味着一个 <div>

    • 改进的内部 need_picture 标准

[tobiasherp]

1.3.7 (2021-10-27)

新功能

  • .html 模块

    • 新函数 from_plain_text

    • 新的字符生成器 entity_aware

  • .words 模块

    • head 的新选项

      • detect_entities(使用 .html.entity_aware

      • max_fuzz

      • return_tuple

[tobiasherp]

1.3.6 (2021-10-06)

新功能

  • .words 模块,提供 head 函数

[tobiasherp]

1.3.5.post2(2021-10-01)

修正了变更列表。[tobiasherp]

1.3.5 (2021-09-07)

新功能

  • .html.make_picture 函数用于创建一个 <img> 元素,根据需要包裹在 <picture> 和 / 或 <a> 元素中(目前仅限于一个 <source>,且不支持 sizes 属性)

  • .lands0 模块

    • 新函数 conflate 用于合并字符串,具有简单的移除相同前导词功能;允许非默认或抑制排序

    • 键函数 nouns_first,例如用于与 conflate 一起使用

[tobiasherp]

1.3.4.post2(2021-10-01)

修正了变更列表。[tobiasherp]

1.3.4 (2021-03-24)

新功能

  • 新函数 minifuncs.extract_float

[tobiasherp]

1.3.3.post2(2021-10-01)

修正了变更列表。[tobiasherp]

1.3.3 (2021-01-12)

杂项

  • 以下 .http 函数已弃用

    • http_statustext,因为 func 选项有问题

    • make_url,因为它没有满足名字所暗示的承诺。

    安装了 zope.deprecation 后,在第一次使用时将发出弃用警告。

[tobiasherp]

1.3.2 (2021-01-05)

错误修复

  • .sql.subdict_ne 如果检查的表单数据包含列表值,则会产生 TypeError 异常。

[tobiasherp]

1.3.1 (2020-12-16)

破坏性更改

  • .lands0.list_of_strings 现在默认分割字符串,就像 str.split 方法(在内部使用)一样,一个 None 分割字符会导致使用任何空白进行分割

    • 要抑制分割,您现在可以指定 splitfunc=False,这将意味着要 去除,至少……

    • ……除非同时给出 splitchar=False

    • ……除非 splitchar=False 也给出。

错误修复

  • .lands0.list_of_strings 默认不分割字符串……

    (您 依赖 这个错误,是吗?!)

新功能

  • 新类 .dicts.ChangesCollector;允许收集列表的添加和删除(请参阅 doctests)。如果安装了 collections-extended,则使用 setlist 类,一个“有序集合”。

改进

  • .sequences.nonempty_lines 现在接受一个函数参数,默认:string.strip

新功能

  • 新模块 sql,有助于生成 SQL 语句;然而,它并不试图提供任何类型的对象关系映射。

    以下函数返回一个包含占位符和值字典的语句字符串

    • 插入

    • 更新

    • 删除

    • 选择

    (来自 visaplan.plone.sqlwrapper v1.0.2 的 utils 模块的修改版),以下未完成的功能已被删除

    • make_grouping_wrapper(包括辅助函数 _groupable_spectup

    • make_join(在 [v1_3_x]@34490)

    相反,我们有新的函数

    • subdict_ne - 创建非空值的子字典。这是 extract_dict 函数的替代品,不幸的是,它期望的参数与 fields 参数不同,类似于 .dicts.subdict 函数。

      .sql.make_dict_extractor工厂函数生成,该函数允许设置一些关键字选项,例如指定认为是空值的值。

  • 新函数lands0.make_default_prefixer

[tobiasherp]

1.3.0 (2020-06-12)

新功能

  • 新模块batches,包含一个batch_tuples函数,用于生成(sublist, txt)元组

  • 新类classes.StackOfDicts

  • 新函数minifuncs.check_kwargs

  • 新函数debug.has_strings

  • 新函数debug.make_debugfile_writer(尚未充分通用化)

需求

[tobiasherp]

1.2.6 (2020-01-08)

改进

  • 添加了Travis CI集成。

  • 为nose2(在Travis上使用)和nose配置测试发现。

错误修复

  • 修复了以下doctests

    • .dicts.update_dict

    • .dicts.make_key_injector

  • 移除了现在已过时的...tests/test_doctests.py文件,该文件导致nosetests失败。

新功能

  • .times.make_defaulttime_calculator:新增关键字-only选项utc=False,使doctests与Travis兼容。

[tobiasherp]

1.2.5 (2019-10-16)

  • 新类classes.AliasDict

  • 添加了一些doctests。

[tobiasherp]

1.2.4 (2019-05-09)

  • 新函数dicts.update_dict(从v1.2.3版开始)“发布”在__all__列表中。尽管如此,我们对这个函数的签名并不满意,因此它可能在未来的版本中有所变化。

  • 新函数classes.connected_dicts,它创建两个具有dic1[key] = val <–> dict2[val] = key的连接字典

  • log_or_trace在调用set_trace()之前将打印包含trace_key的有用信息

[tobiasherp]

1.2.3 (2019-01-30)

  • dicts模块中添加了新函数update_dict(接受一个deletions列表参数)

  • buildout.extract_package_and_version支持具有子路径的egg规范(/eggs/目录的子目录)

  • buildout.checkPathForPackage记录无法找到的包的无效包条目

  • lands0.groupstring支持cumulate选项(默认:False)[tobiasherp]

1.2.2 (2018-11-08)

  • 新模块buildout用于在buildout构建的项目中使用:使用checkPathForPackage函数检查已安装的包与版本白名单的匹配情况[tobiasherp]

1.2.1 (2018-09-17)

  • 新模块dates

    • make_date_parser工厂用于创建一个可以理解多种日期格式的parse_date函数

    • make_date_formatter工厂用于创建一个函数,该函数可以将日期格式化为datetime对象或整数的元组

  • 新模块profile

  • 新模块mock

    • 一些用于doctests的小类

    • visaplan.plone.tools.mock相同的模块

  • 模块debug

    • 新装饰器trace_thislog_result

    • 新函数print_indented

    • 新工厂函数make_sleeper

  • 模块dicts

    • 新函数make_key_injector

  • 模块minifuncs

    • 新函数translate_dummy

  • 模块sequences

    • 新增函数 nocomment_split

    • 新增函数 columns [tobiasherp]

  • 模块 lands0

    • 新增函数 join_stripped

  • 许可协议更改为GPLv2

1.2 (2018-07-11)

  • 重大变更

    • :Proxy 现在是一个工厂而不是一个类

  • 模块 debugdictslands0minifuncs [tobiasherp]

1.1 (2018-06-12)

  • 模块 sequencestimesfiles

  • 小错误修复 [tobiasherp]

1.0 (2018-06-11)

  • 首次发布,包括模块 classeshtmlhttpcoding [tobiasherp]

项目详情


下载文件

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

源代码分发

visaplan.tools-1.3.13.tar.gz (116.1 kB 查看哈希值)

上传时间 源代码

支持者