小编Ark*_*Ark的帖子

如何在 python 中使用 boto3 对象向函数添加类型提示?

如何使用 boto3 向函数添加类型提示而不使用 mypy_boto3 等外部库?这与 boto3.client 尤其令人困惑,它返回无法导入的 botocore.client.s3 类型的对象。

在下面的脚本中注释的示例函数是get_clientlist_objects

import boto3


def get_client():
    return boto3.client('s3')


def list_objects(client):
    response = client.list_objects(Bucket="a", Prefix="b")
    for content in response.get('Contents', []):
        yield content.get('Key')


client = get_client()
for f in list_objects(client):
    print(f)

Run Code Online (Sandbox Code Playgroud)

我正在typing模块中开始,并查看了 python 3.6+ 中可用的不同选项,但不清楚运行时类型的类型提示是什么,例如boto3.client本例中返回的对象。

python type-hinting boto boto3

7
推荐指数
1
解决办法
4479
查看次数

Scala groupby 元素类型

我编写了一个文本解析器,它使用 n 个解析器(通过对 n 个样本进行训练生成)解析给定的文本片段,其中包含类型列表

List(Parser1_Object, Parser2_Object, Parser1_Object, Parser3_Object,....)

请注意,每个对象都有参数(假设在本例中所有对象都有相同的名为 的参数param),其值可能会有所不同。我的目标是减少列表以删除通用解析器(即具有相同参数的对象)以供进一步处理和使用。为了实现同样的目标,我正在考虑将相同类型的元素分组,然后努力减少每个组。但是我不确定如何groupBy处理类型。任何建议/指示都会有所帮助(或者如果有更好的功能方法来解决问题)。

collections types scala list

2
推荐指数
1
解决办法
2450
查看次数

压缩大型python对象

我试图压缩一个巨大的python对象〜15G,并将其保存在磁盘上.由于需求限制,我需要尽可能地压缩这个文件.我目前正在使用zlib.compress(9).我主要担心的是,在压缩过程中所占用的内存超过了我在系统32g上可用的内存,并且预计对象的大小会增加.是否有更有效/更好的方法来实现这一目标.谢谢.

更新:还要注意我要保存的对象是一个稀疏的numpy矩阵,我在压缩前序列化数据,这也增加了内存消耗.由于我在序列化后不需要python对象,gc.collect()会帮忙吗?

python memory compression numpy

1
推荐指数
1
解决办法
838
查看次数

标签 统计

python ×2

boto ×1

boto3 ×1

collections ×1

compression ×1

list ×1

memory ×1

numpy ×1

scala ×1

type-hinting ×1

types ×1