schrodinger.application.desmond.packages.timer module

Facilities for timing a block of code. Copyright Schrodinger, LLC. All rights reserved.

Example usage:

from schrodinger.application.desmond.packages.timer import timer

with timer(“Reading the trajectory…”):
traj.read_trj(trj_fname)

Example output:

Reading the trajectory…
100 frames Done. (0.5 sec)

In this example, we have three lines in output. Line#1 is the start message, and line#3 is the timing message. The start-message and the format for the timing message can be customed by the message and fmt arguments, respectively.

Arguments for timer:

type message:
 str or None
type message:
 The message to print out before the timing starts. Default is None – no message will be printed.
type fmt:
 str
type fmt:
 The format to print out the timing. Default is “Done. (%.2f sec)”. A custom format should contain 1 floating number control paramter.
type threshold:
 float
param threshold:
 Specifies a threshold. If the elapsed time is less than threshold, no timing message will not be printed out.
type record:
 list or None
param record:
 If a list value is given, the current elapsed time will be appended to the list. This is handy if you want to accumulate the elapsed times.
type logger:
 A callable object.
param logger:
 Function called to print the messages.
class schrodinger.application.desmond.packages.timer.Timer(message=None, threshold=0.1, fmt=' Done. (%.2f sec)', record=None, logger=<function _default_logger>)

Bases: object

You can use this class to create your own timer function with custom default behavior.

Example usage:

from schrodinger.application.desmond.packages.timer import Timer

mytimer = Timer(threshold=0.2) # Creates a timer with 0.2 threshold.

with mytimer(“Reading the trajectory…”):
traj.read_trj(trj_fname)

In this example, mytimer behaves exactly the same as the standard timer (see the docstring of this module) except for the default value of threshold parameter that has been customed to 0.2.

class Args(message, threshold, fmt, record, logger)

Bases: tuple

__add__

Return self+value.

__class__

alias of builtins.type

__contains__

Return key in self.

__delattr__

Implement delattr(self, name).

__dir__() → list

default dir() implementation

__eq__

Return self==value.

__format__()

default object formatter

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__getitem__

Return self[key].

__getnewargs__()

Return self as a plain tuple. Used by copy and pickle.

__gt__

Return self>value.

__hash__

Return hash(self).

__init__

Initialize self. See help(type(self)) for accurate signature.

__init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__iter__

Implement iter(self).

__le__

Return self<=value.

__len__

Return len(self).

__lt__

Return self<value.

__module__ = 'schrodinger.application.desmond.packages.timer'
__mul__

Return self*value.n

__ne__

Return self!=value.

static __new__(_cls, message, threshold, fmt, record, logger)

Create new instance of Args(message, threshold, fmt, record, logger)

__reduce__()

helper for pickle

__reduce_ex__()

helper for pickle

__repr__()

Return a nicely formatted representation string

__rmul__

Return self*value.

__setattr__

Implement setattr(self, name, value).

__sizeof__() → int

size of object in memory, in bytes

__slots__ = ()
__str__

Return str(self).

__subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

count(value) → integer -- return number of occurrences of value
fmt

Alias for field number 2

index(value[, start[, stop]]) → integer -- return first index of value.

Raises ValueError if the value is not present.

logger

Alias for field number 4

message

Alias for field number 0

record

Alias for field number 3

threshold

Alias for field number 1

__init__(message=None, threshold=0.1, fmt=' Done. (%.2f sec)', record=None, logger=<function _default_logger>)

Initialize self. See help(type(self)) for accurate signature.

__call__(*arg, **kwarg)

Call self as a function.

__class__

alias of builtins.type

__delattr__

Implement delattr(self, name).

__dict__ = mappingproxy({'__module__': 'schrodinger.application.desmond.packages.timer', '__doc__': '\n You can use this class to create your own timer function with custom default\n behavior.\n\n Example usage:\n\n from schrodinger.application.desmond.packages.timer import Timer\n\n mytimer = Timer(threshold=0.2)\n # Creates a timer with 0.2 threshold.\n\n with mytimer("Reading the trajectory..."):\n traj.read_trj(trj_fname)\n\n In this example, `mytimer` behaves exactly the same as the standard\n `timer` (see the docstring of this module) except for the default value of\n `threshold` parameter that has been customed to 0.2.\n ', 'Args': <class 'schrodinger.application.desmond.packages.timer.Args'>, '__init__': <function Timer.__init__>, '__call__': <function Timer.__call__>, '__dict__': <attribute '__dict__' of 'Timer' objects>, '__weakref__': <attribute '__weakref__' of 'Timer' objects>})
__dir__() → list

default dir() implementation

__eq__

Return self==value.

__format__()

default object formatter

__ge__

Return self>=value.

__getattribute__

Return getattr(self, name).

__gt__

Return self>value.

__hash__

Return hash(self).

__init_subclass__()

This method is called when a class is subclassed.

The default implementation does nothing. It may be overridden to extend subclasses.

__le__

Return self<=value.

__lt__

Return self<value.

__module__ = 'schrodinger.application.desmond.packages.timer'
__ne__

Return self!=value.

__new__()

Create and return a new object. See help(type) for accurate signature.

__reduce__()

helper for pickle

__reduce_ex__()

helper for pickle

__repr__

Return repr(self).

__setattr__

Implement setattr(self, name, value).

__sizeof__() → int

size of object in memory, in bytes

__str__

Return str(self).

__subclasshook__()

Abstract classes can override this to customize issubclass().

This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

__weakref__

list of weak references to the object (if defined)