我觉得标准 Python 发行版中缺少基本工具。
项目描述
我的 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()将在第一次出现的查询下方的一行中将内容附加到文件中。
看一个演示:
这是一个书面的例子。如果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 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | cd4394eaec39549e8b98ef32be3063890f23868246b54e555f1b0dc13c175c28 |
|
| MD5 | a40de6c3edba5d7772a43f1ac4574c4a |
|
| 布莱克2-256 | 7523ec983847848e38f6dedcdcabca65f9d1b6661e8a4cabe75a96a955fe4076 |
mypytoolkit -1.5.60-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 63ced8fda5d2bd9edc71322f311c296e672cc640baaef4a96c74e56e6360875a |
|
| MD5 | 93432f0791d0f2b464d2c933da8ccafb |
|
| 布莱克2-256 | c78aa11da17936ad48d63d417e30b286df1409e125babc57cc1b7350b05839f6 |