These are tales of An Admin getting APEL+HTCondor-CE to work at GridKa/FZK Tier 1.
As background information, see
import pyparsing as pp | |
from pyparsing.diagram import to_railroad, railroad_to_html | |
import tempfile | |
import webbrowser | |
pp.ParserElement.enable_left_recursion() | |
# named references | |
expr = pp.Forward().setName("expr") | |
add_sub = pp.Forward().setName("add_sub") |
#!/usr/bin/env python3 | |
from typing import BinaryIO | |
import socket | |
import argparse | |
import pathlib | |
import struct | |
import time | |
CLI = argparse.ArgumentParser( |
class Number: | |
def __new__(cls, literal): | |
for scls in cls.__subclasses__(): | |
try: | |
return scls(literal) | |
except (TypeError, ValueError): | |
pass | |
raise TypeError("The path to hell is paved with incomplete examples") | |
# here be numerical operations! |
""" | |
Script to recreate missing APEL blah/batch records from a condor history.d directory | |
""" | |
from typing import TextIO, TypeVar, List | |
import argparse | |
import pathlib | |
import subprocess | |
import os | |
import threading | |
import tempfile |
from __future__ import annotations | |
from abc import ABC, abstractmethod | |
from typing import Generic, TypeVar | |
R = TypeVar('R', bound='Runner') | |
T = TypeVar('T') # result type | |
class Command(ABC, Generic[T, R]): |
These are tales of An Admin getting APEL+HTCondor-CE to work at GridKa/FZK Tier 1.
As background information, see
#!/bin/bash -l | |
# | |
# Wrapper when executing condor jobs | |
# Run jobs via `bash -l` to force sourcing a login shell including all /etc/profile.d/*.sh scripts | |
# | |
exec "$@" |
#!/usr/bin/env python3 | |
from typing import NamedTuple, Iterable, Dict, List | |
import argparse | |
import pathlib | |
import re | |
CLI = argparse.ArgumentParser() | |
CLI.add_argument( |
#!/usr/bin/env python3 | |
from typing import Dict | |
def switch(cases: Dict[str, str], default='UNDEFINED', separator='\n'): | |
# ["IfThenElse(ac, am", "IfThenElse(bc, bm", "IfThenElse(cc, cm", ...] | |
switch_expression = separator.join( | |
f"IfThenElse({condition}, {on_match}," | |
for condition, on_match in cases.items() | |
) |
from typing import NamedTuple, Optional, Deque, Any, Dict, AsyncIterable | |
from usim import Pipe, instant | |
from collections import deque | |
from usim._primitives.notification import Notification | |
class MonitoredPipeInfo(NamedTuple): | |
requested_throughput: float | |
available_throughput: float |