Skip to main content

我觉得标准 Python 发行版中缺少基本工具。

项目描述

pytest 覆盖范围 版本 皮皮 PyPI 版本 维护状态

我的 Python 工具包

这只是我经常使用的一些工具的杂项集合,我决定将它们编译到一个包中,以便主要供我使用。所有示例都假定包已导入为kit.

从 PyPi 安装:pip install mypytoolkit.

import mypytoolkit as kit

日期和时间

是时候了

kit.time_now()返回格式为“%H-%M”的当前时间字符串。午夜是“00-00”,上午 8:35 是“08-35”。晚上 10 点是“22-00”。那是没有可选参数的。

可选参数int_times: bool将允许函数返回元组而不是字符串。如果您调用kit.time_now(int_times = True),并且时间是上午 8:35,您将收到一个元组(8, 35),其中每个元素都是一个整数。这对于在程序中执行与小时/分钟无关的相对时间操作很有用。


kit.today_date()返回格式为“%Y-%M-%D”的当前日期字符串,其中 2022 年 2 月 22 日为“2022-02-22”。

kit.time_decimal()返回时间的浮点数。例如,如果是上午 8:45,该函数将返回 8.75。

kit.weekly_time_decimal()返回您在一周内走了多远的浮点数。例如,周一午夜是0,周三中午是2.5,周日下午 4 点是6.66

kit.time_seconds()返回当前分钟后的秒数。例如,如果时间是 06:35:23,则函数将'23'作为字符串返回。传入可选参数int_output: bool = Falseasint_output = True将输出23为整数而不是字符串。这对于计时程序很有用。

例如,像这样的函数kit.time_seconds()启用逻辑,例如:

import mypytoolkit as kit
import time

while True:
    if kit.time_seconds(True) == 0:
        # do some task on the minute.
    
    time.sleep(1)

Python 工具

简单的 Python 特定工具,让生活更轻松,从print选项到使用迭代的函数。

类型印刷

kit.tprint()显示对象的内容及其类型。我厌倦了print(obj, type(obj))在调试时不断地编写代码,所以我发现自己不断地定义一个tprint()函数:

def tprint(obj):
    print(obj, type(obj))
    return [obj, type(obj)]

超级简单,但在 lightspeed 中进行调试时会有所不同。

可迭代计数

kit.count()将接受一个可迭代的项目和一个值。它返回一个整数,该整数表示该值在可迭代对象中出现的确切次数。许多可迭代对象具有用于计数值的内置类方法(iterable_object.count()例如)。但是,例如,API 返回的许多可迭代对象不会,因此有一些全局方法来计算值是有意义的。

这样,许多对象也可以传递给该方法。

DataFrame NaN 值

kit.remove_nan_df_rows()接受pd.DataFrame输入并返回一个新的 DataFrame,其中不包含任何包含 NaN 值的行。

文件

处理文件的工具。

相同的文档内容

kit.are_docs_same()将告诉您两个文档(任何类型)是否具有完全相同的内容。它需要两个参数。

kit.are_docs_same(original_dir: str, new_dir: str)

根据两个文件的内容是否相同,它返回一个布尔值True或。False没有灰色地带。

将内容附加到文件

kit.append_by_query()将在第一次出现的查询下方的一行中将内容附加到文件中。

看一个演示:

asciiccast

这是一个书面的例子。如果test.txt有内容:

this is line 1!
line 2 is here.
hello people!
line number 4.

我们运行:

import mypytoolkit as kit

套件append_by_query ( 
    query  =  'hello' ,  
    content  =  'Just added this.' ,  
    file_path  =  'test.txt' , 
    insert_above  =  False  # 不需要,默认情况下
)

test.txt已就地修改,现在是:

this is line 1!
line 2 is here.
hello people!
Just added this.
line number 4.
范围 必要性 行为
query 必需的 该字符串的第一次出现是工具包将要插入的位置content(取决于 上方或下方insert_above)。
content 必需的 在文档中第一次出现的上方或下方插入的内容query
file_path 必需的 工具包将搜索并写入的文件的路径字符串。
insert_above 可选的 布尔值。默认情况下insert_above = False, 和工具包将content在第一次出现的下方插入行query。如果True,则工具包将content在上面插入一行。

数学

添加了一个LinearEquation在实例化时采用斜率和截距属性的类。它有一种plot()绘制线性图的方法。例如:

import mypytoolkit as kit

方程式 = 套件LinearEquation 斜率 =  4  截距 =  10 
方程情节间隔 =  1000 

这将输出matplotlib从 0 到 1000 的线性方程图。

金融

财务模块必须直接调用。它的内容不会像其他模块一样导入到主命名空间中。要调用finance函数,您必须使用kit.finance.function().

夏普比率

给定一个回报列表(每个项目都是数字格式,而不是百分比)和一个无风险利率,kit.finance.sharpe_ratio()将返回投资的夏普比率。

范围 格式 必要性 行为
returns list 必需的 用于计算得出夏普比率所必需的标准差和平均值。
risk_free float 必需的 用于比较收益与当时最佳无风险投资的统计数据。必要的夏普比率是一个风险因素指标。

项目详情


下载文件

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

源分布

mypytoolkit-1.5.60.tar.gz (10.3 kB 查看哈希

已上传 source

内置分布

mypytoolkit-1.5.60-py3-none-any.whl (9.3 kB 查看哈希

已上传 py3