小编dia*_*uai的帖子

如何安全地运行不受信任的 python 代码?

这是这样的场景,我的网站有一些由网站用户生成的不安全代码,可以在我的服务器上运行。

我想禁用 python 的一些保留字以保护我的运行环境,例如evalexecprint

有没有一种简单的方法(不改变python解释器,我的python版本是2.7.10)来实现我之前描述的功能?

python sandbox

7
推荐指数
2
解决办法
2290
查看次数

带有时间分组的熊猫滚动功能

这是我的问题。我有一个 DataFrame 如下:

df:

2013-10-24      1
2013-10-25      2
2013-11-27      3 
2013-11-28      4
2013-12-01      5 
2013-12-02      6
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的 DataFrame:

滚动平均值(df,窗口=“1M”):

2013-10      1.5
2013-11      3.5
2013-12      5.5 
Run Code Online (Sandbox Code Playgroud)

滚动平均值(df,窗口=“2M”):

2013-10      NAN
2013-11      2.5
2013-12      4.5 
Run Code Online (Sandbox Code Playgroud)

滚动平均值(df,窗口=“3M”):

2013-10      NAN
2013-11      NAN
2013-12      3.5 
Run Code Online (Sandbox Code Playgroud)

滚动平均值(df,窗口=“1Y”):

2013-10      NAN
2013-11      NAN
2013-12      NAN
Run Code Online (Sandbox Code Playgroud)

其中 1M 是“1 个月”,2M 是“2 个月”。窗口不是一个int值,而是一个时间间隔,如'1D'、'3M'、'1Y'等。该函数可以按时间单位(例如'D'、'M'、'Y')对数据帧进行分组,然后将数据帧滚动到时间单位之前的数字,例如1、3...

我需要这样的滚动功能吗?有人可以帮我吗?我描述清楚了吗?非常感谢。

更新:

我还有一个谜。我需要实现这样一个函数,它可以计算每天的滚动标准偏差,而不是按月重新采样,而是按月加权窗口步长单位。

在这种情况下,我所拥有的也是 df:

2013-10-24      1
2013-10-25      2
2013-11-27      3 
2013-11-28      4
2013-12-01      5 
2013-12-02      6
Run Code Online (Sandbox Code Playgroud)

pd.rolling_std(df.resample('1M'),window=1):

结果是

2013-10    NAN
2013-11    NAN 
2013-12    NAN
Run Code Online (Sandbox Code Playgroud)

我真正是这样的数据框(window = 1): …

python pandas

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

grpc 异步双向服务器(Java/Python)

这是我的场景。grpc 服务器是一个异步服务器,它从其他源订阅数据。它还为其客户端提供了订阅功能,因此一旦从其他来源接收到数据,它就可以将数据推送到 grpc 客户端。服务器是用Java 实现的。

@Override
public StreamObserver<Message> subscribe (
        StreamObserver<Message> responseObserver) {
    return new StreamObserver<Message>() {

        @Override
        public void onNext(Message message) {
            api.subscribe(message.value, Message -> {
                synchronized (responseObserver) {
                    ...
                    ...
                    // get data from other source

                    responseObserver.onNext(Converter.create().toProtobuf(Message.class, data));
                }
            });
        }

        @Override
        public void onError(Throwable t) {
            log.warn("Encountered error in sub", t);
        }

        @Override
        public void onCompleted() {
            responseObserver.onCompleted();
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

我想使用 python 实现 grpc 客户端来订阅该服务器。然而,奇怪的是,Python一旦订阅数据,就立即关闭,而不等待Java服务器的异步返回。然而,Java 客户端可以永远运行并等待来自服务器的异步数据。

原型

message Message{
    string value = 1;
}
service test …
Run Code Online (Sandbox Code Playgroud)

python java grpc grpc-java grpc-python

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

标签 统计

python ×3

grpc ×1

grpc-java ×1

grpc-python ×1

java ×1

pandas ×1

sandbox ×1