schrodinger.job.server module

Interact with a Job Server.

class schrodinger.job.server.JobServersHealthCheck(interval: int, connect_deadline: int)[source]

Bases: PyQt5.QtCore.QThread

serverStatusChanged
runHealthCheck()[source]

Check the health of configured jobservers and report its information.

__init__(interval: int, connect_deadline: int)[source]

Initializes the jobservers health check monitor.

Parameters
  • interval – Interval in seconds to wait to trigger the health check of jobservers.

  • connect_deadline – Deadline to wait in seconds for jobserver channel to setup if needed and query status.

run(self)[source]
HighPriority = 4
HighestPriority = 5
IdlePriority = 0
InheritPriority = 7
LowPriority = 2
LowestPriority = 1
NormalPriority = 3
class Priority

Bases: int

TimeCriticalPriority = 6
blockSignals(self, bool) → bool
childEvent(self, QChildEvent)
children(self) → List[QObject]
connectNotify(self, QMetaMethod)
currentThread() → QThread
currentThreadId() → sip.voidptr
customEvent(self, QEvent)
deleteLater(self)
destroyed

destroyed(self, object: QObject = None) [signal]

disconnect(self)
disconnectNotify(self, QMetaMethod)
dumpObjectInfo(self)
dumpObjectTree(self)
dynamicPropertyNames(self) → List[QByteArray]
event(self, QEvent) → bool
eventDispatcher(self) → QAbstractEventDispatcher
eventFilter(self, QObject, QEvent) → bool
exec(self) → int
exec_(self) → int
exit(self, returnCode: int = 0)
findChild(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → QObject

findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject

findChildren(self, type, name: str = '', options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) → List[QObject]

findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]

finished

finished(self) [signal]

idealThreadCount() → int
inherits(self, str) → bool
installEventFilter(self, QObject)
isFinished(self) → bool
isInterruptionRequested(self) → bool
isRunning(self) → bool
isSignalConnected(self, QMetaMethod) → bool
isWidgetType(self) → bool
isWindowType(self) → bool
killTimer(self, int)
loopLevel(self) → int
metaObject(self) → QMetaObject
moveToThread(self, QThread)
msleep(int)
objectName(self) → str
objectNameChanged

objectNameChanged(self, str) [signal]

parent(self) → QObject
priority(self) → QThread.Priority
property(self, str) → Any
pyqtConfigure(...)

Each keyword argument is either the name of a Qt property or a Qt signal. For properties the property is set to the given value which should be of an appropriate type. For signals the signal is connected to the given value which should be a callable.

quit(self)
receivers(self, PYQT_SIGNAL) → int
removeEventFilter(self, QObject)
requestInterruption(self)
sender(self) → QObject
senderSignalIndex(self) → int
setEventDispatcher(self, QAbstractEventDispatcher)
setObjectName(self, str)
setParent(self, QObject)
setPriority(self, QThread.Priority)
setProperty(self, str, Any) → bool
setStackSize(self, int)
setTerminationEnabled(enabled: bool = True)
signalsBlocked(self) → bool
sleep(int)
stackSize(self) → int
start(self, priority: QThread.Priority = QThread.InheritPriority)
startTimer(self, int, timerType: Qt.TimerType = Qt.CoarseTimer) → int
started

started(self) [signal]

staticMetaObject = <PyQt5.QtCore.QMetaObject object>
terminate(self)
thread(self) → QThread
timerEvent(self, QTimerEvent)
tr(self, str, disambiguation: str = None, n: int = - 1) → str
usleep(int)
wait(self, msecs: int = ULONG_MAX) → bool
yieldCurrentThread()
schrodinger.job.server.ensure_localhost_server_running()[source]

Makes sure there is a localhost jobserver running to do devtests. This server is configured in the default location.

schrodinger.job.server.jsc(schrodinger)[source]
class schrodinger.job.server.ServerInfo(webServerSecret, hasLicenseChecking, hasServerAuth, hasSocketAuth, authSocketPath, versionString, APIVersion, hostname)[source]

Bases: tuple

webServerSecret: str

Alias for field number 0

hasLicenseChecking: bool

Alias for field number 1

hasServerAuth: bool

Alias for field number 2

hasSocketAuth: bool

Alias for field number 3

authSocketPath: str

Alias for field number 4

versionString: str

Alias for field number 5

APIVersion: str

Alias for field number 6

hostname: str

Alias for field number 7

classmethod from_dict(data: dict)schrodinger.job.server.ServerInfo[source]

Convert a dict to a ServerInfo.

has_authenticator() → bool[source]
__contains__(key, /)

Return key in self.

__len__()

Return len(self).

count(value, /)

Return number of occurrences of value.

index(value, start=0, stop=9223372036854775807, /)

Return first index of value.

Raises ValueError if the value is not present.

schrodinger.job.server.get_server_info(schrodinger: str, address: str)schrodinger.job.server.ServerInfo[source]

Subprocess ‘$SCHRODINGER/jsc server-info’ to get server information.

schrodinger.job.server.decode_to_server_info(data: Union[str, bytes])schrodinger.job.server.ServerInfo[source]