Exemple #1
0
 def __init__(self, model=None, offsets=None, settings=None, variant='HIT'):
     """Initialize new library instance with no interface instances."""
     if settings is None:
         settings = {}
     self.params = dicti()
     self.sd_values = dicti()
     self.sd_cache = TimeoutCache(self._get_jittered_sd,
                                  timeout=settings.get(
                                      'shot_interval', 1.0))
     self.model = model
     self.offsets = {} if offsets is None else offsets
     self.settings = settings
     self.jitter = settings.get('jitter', True)
     self.auto_sd = settings.get('auto_sd', True)
     self._variant = variant
Exemple #2
0
 def test_all_args(self):
     el0 = madseq.Element(None, None, odicti(a='a0', b='b0', c='c0'))
     el1 = madseq.Element(None, None, odicti(a='a1', b='b1', d='d1'), el0)
     el2 = madseq.Element(None, None, odicti(a='a2'), el1)
     self.assertEqual(el2.all_args,
                      dicti([('c', 'c0'), ('b', 'b1'),
                             ('d', 'd1'), ('a', 'a2')]))
Exemple #3
0
 def __init__(self,
              lib,
              params,
              model=None,
              offsets=None,
              settings=None,
              control=None):
     self._lib = lib
     self._params = dicti({
         'beam_energy':
         dict(name='beam_energy',
              ui_name='beam_energy',
              ui_hint='',
              ui_prec=3,
              unit='MeV/u',
              ui_unit='MeV/u',
              ui_conv=1),
         'beam_focus':
         dict(name='beam_focus',
              ui_name='beam_focus',
              ui_hint='',
              ui_prec=3,
              unit='m',
              ui_unit='mm',
              ui_conv=1000),
         'beam_intensity':
         dict(name='beam_intensity',
              ui_name='beam_intensity',
              ui_hint='',
              ui_prec=3,
              unit='',
              ui_unit='',
              ui_conv=1),
         'gantry_angle':
         dict(name='gantry_angle',
              ui_name='gantry_angle',
              ui_hint='',
              ui_prec=3,
              unit='°',
              ui_unit='°',
              ui_conv=1),
     })
     self._params.update(params)
     self._model = model
     self._offsets = {} if offsets is None else offsets
     self.connected = Bool(False)
     self.settings = settings
     self.control = control
     self.vAcc = -1
Exemple #4
0
 def __init__(self, entry, format, group_names, groups):
     #: The original logfile entry with trailing newlines removed
     self.entry = entry
     #: The entry's log format string
     self.format = format
     #: .. versionadded:: 0.3.0
     #:
     #: A `dict` mapping individual log format directives (e.g., ``"%h"`` or
     #: ``"%<s"``) to their corresponding values from the log entry.
     #: ``%{*}t`` directives with multiple subdirectives (e.g.,
     #: ``%{%Y-%m-%d}t``) are broken up into one entry per subdirective (For
     #: ``%{%Y-%m-%d}t``, this would become the three keys ``"%{%Y}t"``,
     #: ``"%{%m}t"``, and ``"%{%d}t"``).  This attribute provides an
     #: alternative means of looking up directive values besides using the
     #: named attributes.
     self.directives = {}
     for (k, drct), v in zip(group_names, groups):
         d = self.__dict__
         if isinstance(k, tuple):
             for i, k2 in enumerate(k[:-1]):
                 if i == 0 and k2 in NOCASEDICTS:
                     subd = dicti()
                 else:
                     subd = {}
                 d = d.setdefault(k2, subd)
             k = k[-1]
         if d.get(k) is None:
             d[k] = v
         #else: Assume d[k] == v
         self.directives[drct] = v
     for prefix in ('original_', '', 'final_'):
         for midfix in ('begin_', '', 'end_'):
             target = prefix + midfix + 'request_time'
             if getattr(self, target + '_fields', None):
                 setattr(
                     self,
                     target,
                     assemble_datetime(getattr(self, target + '_fields')),
                 )
Exemple #5
0
 },
 'C': ('cookies', cookie_value),
 'e': ('env_vars', clf_string),
 'h': {
     'c': ('remote_underlying_host', esc_string),
 },
 'i': ('headers_in', clf_string),
 # `%{c}L` is derived the same way as `%L`; see above.
 'L': {
     'c': ('connection_log_id', clf(FieldType(r'[-@/+A-Za-z0-9]+', str))),
 },
 'n': ('notes', clf_string),
 'o': ('headers_out', clf_string),
 'p': dicti({
     'canonical': ('server_port', integer),
     'local': ('local_port', integer),
     'remote': ('remote_port', integer),
 }),
 'P': dicti({
     'pid': ('pid', integer),
     # `%{tid}P` is formatted as an unsigned integer.
     'tid': ('tid', uinteger),
     'hextid': ('tid', FieldType(r'[0-9A-Fa-f]+', lambda s: int(s, 16))),
 }),
 't': strftime2regex,
 'T': dicti({
     'ms': ('request_duration_milliseconds', integer),
     'us': ('request_duration_microseconds', integer),
     's': ('request_duration_seconds', integer),
 }),
 '^ti': ('trailers_in', clf_string),
Exemple #6
0
 def set_sd_values(self, data):
     self.sd_values = dicti(data)
     self.auto_sd = False
Exemple #7
0
 def __init__(self, units):
     """Store Madx instance for later use."""
     self._units = dicti(units)
Exemple #8
0
 "C": ("cookies", cookie_value),
 "e": ("env_vars", clf_string),
 "h": {
     "c": ("remote_underlying_host", esc_string),
 },
 "i": ("headers_in", clf_string),
 # `%{c}L` is derived the same way as `%L`; see above.
 "L": {
     "c": ("connection_log_id", clf(FieldType(r"[-@/+A-Za-z0-9]+", str))),
 },
 "n": ("notes", clf_string),
 "o": ("headers_out", clf_string),
 "p":
 dicti({
     "canonical": ("server_port", integer),
     "local": ("local_port", integer),
     "remote": ("remote_port", integer),
 }),
 "P":
 dicti({
     "pid": ("pid", integer),
     # `%{tid}P` is formatted as an unsigned integer.
     "tid": ("tid", uinteger),
     "hextid": ("tid", FieldType(r"[0-9A-Fa-f]+", lambda s: int(s, 16))),
 }),
 "t":
 strftime2regex,
 "T":
 dicti({
     "ms": ("request_duration_milliseconds", integer),
     "us": ("request_duration_microseconds", integer),
Exemple #9
0
 def transform(self, node_transform):
     """Create a new transformed document using the node_transform."""
     defs = dicti()
     return Document(node_transform(node, defs)
                     for node in self._nodes)
Exemple #10
0
def load_dvm_parameters():
    blob = read_binary('hit_acs', 'DVM-Parameter_v2.10.0-HIT.csv')
    parlist = load_csv(blob.splitlines(), 'utf-8')
    return dicti({p['name']: p for p in parlist})