plico.utils package

Submodules

plico.utils.addtree module

plico.utils.addtree.addtree(src, dst, symlinks=False)
plico.utils.addtree.mkdirp(dirname)

plico.utils.barrier module

class plico.utils.barrier.Barrier(timeoutSec, pollingPeriodSec=0.1, timeModule=<module 'time' (built-in)>)

Bases: object

waitFor(predicate)
classmethod waitUntil(predicate, timeoutSec, period=0.5, timeModule=<module 'time' (built-in)>)
exception plico.utils.barrier.BarrierTimeout(message)

Bases: Exception

class plico.utils.barrier.FunctionPredicate(nulladicFunction, functionName='')

Bases: Predicate

static create(func, *args, **kwds)
errorMessage()
isFullfilled()
class plico.utils.barrier.Predicate

Bases: object

abstract errorMessage()
abstract isFullfilled()

plico.utils.base_runner module

plico.utils.calibration_installer module

plico.utils.concurrent_loop module

class plico.utils.concurrent_loop.ConcurrentLoop(name, convergable, interStepTimeSec, logFailureFunc)

Bases: Loop

close()
deinitialize()
getConvergenceStepCount()
hasConverged()
initialize()
isClosed()
isInitialized()
name()
open()
performOnePass()
setStopDurationLimitSec(durationSec)
exception plico.utils.concurrent_loop.ConcurrentLoopException

Bases: Exception

class plico.utils.concurrent_loop.ThreadSafeStepCounter

Bases: object

getCount()
inc()
class plico.utils.concurrent_loop.WorkerThread(name, closedFunc, convergable, interStepTimeSec, stepCounter, logFailureFunc)

Bases: Thread

run()

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

setStopDurationLimitSec(limitSec)
stop()

plico.utils.config_file_manager module

plico.utils.configuration module

plico.utils.constants module

class plico.utils.constants.Constants

Bases: object

APP_AUTHOR = 'INAF Arcetri Adaptive Optics'
APP_NAME = 'inaf.arcetri.ao.plico'
PICKLE_PROTOCOL = 2
PORT_DISPLAY_OFFSET = 3
PORT_PUBLISHER_OFFSET = 2
PORT_REPLY_OFFSET = 0
PORT_STATUS_OFFSET = 1

plico.utils.control_loop module

class plico.utils.control_loop.ControlLoop

Bases: object

abstract start()
class plico.utils.control_loop.FaultTolerantControlLoop(steppable, logger, timeModule=<module 'time' (built-in)>, loopPeriodInSecond=1)

Bases: ControlLoop

start()
class plico.utils.control_loop.IntolerantControlLoop(steppable, logger, timeModule=<module 'time' (built-in)>, loopPeriodInSecond=1)

Bases: ControlLoop

start()

plico.utils.convergeable module

class plico.utils.convergeable.Convergeable

Bases: object

abstract hasConverged()
abstract measureConvergence()
abstract performOneConvergenceStep()

plico.utils.decorator module

exception plico.utils.decorator.ReturnTypeMismatchError

Bases: Exception

plico.utils.decorator.cacheResult(f)
plico.utils.decorator.logEnterAndExit(enterMessage, exitMessage, level='notice')
plico.utils.decorator.logFailureAndContinue(func)
plico.utils.decorator.logFailureAndRaise(func)
plico.utils.decorator.logTime(f)
plico.utils.decorator.override(f)
plico.utils.decorator.returns(returnType)
plico.utils.decorator.returnsForExample(exampleInstance)
plico.utils.decorator.returnsNone(f)
plico.utils.decorator.suppressException(resultInCaseOfFailure=None)
plico.utils.decorator.synchronized(item)

plico.utils.executor module

exception plico.utils.executor.BusyExecutorException(message, nameOfCurrentTask)

Bases: Exception

class plico.utils.executor.DelayedTaskControl

Bases: TaskControl

isDone()
isRunning()
markAsDone()
waitForCompletion(timeoutSec)
class plico.utils.executor.DoneTaskControl

Bases: TaskControl

isDone()
isRunning()
waitForCompletion(timeoutSec)
class plico.utils.executor.Executor

Bases: object

abstract execute(task)
class plico.utils.executor.ExecutorFactory

Bases: object

static buildMultiThreadExecutor(maxNumThreads)
static buildSingleThreadExecutor(logger=<plico.utils.logger.PythonLogger object>)
static buildSingleThreadImmediateExecutor(logger=<plico.utils.logger.PythonLogger object>)
class plico.utils.executor.FunctionTask(func, *args, **kwds)

Bases: Task

NO_RESULT = <object object>
getException()
getResult()
name()
perform()
reraiseExceptionIfAny()
withName(name)
exception plico.utils.executor.FunctionTaskException

Bases: Exception

class plico.utils.executor.FutureTaskControl(future, taskName, logger)

Bases: TaskControl

isDone()
isRunning()
waitForCompletion(timeoutSec=None)
class plico.utils.executor.MultiThreadExecutor(maxThreads, logger=<plico.utils.logger.PythonLogger object>)

Bases: Executor

execute(task)
class plico.utils.executor.SerialExecutor(logger=<plico.utils.logger.PythonLogger object>)

Bases: Executor

execute(task)
class plico.utils.executor.SingleThreadExecutor(logger=<plico.utils.logger.PythonLogger object>)

Bases: MultiThreadExecutor

class plico.utils.executor.SingleThreadImmediateExecutor(singleThreadExecutor)

Bases: Executor

execute(task)
isIdle()
class plico.utils.executor.Task

Bases: object

name()
abstract perform()
class plico.utils.executor.TaskControl

Bases: object

abstract isDone()
abstract isRunning()
abstract waitForCompletion(timeoutSec)
class plico.utils.executor.TaskDelayingExecutor

Bases: Executor

execute(task)
executeDelayedTasks()
getDelayedTasks()
exception plico.utils.executor.TaskTimeoutError(msg)

Bases: Exception

plico.utils.executor.logTaskFailure(func)

plico.utils.fake_convergeable module

class plico.utils.fake_convergeable.FakeConvergeable

Bases: Convergeable

blockStep()
getConvergenceStepCount()
getMeasureConvergenceCount()
hasConverged()
measureConvergence()
name()
performOneConvergenceStep()
requestPanic()
setAsConverged()
setAsUnconverged()
setStepSleepDurationSec(durationSec)
unblockStep()

plico.utils.fake_loop module

class plico.utils.fake_loop.FakeLoop

Bases: Loop

close()
deinitialize()
getConvergenceStepCount()
hasConverged()
initialize()
isClosed()
isInitialized()
name()
open()
performOnePass()
setConvergenceFlagTo(converged)

plico.utils.fits_file_based_calibration_manager module

class plico.utils.fits_file_based_calibration_manager.FitsFileBasedCalibrationManager

Bases: object

plico.utils.hackerable module

class plico.utils.hackerable.Hackerable(logger=None)

Bases: object

eval(expression)
execute(statement)

plico.utils.image_moments module

class plico.utils.image_moments.ImageMoments(image, shiftPixels=0.5)

Bases: object

centralMoment(iord, jord)
centralNormalizedMoment(iord, jord)
centroid()
covarianceMatrix()
eccentricity()
effectiveRadius()
eigenvalues()
orientation()
principalMomentsOfInertia()
rawMoment(iord, jord)
semiAxes()
xBar()
yBar()

plico.utils.kill_process_by_name module

plico.utils.kill_process_by_name.killProcessByName(processName)

plico.utils.logger module

class plico.utils.logger.AbstractLogger

Bases: object

abstract debug(m)
abstract error(m)
abstract fatal(m)
abstract notice(m)
abstract warn(m)
class plico.utils.logger.AbstractLoggerFactory

Bases: object

getLogger(loggerName)
class plico.utils.logger.DummyLogger

Bases: AbstractLogger

debug(m)
error(m)
fatal(m)
notice(m)
warn(m)
class plico.utils.logger.DummyLoggerFactory

Bases: AbstractLoggerFactory

getLogger(name)
class plico.utils.logger.Logger

Bases: object

DEFAULT_LOGGER_FACTORY

alias of PythonLoggerFactory

static of(loggerName)
static setLoggerFactory(loggerFactory)
exception plico.utils.logger.LoggerException

Bases: Exception

class plico.utils.logger.LoggerListener

Bases: object

onDebug(message)
onError(message)
onFatal(message)
onNotice(message)
onWarning(message)
class plico.utils.logger.ObservableLogger(wrappedLogger)

Bases: AbstractLogger

addListener(listener)
debug(m)
error(m)
fatal(m)
notice(m)
warn(m)
class plico.utils.logger.ObservableLoggerFactory(wrappedLoggerFactory)

Bases: AbstractLoggerFactory

addListener(loggerListener)
getLogger(name)
getLoggerMap()
class plico.utils.logger.PythonLogger(logger)

Bases: AbstractLogger

debug(m)
error(m)
fatal(m)
notice(m)
setRelativePathRadix(radix)
warn(m)
class plico.utils.logger.PythonLoggerFactory

Bases: AbstractLoggerFactory

getLogger(name)

plico.utils.loop module

class plico.utils.loop.Loop

Bases: object

abstract close()
abstract getConvergenceStepCount()
abstract hasConverged()
abstract isClosed()
abstract name()
abstract open()
abstract performOnePass()
exception plico.utils.loop.LoopException(message)

Bases: Exception

plico.utils.plico_scipy module

plico.utils.plico_scipy.binom(*args, **kwargs)
plico.utils.plico_scipy.curve_fit(*args, **kwargs)
plico.utils.plico_scipy.gaussian_filter(*args, **kwargs)
plico.utils.plico_scipy.leastsq(*args, **kwargs)
plico.utils.plico_scipy.medfilt2d(*args, **kwargs)
plico.utils.plico_scipy.median_filter(*args, **kwargs)
plico.utils.plico_scipy.minimize(*args, **kwargs)
plico.utils.plico_scipy.pinv(*args, **kwargs)
plico.utils.plico_scipy.pinv2(*args, **kwargs)
plico.utils.plico_scipy.rotate(*args, **kwargs)
plico.utils.plico_scipy.splev(*args, **kwargs)
plico.utils.plico_scipy.splrep(*args, **kwargs)
plico.utils.plico_scipy.svdvals(*args, **kwargs)

plico.utils.serverinfoable module

class plico.utils.serverinfoable.ServerInfoable(name, ports, logger=None)

Bases: object

serverInfo()

plico.utils.snapshotable module

class plico.utils.snapshotable.Snapshotable

Bases: object

static asFITSHeader(snapshotDictionary)
static fromFITSHeader(hdr)
abstract getSnapshot(prefix)
static prepend(prefix, snapshotDict)
static removeEntriesWithValueNone(snapshotDict)

plico.utils.starter_script_creator_base module

class plico.utils.starter_script_creator_base.StarterScriptCreatorBase

Bases: object

installExecutables()
setConfigFileDestination(configFileDest)
setInstallationBinDir(binDir)
setPythonPath(pythonPath)

plico.utils.stepable module

class plico.utils.stepable.Stepable

Bases: object

abstract isTerminated()
abstract step()

plico.utils.timekeeper module

class plico.utils.timekeeper.TimeKeeper(interval=1.0, timeMod=<module 'time' (built-in)>)

Bases: object

inc()

plico.utils.timeout module

class plico.utils.timeout.Timeout

Bases: object

MIRROR_EVAL = 30.0
MIRROR_EXECUTE = 30.0
SERVER_INFO = 5.0

plico.utils.timestamp module

class plico.utils.timestamp.Timestamp

Bases: object

asNowString()
asTodayString()
static now()
static nowUSec()
static today()

plico.utils.zernike_generator module

class plico.utils.zernike_generator.ZernikeGenerator(nPixelOnDiameter)

Bases: object

A class to generate Zernike polynomials and gradient of Zernike polynomials

Example

>>> numberOfPixelOnPupilDiameter= 64
>>> zg= ZernikeGenerator(numberOfPixelOnPupilDiameter)
>>> asti= zg.getZernike(5)
>>> asti[
>>> type(asti)
numpy.ma.core.MaskedArray
>>> asti.shape
(64,64)
>>> dTiltdx= zg.getDerivativeX(2)
>>> dTiltdx.mean()
2.0
>>> dTiltdx.ptp()
0.0
getDerivativeX(index)
getDerivativeXDict(indexVector)
getDerivativeY(index)
getDerivativeYDict(indexVector)
getRadius()
getZernike(index)

Retrieve a map representing the index-th Zernike polynomial

Parameters:

index (int) – The index of Zernike map to be generated, following Noll 1976 ordering.

Returns:

A map representing the index-th Zernike polynomial

Return type:

np.array

getZernikeDict(indexVector)

Module contents