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.0.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: pandamonium-0.3.0.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pandamonium-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c1b78988397c6bacbab0580248f7dcdc01e5cf52037d1af40f0dc7a2cd6773ff
MD5 72bf652ed4488430222c5151b3378a30
BLAKE2b-256 288aca24d2edaf402a2411837e365feb69ce10670902246ec664f992e37e3d1d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pandamonium-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for pandamonium-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 effc6bd169f620a79f28347f4c19b17ab0f1f55d953e34cb4b2eac211daa1a32
MD5 200b9bf3f6de2d2075b4d28fe49f7eed
BLAKE2b-256 362d8061f6c496de82f475a9bea9c6d8f2fe64ae2534440a55f4153643d22e7c

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