跳转到主要内容

用于解析Panda Web API的命令行库

项目描述

混乱

因为panda和rucio工作得不太好

这会告诉你你的作业是否完成。等等。

  • 无需登录
  • 颜色!(当你需要时)
  • 获取输入/输出数据集名称
  • 与管道,其他Unix功能一起工作

喜欢徽章?我们有最好的徽章

GitHub Project DOI

PyPI version Supported Python versions

pre-commit.ci status

安装

从PyPI安装

您可以通过运行以下命令将 混乱 从PyPI 安装到任何Python环境中:

python -m pip install pandamonium

老式安装方法

如果无法使 pip 运作,您可以将所需的脚本放在您的路径中。请注意,这是已被弃用(但现在仍然有效)。

  1. 克隆仓库
git clone git@github.com:dguest/pandamonium.git
  1. 将目录添加到您的 PATH 中。

也许您可以在 .bashrc 中使用以下内容:

# Add pandamonium to PATH
if [ -d "your/path/stuff/goes/here/pandamonium" ]; then
    PATH="your/path/stuff/goes/here/pandamonium${PATH:+:${PATH}}"
    export PATH
fi

使用

  1. 运行 pandamon
pandamon [user.<your user name>]
  1. 漂亮的颜色 查看您当前 GRID 作业的输出。

如果您想添加更多任务名称,可以使用通配符(*)。通配符会自动附加到不以 */ 结尾的名称。

如果没有任何参数,任务名称默认为 user.$RUCIO_ACCOUNT*

也尝试 pandamon -h

其他技巧

获取输入/输出数据集名称

> pandamon -s IN <task name>
> pandamon -s OUT <task name>

按用户名筛选

如果您以组权限运行,这很有用。将环境变量 GRID_USER_NAME 设置为您的完整用户名(在 bigpanda 页面顶部显示的那个)。或者使用 --user 指定。

查找处于 broken 状态的作业的输入数据集

您可以通过管道传递标准 Unix 实用工具来执行更多有用的事情

> pandamon your.tasks > tasks.txt
> cat tasks.txt | awk '$1 ~ /broken/ {print $2}' | pandamon - -s IN

或者(更快)

pandamon your.tasks -i broken -s IN

按任务 ID 范围筛选

用于仅显示特定范围内的作业。这在您不可避免地提交带有错误参数且不想重试的作业时很有用。

pandamon -r 12000-12100

读取作业用户元数据

现在 panda 支持一个 userMetadata.json 文件,其中包含您作业的附加信息。使用以下内容打印它:

pandamon your.tasks -m

请参阅 此 JIRA 问题,其中他们计划使其更快。

其他技术信息

弃用警告

您目前可以克隆仓库并让 master 以与 LXPLUS 或 ATLAS Connect 上的 v0.1 相同的方式工作,但将来将弃用此方法,转而通过安装 Python 库来安装 pandamonium

这样做的原因是 pandamonium 对其他库有严格的要求,并且最好通过通过 PyPI 安装库来完全包含它们。

如果您真的需要永远保留旧行为,您始终可以使用:

git clone git@github.com:dguest/pandamonium.git --branch v0.1

从 TestPyPI 安装开发版本

您可以通过运行以下命令将 pandamonium 从 TestPyPI 安装到任何 Python 虚拟环境中:

python -m pip install --extra-index-url https://test.pypi.org/simple/ --pre pandamonium

注意: 这将 TestPyPI 添加为 安装 pandamonium 时搜索的附加包索引。PyPI 仍然是 pip 尝试安装所有依赖项的默认包索引。

在远程服务器上工作时的说明

如果您正在远程服务器上工作,您无法控制您的 Python 运行时(例如 LXPLUS、ALTAS Connect 登录节点),建议您通过将以下内容添加到您的 .bashrc.bashrc_user 来引导 virtualenv 和默认 Python 虚拟环境:

# Ensure local virtualenv setup
if [ ! -f "${HOME}/opt/venv/bin/virtualenv" ]; then
    curl -sL --location --output /tmp/virtualenv.pyz https://bootstrap.pypa.io/virtualenv.pyz
    python /tmp/virtualenv.pyz ~/opt/venv # Change this to python3 if available
    ~/opt/venv/bin/pip install --upgrade pip
    ~/opt/venv/bin/pip install virtualenv
    mkdir -p ~/bin  # Ensure exists if new machine
    ln -s ~/opt/venv/bin/virtualenv ~/bin/virtualenv
fi

# default venv from `virtualenv "${HOME}/.venvs/base"`
if [ -d "${HOME}/.venvs/base" ]; then
    source "${HOME}/.venvs/base/bin/activate"
fi

之后,source 您的 .profile.bash_profile,然后如果您想创建默认的 Python 虚拟环境,请运行:

virtualenv "${HOME}/.venvs/base"

现在每次登录时,您都将进入名为 base 的虚拟环境。虚拟环境在没有任何特殊之处,所以您应该像对待任何其他虚拟环境一样对待它。

推荐

"我喜欢颜色" -- Chase Schimmin

"我找到了一个错误" -- Danny Antrim(已修复!感谢 Danny!)

"我尝试使用它,但它是 python 3" -- Chase

(我添加了 Python 2 支持,但 pandamonium 也符合 Python 3 规范)

"我提交了一个合并请求。它被批准了!" -- Alex

"需要使用 代码风格:black" -- Matthew Feickert

(嘿,随便你!)

如果你想要的话,我还可以添加其他内容。

支持者