在 Foundry 存储库调试模式下抑制警告消息(设置环境变量)

问题描述 投票:0回答:1

尝试调试存储库代码,我已设置断点并运行转换。然后,在调试控制台中我收到此警告:

df.show(1)
 Evaluating: df.show(1) did not finish after 3.00 seconds.
This may mean a number of things:
- This evaluation is really slow and this is expected.
    In this case it's possible to silence this error by raising the timeout, setting the
    PYDEVD_WARN_EVALUATION_TIMEOUT environment variable to a bigger value.

- The evaluation may need other threads running while it's running:
    In this case, it's possible to set the PYDEVD_UNBLOCK_THREADS_TIMEOUT
    environment variable so that if after a given timeout an evaluation doesn't finish,
    other threads are unblocked or you can manually resume all threads.

    Alternatively, it's also possible to skip breaking on a particular thread by setting a
    `pydev_do_not_trace = True` attribute in the related threading.Thread instance
    (if some thread should always be running and no breakpoints are expected to be hit in it).

- The evaluation is deadlocked:
    In this case you may set the PYDEVD_THREAD_DUMP_ON_WARN_EVALUATION_TIMEOUT
    environment variable to true so that a thread dump is shown along with this message and
    optionally, set the PYDEVD_INTERRUPT_THREAD_TIMEOUT to some value so that the debugger
    tries to interrupt the evaluation (if possible) when this happens.

就我而言,这是第一个选项,因为我在等待片刻后得到了结果。所以,我想消除警告。我尝试过失败:

import os
os.environ["PYDEVD_WARN_EVALUATION_TIMEOUT"] = '90000000000000'

如何抑制警告信息?

python environment-variables warnings palantir-foundry foundry-code-repositories
1个回答
0
投票

您是指 (a) 无法设置环境变量,还是 (b) 成功设置环境变量但未解决超时问题?

如果是 (a),这就是对我有用的方法(基于创建新存储库时创建的默认 Examples.py)。我添加了日志记录来检查

PYDEVD_WARN_EVALUATION_TIMEOUT
是否已设置。在调试模式下,我可以看到它是在
os.environ
字典中设置的。

import os
from transforms.api import transform_df, Input, Output
from myproject.datasets import utils

import logging

logger = logging.getLogger(__name__)

@transform_df(
    Output("/path/to/output/dataset"),
    source_df=Input("/path/to/input/dataset"),
)
def compute(source_df):
    os.environ["PYDEVD_WARN_EVALUATION_TIMEOUT"] = '900000'
    logger.info(os.environ["PYDEVD_WARN_EVALUATION_TIMEOUT"])
    return utils.identity(source_df)
© www.soinside.com 2019 - 2024. All rights reserved.