Skip to main content

Command line library to parse the Panda web API

Project description

Pandamonium

Cause panda and rucio don't work too good

This tells you if your jobs are done. And stuff like that.

  • No login required
  • Colors! (when you want them)
  • Gets input / output dataset names
  • Works with piping, other unix nice things

Like badges? We have the best badges:

GitHub Project DOI

PyPI version Supported Python versions

pre-commit.ci status

Installation

Install from PyPI

You can install pandamonium from PyPI into any Python environment by running

python -m pip install pandamonium

Install oldschool way

If you can't get pip working you can just put the scripts you need in your path. Note that this is deprecated (but still works for now).

  1. Clone the repository
git clone git@github.com:dguest/pandamonium.git
  1. Add the directory to your PATH.

Maybe with something like the following in your .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

Use

  1. Run pandamon
pandamon [user.<your user name>]
  1. See the output of your current GRID jobs with pretty colors!

You can add more of the task name if you want, and use wildcards (*). Wildcards are automatically appended to names that don't end in * or /.

Without any arguments the task name defaults to user.$RUCIO_ACCOUNT*.

Also try pandamon -h.

Other tricks

Get input/output dataset names

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

Filter by user name

This is useful if you're running with group privileges. Set the environment variable GRID_USER_NAME to your full user name (the one that shows up on the top of the bigpanda page). Or specify one with --user.

Find input datasets for jobs in the broken state

You can do more useful stuff by piping through standard Unix utilities

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

or (faster)

pandamon your.tasks -i broken -s IN

Filter by taskid range

Use to only display jobs in a specific range. This is useful for when you inevitably submit jobs with wrong parameters that you don't want to retry.

pandamon -r 12000-12100

Read the job user metadata

Now panda supports a userMetadata.json file for additional information in your job. Print it with

pandamon your.tasks -m

See this JIRA ticket where they plan to make it faster.

Additional Technical Information

Deprecation Warning

You can currently just clone the repository and have master work the same way as v0.1 on LXPLUS or ATLAS Connect, but this will be deprecated in the future in favor of installing pandamonium as a Python library.

The motivation for this is that pandamonium does have hard requirements on other libraries, and it is better to fully contain them through the installation of the library through PyPI.

If you really need the old behaviour forever, you can always use

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

Install development release from TestPyPI

You can install the latest development release of pandamonium from TestPyPI into any Python virtual environment by running

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

Note: This adds TestPyPI as an additional package index to search when installing pandamonium specifically. PyPI will still be the default package index pip will attempt to install from for all dependencies.

Notes if working on a remote server

If you are working from a remote server where you do not have control over your Python runtimes (e.g. LXPLUS, ALTAS Connect login nodes) it is recommended that you bootstrap virtualenv and a default Python virtual environment by adding the following to your .bashrc or .bashrc_user

# 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

After that source your .profile or .bash_profile and then if you want to create a default Python virtual environment run

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

You will now be dropped into a virtual environment named base each time you login. The virtual environment is not special in anyway, so you should treat it as you would any other.

Testimonials

"I like colors" -- Chase Schimmin

"I found a bug" -- Danny Antrim (Fixed! Thanks Danny!)

"I tried to use it but it's python 3" -- also Chase

(I added Python 2 support, but pandamonium is also Python 3 compliant)

"I made a merge request. It was approved!" -- Alex

"It needs to use Code style: black" -- Matthew Feickert

(Hey man, whatever floats your boat!)

I'll add other stuff too, if you want.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pandamonium-0.3.1.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

pandamonium-0.3.1-py2.py3-none-any.whl (14.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pandamonium-0.3.1.tar.gz.

File metadata

  • Download URL: pandamonium-0.3.1.tar.gz
  • Upload date:
  • Size: 15.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pandamonium-0.3.1.tar.gz
Algorithm Hash digest
SHA256 2ef055113916e85b44a26fd8fb264c0808b74ba1f18a120ecd52856883b8649b
MD5 ae7720955ea1e934a1c283a099d7c66e
BLAKE2b-256 01598944c97586e65d6cbdb13f460bea28cc3053d527e85d38206f3080a81354

See more details on using hashes here.

File details

Details for the file pandamonium-0.3.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pandamonium-0.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee298f096b0a39941a04f99f8beab0dc875e33f665d4f2345ca325be3e3cec2c
MD5 059e5853c5391e00422cd687c3ac2844
BLAKE2b-256 d5c6b526b54ee507acec4a3fda5f8894200bb0e20178a77356726d24e43bad2a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page