IMP logo
IMP Reference Guide  develop.907651fe7c,2026/01/28
The Integrative Modeling Platform
__init__.py
1 # This file was automatically generated by SWIG (https://www.swig.org).
2 # Version 4.3.1
3 #
4 # Do not make changes to this file unless you know what you are doing - modify
5 # the SWIG interface file instead.
6 
7 
8 # This wrapper is part of IMP,
9 # Copyright 2007-2026 IMP Inventors. All rights reserved.
10 
11 
12 
13 
14 from sys import version_info as _swig_python_version_info
15 import _IMP_kernel
16 
17 try:
18  import builtins as __builtin__
19 except ImportError:
20  import __builtin__
21 
22 def _swig_repr(self):
23  try:
24  strthis = "proxy of " + self.this.__repr__()
25  except __builtin__.Exception:
26  strthis = ""
27  return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
28 
29 
30 def _swig_setattr_nondynamic_instance_variable(set):
31  def set_instance_attr(self, name, value):
32  if name == "this":
33  set(self, name, value)
34  elif name == "thisown":
35  self.this.own(value)
36  elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
37  set(self, name, value)
38  else:
39  raise AttributeError("You cannot add instance attributes to %s" % self)
40  return set_instance_attr
41 
42 
43 def _swig_setattr_nondynamic_class_variable(set):
44  def set_class_attr(cls, name, value):
45  if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
46  set(cls, name, value)
47  else:
48  raise AttributeError("You cannot add class attributes to %s" % cls)
49  return set_class_attr
50 
51 
52 def _swig_add_metaclass(metaclass):
53  """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
54  def wrapper(cls):
55  return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
56  return wrapper
57 
58 
59 class _SwigNonDynamicMeta(type):
60  """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
61  __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)
62 
63 
64 import weakref
65 
66 class IMP_KERNEL_SwigPyIterator(object):
67  r"""Proxy of C++ swig::IMP_KERNEL_SwigPyIterator class."""
68 
69  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
70 
71  def __init__(self, *args, **kwargs):
72  raise AttributeError("No constructor defined - class is abstract")
73  __repr__ = _swig_repr
74  __swig_destroy__ = _IMP_kernel.delete_IMP_KERNEL_SwigPyIterator
75 
76  def value(self):
77  r"""value(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
78  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_value(self)
79 
80  def incr(self, n=1):
81  r"""incr(IMP_KERNEL_SwigPyIterator self, size_t n=1) -> IMP_KERNEL_SwigPyIterator"""
82  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_incr(self, n)
83 
84  def decr(self, n=1):
85  r"""decr(IMP_KERNEL_SwigPyIterator self, size_t n=1) -> IMP_KERNEL_SwigPyIterator"""
86  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_decr(self, n)
87 
88  def distance(self, x):
89  r"""distance(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> ptrdiff_t"""
90  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_distance(self, x)
91 
92  def equal(self, x):
93  r"""equal(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
94  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_equal(self, x)
95 
96  def copy(self):
97  r"""copy(IMP_KERNEL_SwigPyIterator self) -> IMP_KERNEL_SwigPyIterator"""
98  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_copy(self)
99 
100  def next(self):
101  r"""next(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
102  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_next(self)
103 
104  def __next__(self):
105  r"""__next__(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
106  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___next__(self)
107 
108  def previous(self):
109  r"""previous(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
110  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_previous(self)
111 
112  def advance(self, n):
113  r"""advance(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
114  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_advance(self, n)
115 
116  def __eq__(self, x):
117  r"""__eq__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
118  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___eq__(self, x)
119 
120  def __ne__(self, x):
121  r"""__ne__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
122  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___ne__(self, x)
123 
124  def __iadd__(self, n):
125  r"""__iadd__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
126  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___iadd__(self, n)
127 
128  def __isub__(self, n):
129  r"""__isub__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
130  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___isub__(self, n)
131 
132  def __add__(self, n):
133  r"""__add__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
134  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___add__(self, n)
135 
136  def __sub__(self, *args):
137  r"""
138  __sub__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator
139  __sub__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> ptrdiff_t
140  """
141  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___sub__(self, *args)
142  def __iter__(self):
143  return self
144 
145 # Register IMP_KERNEL_SwigPyIterator in _IMP_kernel:
146 _IMP_kernel.IMP_KERNEL_SwigPyIterator_swigregister(IMP_KERNEL_SwigPyIterator)
147 
148 _value_types=[]
149 _object_types=[]
150 _raii_types=[]
151 _plural_types=[]
152 
153 IMP_DEBUG = _IMP_kernel.IMP_DEBUG
154 
155 IMP_RELEASE = _IMP_kernel.IMP_RELEASE
156 
157 IMP_SILENT = _IMP_kernel.IMP_SILENT
158 
159 IMP_PROGRESS = _IMP_kernel.IMP_PROGRESS
160 
161 IMP_TERSE = _IMP_kernel.IMP_TERSE
162 
163 IMP_VERBOSE = _IMP_kernel.IMP_VERBOSE
164 
165 IMP_MEMORY = _IMP_kernel.IMP_MEMORY
166 
167 IMP_NONE = _IMP_kernel.IMP_NONE
168 
169 IMP_USAGE = _IMP_kernel.IMP_USAGE
170 
171 IMP_INTERNAL = _IMP_kernel.IMP_INTERNAL
172 
173 IMP_KERNEL_HAS_LOG4CXX = _IMP_kernel.IMP_KERNEL_HAS_LOG4CXX
174 
175 IMP_COMPILER_HAS_CEREAL_RAW_POINTER = _IMP_kernel.IMP_COMPILER_HAS_CEREAL_RAW_POINTER
176 
177 IMP_COMPILER_HAS_DEBUG_VECTOR = _IMP_kernel.IMP_COMPILER_HAS_DEBUG_VECTOR
178 
179 IMP_COMPILER_HAS_RANDOM_SHUFFLE = _IMP_kernel.IMP_COMPILER_HAS_RANDOM_SHUFFLE
180 
181 IMP_COMPILER_HAS_THREE_WAY = _IMP_kernel.IMP_COMPILER_HAS_THREE_WAY
182 
183 IMP_KERNEL_HAS_BOOST_RANDOM = _IMP_kernel.IMP_KERNEL_HAS_BOOST_RANDOM
184 
185 IMP_KERNEL_HAS_NUMPY = _IMP_kernel.IMP_KERNEL_HAS_NUMPY
186 
187 IMP_KERNEL_HAS_BOOST_SYSTEM = _IMP_kernel.IMP_KERNEL_HAS_BOOST_SYSTEM
188 
189 IMP_KERNEL_HAS_GPERFTOOLS = _IMP_kernel.IMP_KERNEL_HAS_GPERFTOOLS
190 
191 IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER = _IMP_kernel.IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER
192 
193 IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER = _IMP_kernel.IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER
194 
195 IMPKERNEL_SHOW_WARNINGS = _IMP_kernel.IMPKERNEL_SHOW_WARNINGS
196 
197 
198 import sys
199 class _DirectorObjects:
200  """@internal Simple class to keep references to director objects
201  to prevent premature deletion."""
202  def __init__(self):
203  self._objects = []
204  def register(self, obj):
205  """Take a reference to a director object; will only work for
206  refcounted C++ classes"""
207  if hasattr(obj, 'get_ref_count'):
208  self._objects.append(obj)
209  def cleanup(self):
210  """Only drop our reference and allow cleanup by Python if no other
211  Python references exist (we hold 3 references: one in self._objects,
212  one in x, and one in the argument list for getrefcount) *and* no
213  other C++ references exist (the Python object always holds one)"""
214  objs = [x for x in self._objects if sys.getrefcount(x) > 3 \
215  or x.get_ref_count() > 1]
216 # Do in two steps so the references are kept until the end of the
217 # function (deleting references may trigger a fresh call to this method)
218  self._objects = objs
219  def get_object_count(self):
220  """Get number of director objects (useful for testing only)"""
221  return len(self._objects)
222 _director_objects = _DirectorObjects()
223 
224 DEFAULT_CHECK = _IMP_kernel.DEFAULT_CHECK
225 
226 NONE = _IMP_kernel.NONE
227 
228 USAGE = _IMP_kernel.USAGE
229 
230 USAGE_AND_INTERNAL = _IMP_kernel.USAGE_AND_INTERNAL
231 
232 
233 def set_check_level(tf):
234  r"""set_check_level(IMP::CheckLevel tf)"""
235  return _IMP_kernel.set_check_level(tf)
236 
237 def get_check_level():
238  r"""get_check_level() -> IMP::CheckLevel"""
239  return _IMP_kernel.get_check_level()
240 
241 from _IMP_kernel import Exception, InternalException, ModelException, EventException
242 from _IMP_kernel import UsageException, IndexException, IOException, ValueException
243 from _IMP_kernel import TypeException
244 
245 class _ostream(object):
246  r"""Proxy of C++ std::ostream class."""
247 
248  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
249 
250  def __init__(self, *args, **kwargs):
251  raise AttributeError("No constructor defined")
252  __repr__ = _swig_repr
253 
254  def write(self, osa_buf):
255  r"""write(_ostream self, char const * osa_buf)"""
256  return _IMP_kernel._ostream_write(self, osa_buf)
257 
258 # Register _ostream in _IMP_kernel:
259 _IMP_kernel._ostream_swigregister(_ostream)
260 IMP_C_OPEN_BINARY = _IMP_kernel.IMP_C_OPEN_BINARY
261 
262 
263 from . import _list_util
264 
265 
266 _models_set = weakref.WeakSet()
267 
268 def _models_set_get(m):
269  for x in _models_set:
270  if x == m:
271  return x
272 
273 
274 _raii_types.append("SetLogState")
275 
276 
277 _raii_types.append("SetNumberOfThreads")
278 
279 
280 _raii_types.append("SetCheckState")
281 
282 
283 _object_types.append("Object")
284 
285 
286 def _object_cast_to_Object(o):
287  r"""_object_cast_to_Object(Object * o) -> Object"""
288  return _IMP_kernel._object_cast_to_Object(o)
289 
290 _object_types.append("_TestObject")
291 
292 
293 def _object_cast_to__TestObject(o):
294  r"""_object_cast_to__TestObject(Object * o) -> _TestObject"""
295  return _IMP_kernel._object_cast_to__TestObject(o)
296 
297 VersionInfos=list
298 _plural_types.append("VersionInfos")
299 _value_types.append("VersionInfo")
300 
301 
302 _raii_types.append("CreateLogContext")
303 
304 
305 _raii_types.append("WarningContext")
306 
307 
308 _raii_types.append("SetLogTarget")
309 
310 
311 _TestValues=list
312 _plural_types.append("_TestValues")
313 _value_types.append("_TestValue")
314 
315 
316 Floats=list
317 _plural_types.append("Floats")
318 _value_types.append("Float")
319 
320 
321 Ints=list
322 _plural_types.append("Ints")
323 _value_types.append("Int")
324 
325 
326 Strings=list
327 _plural_types.append("Strings")
328 _value_types.append("String")
329 
330 
331 _Protections=list
332 _plural_types.append("_Protections")
333 _value_types.append("_Protection")
334 
335 class _InputAdaptor(object):
336  r"""Proxy of C++ IMP::InputAdaptor class."""
337 
338  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
339 
340  def __init__(self, *args, **kwargs):
341  raise AttributeError("No constructor defined")
342  __repr__ = _swig_repr
343 
344  def __getstate__(self):
345  raise NotImplementedError(str(self.__class__)
346  + " does not support serialization")
347 
348  __swig_destroy__ = _IMP_kernel.delete__InputAdaptor
349 
350 # Register _InputAdaptor in _IMP_kernel:
351 _IMP_kernel._InputAdaptor_swigregister(_InputAdaptor)
352 class _NonCopyable(object):
353  r"""Proxy of C++ IMP::NonCopyable class."""
354 
355  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
356 
357  def __init__(self, *args, **kwargs):
358  raise AttributeError("No constructor defined")
359  __repr__ = _swig_repr
360  __swig_destroy__ = _IMP_kernel.delete__NonCopyable
361 
362 # Register _NonCopyable in _IMP_kernel:
363 _IMP_kernel._NonCopyable_swigregister(_NonCopyable)
364 class _RAII(_NonCopyable):
365  r"""Proxy of C++ IMP::RAII class."""
366 
367  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
368 
369  def __init__(self, *args, **kwargs):
370  raise AttributeError("No constructor defined")
371  __repr__ = _swig_repr
372  __swig_destroy__ = _IMP_kernel.delete__RAII
373 
374 # Register _RAII in _IMP_kernel:
375 _IMP_kernel._RAII_swigregister(_RAII)
376 class _Value(object):
377  r"""Proxy of C++ IMP::Value class."""
378 
379  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
380 
381  def __init__(self, *args, **kwargs):
382  raise AttributeError("No constructor defined")
383  __repr__ = _swig_repr
384 
385  def __getstate__(self):
386  raise NotImplementedError(str(self.__class__)
387  + " does not support serialization")
388 
389  __swig_destroy__ = _IMP_kernel.delete__Value
390 
391 # Register _Value in _IMP_kernel:
392 _IMP_kernel._Value_swigregister(_Value)
393 
394 def get_executable_name():
395  r"""get_executable_name() -> std::string"""
396  return _IMP_kernel.get_executable_name()
397 
398 def setup_from_argv(*args):
399  r"""
400  setup_from_argv(IMP::Strings const & argv, std::string description)
401  setup_from_argv(IMP::Strings const & argv, std::string description, std::string positional_description, int num_positional) -> IMP::Strings
402  """
403  return _IMP_kernel.setup_from_argv(*args)
404 
405 def add_string_flag(name, default_value, description):
406  r"""add_string_flag(std::string name, std::string default_value, std::string description)"""
407  return _IMP_kernel.add_string_flag(name, default_value, description)
408 
409 def get_string_flag(name):
410  r"""get_string_flag(std::string name) -> std::string"""
411  return _IMP_kernel.get_string_flag(name)
412 
413 def add_int_flag(name, default_value, description):
414  r"""add_int_flag(std::string name, size_t default_value, std::string description)"""
415  return _IMP_kernel.add_int_flag(name, default_value, description)
416 
417 def get_int_flag(name):
418  r"""get_int_flag(std::string name) -> size_t"""
419  return _IMP_kernel.get_int_flag(name)
420 
421 def add_bool_flag(name, description):
422  r"""add_bool_flag(std::string name, std::string description)"""
423  return _IMP_kernel.add_bool_flag(name, description)
424 
425 def get_bool_flag(name):
426  r"""get_bool_flag(std::string name) -> bool"""
427  return _IMP_kernel.get_bool_flag(name)
428 
429 def add_float_flag(name, default_value, description):
430  r"""add_float_flag(std::string name, double default_value, std::string description)"""
431  return _IMP_kernel.add_float_flag(name, default_value, description)
432 
433 def get_float_flag(name):
434  r"""get_float_flag(std::string name) -> double"""
435  return _IMP_kernel.get_float_flag(name)
436 
437 def write_help(*args):
438  r"""write_help(_ostream out=std::cerr)"""
439  return _IMP_kernel.write_help(*args)
440 
441 def get_is_quick_test():
442  r"""get_is_quick_test() -> bool"""
443  return _IMP_kernel.get_is_quick_test()
444 DEFAULT = _IMP_kernel.DEFAULT
445 
446 SILENT = _IMP_kernel.SILENT
447 
448 WARNING = _IMP_kernel.WARNING
449 
450 PROGRESS = _IMP_kernel.PROGRESS
451 
452 TERSE = _IMP_kernel.TERSE
453 
454 VERBOSE = _IMP_kernel.VERBOSE
455 
456 MEMORY = _IMP_kernel.MEMORY
457 
458 ALL_LOG = _IMP_kernel.ALL_LOG
459 
460 class VersionInfo(_Value):
461  r"""Proxy of C++ IMP::VersionInfo class."""
462 
463  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
464 
465  def __init__(self, *args):
466  r"""
467  __init__(VersionInfo self, std::string module, std::string version) -> VersionInfo
468  __init__(VersionInfo self) -> VersionInfo
469  """
470  _IMP_kernel.VersionInfo_swiginit(self, _IMP_kernel.new_VersionInfo(*args))
471 
472  def get_module(self):
473  r"""get_module(VersionInfo self) -> std::string"""
474  return _IMP_kernel.VersionInfo_get_module(self)
475 
476  def get_version(self):
477  r"""get_version(VersionInfo self) -> std::string"""
478  return _IMP_kernel.VersionInfo_get_version(self)
479 
480  def show(self, *args):
481  r"""show(VersionInfo self, _ostream out=std::cout)"""
482  return _IMP_kernel.VersionInfo_show(self, *args)
483 
484  def __cmp__(self, o):
485  r"""__cmp__(VersionInfo self, VersionInfo o) -> int"""
486  return _IMP_kernel.VersionInfo___cmp__(self, o)
487 
488  def __eq__(self, o):
489  r"""__eq__(VersionInfo self, VersionInfo o) -> bool"""
490  return _IMP_kernel.VersionInfo___eq__(self, o)
491 
492  def __ne__(self, o):
493  r"""__ne__(VersionInfo self, VersionInfo o) -> bool"""
494  return _IMP_kernel.VersionInfo___ne__(self, o)
495 
496  def __lt__(self, o):
497  r"""__lt__(VersionInfo self, VersionInfo o) -> bool"""
498  return _IMP_kernel.VersionInfo___lt__(self, o)
499 
500  def __gt__(self, o):
501  r"""__gt__(VersionInfo self, VersionInfo o) -> bool"""
502  return _IMP_kernel.VersionInfo___gt__(self, o)
503 
504  def __ge__(self, o):
505  r"""__ge__(VersionInfo self, VersionInfo o) -> bool"""
506  return _IMP_kernel.VersionInfo___ge__(self, o)
507 
508  def __le__(self, o):
509  r"""__le__(VersionInfo self, VersionInfo o) -> bool"""
510  return _IMP_kernel.VersionInfo___le__(self, o)
511 
512  def __str__(self):
513  r"""__str__(VersionInfo self) -> std::string"""
514  return _IMP_kernel.VersionInfo___str__(self)
515 
516  def __repr__(self):
517  r"""__repr__(VersionInfo self) -> std::string"""
518  return _IMP_kernel.VersionInfo___repr__(self)
519 
520  def _get_as_binary(self):
521  r"""_get_as_binary(VersionInfo self) -> PyObject *"""
522  return _IMP_kernel.VersionInfo__get_as_binary(self)
523 
524  def _set_from_binary(self, p):
525  r"""_set_from_binary(VersionInfo self, PyObject * p)"""
526  return _IMP_kernel.VersionInfo__set_from_binary(self, p)
527 
528  def __getstate__(self):
529  p = self._get_as_binary()
530  if len(self.__dict__) > 1:
531  d = self.__dict__.copy()
532  del d['this']
533  p = (d, p)
534  return p
535 
536  def __setstate__(self, p):
537  if not hasattr(self, 'this'):
538  self.__init__()
539  if isinstance(p, tuple):
540  d, p = p
541  self.__dict__.update(d)
542  return self._set_from_binary(p)
543 
544  __swig_destroy__ = _IMP_kernel.delete_VersionInfo
545 
546 # Register VersionInfo in _IMP_kernel:
547 _IMP_kernel.VersionInfo_swigregister(VersionInfo)
548 class TextOutput(_InputAdaptor):
549  r"""Proxy of C++ IMP::TextOutput class."""
550 
551  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
552  __repr__ = _swig_repr
553 
554  def __init__(self, *args):
555  r"""
556  __init__(TextOutput self, int arg2) -> TextOutput
557  __init__(TextOutput self, double arg2) -> TextOutput
558  __init__(TextOutput self, char const * c, bool append=False) -> TextOutput
559  __init__(TextOutput self, IMP::TextProxy< std::ostream > p) -> TextOutput
560  __init__(TextOutput self) -> TextOutput
561  __init__(TextOutput self, std::string file_name, bool append=False) -> TextOutput
562  """
563  _IMP_kernel.TextOutput_swiginit(self, _IMP_kernel.new_TextOutput(*args))
564 
565  def show(self, *args):
566  r"""show(TextOutput self, _ostream out=std::cout)"""
567  return _IMP_kernel.TextOutput_show(self, *args)
568 
569  def get_name(self):
570  r"""get_name(TextOutput self) -> std::string"""
571  return _IMP_kernel.TextOutput_get_name(self)
572  __swig_destroy__ = _IMP_kernel.delete_TextOutput
573 
574 # Register TextOutput in _IMP_kernel:
575 _IMP_kernel.TextOutput_swigregister(TextOutput)
576 class TextInput(_InputAdaptor):
577  r"""Proxy of C++ IMP::TextInput class."""
578 
579  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
580  __repr__ = _swig_repr
581 
582  def __init__(self, *args):
583  r"""
584  __init__(TextInput self, int arg2) -> TextInput
585  __init__(TextInput self, double arg2) -> TextInput
586  __init__(TextInput self, char const * c) -> TextInput
587  __init__(TextInput self, IMP::TextProxy< std::istream > p) -> TextInput
588  __init__(TextInput self) -> TextInput
589  __init__(TextInput self, std::string file_name) -> TextInput
590  """
591  _IMP_kernel.TextInput_swiginit(self, _IMP_kernel.new_TextInput(*args))
592 
593  def show(self, *args):
594  r"""show(TextInput self, _ostream out=std::cout)"""
595  return _IMP_kernel.TextInput_show(self, *args)
596 
597  def get_name(self):
598  r"""get_name(TextInput self) -> std::string"""
599  return _IMP_kernel.TextInput_get_name(self)
600 
601  def set_binary_open_mode(self, binary):
602  r"""set_binary_open_mode(TextInput self, bool binary)"""
603  return _IMP_kernel.TextInput_set_binary_open_mode(self, binary)
604  __swig_destroy__ = _IMP_kernel.delete_TextInput
605 
606 # Register TextInput in _IMP_kernel:
607 _IMP_kernel.TextInput_swigregister(TextInput)
608 class SetLogTarget(_RAII):
609  r"""Proxy of C++ IMP::SetLogTarget class."""
610 
611  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
612 
613  def __init__(self, *args):
614  r"""
615  __init__(SetLogTarget self) -> SetLogTarget
616  __init__(SetLogTarget self, TextOutput to) -> SetLogTarget
617  """
618  _IMP_kernel.SetLogTarget_swiginit(self, _IMP_kernel.new_SetLogTarget(*args))
619 
620  def set(self, to):
621  r"""set(SetLogTarget self, TextOutput to)"""
622  return _IMP_kernel.SetLogTarget_set(self, to)
623 
624  def reset(self):
625  r"""reset(SetLogTarget self)"""
626  return _IMP_kernel.SetLogTarget_reset(self)
627  __swig_destroy__ = _IMP_kernel.delete_SetLogTarget
628 
629  def show(self, *args):
630  r"""show(SetLogTarget self, _ostream out=std::cout)"""
631  return _IMP_kernel.SetLogTarget_show(self, *args)
632 
633  def __enter__(self):
634  return self
635  def __exit__(self, exc_type, exc_val, exc_tb):
636  self.reset()
637  return False
638 
639 
640  def __str__(self):
641  r"""__str__(SetLogTarget self) -> std::string"""
642  return _IMP_kernel.SetLogTarget___str__(self)
643 
644  def __repr__(self):
645  r"""__repr__(SetLogTarget self) -> std::string"""
646  return _IMP_kernel.SetLogTarget___repr__(self)
647 
648 # Register SetLogTarget in _IMP_kernel:
649 _IMP_kernel.SetLogTarget_swigregister(SetLogTarget)
650 
651 def create_temporary_file(*args):
652  r"""create_temporary_file(std::string prefix="imp_temp", std::string suffix="") -> TextOutput"""
653  return _IMP_kernel.create_temporary_file(*args)
654 
655 def create_temporary_file_name(*args):
656  r"""create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="") -> std::string"""
657  return _IMP_kernel.create_temporary_file_name(*args)
658 
659 def get_relative_path(base, relative):
660  r"""get_relative_path(std::string base, std::string relative) -> std::string"""
661  return _IMP_kernel.get_relative_path(base, relative)
662 
663 def get_absolute_path(file):
664  r"""get_absolute_path(std::string file) -> std::string"""
665  return _IMP_kernel.get_absolute_path(file)
666 
667 def push_log_context(functionname, object):
668  r"""push_log_context(char const * functionname, void const * object)"""
669  return _IMP_kernel.push_log_context(functionname, object)
670 
671 def pop_log_context():
672  r"""pop_log_context()"""
673  return _IMP_kernel.pop_log_context()
674 
675 def add_to_log(*args):
676  r"""
677  add_to_log(std::string to_write)
678  add_to_log(IMP::LogLevel level, std::string to_write)
679  """
680  return _IMP_kernel.add_to_log(*args)
681 
682 def set_log_level(l):
683  r"""set_log_level(IMP::LogLevel l)"""
684  return _IMP_kernel.set_log_level(l)
685 
686 def set_log_timer(tb):
687  r"""set_log_timer(bool tb)"""
688  return _IMP_kernel.set_log_timer(tb)
689 
690 def reset_log_timer():
691  r"""reset_log_timer()"""
692  return _IMP_kernel.reset_log_timer()
693 
694 def get_log_level():
695  r"""get_log_level() -> IMP::LogLevel"""
696  return _IMP_kernel.get_log_level()
697 
698 def set_progress_display(description, steps):
699  r"""set_progress_display(std::string description, unsigned int steps)"""
700  return _IMP_kernel.set_progress_display(description, steps)
701 
702 def add_to_progress_display(step=1):
703  r"""add_to_progress_display(unsigned int step=1)"""
704  return _IMP_kernel.add_to_progress_display(step)
705 class Object(_NonCopyable):
706  r"""Proxy of C++ IMP::Object class."""
707 
708  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
709 
710  def __init__(self, name):
711  r"""__init__(Object self, std::string name) -> Object"""
712  if self.__class__ == Object:
713  _self = None
714  else:
715  _self = self
716  _IMP_kernel.Object_swiginit(self, _IMP_kernel.new_Object(_self, name))
717 
718  if self.__class__ != Object:
719  _director_objects.register(self)
720 
721 
722 
723  __swig_destroy__ = _IMP_kernel.delete_Object
724 
725  def __hash__(self):
726  r"""__hash__(Object self) -> std::size_t"""
727  return _IMP_kernel.Object___hash__(self)
728 
729  def set_log_level(self, l):
730  r"""set_log_level(Object self, IMP::LogLevel l)"""
731  return _IMP_kernel.Object_set_log_level(self, l)
732 
733  def set_check_level(self, l):
734  r"""set_check_level(Object self, IMP::CheckLevel l)"""
735  return _IMP_kernel.Object_set_check_level(self, l)
736 
737  def get_log_level(self):
738  r"""get_log_level(Object self) -> IMP::LogLevel"""
739  return _IMP_kernel.Object_get_log_level(self)
740 
741  def get_check_level(self):
742  r"""get_check_level(Object self) -> IMP::CheckLevel"""
743  return _IMP_kernel.Object_get_check_level(self)
744 
745  def get_version_info(self):
746  r"""get_version_info(Object self) -> VersionInfo"""
747  val = _IMP_kernel.Object_get_version_info(self)
748  if val.get_module() == 'none':
749  val = VersionInfo(
750  self.__module__,
751  __import__(self.__module__).get_module_version())
752  return val
753 
754  def get_name(self):
755  r"""get_name(Object self) -> std::string const &"""
756  return _IMP_kernel.Object_get_name(self)
757 
758  def set_name(self, name):
759  r"""set_name(Object self, std::string name)"""
760  return _IMP_kernel.Object_set_name(self, name)
761 
762  def get_type_name(self):
763  r"""get_type_name(Object self) -> std::string"""
764  val = _IMP_kernel.Object_get_type_name(self)
765  if val == 'unknown object type':
766  val = self.__class__.__name__
767  return val
768 
769  def set_was_used(self, tf):
770  r"""set_was_used(Object self, bool tf)"""
771  return _IMP_kernel.Object_set_was_used(self, tf)
772 
773  def show(self, *args):
774  r"""show(Object self, _ostream out=std::cout)"""
775  return _IMP_kernel.Object_show(self, *args)
776 
777  def get_string(self):
778  r"""get_string(Object self) -> std::string"""
779  return _IMP_kernel.Object_get_string(self)
780 
781  def _on_destruction(self):
782  r"""_on_destruction(Object self)"""
783  return _IMP_kernel.Object__on_destruction(self)
784 
785  def get_is_valid(self):
786  r"""get_is_valid(Object self) -> bool"""
787  return _IMP_kernel.Object_get_is_valid(self)
788 
789  def get_ref_count(self):
790  r"""get_ref_count(Object self) -> unsigned int"""
791  return _IMP_kernel.Object_get_ref_count(self)
792 
793  @staticmethod
794  def get_number_of_live_objects():
795  r"""get_number_of_live_objects() -> unsigned int"""
796  return _IMP_kernel.Object_get_number_of_live_objects()
797 
798  def get_is_shared(self):
799  r"""get_is_shared(Object self) -> bool"""
800  return _IMP_kernel.Object_get_is_shared(self)
801 
802  def clear_caches(self):
803  r"""clear_caches(Object self)"""
804  return _IMP_kernel.Object_clear_caches(self)
805 
806  def do_destroy(self):
807  r"""do_destroy(Object self)"""
808  return _IMP_kernel.Object_do_destroy(self)
809 
810  def __getstate__(self):
811  raise NotImplementedError(str(self.__class__)
812  + " does not support serialization")
813 
814 
815  def __eq__(self, o):
816  r"""__eq__(Object self, Object o) -> bool"""
817  return _IMP_kernel.Object___eq__(self, o)
818 
819  def __ne__(self, o):
820  r"""__ne__(Object self, Object o) -> bool"""
821  return _IMP_kernel.Object___ne__(self, o)
822 
823  def __le__(self, o):
824  r"""__le__(Object self, Object o) -> bool"""
825  return _IMP_kernel.Object___le__(self, o)
826 
827  def __lt__(self, o):
828  r"""__lt__(Object self, Object o) -> bool"""
829  return _IMP_kernel.Object___lt__(self, o)
830 
831  def __ge__(self, o):
832  r"""__ge__(Object self, Object o) -> bool"""
833  return _IMP_kernel.Object___ge__(self, o)
834 
835  def __gt__(self, o):
836  r"""__gt__(Object self, Object o) -> bool"""
837  return _IMP_kernel.Object___gt__(self, o)
838 
839  def _get_director_object(self):
840  r"""_get_director_object(Object self) -> PyObject *"""
841  return _IMP_kernel.Object__get_director_object(self)
842 
844  """Return this object cast to the most derived subclass."""
845  # If this is a SWIG director, return the original Python object
846  pyobj = self._get_director_object()
847  if pyobj is not None:
848  return pyobj
849  # Otherwise, use the object's module and type name to look up
850  # the corresponding most-derived Python type
851  modname = self.get_version_info().get_module().replace('::', '.')
852  type_name = self.get_type_name()
853  # IMP.core.RestraintsScoringFunction is a typedef for
854  # IMP.GenericRestraintsScoringFunction; map to the real Python class
855  if modname == 'IMP' and type_name == 'GenericRestraintsScoringFunction':
856  modname = 'IMP.core'
857  type_name = 'RestraintsScoringFunction'
858  elif (modname == 'IMP.core'
859  and type_name == 'GenericBoundingBox3DSingletonScore'):
860  type_name = 'BoundingBox3DSingletonScore'
861  elif modname == 'IMP' and type_name == 'RestraintScoringFunction':
862  # The implicit RestraintScoringFunction isn't exposed to Python,
863  # so just return the base class
864  return self
865  modobj = sys.modules[modname]
866  clsobj = getattr(modobj, type_name)
867  return clsobj.get_from(self)
868 
869 
870  def __str__(self):
871  r"""__str__(Object self) -> std::string"""
872  return _IMP_kernel.Object___str__(self)
873 
874  def __repr__(self):
875  r"""__repr__(Object self) -> std::string"""
876  return _IMP_kernel.Object___repr__(self)
877 
878  @staticmethod
879  def get_from(o):
880  return _object_cast_to_Object(o)
881 
882  def __disown__(self):
883  self.this.disown()
884  _IMP_kernel.disown_Object(self)
885  return weakref.proxy(self)
886 
887 # Register Object in _IMP_kernel:
888 _IMP_kernel.Object_swigregister(Object)
889 class SetLogState(_RAII):
890  r"""Proxy of C++ IMP::SetLogState class."""
891 
892  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
893 
894  def reset(self):
895  r"""reset(SetLogState self)"""
896  return _IMP_kernel.SetLogState_reset(self)
897  __swig_destroy__ = _IMP_kernel.delete_SetLogState
898 
899  def show(self, *args):
900  r"""show(SetLogState self, _ostream out=std::cout)"""
901  return _IMP_kernel.SetLogState_show(self, *args)
902 
903  def __init__(self, *args):
904  r"""
905  __init__(SetLogState self) -> SetLogState
906  __init__(SetLogState self, Object o, IMP::LogLevel l) -> SetLogState
907  __init__(SetLogState self, IMP::LogLevel l) -> SetLogState
908  """
909  _IMP_kernel.SetLogState_swiginit(self, _IMP_kernel.new_SetLogState(*args))
910 
911  def set(self, *args):
912  r"""
913  set(SetLogState self, Object o, IMP::LogLevel l)
914  set(SetLogState self, IMP::LogLevel l)
915  """
916  return _IMP_kernel.SetLogState_set(self, *args)
917 
918  def __enter__(self):
919  return self
920  def __exit__(self, exc_type, exc_val, exc_tb):
921  self.reset()
922  return False
923 
924 
925  def __str__(self):
926  r"""__str__(SetLogState self) -> std::string"""
927  return _IMP_kernel.SetLogState___str__(self)
928 
929  def __repr__(self):
930  r"""__repr__(SetLogState self) -> std::string"""
931  return _IMP_kernel.SetLogState___repr__(self)
932 
933 # Register SetLogState in _IMP_kernel:
934 _IMP_kernel.SetLogState_swigregister(SetLogState)
935 class WarningContext(object):
936  r"""Proxy of C++ IMP::WarningContext class."""
937 
938  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
939  data_ = property(_IMP_kernel.WarningContext_data__get, _IMP_kernel.WarningContext_data__set, doc=r"""data_ : boost::unordered_set<(std::string)>""")
940 
941  def add_warning(self, key, warning):
942  r"""add_warning(WarningContext self, std::string key, std::string warning)"""
943  return _IMP_kernel.WarningContext_add_warning(self, key, warning)
944 
945  def clear_warnings(self):
946  r"""clear_warnings(WarningContext self)"""
947  return _IMP_kernel.WarningContext_clear_warnings(self)
948 
949  def dump_warnings(self):
950  r"""dump_warnings(WarningContext self)"""
951  return _IMP_kernel.WarningContext_dump_warnings(self)
952  __swig_destroy__ = _IMP_kernel.delete_WarningContext
953 
954  def show(self, *args):
955  r"""show(WarningContext self, _ostream out=std::cout)"""
956  return _IMP_kernel.WarningContext_show(self, *args)
957 
958  def __enter__(self):
959  return self
960  def __exit__(self, exc_type, exc_val, exc_tb):
961  self.reset()
962  return False
963 
964 
965  def __str__(self):
966  r"""__str__(WarningContext self) -> std::string"""
967  return _IMP_kernel.WarningContext___str__(self)
968 
969  def __repr__(self):
970  r"""__repr__(WarningContext self) -> std::string"""
971  return _IMP_kernel.WarningContext___repr__(self)
972 
973  def __init__(self):
974  r"""__init__(WarningContext self) -> WarningContext"""
975  _IMP_kernel.WarningContext_swiginit(self, _IMP_kernel.new_WarningContext())
976 
977 # Register WarningContext in _IMP_kernel:
978 _IMP_kernel.WarningContext_swigregister(WarningContext)
979 class CreateLogContext(_RAII):
980  r"""Proxy of C++ IMP::CreateLogContext class."""
981 
982  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
983 
984  def __init__(self, *args):
985  r"""
986  __init__(CreateLogContext self, std::string fname, Object object=None) -> CreateLogContext
987  __init__(CreateLogContext self) -> CreateLogContext
988  __init__(CreateLogContext self, char const * fname, Object object=None) -> CreateLogContext
989  """
990  _IMP_kernel.CreateLogContext_swiginit(self, _IMP_kernel.new_CreateLogContext(*args))
991 
992  def set(self, fname, object=None):
993  r"""set(CreateLogContext self, char const * fname, Object object=None)"""
994  return _IMP_kernel.CreateLogContext_set(self, fname, object)
995 
996  def reset(self):
997  r"""reset(CreateLogContext self)"""
998  return _IMP_kernel.CreateLogContext_reset(self)
999  __swig_destroy__ = _IMP_kernel.delete_CreateLogContext
1000 
1001  def show(self, *args):
1002  r"""show(CreateLogContext self, _ostream out=std::cout)"""
1003  return _IMP_kernel.CreateLogContext_show(self, *args)
1004 
1005  def __enter__(self):
1006  return self
1007  def __exit__(self, exc_type, exc_val, exc_tb):
1008  self.reset()
1009  return False
1010 
1011 
1012  def __str__(self):
1013  r"""__str__(CreateLogContext self) -> std::string"""
1014  return _IMP_kernel.CreateLogContext___str__(self)
1015 
1016  def __repr__(self):
1017  r"""__repr__(CreateLogContext self) -> std::string"""
1018  return _IMP_kernel.CreateLogContext___repr__(self)
1019 
1020 # Register CreateLogContext in _IMP_kernel:
1021 _IMP_kernel.CreateLogContext_swigregister(CreateLogContext)
1022 class SetCheckState(_RAII):
1023  r"""Proxy of C++ IMP::SetCheckState class."""
1024 
1025  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1026 
1027  def reset(self):
1028  r"""reset(SetCheckState self)"""
1029  return _IMP_kernel.SetCheckState_reset(self)
1030  __swig_destroy__ = _IMP_kernel.delete_SetCheckState
1031 
1032  def show(self, *args):
1033  r"""show(SetCheckState self, _ostream out=std::cout)"""
1034  return _IMP_kernel.SetCheckState_show(self, *args)
1035 
1036  def __init__(self, *args):
1037  r"""
1038  __init__(SetCheckState self) -> SetCheckState
1039  __init__(SetCheckState self, Object o, IMP::CheckLevel l) -> SetCheckState
1040  __init__(SetCheckState self, IMP::CheckLevel l) -> SetCheckState
1041  """
1042  _IMP_kernel.SetCheckState_swiginit(self, _IMP_kernel.new_SetCheckState(*args))
1043 
1044  def set(self, *args):
1045  r"""
1046  set(SetCheckState self, Object o, IMP::CheckLevel l)
1047  set(SetCheckState self, IMP::CheckLevel l)
1048  """
1049  return _IMP_kernel.SetCheckState_set(self, *args)
1050 
1051  def __enter__(self):
1052  return self
1053  def __exit__(self, exc_type, exc_val, exc_tb):
1054  self.reset()
1055  return False
1056 
1057 
1058  def __str__(self):
1059  r"""__str__(SetCheckState self) -> std::string"""
1060  return _IMP_kernel.SetCheckState___str__(self)
1061 
1062  def __repr__(self):
1063  r"""__repr__(SetCheckState self) -> std::string"""
1064  return _IMP_kernel.SetCheckState___repr__(self)
1065 
1066 # Register SetCheckState in _IMP_kernel:
1067 _IMP_kernel.SetCheckState_swigregister(SetCheckState)
1068 
1069 def get_unique_name(templ):
1070  r"""get_unique_name(std::string templ) -> std::string"""
1071  return _IMP_kernel.get_unique_name(templ)
1072 
1073 def get_copyright():
1074  r"""get_copyright() -> std::string"""
1075  return _IMP_kernel.get_copyright()
1076 class _Protection(object):
1077  r"""Proxy of C++ IMP::internal::_Protection class."""
1078 
1079  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1080 
1081  def __init__(self, *args, **kwargs):
1082  raise AttributeError("No constructor defined")
1083 
1084  def show(self, *args):
1085  r"""show(_Protection self, _ostream out=std::cout)"""
1086  return _IMP_kernel._Protection_show(self, *args)
1087 
1088  def __str__(self):
1089  r"""__str__(_Protection self) -> std::string"""
1090  return _IMP_kernel._Protection___str__(self)
1091 
1092  def __repr__(self):
1093  r"""__repr__(_Protection self) -> std::string"""
1094  return _IMP_kernel._Protection___repr__(self)
1095  __swig_destroy__ = _IMP_kernel.delete__Protection
1096 
1097 # Register _Protection in _IMP_kernel:
1098 _IMP_kernel._Protection_swigregister(_Protection)
1099 
1100 def _test_log():
1101  r"""_test_log()"""
1102  return _IMP_kernel._test_log()
1103 
1104 def _test_intranges(ips):
1105  r"""_test_intranges(IMP::IntRanges const & ips) -> int"""
1106  return _IMP_kernel._test_intranges(ips)
1107 
1108 def _test_intrange(*args):
1109  r"""
1110  _test_intrange(IMP::IntRange const & ips) -> IMP::IntRange
1111  _test_intrange() -> IMP::IntRange
1112  """
1113  return _IMP_kernel._test_intrange(*args)
1114 
1115 def _test_ifile(a):
1116  r"""_test_ifile(TextInput a) -> std::string"""
1117  return _IMP_kernel._test_ifile(a)
1118 
1119 def _test_ofile(a):
1120  r"""_test_ofile(TextOutput a) -> std::string"""
1121  return _IMP_kernel._test_ofile(a)
1122 
1123 def _test_ifile_overloaded(*args):
1124  r"""
1125  _test_ifile_overloaded(TextInput a, int i) -> std::string
1126  _test_ifile_overloaded(TextInput a, std::string st) -> std::string
1127  """
1128  return _IMP_kernel._test_ifile_overloaded(*args)
1129 
1130 def _test_ofile_overloaded(*args):
1131  r"""
1132  _test_ofile_overloaded(TextOutput a, int i) -> std::string
1133  _test_ofile_overloaded(TextOutput a, std::string st) -> std::string
1134  """
1135  return _IMP_kernel._test_ofile_overloaded(*args)
1136 class _TestValue(object):
1137  r"""Proxy of C++ IMP::internal::_TestValue class."""
1138 
1139  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1140 
1141  def __init__(self, i):
1142  r"""__init__(_TestValue self, int i) -> _TestValue"""
1143  _IMP_kernel._TestValue_swiginit(self, _IMP_kernel.new__TestValue(i))
1144 
1145  def show(self, *args):
1146  r"""show(_TestValue self, _ostream out=std::cout)"""
1147  return _IMP_kernel._TestValue_show(self, *args)
1148 
1149  def __cmp__(self, o):
1150  r"""__cmp__(_TestValue self, _TestValue o) -> int"""
1151  return _IMP_kernel._TestValue___cmp__(self, o)
1152 
1153  def __eq__(self, o):
1154  r"""__eq__(_TestValue self, _TestValue o) -> bool"""
1155  return _IMP_kernel._TestValue___eq__(self, o)
1156 
1157  def __ne__(self, o):
1158  r"""__ne__(_TestValue self, _TestValue o) -> bool"""
1159  return _IMP_kernel._TestValue___ne__(self, o)
1160 
1161  def __lt__(self, o):
1162  r"""__lt__(_TestValue self, _TestValue o) -> bool"""
1163  return _IMP_kernel._TestValue___lt__(self, o)
1164 
1165  def __gt__(self, o):
1166  r"""__gt__(_TestValue self, _TestValue o) -> bool"""
1167  return _IMP_kernel._TestValue___gt__(self, o)
1168 
1169  def __ge__(self, o):
1170  r"""__ge__(_TestValue self, _TestValue o) -> bool"""
1171  return _IMP_kernel._TestValue___ge__(self, o)
1172 
1173  def __le__(self, o):
1174  r"""__le__(_TestValue self, _TestValue o) -> bool"""
1175  return _IMP_kernel._TestValue___le__(self, o)
1176 
1177  def get(self):
1178  r"""get(_TestValue self) -> int"""
1179  return _IMP_kernel._TestValue_get(self)
1180 
1181  def get_float(self):
1182  r"""get_float(_TestValue self) -> float const &"""
1183  return _IMP_kernel._TestValue_get_float(self)
1184 
1185  def get_double(self):
1186  r"""get_double(_TestValue self) -> double const &"""
1187  return _IMP_kernel._TestValue_get_double(self)
1188 
1189  def get_Float(self):
1190  r"""get_Float(_TestValue self) -> IMP::Float const &"""
1191  return _IMP_kernel._TestValue_get_Float(self)
1192 
1193  def get_int(self):
1194  r"""get_int(_TestValue self) -> int const &"""
1195  return _IMP_kernel._TestValue_get_int(self)
1196 
1197  def get_Int(self):
1198  r"""get_Int(_TestValue self) -> IMP::Int const &"""
1199  return _IMP_kernel._TestValue_get_Int(self)
1200 
1201  def get_string(self):
1202  r"""get_string(_TestValue self) -> std::string const &"""
1203  return _IMP_kernel._TestValue_get_string(self)
1204 
1205  def get_String(self):
1206  r"""get_String(_TestValue self) -> IMP::String const &"""
1207  return _IMP_kernel._TestValue_get_String(self)
1208 
1209  def __str__(self):
1210  r"""__str__(_TestValue self) -> std::string"""
1211  return _IMP_kernel._TestValue___str__(self)
1212 
1213  def __repr__(self):
1214  r"""__repr__(_TestValue self) -> std::string"""
1215  return _IMP_kernel._TestValue___repr__(self)
1216  __swig_destroy__ = _IMP_kernel.delete__TestValue
1217 
1218 # Register _TestValue in _IMP_kernel:
1219 _IMP_kernel._TestValue_swigregister(_TestValue)
1220 
1221 def _pass_plain_pair(p):
1222  r"""_pass_plain_pair(IMP::FloatPair p) -> IMP::FloatPair"""
1223  return _IMP_kernel._pass_plain_pair(p)
1224 
1225 def _pass_overloaded_strings(*args):
1226  r"""
1227  _pass_overloaded_strings(IMP::Strings const & a, int arg2) -> IMP::Strings
1228  _pass_overloaded_strings(IMP::Strings const & a) -> IMP::Strings
1229  """
1230  return _IMP_kernel._pass_overloaded_strings(*args)
1231 
1232 def _pass_pair(p):
1233  r"""_pass_pair(IMP::DerivativePair const & p) -> IMP::DerivativePair"""
1234  return _IMP_kernel._pass_pair(p)
1235 
1236 def _pass_floats(input):
1237  r"""_pass_floats(IMP::Floats const & input) -> IMP::Floats"""
1238  return _IMP_kernel._pass_floats(input)
1239 
1240 def _pass_ints(input):
1241  r"""_pass_ints(IMP::Ints input) -> IMP::Ints"""
1242  return _IMP_kernel._pass_ints(input)
1243 
1244 def _pass_ints_list(input):
1245  r"""_pass_ints_list(IMP::IntsList const & input) -> IMP::IntsList"""
1246  return _IMP_kernel._pass_ints_list(input)
1247 
1248 def _pass_ints_lists(input):
1249  r"""_pass_ints_lists(IMP::IntsLists const & input) -> IMP::IntsLists"""
1250  return _IMP_kernel._pass_ints_lists(input)
1251 
1252 def _pass_strings(input):
1253  r"""_pass_strings(IMP::Strings const & input) -> IMP::Strings const &"""
1254  return _IMP_kernel._pass_strings(input)
1255 class _TestObject(Object):
1256  r"""Proxy of C++ IMP::internal::_TestObject class."""
1257 
1258  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1259 
1260  def __init__(self):
1261  r"""__init__(_TestObject self) -> _TestObject"""
1262  _IMP_kernel._TestObject_swiginit(self, _IMP_kernel.new__TestObject())
1263 
1264  def get_version_info(self):
1265  r"""get_version_info(_TestObject self) -> VersionInfo"""
1266  return _IMP_kernel._TestObject_get_version_info(self)
1267  __swig_destroy__ = _IMP_kernel.delete__TestObject
1268 
1269  def __str__(self):
1270  r"""__str__(_TestObject self) -> std::string"""
1271  return _IMP_kernel._TestObject___str__(self)
1272 
1273  def __repr__(self):
1274  r"""__repr__(_TestObject self) -> std::string"""
1275  return _IMP_kernel._TestObject___repr__(self)
1276 
1277  @staticmethod
1278  def get_from(o):
1279  return _object_cast_to__TestObject(o)
1280 
1281 
1282 # Register _TestObject in _IMP_kernel:
1283 _IMP_kernel._TestObject_swigregister(_TestObject)
1284 
1285 def get_live_object_names():
1286  r"""get_live_object_names() -> IMP::Strings"""
1287  return _IMP_kernel.get_live_object_names()
1288 
1289 def get_live_objects():
1290  r"""get_live_objects() -> IMP::Objects"""
1291  return _IMP_kernel.get_live_objects()
1292 
1293 def set_show_leaked_objects(tf):
1294  r"""set_show_leaked_objects(bool tf)"""
1295  return _IMP_kernel.set_show_leaked_objects(tf)
1296 
1297 def set_deprecation_warnings(tf):
1298  r"""set_deprecation_warnings(bool tf)"""
1299  return _IMP_kernel.set_deprecation_warnings(tf)
1300 
1302  r"""set_deprecation_exceptions(bool tf)"""
1303  return _IMP_kernel.set_deprecation_exceptions(tf)
1304 
1306  r"""get_deprecation_exceptions() -> bool"""
1307  return _IMP_kernel.get_deprecation_exceptions()
1308 
1309 def handle_use_deprecated(message):
1310  r"""handle_use_deprecated(std::string message)"""
1311  return _IMP_kernel.handle_use_deprecated(message)
1312 
1313 def get_number_of_threads():
1314  r"""get_number_of_threads() -> unsigned int"""
1315  return _IMP_kernel.get_number_of_threads()
1316 
1317 def set_number_of_threads(n):
1318  r"""set_number_of_threads(unsigned int n)"""
1319  return _IMP_kernel.set_number_of_threads(n)
1320 class SetNumberOfThreads(_RAII):
1321  r"""Proxy of C++ IMP::SetNumberOfThreads class."""
1322 
1323  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1324 
1325  def __init__(self, *args):
1326  r"""
1327  __init__(SetNumberOfThreads self) -> SetNumberOfThreads
1328  __init__(SetNumberOfThreads self, unsigned int n) -> SetNumberOfThreads
1329  """
1330  _IMP_kernel.SetNumberOfThreads_swiginit(self, _IMP_kernel.new_SetNumberOfThreads(*args))
1331 
1332  def set(self, n):
1333  r"""set(SetNumberOfThreads self, unsigned int n)"""
1334  return _IMP_kernel.SetNumberOfThreads_set(self, n)
1335 
1336  def reset(self):
1337  r"""reset(SetNumberOfThreads self)"""
1338  return _IMP_kernel.SetNumberOfThreads_reset(self)
1339  __swig_destroy__ = _IMP_kernel.delete_SetNumberOfThreads
1340 
1341  def show(self, *args):
1342  r"""show(SetNumberOfThreads self, _ostream out=std::cout)"""
1343  return _IMP_kernel.SetNumberOfThreads_show(self, *args)
1344 
1345  def __enter__(self):
1346  return self
1347  def __exit__(self, exc_type, exc_val, exc_tb):
1348  self.reset()
1349  return False
1350 
1351 
1352  def __str__(self):
1353  r"""__str__(SetNumberOfThreads self) -> std::string"""
1354  return _IMP_kernel.SetNumberOfThreads___str__(self)
1355 
1356  def __repr__(self):
1357  r"""__repr__(SetNumberOfThreads self) -> std::string"""
1358  return _IMP_kernel.SetNumberOfThreads___repr__(self)
1359 
1360 # Register SetNumberOfThreads in _IMP_kernel:
1361 _IMP_kernel.SetNumberOfThreads_swigregister(SetNumberOfThreads)
1362 
1363 import os
1364 i_m_p="IMP_MODULE_PATH"
1365 if i_m_p in os.environ.keys():
1366  __path__.insert(0, os.environ[i_m_p])
1367 
1368 def _forward_add_attribute(self, name, value, opt=None):
1369  if opt is not None:
1370  self.get_particle().add_attribute(name, value, opt)
1371  else:
1372  self.get_particle().add_attribute(name, value)
1373 def _forward_get_value(self, name):
1374  self.get_particle().get_value(name)
1375 def _forward_set_value(self, name, value):
1376  self.get_particle().set_value(name, value)
1377 
1378 
1379 build="release"
1380 
1381 
1382 _object_types.append("Constraint")
1383 
1384 
1385 def _object_cast_to_Constraint(o):
1386  r"""_object_cast_to_Constraint(Object o) -> Constraint"""
1387  return _IMP_kernel._object_cast_to_Constraint(o)
1388 
1389 _object_types.append("Undecorator")
1390 
1391 
1392 def _object_cast_to_Undecorator(o):
1393  r"""_object_cast_to_Undecorator(Object o) -> Undecorator"""
1394  return _IMP_kernel._object_cast_to_Undecorator(o)
1395 
1396 _object_types.append("Container")
1397 
1398 
1399 def _object_cast_to_Container(o):
1400  r"""_object_cast_to_Container(Object o) -> Container"""
1401  return _IMP_kernel._object_cast_to_Container(o)
1402 
1403 _object_types.append("Optimizer")
1404 
1405 
1406 def _object_cast_to_Optimizer(o):
1407  r"""_object_cast_to_Optimizer(Object o) -> Optimizer"""
1408  return _IMP_kernel._object_cast_to_Optimizer(o)
1409 
1410 _object_types.append("AttributeOptimizer")
1411 
1412 
1413 def _object_cast_to_AttributeOptimizer(o):
1414  r"""_object_cast_to_AttributeOptimizer(Object o) -> AttributeOptimizer"""
1415  return _IMP_kernel._object_cast_to_AttributeOptimizer(o)
1416 
1417 _object_types.append("OptimizerState")
1418 
1419 
1420 def _object_cast_to_OptimizerState(o):
1421  r"""_object_cast_to_OptimizerState(Object o) -> OptimizerState"""
1422  return _IMP_kernel._object_cast_to_OptimizerState(o)
1423 
1424 _object_types.append("PairContainer")
1425 
1426 
1427 def _object_cast_to_PairContainer(o):
1428  r"""_object_cast_to_PairContainer(Object o) -> PairContainer"""
1429  return _IMP_kernel._object_cast_to_PairContainer(o)
1430 
1431 _object_types.append("PairModifier")
1432 
1433 
1434 def _object_cast_to_PairModifier(o):
1435  r"""_object_cast_to_PairModifier(Object o) -> PairModifier"""
1436  return _IMP_kernel._object_cast_to_PairModifier(o)
1437 
1438 _object_types.append("PairScore")
1439 
1440 
1441 def _object_cast_to_PairScore(o):
1442  r"""_object_cast_to_PairScore(Object o) -> PairScore"""
1443  return _IMP_kernel._object_cast_to_PairScore(o)
1444 
1445 _object_types.append("QuadContainer")
1446 
1447 
1448 def _object_cast_to_QuadContainer(o):
1449  r"""_object_cast_to_QuadContainer(Object o) -> QuadContainer"""
1450  return _IMP_kernel._object_cast_to_QuadContainer(o)
1451 
1452 _object_types.append("QuadModifier")
1453 
1454 
1455 def _object_cast_to_QuadModifier(o):
1456  r"""_object_cast_to_QuadModifier(Object o) -> QuadModifier"""
1457  return _IMP_kernel._object_cast_to_QuadModifier(o)
1458 
1459 _object_types.append("QuadScore")
1460 
1461 
1462 def _object_cast_to_QuadScore(o):
1463  r"""_object_cast_to_QuadScore(Object o) -> QuadScore"""
1464  return _IMP_kernel._object_cast_to_QuadScore(o)
1465 
1466 _object_types.append("Refiner")
1467 
1468 
1469 def _object_cast_to_Refiner(o):
1470  r"""_object_cast_to_Refiner(Object o) -> Refiner"""
1471  return _IMP_kernel._object_cast_to_Refiner(o)
1472 
1473 _object_types.append("Restraint")
1474 
1475 
1476 def _object_cast_to_Restraint(o):
1477  r"""_object_cast_to_Restraint(Object o) -> Restraint"""
1478  return _IMP_kernel._object_cast_to_Restraint(o)
1479 
1480 _object_types.append("Sampler")
1481 
1482 
1483 def _object_cast_to_Sampler(o):
1484  r"""_object_cast_to_Sampler(Object o) -> Sampler"""
1485  return _IMP_kernel._object_cast_to_Sampler(o)
1486 
1487 _object_types.append("ScoreState")
1488 
1489 
1490 def _object_cast_to_ScoreState(o):
1491  r"""_object_cast_to_ScoreState(Object o) -> ScoreState"""
1492  return _IMP_kernel._object_cast_to_ScoreState(o)
1493 
1494 _object_types.append("SingletonContainer")
1495 
1496 
1497 def _object_cast_to_SingletonContainer(o):
1498  r"""_object_cast_to_SingletonContainer(Object o) -> SingletonContainer"""
1499  return _IMP_kernel._object_cast_to_SingletonContainer(o)
1500 
1501 _object_types.append("SingletonModifier")
1502 
1503 
1504 def _object_cast_to_SingletonModifier(o):
1505  r"""_object_cast_to_SingletonModifier(Object o) -> SingletonModifier"""
1506  return _IMP_kernel._object_cast_to_SingletonModifier(o)
1507 
1508 _object_types.append("SingletonScore")
1509 
1510 
1511 def _object_cast_to_SingletonScore(o):
1512  r"""_object_cast_to_SingletonScore(Object o) -> SingletonScore"""
1513  return _IMP_kernel._object_cast_to_SingletonScore(o)
1514 
1515 _object_types.append("TripletContainer")
1516 
1517 
1518 def _object_cast_to_TripletContainer(o):
1519  r"""_object_cast_to_TripletContainer(Object o) -> TripletContainer"""
1520  return _IMP_kernel._object_cast_to_TripletContainer(o)
1521 
1522 _object_types.append("TripletModifier")
1523 
1524 
1525 def _object_cast_to_TripletModifier(o):
1526  r"""_object_cast_to_TripletModifier(Object o) -> TripletModifier"""
1527  return _IMP_kernel._object_cast_to_TripletModifier(o)
1528 
1529 _object_types.append("TripletScore")
1530 
1531 
1532 def _object_cast_to_TripletScore(o):
1533  r"""_object_cast_to_TripletScore(Object o) -> TripletScore"""
1534  return _IMP_kernel._object_cast_to_TripletScore(o)
1535 
1536 _object_types.append("UnaryFunction")
1537 
1538 
1539 def _object_cast_to_UnaryFunction(o):
1540  r"""_object_cast_to_UnaryFunction(Object o) -> UnaryFunction"""
1541  return _IMP_kernel._object_cast_to_UnaryFunction(o)
1542 
1543 _object_types.append("RestraintInfo")
1544 
1545 
1546 def _object_cast_to_RestraintInfo(o):
1547  r"""_object_cast_to_RestraintInfo(Object o) -> RestraintInfo"""
1548  return _IMP_kernel._object_cast_to_RestraintInfo(o)
1549 
1550 _object_types.append("ConfigurationSet")
1551 
1552 
1553 def _object_cast_to_ConfigurationSet(o):
1554  r"""_object_cast_to_ConfigurationSet(Object o) -> ConfigurationSet"""
1555  return _IMP_kernel._object_cast_to_ConfigurationSet(o)
1556 
1557 _object_types.append("Configuration")
1558 
1559 
1560 def _object_cast_to_Configuration(o):
1561  r"""_object_cast_to_Configuration(Object o) -> Configuration"""
1562  return _IMP_kernel._object_cast_to_Configuration(o)
1563 
1564 _object_types.append("Model")
1565 
1566 
1567 def _object_cast_to_Model(o):
1568  r"""_object_cast_to_Model(Object o) -> Model"""
1569  return _IMP_kernel._object_cast_to_Model(o)
1570 
1571 _object_types.append("Particle")
1572 
1573 
1574 def _object_cast_to_Particle(o):
1575  r"""_object_cast_to_Particle(Object o) -> Particle"""
1576  return _IMP_kernel._object_cast_to_Particle(o)
1577 
1578 _object_types.append("RestraintSet")
1579 
1580 
1581 def _object_cast_to_RestraintSet(o):
1582  r"""_object_cast_to_RestraintSet(Object o) -> RestraintSet"""
1583  return _IMP_kernel._object_cast_to_RestraintSet(o)
1584 
1585 ParticlePairsTemp=list
1586 _plural_types.append("ParticlePairsTemp")
1587 _value_types.append("ParticlePair")
1588 
1589 
1590 ParticleTripletsTemp=list
1591 _plural_types.append("ParticleTripletsTemp")
1592 _value_types.append("ParticleTriplet")
1593 
1594 
1595 ParticleQuadsTemp=list
1596 _plural_types.append("ParticleQuadsTemp")
1597 _value_types.append("ParticleQuad")
1598 
1599 
1600 ParticleIndexPairs=list
1601 _plural_types.append("ParticleIndexPairs")
1602 _value_types.append("ParticleIndexPair")
1603 
1604 
1605 ParticleIndexTriplets=list
1606 _plural_types.append("ParticleIndexTriplets")
1607 _value_types.append("ParticleIndexTriplet")
1608 
1609 
1610 ParticleIndexQuads=list
1611 _plural_types.append("ParticleIndexQuads")
1612 _value_types.append("ParticleIndexQuad")
1613 
1614 
1615 _object_types.append("SingletonPredicate")
1616 
1617 
1618 def _object_cast_to_SingletonPredicate(o):
1619  r"""_object_cast_to_SingletonPredicate(Object o) -> SingletonPredicate"""
1620  return _IMP_kernel._object_cast_to_SingletonPredicate(o)
1621 
1622 _object_types.append("PairPredicate")
1623 
1624 
1625 def _object_cast_to_PairPredicate(o):
1626  r"""_object_cast_to_PairPredicate(Object o) -> PairPredicate"""
1627  return _IMP_kernel._object_cast_to_PairPredicate(o)
1628 
1629 _object_types.append("TripletPredicate")
1630 
1631 
1632 def _object_cast_to_TripletPredicate(o):
1633  r"""_object_cast_to_TripletPredicate(Object o) -> TripletPredicate"""
1634  return _IMP_kernel._object_cast_to_TripletPredicate(o)
1635 
1636 _object_types.append("QuadPredicate")
1637 
1638 
1639 def _object_cast_to_QuadPredicate(o):
1640  r"""_object_cast_to_QuadPredicate(Object o) -> QuadPredicate"""
1641  return _IMP_kernel._object_cast_to_QuadPredicate(o)
1642 
1643 _object_types.append("SaveToConfigurationSetOptimizerState")
1644 
1645 
1646 def _object_cast_to_SaveToConfigurationSetOptimizerState(o):
1647  r"""_object_cast_to_SaveToConfigurationSetOptimizerState(Object o) -> SaveToConfigurationSetOptimizerState"""
1648  return _IMP_kernel._object_cast_to_SaveToConfigurationSetOptimizerState(o)
1649 
1650 EvaluationStates=list
1651 _plural_types.append("EvaluationStates")
1652 _value_types.append("EvaluationState")
1653 
1654 
1655 ScoreAccumulators=list
1656 _plural_types.append("ScoreAccumulators")
1657 _value_types.append("ScoreAccumulator")
1658 
1659 
1660 ParticleIndexes=list
1661 _plural_types.append("ParticleIndexes")
1662 _value_types.append("ParticleIndex")
1663 
1664 
1665 FloatIndexes=list
1666 _plural_types.append("FloatIndexes")
1667 _value_types.append("FloatIndex")
1668 
1669 
1670 FloatKeys=list
1671 _plural_types.append("FloatKeys")
1672 _value_types.append("FloatKey")
1673 
1674 
1675 FloatsKeys=list
1676 _plural_types.append("FloatsKeys")
1677 _value_types.append("FloatsKey")
1678 
1679 
1680 IntKeys=list
1681 _plural_types.append("IntKeys")
1682 _value_types.append("IntKey")
1683 
1684 
1685 IntsKeys=list
1686 _plural_types.append("IntsKeys")
1687 _value_types.append("IntsKey")
1688 
1689 
1690 StringKeys=list
1691 _plural_types.append("StringKeys")
1692 _value_types.append("StringKey")
1693 
1694 
1695 ParticleIndexKeys=list
1696 _plural_types.append("ParticleIndexKeys")
1697 _value_types.append("ParticleIndexKey")
1698 
1699 
1700 ParticleIndexesKeys=list
1701 _plural_types.append("ParticleIndexesKeys")
1702 _value_types.append("ParticleIndexesKey")
1703 
1704 
1705 ObjectKeys=list
1706 _plural_types.append("ObjectKeys")
1707 _value_types.append("ObjectKey")
1708 
1709 
1710 ModelKeys=list
1711 _plural_types.append("ModelKeys")
1712 _value_types.append("ModelKey")
1713 
1714 
1715 TriggerKeys=list
1716 _plural_types.append("TriggerKeys")
1717 _value_types.append("TriggerKey")
1718 
1719 
1720 SparseFloatKeys=list
1721 _plural_types.append("SparseFloatKeys")
1722 _value_types.append("SparseFloatKey")
1723 
1724 
1725 SparseIntKeys=list
1726 _plural_types.append("SparseIntKeys")
1727 _value_types.append("SparseIntKey")
1728 
1729 
1730 SparseStringKeys=list
1731 _plural_types.append("SparseStringKeys")
1732 _value_types.append("SparseStringKey")
1733 
1734 
1735 SparseParticleIndexKeys=list
1736 _plural_types.append("SparseParticleIndexKeys")
1737 _value_types.append("SparseParticleIndexKey")
1738 
1739 
1740 Vector3DKeys=list
1741 _plural_types.append("Vector3DKeys")
1742 _value_types.append("Vector3DKey")
1743 
1744 
1745 _raii_types.append("ScopedSetFloatAttribute")
1746 
1747 
1748 _object_types.append("ScoringFunction")
1749 
1750 
1751 def _object_cast_to_ScoringFunction(o):
1752  r"""_object_cast_to_ScoringFunction(Object o) -> ScoringFunction"""
1753  return _IMP_kernel._object_cast_to_ScoringFunction(o)
1754 
1755 _object_types.append("ModelObject")
1756 
1757 
1758 def _object_cast_to_ModelObject(o):
1759  r"""_object_cast_to_ModelObject(Object o) -> ModelObject"""
1760  return _IMP_kernel._object_cast_to_ModelObject(o)
1761 
1762 def _TrivialDecorators(l=[]):
1763  return [_TrivialDecorator(x) for x in l]
1764 _plural_types.append("_TrivialDecorators")
1765 
1766 
1767 _value_types.append("_TrivialDecorator")
1768 
1769 
1770 def _TrivialDerivedDecorators(l=[]):
1771  return [_TrivialDerivedDecorator(x) for x in l]
1772 _plural_types.append("_TrivialDerivedDecorators")
1773 
1774 
1775 _value_types.append("_TrivialDerivedDecorator")
1776 
1777 
1778 def _TrivialTraitsDecorators(l=[]):
1779  return [_TrivialTraitsDecorator(x) for x in l]
1780 _plural_types.append("_TrivialTraitsDecorators")
1781 
1782 
1783 _value_types.append("_TrivialTraitsDecorator")
1784 
1785 
1786 _object_types.append("_ConstRestraint")
1787 
1788 
1789 def _object_cast_to__ConstRestraint(o):
1790  r"""_object_cast_to__ConstRestraint(Object o) -> _ConstRestraint"""
1791  return _IMP_kernel._object_cast_to__ConstRestraint(o)
1792 
1793 _object_types.append("_ConstOptimizer")
1794 
1795 
1796 def _object_cast_to__ConstOptimizer(o):
1797  r"""_object_cast_to__ConstOptimizer(Object o) -> _ConstOptimizer"""
1798  return _IMP_kernel._object_cast_to__ConstOptimizer(o)
1799 
1800 _object_types.append("_ConstSingletonScore")
1801 
1802 
1803 def _object_cast_to__ConstSingletonScore(o):
1804  r"""_object_cast_to__ConstSingletonScore(Object o) -> _ConstSingletonScore"""
1805  return _IMP_kernel._object_cast_to__ConstSingletonScore(o)
1806 
1807 _object_types.append("_ConstPairScore")
1808 
1809 
1810 def _object_cast_to__ConstPairScore(o):
1811  r"""_object_cast_to__ConstPairScore(Object o) -> _ConstPairScore"""
1812  return _IMP_kernel._object_cast_to__ConstPairScore(o)
1813 class DependencyGraph(Object):
1814  r"""Proxy of C++ IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex > class."""
1815 
1816  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1817  __repr__ = _swig_repr
1818 
1819  def __init__(self):
1820  r"""__init__(DependencyGraph self) -> DependencyGraph"""
1821  _IMP_kernel.DependencyGraph_swiginit(self, _IMP_kernel.new_DependencyGraph())
1822 
1823  def get_graph(self):
1824  r"""get_graph(DependencyGraph self) -> IMP::DependencyGraph const &"""
1825  return _IMP_kernel.DependencyGraph_get_graph(self)
1826 
1827  def get_vertices(self):
1828  r"""get_vertices(DependencyGraph self) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
1829  return _IMP_kernel.DependencyGraph_get_vertices(self)
1830 
1831  def get_vertex_name(self, i):
1832  r"""get_vertex_name(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor i) -> ModelObject"""
1833  return _IMP_kernel.DependencyGraph_get_vertex_name(self, i)
1834 
1835  def get_in_neighbors(self, v):
1836  r"""get_in_neighbors(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
1837  return _IMP_kernel.DependencyGraph_get_in_neighbors(self, v)
1838 
1839  def get_out_neighbors(self, v):
1840  r"""get_out_neighbors(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
1841  return _IMP_kernel.DependencyGraph_get_out_neighbors(self, v)
1842 
1843  def show_graphviz(self, *args):
1844  r"""show_graphviz(DependencyGraph self, _ostream out=std::cout)"""
1845  return _IMP_kernel.DependencyGraph_show_graphviz(self, *args)
1846 
1847  def get_graphviz_string(self):
1848  r"""get_graphviz_string(DependencyGraph self) -> std::string"""
1849  return _IMP_kernel.DependencyGraph_get_graphviz_string(self)
1850 
1851  def add_edge(self, v0, v1):
1852  r"""add_edge(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v0, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v1)"""
1853  return _IMP_kernel.DependencyGraph_add_edge(self, v0, v1)
1854 
1855  def add_vertex(self, l):
1856  r"""add_vertex(DependencyGraph self, ModelObject l) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor"""
1857  return _IMP_kernel.DependencyGraph_add_vertex(self, l)
1858 
1859  def remove_vertex(self, l):
1860  r"""remove_vertex(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor l)"""
1861  return _IMP_kernel.DependencyGraph_remove_vertex(self, l)
1862  __swig_destroy__ = _IMP_kernel.delete_DependencyGraph
1863 
1864 # Register DependencyGraph in _IMP_kernel:
1865 _IMP_kernel.DependencyGraph_swigregister(DependencyGraph)
1866 
1867 _value_types.append("DependencyGraph")
1868 
1869 class FloatKey(_Value):
1870  r"""Proxy of C++ IMP::Key< 0 > class."""
1871 
1872  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1873 
1874  def __init__(self, *args):
1875  r"""
1876  __init__(FloatKey self) -> FloatKey
1877  __init__(FloatKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatKey
1878  __init__(FloatKey self, unsigned int i) -> FloatKey
1879  """
1880  _IMP_kernel.FloatKey_swiginit(self, _IMP_kernel.new_FloatKey(*args))
1881 
1882  @staticmethod
1883  def add_key(sc):
1884  r"""add_key(std::string sc) -> unsigned int"""
1885  return _IMP_kernel.FloatKey_add_key(sc)
1886 
1887  @staticmethod
1888  def get_key_exists(sc):
1889  r"""get_key_exists(std::string sc) -> bool"""
1890  return _IMP_kernel.FloatKey_get_key_exists(sc)
1891 
1892  def get_string(self):
1893  r"""get_string(FloatKey self) -> std::string const"""
1894  return _IMP_kernel.FloatKey_get_string(self)
1895 
1896  def __cmp__(self, o):
1897  r"""__cmp__(FloatKey self, FloatKey o) -> int"""
1898  return _IMP_kernel.FloatKey___cmp__(self, o)
1899 
1900  def __eq__(self, o):
1901  r"""__eq__(FloatKey self, FloatKey o) -> bool"""
1902  return _IMP_kernel.FloatKey___eq__(self, o)
1903 
1904  def __ne__(self, o):
1905  r"""__ne__(FloatKey self, FloatKey o) -> bool"""
1906  return _IMP_kernel.FloatKey___ne__(self, o)
1907 
1908  def __lt__(self, o):
1909  r"""__lt__(FloatKey self, FloatKey o) -> bool"""
1910  return _IMP_kernel.FloatKey___lt__(self, o)
1911 
1912  def __gt__(self, o):
1913  r"""__gt__(FloatKey self, FloatKey o) -> bool"""
1914  return _IMP_kernel.FloatKey___gt__(self, o)
1915 
1916  def __ge__(self, o):
1917  r"""__ge__(FloatKey self, FloatKey o) -> bool"""
1918  return _IMP_kernel.FloatKey___ge__(self, o)
1919 
1920  def __le__(self, o):
1921  r"""__le__(FloatKey self, FloatKey o) -> bool"""
1922  return _IMP_kernel.FloatKey___le__(self, o)
1923 
1924  def __hash__(self):
1925  r"""__hash__(FloatKey self) -> std::size_t"""
1926  return _IMP_kernel.FloatKey___hash__(self)
1927 
1928  def show(self, *args):
1929  r"""show(FloatKey self, _ostream out=std::cout)"""
1930  return _IMP_kernel.FloatKey_show(self, *args)
1931 
1932  @staticmethod
1933  def add_alias(old_key, new_name):
1934  r"""add_alias(FloatKey old_key, std::string new_name) -> FloatKey"""
1935  return _IMP_kernel.FloatKey_add_alias(old_key, new_name)
1936 
1937  @staticmethod
1938  def get_number_of_keys():
1939  r"""get_number_of_keys() -> unsigned int"""
1940  return _IMP_kernel.FloatKey_get_number_of_keys()
1941 
1942  def get_index(self):
1943  r"""get_index(FloatKey self) -> unsigned int"""
1944  return _IMP_kernel.FloatKey_get_index(self)
1945 
1946  @staticmethod
1947  def show_all(out):
1948  r"""show_all(_ostream out)"""
1949  return _IMP_kernel.FloatKey_show_all(out)
1950 
1951  @staticmethod
1952  def get_all_strings():
1953  r"""get_all_strings() -> IMP::Vector< std::string >"""
1954  return _IMP_kernel.FloatKey_get_all_strings()
1955 
1956  @staticmethod
1957  def get_number_unique():
1958  r"""get_number_unique() -> unsigned int"""
1959  return _IMP_kernel.FloatKey_get_number_unique()
1960 
1961  def __str__(self):
1962  r"""__str__(FloatKey self) -> std::string"""
1963  return _IMP_kernel.FloatKey___str__(self)
1964 
1965  def __repr__(self):
1966  r"""__repr__(FloatKey self) -> std::string"""
1967  return _IMP_kernel.FloatKey___repr__(self)
1968  __swig_destroy__ = _IMP_kernel.delete_FloatKey
1969 
1970 # Register FloatKey in _IMP_kernel:
1971 _IMP_kernel.FloatKey_swigregister(FloatKey)
1972 class IntKey(_Value):
1973  r"""Proxy of C++ IMP::Key< 1 > class."""
1974 
1975  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1976 
1977  def __init__(self, *args):
1978  r"""
1979  __init__(IntKey self) -> IntKey
1980  __init__(IntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntKey
1981  __init__(IntKey self, unsigned int i) -> IntKey
1982  """
1983  _IMP_kernel.IntKey_swiginit(self, _IMP_kernel.new_IntKey(*args))
1984 
1985  @staticmethod
1986  def add_key(sc):
1987  r"""add_key(std::string sc) -> unsigned int"""
1988  return _IMP_kernel.IntKey_add_key(sc)
1989 
1990  @staticmethod
1991  def get_key_exists(sc):
1992  r"""get_key_exists(std::string sc) -> bool"""
1993  return _IMP_kernel.IntKey_get_key_exists(sc)
1994 
1995  def get_string(self):
1996  r"""get_string(IntKey self) -> std::string const"""
1997  return _IMP_kernel.IntKey_get_string(self)
1998 
1999  def __cmp__(self, o):
2000  r"""__cmp__(IntKey self, IntKey o) -> int"""
2001  return _IMP_kernel.IntKey___cmp__(self, o)
2002 
2003  def __eq__(self, o):
2004  r"""__eq__(IntKey self, IntKey o) -> bool"""
2005  return _IMP_kernel.IntKey___eq__(self, o)
2006 
2007  def __ne__(self, o):
2008  r"""__ne__(IntKey self, IntKey o) -> bool"""
2009  return _IMP_kernel.IntKey___ne__(self, o)
2010 
2011  def __lt__(self, o):
2012  r"""__lt__(IntKey self, IntKey o) -> bool"""
2013  return _IMP_kernel.IntKey___lt__(self, o)
2014 
2015  def __gt__(self, o):
2016  r"""__gt__(IntKey self, IntKey o) -> bool"""
2017  return _IMP_kernel.IntKey___gt__(self, o)
2018 
2019  def __ge__(self, o):
2020  r"""__ge__(IntKey self, IntKey o) -> bool"""
2021  return _IMP_kernel.IntKey___ge__(self, o)
2022 
2023  def __le__(self, o):
2024  r"""__le__(IntKey self, IntKey o) -> bool"""
2025  return _IMP_kernel.IntKey___le__(self, o)
2026 
2027  def __hash__(self):
2028  r"""__hash__(IntKey self) -> std::size_t"""
2029  return _IMP_kernel.IntKey___hash__(self)
2030 
2031  def show(self, *args):
2032  r"""show(IntKey self, _ostream out=std::cout)"""
2033  return _IMP_kernel.IntKey_show(self, *args)
2034 
2035  @staticmethod
2036  def add_alias(old_key, new_name):
2037  r"""add_alias(IntKey old_key, std::string new_name) -> IntKey"""
2038  return _IMP_kernel.IntKey_add_alias(old_key, new_name)
2039 
2040  @staticmethod
2041  def get_number_of_keys():
2042  r"""get_number_of_keys() -> unsigned int"""
2043  return _IMP_kernel.IntKey_get_number_of_keys()
2044 
2045  def get_index(self):
2046  r"""get_index(IntKey self) -> unsigned int"""
2047  return _IMP_kernel.IntKey_get_index(self)
2048 
2049  @staticmethod
2050  def show_all(out):
2051  r"""show_all(_ostream out)"""
2052  return _IMP_kernel.IntKey_show_all(out)
2053 
2054  @staticmethod
2055  def get_all_strings():
2056  r"""get_all_strings() -> IMP::Vector< std::string >"""
2057  return _IMP_kernel.IntKey_get_all_strings()
2058 
2059  @staticmethod
2060  def get_number_unique():
2061  r"""get_number_unique() -> unsigned int"""
2062  return _IMP_kernel.IntKey_get_number_unique()
2063 
2064  def __str__(self):
2065  r"""__str__(IntKey self) -> std::string"""
2066  return _IMP_kernel.IntKey___str__(self)
2067 
2068  def __repr__(self):
2069  r"""__repr__(IntKey self) -> std::string"""
2070  return _IMP_kernel.IntKey___repr__(self)
2071  __swig_destroy__ = _IMP_kernel.delete_IntKey
2072 
2073 # Register IntKey in _IMP_kernel:
2074 _IMP_kernel.IntKey_swigregister(IntKey)
2075 class StringKey(_Value):
2076  r"""Proxy of C++ IMP::Key< 2 > class."""
2077 
2078  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2079 
2080  def __init__(self, *args):
2081  r"""
2082  __init__(StringKey self) -> StringKey
2083  __init__(StringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> StringKey
2084  __init__(StringKey self, unsigned int i) -> StringKey
2085  """
2086  _IMP_kernel.StringKey_swiginit(self, _IMP_kernel.new_StringKey(*args))
2087 
2088  @staticmethod
2089  def add_key(sc):
2090  r"""add_key(std::string sc) -> unsigned int"""
2091  return _IMP_kernel.StringKey_add_key(sc)
2092 
2093  @staticmethod
2094  def get_key_exists(sc):
2095  r"""get_key_exists(std::string sc) -> bool"""
2096  return _IMP_kernel.StringKey_get_key_exists(sc)
2097 
2098  def get_string(self):
2099  r"""get_string(StringKey self) -> std::string const"""
2100  return _IMP_kernel.StringKey_get_string(self)
2101 
2102  def __cmp__(self, o):
2103  r"""__cmp__(StringKey self, StringKey o) -> int"""
2104  return _IMP_kernel.StringKey___cmp__(self, o)
2105 
2106  def __eq__(self, o):
2107  r"""__eq__(StringKey self, StringKey o) -> bool"""
2108  return _IMP_kernel.StringKey___eq__(self, o)
2109 
2110  def __ne__(self, o):
2111  r"""__ne__(StringKey self, StringKey o) -> bool"""
2112  return _IMP_kernel.StringKey___ne__(self, o)
2113 
2114  def __lt__(self, o):
2115  r"""__lt__(StringKey self, StringKey o) -> bool"""
2116  return _IMP_kernel.StringKey___lt__(self, o)
2117 
2118  def __gt__(self, o):
2119  r"""__gt__(StringKey self, StringKey o) -> bool"""
2120  return _IMP_kernel.StringKey___gt__(self, o)
2121 
2122  def __ge__(self, o):
2123  r"""__ge__(StringKey self, StringKey o) -> bool"""
2124  return _IMP_kernel.StringKey___ge__(self, o)
2125 
2126  def __le__(self, o):
2127  r"""__le__(StringKey self, StringKey o) -> bool"""
2128  return _IMP_kernel.StringKey___le__(self, o)
2129 
2130  def __hash__(self):
2131  r"""__hash__(StringKey self) -> std::size_t"""
2132  return _IMP_kernel.StringKey___hash__(self)
2133 
2134  def show(self, *args):
2135  r"""show(StringKey self, _ostream out=std::cout)"""
2136  return _IMP_kernel.StringKey_show(self, *args)
2137 
2138  @staticmethod
2139  def add_alias(old_key, new_name):
2140  r"""add_alias(StringKey old_key, std::string new_name) -> StringKey"""
2141  return _IMP_kernel.StringKey_add_alias(old_key, new_name)
2142 
2143  @staticmethod
2144  def get_number_of_keys():
2145  r"""get_number_of_keys() -> unsigned int"""
2146  return _IMP_kernel.StringKey_get_number_of_keys()
2147 
2148  def get_index(self):
2149  r"""get_index(StringKey self) -> unsigned int"""
2150  return _IMP_kernel.StringKey_get_index(self)
2151 
2152  @staticmethod
2153  def show_all(out):
2154  r"""show_all(_ostream out)"""
2155  return _IMP_kernel.StringKey_show_all(out)
2156 
2157  @staticmethod
2158  def get_all_strings():
2159  r"""get_all_strings() -> IMP::Vector< std::string >"""
2160  return _IMP_kernel.StringKey_get_all_strings()
2161 
2162  @staticmethod
2163  def get_number_unique():
2164  r"""get_number_unique() -> unsigned int"""
2165  return _IMP_kernel.StringKey_get_number_unique()
2166 
2167  def __str__(self):
2168  r"""__str__(StringKey self) -> std::string"""
2169  return _IMP_kernel.StringKey___str__(self)
2170 
2171  def __repr__(self):
2172  r"""__repr__(StringKey self) -> std::string"""
2173  return _IMP_kernel.StringKey___repr__(self)
2174  __swig_destroy__ = _IMP_kernel.delete_StringKey
2175 
2176 # Register StringKey in _IMP_kernel:
2177 _IMP_kernel.StringKey_swigregister(StringKey)
2178 class ParticleIndexKey(_Value):
2179  r"""Proxy of C++ IMP::Key< 3 > class."""
2180 
2181  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2182 
2183  def __init__(self, *args):
2184  r"""
2185  __init__(ParticleIndexKey self) -> ParticleIndexKey
2186  __init__(ParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexKey
2187  __init__(ParticleIndexKey self, unsigned int i) -> ParticleIndexKey
2188  """
2189  _IMP_kernel.ParticleIndexKey_swiginit(self, _IMP_kernel.new_ParticleIndexKey(*args))
2190 
2191  @staticmethod
2192  def add_key(sc):
2193  r"""add_key(std::string sc) -> unsigned int"""
2194  return _IMP_kernel.ParticleIndexKey_add_key(sc)
2195 
2196  @staticmethod
2197  def get_key_exists(sc):
2198  r"""get_key_exists(std::string sc) -> bool"""
2199  return _IMP_kernel.ParticleIndexKey_get_key_exists(sc)
2200 
2201  def get_string(self):
2202  r"""get_string(ParticleIndexKey self) -> std::string const"""
2203  return _IMP_kernel.ParticleIndexKey_get_string(self)
2204 
2205  def __cmp__(self, o):
2206  r"""__cmp__(ParticleIndexKey self, ParticleIndexKey o) -> int"""
2207  return _IMP_kernel.ParticleIndexKey___cmp__(self, o)
2208 
2209  def __eq__(self, o):
2210  r"""__eq__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2211  return _IMP_kernel.ParticleIndexKey___eq__(self, o)
2212 
2213  def __ne__(self, o):
2214  r"""__ne__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2215  return _IMP_kernel.ParticleIndexKey___ne__(self, o)
2216 
2217  def __lt__(self, o):
2218  r"""__lt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2219  return _IMP_kernel.ParticleIndexKey___lt__(self, o)
2220 
2221  def __gt__(self, o):
2222  r"""__gt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2223  return _IMP_kernel.ParticleIndexKey___gt__(self, o)
2224 
2225  def __ge__(self, o):
2226  r"""__ge__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2227  return _IMP_kernel.ParticleIndexKey___ge__(self, o)
2228 
2229  def __le__(self, o):
2230  r"""__le__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2231  return _IMP_kernel.ParticleIndexKey___le__(self, o)
2232 
2233  def __hash__(self):
2234  r"""__hash__(ParticleIndexKey self) -> std::size_t"""
2235  return _IMP_kernel.ParticleIndexKey___hash__(self)
2236 
2237  def show(self, *args):
2238  r"""show(ParticleIndexKey self, _ostream out=std::cout)"""
2239  return _IMP_kernel.ParticleIndexKey_show(self, *args)
2240 
2241  @staticmethod
2242  def add_alias(old_key, new_name):
2243  r"""add_alias(ParticleIndexKey old_key, std::string new_name) -> ParticleIndexKey"""
2244  return _IMP_kernel.ParticleIndexKey_add_alias(old_key, new_name)
2245 
2246  @staticmethod
2247  def get_number_of_keys():
2248  r"""get_number_of_keys() -> unsigned int"""
2249  return _IMP_kernel.ParticleIndexKey_get_number_of_keys()
2250 
2251  def get_index(self):
2252  r"""get_index(ParticleIndexKey self) -> unsigned int"""
2253  return _IMP_kernel.ParticleIndexKey_get_index(self)
2254 
2255  @staticmethod
2256  def show_all(out):
2257  r"""show_all(_ostream out)"""
2258  return _IMP_kernel.ParticleIndexKey_show_all(out)
2259 
2260  @staticmethod
2261  def get_all_strings():
2262  r"""get_all_strings() -> IMP::Vector< std::string >"""
2263  return _IMP_kernel.ParticleIndexKey_get_all_strings()
2264 
2265  @staticmethod
2266  def get_number_unique():
2267  r"""get_number_unique() -> unsigned int"""
2268  return _IMP_kernel.ParticleIndexKey_get_number_unique()
2269 
2270  def __str__(self):
2271  r"""__str__(ParticleIndexKey self) -> std::string"""
2272  return _IMP_kernel.ParticleIndexKey___str__(self)
2273 
2274  def __repr__(self):
2275  r"""__repr__(ParticleIndexKey self) -> std::string"""
2276  return _IMP_kernel.ParticleIndexKey___repr__(self)
2277  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexKey
2278 
2279 # Register ParticleIndexKey in _IMP_kernel:
2280 _IMP_kernel.ParticleIndexKey_swigregister(ParticleIndexKey)
2281 class ObjectKey(_Value):
2282  r"""Proxy of C++ IMP::Key< 4 > class."""
2283 
2284  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2285 
2286  def __init__(self, *args):
2287  r"""
2288  __init__(ObjectKey self) -> ObjectKey
2289  __init__(ObjectKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ObjectKey
2290  __init__(ObjectKey self, unsigned int i) -> ObjectKey
2291  """
2292  _IMP_kernel.ObjectKey_swiginit(self, _IMP_kernel.new_ObjectKey(*args))
2293 
2294  @staticmethod
2295  def add_key(sc):
2296  r"""add_key(std::string sc) -> unsigned int"""
2297  return _IMP_kernel.ObjectKey_add_key(sc)
2298 
2299  @staticmethod
2300  def get_key_exists(sc):
2301  r"""get_key_exists(std::string sc) -> bool"""
2302  return _IMP_kernel.ObjectKey_get_key_exists(sc)
2303 
2304  def get_string(self):
2305  r"""get_string(ObjectKey self) -> std::string const"""
2306  return _IMP_kernel.ObjectKey_get_string(self)
2307 
2308  def __cmp__(self, o):
2309  r"""__cmp__(ObjectKey self, ObjectKey o) -> int"""
2310  return _IMP_kernel.ObjectKey___cmp__(self, o)
2311 
2312  def __eq__(self, o):
2313  r"""__eq__(ObjectKey self, ObjectKey o) -> bool"""
2314  return _IMP_kernel.ObjectKey___eq__(self, o)
2315 
2316  def __ne__(self, o):
2317  r"""__ne__(ObjectKey self, ObjectKey o) -> bool"""
2318  return _IMP_kernel.ObjectKey___ne__(self, o)
2319 
2320  def __lt__(self, o):
2321  r"""__lt__(ObjectKey self, ObjectKey o) -> bool"""
2322  return _IMP_kernel.ObjectKey___lt__(self, o)
2323 
2324  def __gt__(self, o):
2325  r"""__gt__(ObjectKey self, ObjectKey o) -> bool"""
2326  return _IMP_kernel.ObjectKey___gt__(self, o)
2327 
2328  def __ge__(self, o):
2329  r"""__ge__(ObjectKey self, ObjectKey o) -> bool"""
2330  return _IMP_kernel.ObjectKey___ge__(self, o)
2331 
2332  def __le__(self, o):
2333  r"""__le__(ObjectKey self, ObjectKey o) -> bool"""
2334  return _IMP_kernel.ObjectKey___le__(self, o)
2335 
2336  def __hash__(self):
2337  r"""__hash__(ObjectKey self) -> std::size_t"""
2338  return _IMP_kernel.ObjectKey___hash__(self)
2339 
2340  def show(self, *args):
2341  r"""show(ObjectKey self, _ostream out=std::cout)"""
2342  return _IMP_kernel.ObjectKey_show(self, *args)
2343 
2344  @staticmethod
2345  def add_alias(old_key, new_name):
2346  r"""add_alias(ObjectKey old_key, std::string new_name) -> ObjectKey"""
2347  return _IMP_kernel.ObjectKey_add_alias(old_key, new_name)
2348 
2349  @staticmethod
2350  def get_number_of_keys():
2351  r"""get_number_of_keys() -> unsigned int"""
2352  return _IMP_kernel.ObjectKey_get_number_of_keys()
2353 
2354  def get_index(self):
2355  r"""get_index(ObjectKey self) -> unsigned int"""
2356  return _IMP_kernel.ObjectKey_get_index(self)
2357 
2358  @staticmethod
2359  def show_all(out):
2360  r"""show_all(_ostream out)"""
2361  return _IMP_kernel.ObjectKey_show_all(out)
2362 
2363  @staticmethod
2364  def get_all_strings():
2365  r"""get_all_strings() -> IMP::Vector< std::string >"""
2366  return _IMP_kernel.ObjectKey_get_all_strings()
2367 
2368  @staticmethod
2369  def get_number_unique():
2370  r"""get_number_unique() -> unsigned int"""
2371  return _IMP_kernel.ObjectKey_get_number_unique()
2372 
2373  def __str__(self):
2374  r"""__str__(ObjectKey self) -> std::string"""
2375  return _IMP_kernel.ObjectKey___str__(self)
2376 
2377  def __repr__(self):
2378  r"""__repr__(ObjectKey self) -> std::string"""
2379  return _IMP_kernel.ObjectKey___repr__(self)
2380  __swig_destroy__ = _IMP_kernel.delete_ObjectKey
2381 
2382 # Register ObjectKey in _IMP_kernel:
2383 _IMP_kernel.ObjectKey_swigregister(ObjectKey)
2384 class IntsKey(_Value):
2385  r"""Proxy of C++ IMP::Key< 5 > class."""
2386 
2387  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2388 
2389  def __init__(self, *args):
2390  r"""
2391  __init__(IntsKey self) -> IntsKey
2392  __init__(IntsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntsKey
2393  __init__(IntsKey self, unsigned int i) -> IntsKey
2394  """
2395  _IMP_kernel.IntsKey_swiginit(self, _IMP_kernel.new_IntsKey(*args))
2396 
2397  @staticmethod
2398  def add_key(sc):
2399  r"""add_key(std::string sc) -> unsigned int"""
2400  return _IMP_kernel.IntsKey_add_key(sc)
2401 
2402  @staticmethod
2403  def get_key_exists(sc):
2404  r"""get_key_exists(std::string sc) -> bool"""
2405  return _IMP_kernel.IntsKey_get_key_exists(sc)
2406 
2407  def get_string(self):
2408  r"""get_string(IntsKey self) -> std::string const"""
2409  return _IMP_kernel.IntsKey_get_string(self)
2410 
2411  def __cmp__(self, o):
2412  r"""__cmp__(IntsKey self, IntsKey o) -> int"""
2413  return _IMP_kernel.IntsKey___cmp__(self, o)
2414 
2415  def __eq__(self, o):
2416  r"""__eq__(IntsKey self, IntsKey o) -> bool"""
2417  return _IMP_kernel.IntsKey___eq__(self, o)
2418 
2419  def __ne__(self, o):
2420  r"""__ne__(IntsKey self, IntsKey o) -> bool"""
2421  return _IMP_kernel.IntsKey___ne__(self, o)
2422 
2423  def __lt__(self, o):
2424  r"""__lt__(IntsKey self, IntsKey o) -> bool"""
2425  return _IMP_kernel.IntsKey___lt__(self, o)
2426 
2427  def __gt__(self, o):
2428  r"""__gt__(IntsKey self, IntsKey o) -> bool"""
2429  return _IMP_kernel.IntsKey___gt__(self, o)
2430 
2431  def __ge__(self, o):
2432  r"""__ge__(IntsKey self, IntsKey o) -> bool"""
2433  return _IMP_kernel.IntsKey___ge__(self, o)
2434 
2435  def __le__(self, o):
2436  r"""__le__(IntsKey self, IntsKey o) -> bool"""
2437  return _IMP_kernel.IntsKey___le__(self, o)
2438 
2439  def __hash__(self):
2440  r"""__hash__(IntsKey self) -> std::size_t"""
2441  return _IMP_kernel.IntsKey___hash__(self)
2442 
2443  def show(self, *args):
2444  r"""show(IntsKey self, _ostream out=std::cout)"""
2445  return _IMP_kernel.IntsKey_show(self, *args)
2446 
2447  @staticmethod
2448  def add_alias(old_key, new_name):
2449  r"""add_alias(IntsKey old_key, std::string new_name) -> IntsKey"""
2450  return _IMP_kernel.IntsKey_add_alias(old_key, new_name)
2451 
2452  @staticmethod
2453  def get_number_of_keys():
2454  r"""get_number_of_keys() -> unsigned int"""
2455  return _IMP_kernel.IntsKey_get_number_of_keys()
2456 
2457  def get_index(self):
2458  r"""get_index(IntsKey self) -> unsigned int"""
2459  return _IMP_kernel.IntsKey_get_index(self)
2460 
2461  @staticmethod
2462  def show_all(out):
2463  r"""show_all(_ostream out)"""
2464  return _IMP_kernel.IntsKey_show_all(out)
2465 
2466  @staticmethod
2467  def get_all_strings():
2468  r"""get_all_strings() -> IMP::Vector< std::string >"""
2469  return _IMP_kernel.IntsKey_get_all_strings()
2470 
2471  @staticmethod
2472  def get_number_unique():
2473  r"""get_number_unique() -> unsigned int"""
2474  return _IMP_kernel.IntsKey_get_number_unique()
2475 
2476  def __str__(self):
2477  r"""__str__(IntsKey self) -> std::string"""
2478  return _IMP_kernel.IntsKey___str__(self)
2479 
2480  def __repr__(self):
2481  r"""__repr__(IntsKey self) -> std::string"""
2482  return _IMP_kernel.IntsKey___repr__(self)
2483  __swig_destroy__ = _IMP_kernel.delete_IntsKey
2484 
2485 # Register IntsKey in _IMP_kernel:
2486 _IMP_kernel.IntsKey_swigregister(IntsKey)
2487 class ParticleIndexesKey(_Value):
2488  r"""Proxy of C++ IMP::Key< 6 > class."""
2489 
2490  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2491 
2492  def __init__(self, *args):
2493  r"""
2494  __init__(ParticleIndexesKey self) -> ParticleIndexesKey
2495  __init__(ParticleIndexesKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexesKey
2496  __init__(ParticleIndexesKey self, unsigned int i) -> ParticleIndexesKey
2497  """
2498  _IMP_kernel.ParticleIndexesKey_swiginit(self, _IMP_kernel.new_ParticleIndexesKey(*args))
2499 
2500  @staticmethod
2501  def add_key(sc):
2502  r"""add_key(std::string sc) -> unsigned int"""
2503  return _IMP_kernel.ParticleIndexesKey_add_key(sc)
2504 
2505  @staticmethod
2506  def get_key_exists(sc):
2507  r"""get_key_exists(std::string sc) -> bool"""
2508  return _IMP_kernel.ParticleIndexesKey_get_key_exists(sc)
2509 
2510  def get_string(self):
2511  r"""get_string(ParticleIndexesKey self) -> std::string const"""
2512  return _IMP_kernel.ParticleIndexesKey_get_string(self)
2513 
2514  def __cmp__(self, o):
2515  r"""__cmp__(ParticleIndexesKey self, ParticleIndexesKey o) -> int"""
2516  return _IMP_kernel.ParticleIndexesKey___cmp__(self, o)
2517 
2518  def __eq__(self, o):
2519  r"""__eq__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
2520  return _IMP_kernel.ParticleIndexesKey___eq__(self, o)
2521 
2522  def __ne__(self, o):
2523  r"""__ne__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
2524  return _IMP_kernel.ParticleIndexesKey___ne__(self, o)
2525 
2526  def __lt__(self, o):
2527  r"""__lt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
2528  return _IMP_kernel.ParticleIndexesKey___lt__(self, o)
2529 
2530  def __gt__(self, o):
2531  r"""__gt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
2532  return _IMP_kernel.ParticleIndexesKey___gt__(self, o)
2533 
2534  def __ge__(self, o):
2535  r"""__ge__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
2536  return _IMP_kernel.ParticleIndexesKey___ge__(self, o)
2537 
2538  def __le__(self, o):
2539  r"""__le__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
2540  return _IMP_kernel.ParticleIndexesKey___le__(self, o)
2541 
2542  def __hash__(self):
2543  r"""__hash__(ParticleIndexesKey self) -> std::size_t"""
2544  return _IMP_kernel.ParticleIndexesKey___hash__(self)
2545 
2546  def show(self, *args):
2547  r"""show(ParticleIndexesKey self, _ostream out=std::cout)"""
2548  return _IMP_kernel.ParticleIndexesKey_show(self, *args)
2549 
2550  @staticmethod
2551  def add_alias(old_key, new_name):
2552  r"""add_alias(ParticleIndexesKey old_key, std::string new_name) -> ParticleIndexesKey"""
2553  return _IMP_kernel.ParticleIndexesKey_add_alias(old_key, new_name)
2554 
2555  @staticmethod
2556  def get_number_of_keys():
2557  r"""get_number_of_keys() -> unsigned int"""
2558  return _IMP_kernel.ParticleIndexesKey_get_number_of_keys()
2559 
2560  def get_index(self):
2561  r"""get_index(ParticleIndexesKey self) -> unsigned int"""
2562  return _IMP_kernel.ParticleIndexesKey_get_index(self)
2563 
2564  @staticmethod
2565  def show_all(out):
2566  r"""show_all(_ostream out)"""
2567  return _IMP_kernel.ParticleIndexesKey_show_all(out)
2568 
2569  @staticmethod
2570  def get_all_strings():
2571  r"""get_all_strings() -> IMP::Vector< std::string >"""
2572  return _IMP_kernel.ParticleIndexesKey_get_all_strings()
2573 
2574  @staticmethod
2575  def get_number_unique():
2576  r"""get_number_unique() -> unsigned int"""
2577  return _IMP_kernel.ParticleIndexesKey_get_number_unique()
2578 
2579  def __str__(self):
2580  r"""__str__(ParticleIndexesKey self) -> std::string"""
2581  return _IMP_kernel.ParticleIndexesKey___str__(self)
2582 
2583  def __repr__(self):
2584  r"""__repr__(ParticleIndexesKey self) -> std::string"""
2585  return _IMP_kernel.ParticleIndexesKey___repr__(self)
2586  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexesKey
2587 
2588 # Register ParticleIndexesKey in _IMP_kernel:
2589 _IMP_kernel.ParticleIndexesKey_swigregister(ParticleIndexesKey)
2590 class ModelKey(_Value):
2591  r"""Proxy of C++ IMP::Key< 8 > class."""
2592 
2593  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2594 
2595  def __init__(self, *args):
2596  r"""
2597  __init__(ModelKey self) -> ModelKey
2598  __init__(ModelKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ModelKey
2599  __init__(ModelKey self, unsigned int i) -> ModelKey
2600  """
2601  _IMP_kernel.ModelKey_swiginit(self, _IMP_kernel.new_ModelKey(*args))
2602 
2603  @staticmethod
2604  def add_key(sc):
2605  r"""add_key(std::string sc) -> unsigned int"""
2606  return _IMP_kernel.ModelKey_add_key(sc)
2607 
2608  @staticmethod
2609  def get_key_exists(sc):
2610  r"""get_key_exists(std::string sc) -> bool"""
2611  return _IMP_kernel.ModelKey_get_key_exists(sc)
2612 
2613  def get_string(self):
2614  r"""get_string(ModelKey self) -> std::string const"""
2615  return _IMP_kernel.ModelKey_get_string(self)
2616 
2617  def __cmp__(self, o):
2618  r"""__cmp__(ModelKey self, ModelKey o) -> int"""
2619  return _IMP_kernel.ModelKey___cmp__(self, o)
2620 
2621  def __eq__(self, o):
2622  r"""__eq__(ModelKey self, ModelKey o) -> bool"""
2623  return _IMP_kernel.ModelKey___eq__(self, o)
2624 
2625  def __ne__(self, o):
2626  r"""__ne__(ModelKey self, ModelKey o) -> bool"""
2627  return _IMP_kernel.ModelKey___ne__(self, o)
2628 
2629  def __lt__(self, o):
2630  r"""__lt__(ModelKey self, ModelKey o) -> bool"""
2631  return _IMP_kernel.ModelKey___lt__(self, o)
2632 
2633  def __gt__(self, o):
2634  r"""__gt__(ModelKey self, ModelKey o) -> bool"""
2635  return _IMP_kernel.ModelKey___gt__(self, o)
2636 
2637  def __ge__(self, o):
2638  r"""__ge__(ModelKey self, ModelKey o) -> bool"""
2639  return _IMP_kernel.ModelKey___ge__(self, o)
2640 
2641  def __le__(self, o):
2642  r"""__le__(ModelKey self, ModelKey o) -> bool"""
2643  return _IMP_kernel.ModelKey___le__(self, o)
2644 
2645  def __hash__(self):
2646  r"""__hash__(ModelKey self) -> std::size_t"""
2647  return _IMP_kernel.ModelKey___hash__(self)
2648 
2649  def show(self, *args):
2650  r"""show(ModelKey self, _ostream out=std::cout)"""
2651  return _IMP_kernel.ModelKey_show(self, *args)
2652 
2653  @staticmethod
2654  def add_alias(old_key, new_name):
2655  r"""add_alias(ModelKey old_key, std::string new_name) -> ModelKey"""
2656  return _IMP_kernel.ModelKey_add_alias(old_key, new_name)
2657 
2658  @staticmethod
2659  def get_number_of_keys():
2660  r"""get_number_of_keys() -> unsigned int"""
2661  return _IMP_kernel.ModelKey_get_number_of_keys()
2662 
2663  def get_index(self):
2664  r"""get_index(ModelKey self) -> unsigned int"""
2665  return _IMP_kernel.ModelKey_get_index(self)
2666 
2667  @staticmethod
2668  def show_all(out):
2669  r"""show_all(_ostream out)"""
2670  return _IMP_kernel.ModelKey_show_all(out)
2671 
2672  @staticmethod
2673  def get_all_strings():
2674  r"""get_all_strings() -> IMP::Vector< std::string >"""
2675  return _IMP_kernel.ModelKey_get_all_strings()
2676 
2677  @staticmethod
2678  def get_number_unique():
2679  r"""get_number_unique() -> unsigned int"""
2680  return _IMP_kernel.ModelKey_get_number_unique()
2681 
2682  def __str__(self):
2683  r"""__str__(ModelKey self) -> std::string"""
2684  return _IMP_kernel.ModelKey___str__(self)
2685 
2686  def __repr__(self):
2687  r"""__repr__(ModelKey self) -> std::string"""
2688  return _IMP_kernel.ModelKey___repr__(self)
2689  __swig_destroy__ = _IMP_kernel.delete_ModelKey
2690 
2691 # Register ModelKey in _IMP_kernel:
2692 _IMP_kernel.ModelKey_swigregister(ModelKey)
2693 class TriggerKey(_Value):
2694  r"""Proxy of C++ IMP::Key< 11 > class."""
2695 
2696  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2697 
2698  def __init__(self, *args):
2699  r"""
2700  __init__(TriggerKey self) -> TriggerKey
2701  __init__(TriggerKey self, std::string const & c, bool is_implicit_add_permitted=True) -> TriggerKey
2702  __init__(TriggerKey self, unsigned int i) -> TriggerKey
2703  """
2704  _IMP_kernel.TriggerKey_swiginit(self, _IMP_kernel.new_TriggerKey(*args))
2705 
2706  @staticmethod
2707  def add_key(sc):
2708  r"""add_key(std::string sc) -> unsigned int"""
2709  return _IMP_kernel.TriggerKey_add_key(sc)
2710 
2711  @staticmethod
2712  def get_key_exists(sc):
2713  r"""get_key_exists(std::string sc) -> bool"""
2714  return _IMP_kernel.TriggerKey_get_key_exists(sc)
2715 
2716  def get_string(self):
2717  r"""get_string(TriggerKey self) -> std::string const"""
2718  return _IMP_kernel.TriggerKey_get_string(self)
2719 
2720  def __cmp__(self, o):
2721  r"""__cmp__(TriggerKey self, TriggerKey o) -> int"""
2722  return _IMP_kernel.TriggerKey___cmp__(self, o)
2723 
2724  def __eq__(self, o):
2725  r"""__eq__(TriggerKey self, TriggerKey o) -> bool"""
2726  return _IMP_kernel.TriggerKey___eq__(self, o)
2727 
2728  def __ne__(self, o):
2729  r"""__ne__(TriggerKey self, TriggerKey o) -> bool"""
2730  return _IMP_kernel.TriggerKey___ne__(self, o)
2731 
2732  def __lt__(self, o):
2733  r"""__lt__(TriggerKey self, TriggerKey o) -> bool"""
2734  return _IMP_kernel.TriggerKey___lt__(self, o)
2735 
2736  def __gt__(self, o):
2737  r"""__gt__(TriggerKey self, TriggerKey o) -> bool"""
2738  return _IMP_kernel.TriggerKey___gt__(self, o)
2739 
2740  def __ge__(self, o):
2741  r"""__ge__(TriggerKey self, TriggerKey o) -> bool"""
2742  return _IMP_kernel.TriggerKey___ge__(self, o)
2743 
2744  def __le__(self, o):
2745  r"""__le__(TriggerKey self, TriggerKey o) -> bool"""
2746  return _IMP_kernel.TriggerKey___le__(self, o)
2747 
2748  def __hash__(self):
2749  r"""__hash__(TriggerKey self) -> std::size_t"""
2750  return _IMP_kernel.TriggerKey___hash__(self)
2751 
2752  def show(self, *args):
2753  r"""show(TriggerKey self, _ostream out=std::cout)"""
2754  return _IMP_kernel.TriggerKey_show(self, *args)
2755 
2756  @staticmethod
2757  def add_alias(old_key, new_name):
2758  r"""add_alias(TriggerKey old_key, std::string new_name) -> TriggerKey"""
2759  return _IMP_kernel.TriggerKey_add_alias(old_key, new_name)
2760 
2761  @staticmethod
2762  def get_number_of_keys():
2763  r"""get_number_of_keys() -> unsigned int"""
2764  return _IMP_kernel.TriggerKey_get_number_of_keys()
2765 
2766  def get_index(self):
2767  r"""get_index(TriggerKey self) -> unsigned int"""
2768  return _IMP_kernel.TriggerKey_get_index(self)
2769 
2770  @staticmethod
2771  def show_all(out):
2772  r"""show_all(_ostream out)"""
2773  return _IMP_kernel.TriggerKey_show_all(out)
2774 
2775  @staticmethod
2776  def get_all_strings():
2777  r"""get_all_strings() -> IMP::Vector< std::string >"""
2778  return _IMP_kernel.TriggerKey_get_all_strings()
2779 
2780  @staticmethod
2781  def get_number_unique():
2782  r"""get_number_unique() -> unsigned int"""
2783  return _IMP_kernel.TriggerKey_get_number_unique()
2784 
2785  def __str__(self):
2786  r"""__str__(TriggerKey self) -> std::string"""
2787  return _IMP_kernel.TriggerKey___str__(self)
2788 
2789  def __repr__(self):
2790  r"""__repr__(TriggerKey self) -> std::string"""
2791  return _IMP_kernel.TriggerKey___repr__(self)
2792  __swig_destroy__ = _IMP_kernel.delete_TriggerKey
2793 
2794 # Register TriggerKey in _IMP_kernel:
2795 _IMP_kernel.TriggerKey_swigregister(TriggerKey)
2796 class ParticleIndex(object):
2797  r"""Proxy of C++ IMP::Index< IMP::ParticleIndexTag > class."""
2798 
2799  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2800 
2801  def __init__(self, *args):
2802  r"""
2803  __init__(ParticleIndex self, int i) -> ParticleIndex
2804  __init__(ParticleIndex self) -> ParticleIndex
2805  """
2806  _IMP_kernel.ParticleIndex_swiginit(self, _IMP_kernel.new_ParticleIndex(*args))
2807 
2808  def get_index(self):
2809  r"""get_index(ParticleIndex self) -> int"""
2810  return _IMP_kernel.ParticleIndex_get_index(self)
2811 
2812  def __cmp__(self, o):
2813  r"""__cmp__(ParticleIndex self, ParticleIndex o) -> int"""
2814  return _IMP_kernel.ParticleIndex___cmp__(self, o)
2815 
2816  def __eq__(self, o):
2817  r"""__eq__(ParticleIndex self, ParticleIndex o) -> bool"""
2818  return _IMP_kernel.ParticleIndex___eq__(self, o)
2819 
2820  def __ne__(self, o):
2821  r"""__ne__(ParticleIndex self, ParticleIndex o) -> bool"""
2822  return _IMP_kernel.ParticleIndex___ne__(self, o)
2823 
2824  def __lt__(self, o):
2825  r"""__lt__(ParticleIndex self, ParticleIndex o) -> bool"""
2826  return _IMP_kernel.ParticleIndex___lt__(self, o)
2827 
2828  def __gt__(self, o):
2829  r"""__gt__(ParticleIndex self, ParticleIndex o) -> bool"""
2830  return _IMP_kernel.ParticleIndex___gt__(self, o)
2831 
2832  def __ge__(self, o):
2833  r"""__ge__(ParticleIndex self, ParticleIndex o) -> bool"""
2834  return _IMP_kernel.ParticleIndex___ge__(self, o)
2835 
2836  def __le__(self, o):
2837  r"""__le__(ParticleIndex self, ParticleIndex o) -> bool"""
2838  return _IMP_kernel.ParticleIndex___le__(self, o)
2839 
2840  def show(self, *args):
2841  r"""show(ParticleIndex self, _ostream out=std::cout)"""
2842  return _IMP_kernel.ParticleIndex_show(self, *args)
2843 
2844  def __hash__(self):
2845  r"""__hash__(ParticleIndex self) -> std::size_t"""
2846  return _IMP_kernel.ParticleIndex___hash__(self)
2847 
2848  def __str__(self):
2849  r"""__str__(ParticleIndex self) -> std::string"""
2850  return _IMP_kernel.ParticleIndex___str__(self)
2851 
2852  def __repr__(self):
2853  r"""__repr__(ParticleIndex self) -> std::string"""
2854  return _IMP_kernel.ParticleIndex___repr__(self)
2855  __swig_destroy__ = _IMP_kernel.delete_ParticleIndex
2856 
2857 # Register ParticleIndex in _IMP_kernel:
2858 _IMP_kernel.ParticleIndex_swigregister(ParticleIndex)
2859 class FloatsKey(_Value):
2860  r"""Proxy of C++ IMP::Key< 10 > class."""
2861 
2862  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2863 
2864  def __init__(self, *args):
2865  r"""
2866  __init__(FloatsKey self) -> FloatsKey
2867  __init__(FloatsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatsKey
2868  __init__(FloatsKey self, unsigned int i) -> FloatsKey
2869  """
2870  _IMP_kernel.FloatsKey_swiginit(self, _IMP_kernel.new_FloatsKey(*args))
2871 
2872  @staticmethod
2873  def add_key(sc):
2874  r"""add_key(std::string sc) -> unsigned int"""
2875  return _IMP_kernel.FloatsKey_add_key(sc)
2876 
2877  @staticmethod
2878  def get_key_exists(sc):
2879  r"""get_key_exists(std::string sc) -> bool"""
2880  return _IMP_kernel.FloatsKey_get_key_exists(sc)
2881 
2882  def get_string(self):
2883  r"""get_string(FloatsKey self) -> std::string const"""
2884  return _IMP_kernel.FloatsKey_get_string(self)
2885 
2886  def __cmp__(self, o):
2887  r"""__cmp__(FloatsKey self, FloatsKey o) -> int"""
2888  return _IMP_kernel.FloatsKey___cmp__(self, o)
2889 
2890  def __eq__(self, o):
2891  r"""__eq__(FloatsKey self, FloatsKey o) -> bool"""
2892  return _IMP_kernel.FloatsKey___eq__(self, o)
2893 
2894  def __ne__(self, o):
2895  r"""__ne__(FloatsKey self, FloatsKey o) -> bool"""
2896  return _IMP_kernel.FloatsKey___ne__(self, o)
2897 
2898  def __lt__(self, o):
2899  r"""__lt__(FloatsKey self, FloatsKey o) -> bool"""
2900  return _IMP_kernel.FloatsKey___lt__(self, o)
2901 
2902  def __gt__(self, o):
2903  r"""__gt__(FloatsKey self, FloatsKey o) -> bool"""
2904  return _IMP_kernel.FloatsKey___gt__(self, o)
2905 
2906  def __ge__(self, o):
2907  r"""__ge__(FloatsKey self, FloatsKey o) -> bool"""
2908  return _IMP_kernel.FloatsKey___ge__(self, o)
2909 
2910  def __le__(self, o):
2911  r"""__le__(FloatsKey self, FloatsKey o) -> bool"""
2912  return _IMP_kernel.FloatsKey___le__(self, o)
2913 
2914  def __hash__(self):
2915  r"""__hash__(FloatsKey self) -> std::size_t"""
2916  return _IMP_kernel.FloatsKey___hash__(self)
2917 
2918  def show(self, *args):
2919  r"""show(FloatsKey self, _ostream out=std::cout)"""
2920  return _IMP_kernel.FloatsKey_show(self, *args)
2921 
2922  @staticmethod
2923  def add_alias(old_key, new_name):
2924  r"""add_alias(FloatsKey old_key, std::string new_name) -> FloatsKey"""
2925  return _IMP_kernel.FloatsKey_add_alias(old_key, new_name)
2926 
2927  @staticmethod
2928  def get_number_of_keys():
2929  r"""get_number_of_keys() -> unsigned int"""
2930  return _IMP_kernel.FloatsKey_get_number_of_keys()
2931 
2932  def get_index(self):
2933  r"""get_index(FloatsKey self) -> unsigned int"""
2934  return _IMP_kernel.FloatsKey_get_index(self)
2935 
2936  @staticmethod
2937  def show_all(out):
2938  r"""show_all(_ostream out)"""
2939  return _IMP_kernel.FloatsKey_show_all(out)
2940 
2941  @staticmethod
2942  def get_all_strings():
2943  r"""get_all_strings() -> IMP::Vector< std::string >"""
2944  return _IMP_kernel.FloatsKey_get_all_strings()
2945 
2946  @staticmethod
2947  def get_number_unique():
2948  r"""get_number_unique() -> unsigned int"""
2949  return _IMP_kernel.FloatsKey_get_number_unique()
2950 
2951  def __str__(self):
2952  r"""__str__(FloatsKey self) -> std::string"""
2953  return _IMP_kernel.FloatsKey___str__(self)
2954 
2955  def __repr__(self):
2956  r"""__repr__(FloatsKey self) -> std::string"""
2957  return _IMP_kernel.FloatsKey___repr__(self)
2958  __swig_destroy__ = _IMP_kernel.delete_FloatsKey
2959 
2960 # Register FloatsKey in _IMP_kernel:
2961 _IMP_kernel.FloatsKey_swigregister(FloatsKey)
2962 class SparseStringKey(_Value):
2963  r"""Proxy of C++ IMP::Key< 12 > class."""
2964 
2965  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2966 
2967  def __init__(self, *args):
2968  r"""
2969  __init__(SparseStringKey self) -> SparseStringKey
2970  __init__(SparseStringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseStringKey
2971  __init__(SparseStringKey self, unsigned int i) -> SparseStringKey
2972  """
2973  _IMP_kernel.SparseStringKey_swiginit(self, _IMP_kernel.new_SparseStringKey(*args))
2974 
2975  @staticmethod
2976  def add_key(sc):
2977  r"""add_key(std::string sc) -> unsigned int"""
2978  return _IMP_kernel.SparseStringKey_add_key(sc)
2979 
2980  @staticmethod
2981  def get_key_exists(sc):
2982  r"""get_key_exists(std::string sc) -> bool"""
2983  return _IMP_kernel.SparseStringKey_get_key_exists(sc)
2984 
2985  def get_string(self):
2986  r"""get_string(SparseStringKey self) -> std::string const"""
2987  return _IMP_kernel.SparseStringKey_get_string(self)
2988 
2989  def __cmp__(self, o):
2990  r"""__cmp__(SparseStringKey self, SparseStringKey o) -> int"""
2991  return _IMP_kernel.SparseStringKey___cmp__(self, o)
2992 
2993  def __eq__(self, o):
2994  r"""__eq__(SparseStringKey self, SparseStringKey o) -> bool"""
2995  return _IMP_kernel.SparseStringKey___eq__(self, o)
2996 
2997  def __ne__(self, o):
2998  r"""__ne__(SparseStringKey self, SparseStringKey o) -> bool"""
2999  return _IMP_kernel.SparseStringKey___ne__(self, o)
3000 
3001  def __lt__(self, o):
3002  r"""__lt__(SparseStringKey self, SparseStringKey o) -> bool"""
3003  return _IMP_kernel.SparseStringKey___lt__(self, o)
3004 
3005  def __gt__(self, o):
3006  r"""__gt__(SparseStringKey self, SparseStringKey o) -> bool"""
3007  return _IMP_kernel.SparseStringKey___gt__(self, o)
3008 
3009  def __ge__(self, o):
3010  r"""__ge__(SparseStringKey self, SparseStringKey o) -> bool"""
3011  return _IMP_kernel.SparseStringKey___ge__(self, o)
3012 
3013  def __le__(self, o):
3014  r"""__le__(SparseStringKey self, SparseStringKey o) -> bool"""
3015  return _IMP_kernel.SparseStringKey___le__(self, o)
3016 
3017  def __hash__(self):
3018  r"""__hash__(SparseStringKey self) -> std::size_t"""
3019  return _IMP_kernel.SparseStringKey___hash__(self)
3020 
3021  def show(self, *args):
3022  r"""show(SparseStringKey self, _ostream out=std::cout)"""
3023  return _IMP_kernel.SparseStringKey_show(self, *args)
3024 
3025  @staticmethod
3026  def add_alias(old_key, new_name):
3027  r"""add_alias(SparseStringKey old_key, std::string new_name) -> SparseStringKey"""
3028  return _IMP_kernel.SparseStringKey_add_alias(old_key, new_name)
3029 
3030  @staticmethod
3031  def get_number_of_keys():
3032  r"""get_number_of_keys() -> unsigned int"""
3033  return _IMP_kernel.SparseStringKey_get_number_of_keys()
3034 
3035  def get_index(self):
3036  r"""get_index(SparseStringKey self) -> unsigned int"""
3037  return _IMP_kernel.SparseStringKey_get_index(self)
3038 
3039  @staticmethod
3040  def show_all(out):
3041  r"""show_all(_ostream out)"""
3042  return _IMP_kernel.SparseStringKey_show_all(out)
3043 
3044  @staticmethod
3045  def get_all_strings():
3046  r"""get_all_strings() -> IMP::Vector< std::string >"""
3047  return _IMP_kernel.SparseStringKey_get_all_strings()
3048 
3049  @staticmethod
3050  def get_number_unique():
3051  r"""get_number_unique() -> unsigned int"""
3052  return _IMP_kernel.SparseStringKey_get_number_unique()
3053 
3054  def __str__(self):
3055  r"""__str__(SparseStringKey self) -> std::string"""
3056  return _IMP_kernel.SparseStringKey___str__(self)
3057 
3058  def __repr__(self):
3059  r"""__repr__(SparseStringKey self) -> std::string"""
3060  return _IMP_kernel.SparseStringKey___repr__(self)
3061  __swig_destroy__ = _IMP_kernel.delete_SparseStringKey
3062 
3063 # Register SparseStringKey in _IMP_kernel:
3064 _IMP_kernel.SparseStringKey_swigregister(SparseStringKey)
3065 class SparseIntKey(_Value):
3066  r"""Proxy of C++ IMP::Key< 13 > class."""
3067 
3068  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3069 
3070  def __init__(self, *args):
3071  r"""
3072  __init__(SparseIntKey self) -> SparseIntKey
3073  __init__(SparseIntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseIntKey
3074  __init__(SparseIntKey self, unsigned int i) -> SparseIntKey
3075  """
3076  _IMP_kernel.SparseIntKey_swiginit(self, _IMP_kernel.new_SparseIntKey(*args))
3077 
3078  @staticmethod
3079  def add_key(sc):
3080  r"""add_key(std::string sc) -> unsigned int"""
3081  return _IMP_kernel.SparseIntKey_add_key(sc)
3082 
3083  @staticmethod
3084  def get_key_exists(sc):
3085  r"""get_key_exists(std::string sc) -> bool"""
3086  return _IMP_kernel.SparseIntKey_get_key_exists(sc)
3087 
3088  def get_string(self):
3089  r"""get_string(SparseIntKey self) -> std::string const"""
3090  return _IMP_kernel.SparseIntKey_get_string(self)
3091 
3092  def __cmp__(self, o):
3093  r"""__cmp__(SparseIntKey self, SparseIntKey o) -> int"""
3094  return _IMP_kernel.SparseIntKey___cmp__(self, o)
3095 
3096  def __eq__(self, o):
3097  r"""__eq__(SparseIntKey self, SparseIntKey o) -> bool"""
3098  return _IMP_kernel.SparseIntKey___eq__(self, o)
3099 
3100  def __ne__(self, o):
3101  r"""__ne__(SparseIntKey self, SparseIntKey o) -> bool"""
3102  return _IMP_kernel.SparseIntKey___ne__(self, o)
3103 
3104  def __lt__(self, o):
3105  r"""__lt__(SparseIntKey self, SparseIntKey o) -> bool"""
3106  return _IMP_kernel.SparseIntKey___lt__(self, o)
3107 
3108  def __gt__(self, o):
3109  r"""__gt__(SparseIntKey self, SparseIntKey o) -> bool"""
3110  return _IMP_kernel.SparseIntKey___gt__(self, o)
3111 
3112  def __ge__(self, o):
3113  r"""__ge__(SparseIntKey self, SparseIntKey o) -> bool"""
3114  return _IMP_kernel.SparseIntKey___ge__(self, o)
3115 
3116  def __le__(self, o):
3117  r"""__le__(SparseIntKey self, SparseIntKey o) -> bool"""
3118  return _IMP_kernel.SparseIntKey___le__(self, o)
3119 
3120  def __hash__(self):
3121  r"""__hash__(SparseIntKey self) -> std::size_t"""
3122  return _IMP_kernel.SparseIntKey___hash__(self)
3123 
3124  def show(self, *args):
3125  r"""show(SparseIntKey self, _ostream out=std::cout)"""
3126  return _IMP_kernel.SparseIntKey_show(self, *args)
3127 
3128  @staticmethod
3129  def add_alias(old_key, new_name):
3130  r"""add_alias(SparseIntKey old_key, std::string new_name) -> SparseIntKey"""
3131  return _IMP_kernel.SparseIntKey_add_alias(old_key, new_name)
3132 
3133  @staticmethod
3134  def get_number_of_keys():
3135  r"""get_number_of_keys() -> unsigned int"""
3136  return _IMP_kernel.SparseIntKey_get_number_of_keys()
3137 
3138  def get_index(self):
3139  r"""get_index(SparseIntKey self) -> unsigned int"""
3140  return _IMP_kernel.SparseIntKey_get_index(self)
3141 
3142  @staticmethod
3143  def show_all(out):
3144  r"""show_all(_ostream out)"""
3145  return _IMP_kernel.SparseIntKey_show_all(out)
3146 
3147  @staticmethod
3148  def get_all_strings():
3149  r"""get_all_strings() -> IMP::Vector< std::string >"""
3150  return _IMP_kernel.SparseIntKey_get_all_strings()
3151 
3152  @staticmethod
3153  def get_number_unique():
3154  r"""get_number_unique() -> unsigned int"""
3155  return _IMP_kernel.SparseIntKey_get_number_unique()
3156 
3157  def __str__(self):
3158  r"""__str__(SparseIntKey self) -> std::string"""
3159  return _IMP_kernel.SparseIntKey___str__(self)
3160 
3161  def __repr__(self):
3162  r"""__repr__(SparseIntKey self) -> std::string"""
3163  return _IMP_kernel.SparseIntKey___repr__(self)
3164  __swig_destroy__ = _IMP_kernel.delete_SparseIntKey
3165 
3166 # Register SparseIntKey in _IMP_kernel:
3167 _IMP_kernel.SparseIntKey_swigregister(SparseIntKey)
3168 class SparseFloatKey(_Value):
3169  r"""Proxy of C++ IMP::Key< 14 > class."""
3170 
3171  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3172 
3173  def __init__(self, *args):
3174  r"""
3175  __init__(SparseFloatKey self) -> SparseFloatKey
3176  __init__(SparseFloatKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseFloatKey
3177  __init__(SparseFloatKey self, unsigned int i) -> SparseFloatKey
3178  """
3179  _IMP_kernel.SparseFloatKey_swiginit(self, _IMP_kernel.new_SparseFloatKey(*args))
3180 
3181  @staticmethod
3182  def add_key(sc):
3183  r"""add_key(std::string sc) -> unsigned int"""
3184  return _IMP_kernel.SparseFloatKey_add_key(sc)
3185 
3186  @staticmethod
3187  def get_key_exists(sc):
3188  r"""get_key_exists(std::string sc) -> bool"""
3189  return _IMP_kernel.SparseFloatKey_get_key_exists(sc)
3190 
3191  def get_string(self):
3192  r"""get_string(SparseFloatKey self) -> std::string const"""
3193  return _IMP_kernel.SparseFloatKey_get_string(self)
3194 
3195  def __cmp__(self, o):
3196  r"""__cmp__(SparseFloatKey self, SparseFloatKey o) -> int"""
3197  return _IMP_kernel.SparseFloatKey___cmp__(self, o)
3198 
3199  def __eq__(self, o):
3200  r"""__eq__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3201  return _IMP_kernel.SparseFloatKey___eq__(self, o)
3202 
3203  def __ne__(self, o):
3204  r"""__ne__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3205  return _IMP_kernel.SparseFloatKey___ne__(self, o)
3206 
3207  def __lt__(self, o):
3208  r"""__lt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3209  return _IMP_kernel.SparseFloatKey___lt__(self, o)
3210 
3211  def __gt__(self, o):
3212  r"""__gt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3213  return _IMP_kernel.SparseFloatKey___gt__(self, o)
3214 
3215  def __ge__(self, o):
3216  r"""__ge__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3217  return _IMP_kernel.SparseFloatKey___ge__(self, o)
3218 
3219  def __le__(self, o):
3220  r"""__le__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3221  return _IMP_kernel.SparseFloatKey___le__(self, o)
3222 
3223  def __hash__(self):
3224  r"""__hash__(SparseFloatKey self) -> std::size_t"""
3225  return _IMP_kernel.SparseFloatKey___hash__(self)
3226 
3227  def show(self, *args):
3228  r"""show(SparseFloatKey self, _ostream out=std::cout)"""
3229  return _IMP_kernel.SparseFloatKey_show(self, *args)
3230 
3231  @staticmethod
3232  def add_alias(old_key, new_name):
3233  r"""add_alias(SparseFloatKey old_key, std::string new_name) -> SparseFloatKey"""
3234  return _IMP_kernel.SparseFloatKey_add_alias(old_key, new_name)
3235 
3236  @staticmethod
3237  def get_number_of_keys():
3238  r"""get_number_of_keys() -> unsigned int"""
3239  return _IMP_kernel.SparseFloatKey_get_number_of_keys()
3240 
3241  def get_index(self):
3242  r"""get_index(SparseFloatKey self) -> unsigned int"""
3243  return _IMP_kernel.SparseFloatKey_get_index(self)
3244 
3245  @staticmethod
3246  def show_all(out):
3247  r"""show_all(_ostream out)"""
3248  return _IMP_kernel.SparseFloatKey_show_all(out)
3249 
3250  @staticmethod
3251  def get_all_strings():
3252  r"""get_all_strings() -> IMP::Vector< std::string >"""
3253  return _IMP_kernel.SparseFloatKey_get_all_strings()
3254 
3255  @staticmethod
3256  def get_number_unique():
3257  r"""get_number_unique() -> unsigned int"""
3258  return _IMP_kernel.SparseFloatKey_get_number_unique()
3259 
3260  def __str__(self):
3261  r"""__str__(SparseFloatKey self) -> std::string"""
3262  return _IMP_kernel.SparseFloatKey___str__(self)
3263 
3264  def __repr__(self):
3265  r"""__repr__(SparseFloatKey self) -> std::string"""
3266  return _IMP_kernel.SparseFloatKey___repr__(self)
3267  __swig_destroy__ = _IMP_kernel.delete_SparseFloatKey
3268 
3269 # Register SparseFloatKey in _IMP_kernel:
3270 _IMP_kernel.SparseFloatKey_swigregister(SparseFloatKey)
3271 class SparseParticleIndexKey(_Value):
3272  r"""Proxy of C++ IMP::Key< 15 > class."""
3273 
3274  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3275 
3276  def __init__(self, *args):
3277  r"""
3278  __init__(SparseParticleIndexKey self) -> SparseParticleIndexKey
3279  __init__(SparseParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseParticleIndexKey
3280  __init__(SparseParticleIndexKey self, unsigned int i) -> SparseParticleIndexKey
3281  """
3282  _IMP_kernel.SparseParticleIndexKey_swiginit(self, _IMP_kernel.new_SparseParticleIndexKey(*args))
3283 
3284  @staticmethod
3285  def add_key(sc):
3286  r"""add_key(std::string sc) -> unsigned int"""
3287  return _IMP_kernel.SparseParticleIndexKey_add_key(sc)
3288 
3289  @staticmethod
3290  def get_key_exists(sc):
3291  r"""get_key_exists(std::string sc) -> bool"""
3292  return _IMP_kernel.SparseParticleIndexKey_get_key_exists(sc)
3293 
3294  def get_string(self):
3295  r"""get_string(SparseParticleIndexKey self) -> std::string const"""
3296  return _IMP_kernel.SparseParticleIndexKey_get_string(self)
3297 
3298  def __cmp__(self, o):
3299  r"""__cmp__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> int"""
3300  return _IMP_kernel.SparseParticleIndexKey___cmp__(self, o)
3301 
3302  def __eq__(self, o):
3303  r"""__eq__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3304  return _IMP_kernel.SparseParticleIndexKey___eq__(self, o)
3305 
3306  def __ne__(self, o):
3307  r"""__ne__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3308  return _IMP_kernel.SparseParticleIndexKey___ne__(self, o)
3309 
3310  def __lt__(self, o):
3311  r"""__lt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3312  return _IMP_kernel.SparseParticleIndexKey___lt__(self, o)
3313 
3314  def __gt__(self, o):
3315  r"""__gt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3316  return _IMP_kernel.SparseParticleIndexKey___gt__(self, o)
3317 
3318  def __ge__(self, o):
3319  r"""__ge__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3320  return _IMP_kernel.SparseParticleIndexKey___ge__(self, o)
3321 
3322  def __le__(self, o):
3323  r"""__le__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3324  return _IMP_kernel.SparseParticleIndexKey___le__(self, o)
3325 
3326  def __hash__(self):
3327  r"""__hash__(SparseParticleIndexKey self) -> std::size_t"""
3328  return _IMP_kernel.SparseParticleIndexKey___hash__(self)
3329 
3330  def show(self, *args):
3331  r"""show(SparseParticleIndexKey self, _ostream out=std::cout)"""
3332  return _IMP_kernel.SparseParticleIndexKey_show(self, *args)
3333 
3334  @staticmethod
3335  def add_alias(old_key, new_name):
3336  r"""add_alias(SparseParticleIndexKey old_key, std::string new_name) -> SparseParticleIndexKey"""
3337  return _IMP_kernel.SparseParticleIndexKey_add_alias(old_key, new_name)
3338 
3339  @staticmethod
3340  def get_number_of_keys():
3341  r"""get_number_of_keys() -> unsigned int"""
3342  return _IMP_kernel.SparseParticleIndexKey_get_number_of_keys()
3343 
3344  def get_index(self):
3345  r"""get_index(SparseParticleIndexKey self) -> unsigned int"""
3346  return _IMP_kernel.SparseParticleIndexKey_get_index(self)
3347 
3348  @staticmethod
3349  def show_all(out):
3350  r"""show_all(_ostream out)"""
3351  return _IMP_kernel.SparseParticleIndexKey_show_all(out)
3352 
3353  @staticmethod
3354  def get_all_strings():
3355  r"""get_all_strings() -> IMP::Vector< std::string >"""
3356  return _IMP_kernel.SparseParticleIndexKey_get_all_strings()
3357 
3358  @staticmethod
3359  def get_number_unique():
3360  r"""get_number_unique() -> unsigned int"""
3361  return _IMP_kernel.SparseParticleIndexKey_get_number_unique()
3362 
3363  def __str__(self):
3364  r"""__str__(SparseParticleIndexKey self) -> std::string"""
3365  return _IMP_kernel.SparseParticleIndexKey___str__(self)
3366 
3367  def __repr__(self):
3368  r"""__repr__(SparseParticleIndexKey self) -> std::string"""
3369  return _IMP_kernel.SparseParticleIndexKey___repr__(self)
3370  __swig_destroy__ = _IMP_kernel.delete_SparseParticleIndexKey
3371 
3372 # Register SparseParticleIndexKey in _IMP_kernel:
3373 _IMP_kernel.SparseParticleIndexKey_swigregister(SparseParticleIndexKey)
3374 class Vector3DKey(_Value):
3375  r"""Proxy of C++ IMP::Key< 16 > class."""
3376 
3377  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3378 
3379  def __init__(self, *args):
3380  r"""
3381  __init__(Vector3DKey self) -> Vector3DKey
3382  __init__(Vector3DKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector3DKey
3383  __init__(Vector3DKey self, unsigned int i) -> Vector3DKey
3384  """
3385  _IMP_kernel.Vector3DKey_swiginit(self, _IMP_kernel.new_Vector3DKey(*args))
3386 
3387  @staticmethod
3388  def add_key(sc):
3389  r"""add_key(std::string sc) -> unsigned int"""
3390  return _IMP_kernel.Vector3DKey_add_key(sc)
3391 
3392  @staticmethod
3393  def get_key_exists(sc):
3394  r"""get_key_exists(std::string sc) -> bool"""
3395  return _IMP_kernel.Vector3DKey_get_key_exists(sc)
3396 
3397  def get_string(self):
3398  r"""get_string(Vector3DKey self) -> std::string const"""
3399  return _IMP_kernel.Vector3DKey_get_string(self)
3400 
3401  def __cmp__(self, o):
3402  r"""__cmp__(Vector3DKey self, Vector3DKey o) -> int"""
3403  return _IMP_kernel.Vector3DKey___cmp__(self, o)
3404 
3405  def __eq__(self, o):
3406  r"""__eq__(Vector3DKey self, Vector3DKey o) -> bool"""
3407  return _IMP_kernel.Vector3DKey___eq__(self, o)
3408 
3409  def __ne__(self, o):
3410  r"""__ne__(Vector3DKey self, Vector3DKey o) -> bool"""
3411  return _IMP_kernel.Vector3DKey___ne__(self, o)
3412 
3413  def __lt__(self, o):
3414  r"""__lt__(Vector3DKey self, Vector3DKey o) -> bool"""
3415  return _IMP_kernel.Vector3DKey___lt__(self, o)
3416 
3417  def __gt__(self, o):
3418  r"""__gt__(Vector3DKey self, Vector3DKey o) -> bool"""
3419  return _IMP_kernel.Vector3DKey___gt__(self, o)
3420 
3421  def __ge__(self, o):
3422  r"""__ge__(Vector3DKey self, Vector3DKey o) -> bool"""
3423  return _IMP_kernel.Vector3DKey___ge__(self, o)
3424 
3425  def __le__(self, o):
3426  r"""__le__(Vector3DKey self, Vector3DKey o) -> bool"""
3427  return _IMP_kernel.Vector3DKey___le__(self, o)
3428 
3429  def __hash__(self):
3430  r"""__hash__(Vector3DKey self) -> std::size_t"""
3431  return _IMP_kernel.Vector3DKey___hash__(self)
3432 
3433  def show(self, *args):
3434  r"""show(Vector3DKey self, _ostream out=std::cout)"""
3435  return _IMP_kernel.Vector3DKey_show(self, *args)
3436 
3437  @staticmethod
3438  def add_alias(old_key, new_name):
3439  r"""add_alias(Vector3DKey old_key, std::string new_name) -> Vector3DKey"""
3440  return _IMP_kernel.Vector3DKey_add_alias(old_key, new_name)
3441 
3442  @staticmethod
3443  def get_number_of_keys():
3444  r"""get_number_of_keys() -> unsigned int"""
3445  return _IMP_kernel.Vector3DKey_get_number_of_keys()
3446 
3447  def get_index(self):
3448  r"""get_index(Vector3DKey self) -> unsigned int"""
3449  return _IMP_kernel.Vector3DKey_get_index(self)
3450 
3451  @staticmethod
3452  def show_all(out):
3453  r"""show_all(_ostream out)"""
3454  return _IMP_kernel.Vector3DKey_show_all(out)
3455 
3456  @staticmethod
3457  def get_all_strings():
3458  r"""get_all_strings() -> IMP::Vector< std::string >"""
3459  return _IMP_kernel.Vector3DKey_get_all_strings()
3460 
3461  @staticmethod
3462  def get_number_unique():
3463  r"""get_number_unique() -> unsigned int"""
3464  return _IMP_kernel.Vector3DKey_get_number_unique()
3465 
3466  def __str__(self):
3467  r"""__str__(Vector3DKey self) -> std::string"""
3468  return _IMP_kernel.Vector3DKey___str__(self)
3469 
3470  def __repr__(self):
3471  r"""__repr__(Vector3DKey self) -> std::string"""
3472  return _IMP_kernel.Vector3DKey___repr__(self)
3473  __swig_destroy__ = _IMP_kernel.delete_Vector3DKey
3474 
3475 # Register Vector3DKey in _IMP_kernel:
3476 _IMP_kernel.Vector3DKey_swigregister(Vector3DKey)
3477 
3478 def ParticlePair(a, b):
3479  return (a,b)
3480 def ParticleTriplet(a, b, c):
3481  return (a,b,c)
3482 def ParticleQuad(a, b, c, d):
3483  return (a,b,c,d)
3484 
3485 class FloatIndex(_Value):
3486  r"""Proxy of C++ IMP::FloatIndex class."""
3487 
3488  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3489 
3490  def __init__(self, *args):
3491  r"""__init__(FloatIndex self, ParticleIndex i0=ParticleIndex(), FloatKey i1=FloatKey()) -> FloatIndex"""
3492  _IMP_kernel.FloatIndex_swiginit(self, _IMP_kernel.new_FloatIndex(*args))
3493 
3494  def __hash__(self):
3495  r"""__hash__(FloatIndex self) -> std::size_t"""
3496  return _IMP_kernel.FloatIndex___hash__(self)
3497 
3498  def show(self, *args):
3499  r"""show(FloatIndex self, _ostream out=std::cout)"""
3500  return _IMP_kernel.FloatIndex_show(self, *args)
3501 
3502  def __cmp__(self, o):
3503  r"""__cmp__(FloatIndex self, FloatIndex o) -> int"""
3504  return _IMP_kernel.FloatIndex___cmp__(self, o)
3505 
3506  def __eq__(self, o):
3507  r"""__eq__(FloatIndex self, FloatIndex o) -> bool"""
3508  return _IMP_kernel.FloatIndex___eq__(self, o)
3509 
3510  def __ne__(self, o):
3511  r"""__ne__(FloatIndex self, FloatIndex o) -> bool"""
3512  return _IMP_kernel.FloatIndex___ne__(self, o)
3513 
3514  def __lt__(self, o):
3515  r"""__lt__(FloatIndex self, FloatIndex o) -> bool"""
3516  return _IMP_kernel.FloatIndex___lt__(self, o)
3517 
3518  def __gt__(self, o):
3519  r"""__gt__(FloatIndex self, FloatIndex o) -> bool"""
3520  return _IMP_kernel.FloatIndex___gt__(self, o)
3521 
3522  def __ge__(self, o):
3523  r"""__ge__(FloatIndex self, FloatIndex o) -> bool"""
3524  return _IMP_kernel.FloatIndex___ge__(self, o)
3525 
3526  def __le__(self, o):
3527  r"""__le__(FloatIndex self, FloatIndex o) -> bool"""
3528  return _IMP_kernel.FloatIndex___le__(self, o)
3529 
3530  def get_particle(self):
3531  r"""get_particle(FloatIndex self) -> ParticleIndex const &"""
3532  return _IMP_kernel.FloatIndex_get_particle(self)
3533 
3534  def set_particle(self, v):
3535  r"""set_particle(FloatIndex self, ParticleIndex const & v)"""
3536  return _IMP_kernel.FloatIndex_set_particle(self, v)
3537 
3538  def get_key(self):
3539  r"""get_key(FloatIndex self) -> FloatKey const &"""
3540  return _IMP_kernel.FloatIndex_get_key(self)
3541 
3542  def set_key(self, v):
3543  r"""set_key(FloatIndex self, FloatKey const & v)"""
3544  return _IMP_kernel.FloatIndex_set_key(self, v)
3545 
3546  def __str__(self):
3547  r"""__str__(FloatIndex self) -> std::string"""
3548  return _IMP_kernel.FloatIndex___str__(self)
3549 
3550  def __repr__(self):
3551  r"""__repr__(FloatIndex self) -> std::string"""
3552  return _IMP_kernel.FloatIndex___repr__(self)
3553  __swig_destroy__ = _IMP_kernel.delete_FloatIndex
3554 
3555 # Register FloatIndex in _IMP_kernel:
3556 _IMP_kernel.FloatIndex_swigregister(FloatIndex)
3557 class _ParticleIndexTag(object):
3558  r"""Proxy of C++ IMP::ParticleIndexTag class."""
3559 
3560  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3561  __repr__ = _swig_repr
3562 
3563  def __init__(self):
3564  r"""__init__(_ParticleIndexTag self) -> _ParticleIndexTag"""
3565  _IMP_kernel._ParticleIndexTag_swiginit(self, _IMP_kernel.new__ParticleIndexTag())
3566  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexTag
3567 
3568 # Register _ParticleIndexTag in _IMP_kernel:
3569 _IMP_kernel._ParticleIndexTag_swigregister(_ParticleIndexTag)
3570 class ModelObject(Object):
3571  r"""Proxy of C++ IMP::ModelObject class."""
3572 
3573  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3574 
3575  def __init__(self, *args):
3576  r"""
3577  __init__(ModelObject self, Model m, std::string name) -> ModelObject
3578  __init__(ModelObject self) -> ModelObject
3579  """
3580  if self.__class__ == ModelObject:
3581  _self = None
3582  else:
3583  _self = self
3584  _IMP_kernel.ModelObject_swiginit(self, _IMP_kernel.new_ModelObject(_self, *args))
3585 
3586  if self.__class__ != ModelObject:
3587  _director_objects.register(self)
3588 
3589 
3590 
3591  __swig_destroy__ = _IMP_kernel.delete_ModelObject
3592 
3593  def get_model(self):
3594  m = _IMP_kernel.ModelObject_get_model(self)
3595  if m in _models_set:
3596  m = _models_set_get(m)
3597  return m
3598 
3599 
3600 
3601  def get_inputs(self):
3602  r"""get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
3603  return _IMP_kernel.ModelObject_get_inputs(self)
3604 
3605  def get_outputs(self):
3606  r"""get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
3607  return _IMP_kernel.ModelObject_get_outputs(self)
3608 
3609  def get_interactions(self):
3610  r"""get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
3611  return _IMP_kernel.ModelObject_get_interactions(self)
3612 
3613  def get_has_dependencies(self):
3614  r"""get_has_dependencies(ModelObject self) -> bool"""
3615  return _IMP_kernel.ModelObject_get_has_dependencies(self)
3616 
3617  def set_has_dependencies(self, tf):
3618  r"""set_has_dependencies(ModelObject self, bool tf)"""
3619  return _IMP_kernel.ModelObject_set_has_dependencies(self, tf)
3620 
3621  def set_has_required_score_states(self, tf):
3622  r"""set_has_required_score_states(ModelObject self, bool tf)"""
3623  return _IMP_kernel.ModelObject_set_has_required_score_states(self, tf)
3624 
3625  def get_has_required_score_states(self):
3626  r"""get_has_required_score_states(ModelObject self) -> bool"""
3627  return _IMP_kernel.ModelObject_get_has_required_score_states(self)
3628 
3629  def get_required_score_states(self):
3630  r"""get_required_score_states(ModelObject self) -> IMP::ScoreStatesTemp const &"""
3631  return _IMP_kernel.ModelObject_get_required_score_states(self)
3632 
3633  def handle_set_has_required_score_states(self, arg0):
3634  r"""handle_set_has_required_score_states(ModelObject self, bool arg0)"""
3635  return _IMP_kernel.ModelObject_handle_set_has_required_score_states(self, arg0)
3636 
3637  def do_get_inputs(self):
3638  r"""do_get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
3639  return _IMP_kernel.ModelObject_do_get_inputs(self)
3640 
3641  def do_get_outputs(self):
3642  r"""do_get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
3643  return _IMP_kernel.ModelObject_do_get_outputs(self)
3644 
3645  def do_get_interactions(self):
3646  r"""do_get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
3647  return _IMP_kernel.ModelObject_do_get_interactions(self)
3648 
3649  def __str__(self):
3650  r"""__str__(ModelObject self) -> std::string"""
3651  return _IMP_kernel.ModelObject___str__(self)
3652 
3653  def __repr__(self):
3654  r"""__repr__(ModelObject self) -> std::string"""
3655  return _IMP_kernel.ModelObject___repr__(self)
3656 
3657  @staticmethod
3658  def get_from(o):
3659  return _object_cast_to_ModelObject(o)
3660 
3661 
3662  def do_show(self, out):
3663  pass
3664 
3665  @staticmethod
3666  def get_from(o):
3667  return _object_cast_to_ModelObject(o)
3668 
3669  def __disown__(self):
3670  self.this.disown()
3671  _IMP_kernel.disown_ModelObject(self)
3672  return weakref.proxy(self)
3673 
3674  def do_destroy(self):
3675  r"""do_destroy(ModelObject self)"""
3676  return _IMP_kernel.ModelObject_do_destroy(self)
3677 
3678 # Register ModelObject in _IMP_kernel:
3679 _IMP_kernel.ModelObject_swigregister(ModelObject)
3680 cvar = _IMP_kernel.cvar
3681 NO_MAX = cvar.NO_MAX
3682 BAD_SCORE = cvar.BAD_SCORE
3683 
3684 class _ParticleInputs(object):
3685  r"""Proxy of C++ IMP::ParticleInputs class."""
3686 
3687  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3688 
3689  def __init__(self, *args, **kwargs):
3690  raise AttributeError("No constructor defined - class is abstract")
3691  __repr__ = _swig_repr
3692 
3693  def get_inputs(self, m, pis):
3694  r"""get_inputs(_ParticleInputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3695  return _IMP_kernel._ParticleInputs_get_inputs(self, m, pis)
3696 
3697 # Register _ParticleInputs in _IMP_kernel:
3698 _IMP_kernel._ParticleInputs_swigregister(_ParticleInputs)
3699 class _ParticleOutputs(object):
3700  r"""Proxy of C++ IMP::ParticleOutputs class."""
3701 
3702  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3703 
3704  def __init__(self, *args, **kwargs):
3705  raise AttributeError("No constructor defined - class is abstract")
3706  __repr__ = _swig_repr
3707 
3708  def get_outputs(self, m, pis):
3709  r"""get_outputs(_ParticleOutputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
3710  return _IMP_kernel._ParticleOutputs_get_outputs(self, m, pis)
3711 
3712 # Register _ParticleOutputs in _IMP_kernel:
3713 _IMP_kernel._ParticleOutputs_swigregister(_ParticleOutputs)
3714 
3715 def get_input_particles(mos):
3716  r"""get_input_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
3717  return _IMP_kernel.get_input_particles(mos)
3718 
3719 def get_input_containers(mos):
3720  r"""get_input_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
3721  return _IMP_kernel.get_input_containers(mos)
3722 
3723 def get_output_particles(mos):
3724  r"""get_output_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
3725  return _IMP_kernel.get_output_particles(mos)
3726 
3727 def get_output_containers(mos):
3728  r"""get_output_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
3729  return _IMP_kernel.get_output_containers(mos)
3730 class DerivativeAccumulator(object):
3731  r"""Proxy of C++ IMP::DerivativeAccumulator class."""
3732 
3733  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3734  __repr__ = _swig_repr
3735 
3736  def __init__(self, *args):
3737  r"""
3738  __init__(DerivativeAccumulator self, DerivativeAccumulator arg2) -> DerivativeAccumulator
3739  __init__(DerivativeAccumulator self, double weight=1.0) -> DerivativeAccumulator
3740  __init__(DerivativeAccumulator self, DerivativeAccumulator copy, double weight) -> DerivativeAccumulator
3741  """
3742  _IMP_kernel.DerivativeAccumulator_swiginit(self, _IMP_kernel.new_DerivativeAccumulator(*args))
3743 
3744  def __call__(self, value):
3745  r"""__call__(DerivativeAccumulator self, double const value) -> double"""
3746  return _IMP_kernel.DerivativeAccumulator___call__(self, value)
3747 
3748  def get_weight(self):
3749  r"""get_weight(DerivativeAccumulator self) -> double"""
3750  return _IMP_kernel.DerivativeAccumulator_get_weight(self)
3751 
3752  def show(self, *args):
3753  r"""show(DerivativeAccumulator self, _ostream out=std::cout)"""
3754  return _IMP_kernel.DerivativeAccumulator_show(self, *args)
3755  __swig_destroy__ = _IMP_kernel.delete_DerivativeAccumulator
3756 
3757 # Register DerivativeAccumulator in _IMP_kernel:
3758 _IMP_kernel.DerivativeAccumulator_swigregister(DerivativeAccumulator)
3759 class EvaluationState(object):
3760  r"""Proxy of C++ IMP::EvaluationState class."""
3761 
3762  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3763  score = property(_IMP_kernel.EvaluationState_score_get, _IMP_kernel.EvaluationState_score_set, doc=r"""score : double""")
3764  good = property(_IMP_kernel.EvaluationState_good_get, _IMP_kernel.EvaluationState_good_set, doc=r"""good : bool""")
3765 
3766  def __init__(self, *args):
3767  r"""
3768  __init__(EvaluationState self, double oscore, bool ogood) -> EvaluationState
3769  __init__(EvaluationState self) -> EvaluationState
3770  """
3771  _IMP_kernel.EvaluationState_swiginit(self, _IMP_kernel.new_EvaluationState(*args))
3772 
3773  def show(self, *args):
3774  r"""show(EvaluationState self, _ostream out=std::cout)"""
3775  return _IMP_kernel.EvaluationState_show(self, *args)
3776 
3777  def __str__(self):
3778  r"""__str__(EvaluationState self) -> std::string"""
3779  return _IMP_kernel.EvaluationState___str__(self)
3780 
3781  def __repr__(self):
3782  r"""__repr__(EvaluationState self) -> std::string"""
3783  return _IMP_kernel.EvaluationState___repr__(self)
3784  __swig_destroy__ = _IMP_kernel.delete_EvaluationState
3785 
3786 # Register EvaluationState in _IMP_kernel:
3787 _IMP_kernel.EvaluationState_swigregister(EvaluationState)
3788 class ScoreAccumulator(_Value):
3789  r"""Proxy of C++ IMP::ScoreAccumulator class."""
3790 
3791  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3792 
3793  def __init__(self, *args):
3794  r"""
3795  __init__(ScoreAccumulator self, ScoreAccumulator arg2) -> ScoreAccumulator
3796  __init__(ScoreAccumulator self) -> ScoreAccumulator
3797  __init__(ScoreAccumulator self, ScoreAccumulator o, Restraint r) -> ScoreAccumulator
3798  __init__(ScoreAccumulator self, ScoreAccumulator o, double weight, double local_max) -> ScoreAccumulator
3799  """
3800  _IMP_kernel.ScoreAccumulator_swiginit(self, _IMP_kernel.new_ScoreAccumulator(*args))
3801 
3802  def add_score(self, score):
3803  r"""add_score(ScoreAccumulator self, double score)"""
3804  return _IMP_kernel.ScoreAccumulator_add_score(self, score)
3805 
3806  def get_abort_evaluation(self):
3807  r"""get_abort_evaluation(ScoreAccumulator self) -> bool"""
3808  return _IMP_kernel.ScoreAccumulator_get_abort_evaluation(self)
3809 
3810  def get_is_evaluate_if_below(self):
3811  r"""get_is_evaluate_if_below(ScoreAccumulator self) -> bool"""
3812  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_below(self)
3813 
3814  def get_is_evaluate_if_good(self):
3815  r"""get_is_evaluate_if_good(ScoreAccumulator self) -> bool"""
3816  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_good(self)
3817 
3818  def get_maximum(self):
3819  r"""get_maximum(ScoreAccumulator self) -> double"""
3820  return _IMP_kernel.ScoreAccumulator_get_maximum(self)
3821 
3822  def get_derivative_accumulator(self):
3823  r"""get_derivative_accumulator(ScoreAccumulator self) -> DerivativeAccumulator"""
3824  return _IMP_kernel.ScoreAccumulator_get_derivative_accumulator(self)
3825 
3826  def show(self, *args):
3827  r"""show(ScoreAccumulator self, _ostream out=std::cout)"""
3828  return _IMP_kernel.ScoreAccumulator_show(self, *args)
3829 
3830  def __str__(self):
3831  r"""__str__(ScoreAccumulator self) -> std::string"""
3832  return _IMP_kernel.ScoreAccumulator___str__(self)
3833 
3834  def __repr__(self):
3835  r"""__repr__(ScoreAccumulator self) -> std::string"""
3836  return _IMP_kernel.ScoreAccumulator___repr__(self)
3837  __swig_destroy__ = _IMP_kernel.delete_ScoreAccumulator
3838 
3839 # Register ScoreAccumulator in _IMP_kernel:
3840 _IMP_kernel.ScoreAccumulator_swigregister(ScoreAccumulator)
3841 class ScoreState(ModelObject):
3842  r"""Proxy of C++ IMP::ScoreState class."""
3843 
3844  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3845 
3846  def set_can_skip(self, can_skip):
3847  r"""set_can_skip(ScoreState self, bool can_skip)"""
3848  return _IMP_kernel.ScoreState_set_can_skip(self, can_skip)
3849 
3850  def __init__(self, *args):
3851  r"""
3852  __init__(ScoreState self, Model m, std::string name) -> ScoreState
3853  __init__(ScoreState self) -> ScoreState
3854  """
3855  if self.__class__ == ScoreState:
3856  _self = None
3857  else:
3858  _self = self
3859  _IMP_kernel.ScoreState_swiginit(self, _IMP_kernel.new_ScoreState(_self, *args))
3860 
3861  if self.__class__ != ScoreState:
3862  _director_objects.register(self)
3863 
3864 
3865 
3866 
3867  def before_evaluate(self):
3868  r"""before_evaluate(ScoreState self)"""
3869  return _IMP_kernel.ScoreState_before_evaluate(self)
3870 
3871  def after_evaluate(self, accpt):
3872  r"""after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
3873  return _IMP_kernel.ScoreState_after_evaluate(self, accpt)
3874 
3875  def get_can_skip(self):
3876  r"""get_can_skip(ScoreState self) -> bool"""
3877  return _IMP_kernel.ScoreState_get_can_skip(self)
3878 
3879  def get_has_update_order(self):
3880  r"""get_has_update_order(ScoreState self) -> bool"""
3881  return _IMP_kernel.ScoreState_get_has_update_order(self)
3882 
3883  def get_update_order(self):
3884  r"""get_update_order(ScoreState self) -> unsigned int"""
3885  return _IMP_kernel.ScoreState_get_update_order(self)
3886 
3887  def handle_set_has_required_score_states(self, tf):
3888  r"""handle_set_has_required_score_states(ScoreState self, bool tf)"""
3889  return _IMP_kernel.ScoreState_handle_set_has_required_score_states(self, tf)
3890 
3891  def do_before_evaluate(self):
3892  r"""do_before_evaluate(ScoreState self)"""
3893  return _IMP_kernel.ScoreState_do_before_evaluate(self)
3894 
3895  def do_after_evaluate(self, accpt):
3896  r"""do_after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
3897  return _IMP_kernel.ScoreState_do_after_evaluate(self, accpt)
3898  __swig_destroy__ = _IMP_kernel.delete_ScoreState
3899 
3900  def __str__(self):
3901  r"""__str__(ScoreState self) -> std::string"""
3902  return _IMP_kernel.ScoreState___str__(self)
3903 
3904  def __repr__(self):
3905  r"""__repr__(ScoreState self) -> std::string"""
3906  return _IMP_kernel.ScoreState___repr__(self)
3907 
3908  @staticmethod
3909  def get_from(o):
3910  return _object_cast_to_ScoreState(o)
3911 
3912 
3913  def do_show(self, out):
3914  pass
3915 
3916  @staticmethod
3917  def get_from(o):
3918  return _object_cast_to_ScoreState(o)
3919 
3920 
3921  def _wrap_jax(self, apply_func, keys=None):
3922  """Create the return value for _get_jax.
3923  Use this method in _get_jax() to wrap the JAX apply function
3924  with other model- and ScoreState-specific information.
3925 
3926  @param apply_func A function implemented using JAX that takes
3927  a single argument (the current JAX Model) and returns
3928  a new JAX Model with the ScoreState's transformation
3929  applied.
3930  @param keys If given, a set of IMP::Key objects describing Model
3931  attributes (other than xyz and radius) that the ScoreState
3932  uses.
3933  """
3934  from IMP._jax_util import JAXScoreStateInfo
3935  return JAXScoreStateInfo(m=self.get_model(), apply_func=apply_func,
3936  keys=keys)
3937 
3938  def _get_jax(self):
3939  """Return a JAX implementation of this ScoreState.
3940  Implement this method in a ScoreState subclass to provide
3941  an equivalent function using [JAX](https://docs.jax.dev/)
3942  that modifies the JAX Model. See also _wrap_jax.
3943  """
3944  raise NotImplementedError(f"No JAX implementation for {self}")
3945 
3946  def __disown__(self):
3947  self.this.disown()
3948  _IMP_kernel.disown_ScoreState(self)
3949  return weakref.proxy(self)
3950 
3951  def do_destroy(self):
3952  r"""do_destroy(ScoreState self)"""
3953  return _IMP_kernel.ScoreState_do_destroy(self)
3954 
3955  def do_get_inputs(self):
3956  r"""do_get_inputs(ScoreState self) -> IMP::ModelObjectsTemp"""
3957  return _IMP_kernel.ScoreState_do_get_inputs(self)
3958 
3959  def do_get_outputs(self):
3960  r"""do_get_outputs(ScoreState self) -> IMP::ModelObjectsTemp"""
3961  return _IMP_kernel.ScoreState_do_get_outputs(self)
3962 
3963  def do_get_interactions(self):
3964  r"""do_get_interactions(ScoreState self) -> IMP::ModelObjectsTemps"""
3965  return _IMP_kernel.ScoreState_do_get_interactions(self)
3966 
3967 # Register ScoreState in _IMP_kernel:
3968 _IMP_kernel.ScoreState_swigregister(ScoreState)
3969 
3970 def get_update_order(input):
3971  r"""get_update_order(IMP::ScoreStatesTemp input) -> IMP::ScoreStatesTemp"""
3972  return _IMP_kernel.get_update_order(input)
3973 class Constraint(ScoreState):
3974  r"""Proxy of C++ IMP::Constraint class."""
3975 
3976  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3977 
3978  def __init__(self, *args):
3979  r"""
3980  __init__(Constraint self, Model m, std::string name="Constraint %1%") -> Constraint
3981  __init__(Constraint self) -> Constraint
3982  """
3983  if self.__class__ == Constraint:
3984  _self = None
3985  else:
3986  _self = self
3987  _IMP_kernel.Constraint_swiginit(self, _IMP_kernel.new_Constraint(_self, *args))
3988 
3989  if self.__class__ != Constraint:
3990  _director_objects.register(self)
3991 
3992 
3993 
3994 
3995  def do_update_attributes(self):
3996  r"""do_update_attributes(Constraint self)"""
3997  return _IMP_kernel.Constraint_do_update_attributes(self)
3998 
3999  def do_update_derivatives(self, da):
4000  r"""do_update_derivatives(Constraint self, DerivativeAccumulator da)"""
4001  return _IMP_kernel.Constraint_do_update_derivatives(self, da)
4002 
4003  def do_before_evaluate(self):
4004  r"""do_before_evaluate(Constraint self)"""
4005  return _IMP_kernel.Constraint_do_before_evaluate(self)
4006 
4007  def do_after_evaluate(self, da):
4008  r"""do_after_evaluate(Constraint self, DerivativeAccumulator da)"""
4009  return _IMP_kernel.Constraint_do_after_evaluate(self, da)
4010  __swig_destroy__ = _IMP_kernel.delete_Constraint
4011 
4012  def __str__(self):
4013  r"""__str__(Constraint self) -> std::string"""
4014  return _IMP_kernel.Constraint___str__(self)
4015 
4016  def __repr__(self):
4017  r"""__repr__(Constraint self) -> std::string"""
4018  return _IMP_kernel.Constraint___repr__(self)
4019 
4020  @staticmethod
4021  def get_from(o):
4022  return _object_cast_to_Constraint(o)
4023 
4024 
4025  def do_show(self, out):
4026  pass
4027 
4028  @staticmethod
4029  def get_from(o):
4030  return _object_cast_to_Constraint(o)
4031 
4032  def __disown__(self):
4033  self.this.disown()
4034  _IMP_kernel.disown_Constraint(self)
4035  return weakref.proxy(self)
4036 
4037  def do_destroy(self):
4038  r"""do_destroy(Constraint self)"""
4039  return _IMP_kernel.Constraint_do_destroy(self)
4040 
4041  def do_get_inputs(self):
4042  r"""do_get_inputs(Constraint self) -> IMP::ModelObjectsTemp"""
4043  return _IMP_kernel.Constraint_do_get_inputs(self)
4044 
4045  def do_get_outputs(self):
4046  r"""do_get_outputs(Constraint self) -> IMP::ModelObjectsTemp"""
4047  return _IMP_kernel.Constraint_do_get_outputs(self)
4048 
4049  def do_get_interactions(self):
4050  r"""do_get_interactions(Constraint self) -> IMP::ModelObjectsTemps"""
4051  return _IMP_kernel.Constraint_do_get_interactions(self)
4052 
4053 # Register Constraint in _IMP_kernel:
4054 _IMP_kernel.Constraint_swigregister(Constraint)
4055 class Container(ModelObject):
4056  r"""Proxy of C++ IMP::Container class."""
4057 
4058  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4059 
4060  def __init__(self, *args):
4061  r"""
4062  __init__(Container self, Model m, std::string name="Container %1%") -> Container
4063  __init__(Container self) -> Container
4064  """
4065  if self.__class__ == Container:
4066  _self = None
4067  else:
4068  _self = self
4069  _IMP_kernel.Container_swiginit(self, _IMP_kernel.new_Container(_self, *args))
4070 
4071  if self.__class__ != Container:
4072  _director_objects.register(self)
4073 
4074 
4075 
4076 
4077  def do_get_contents_hash(self):
4078  r"""do_get_contents_hash(Container self) -> std::size_t"""
4079  return _IMP_kernel.Container_do_get_contents_hash(self)
4080 
4081  def get_all_possible_indexes(self):
4082  r"""get_all_possible_indexes(Container self) -> IMP::ParticleIndexes"""
4083  return _IMP_kernel.Container_get_all_possible_indexes(self)
4084 
4085  def get_contents_hash(self):
4086  r"""get_contents_hash(Container self) -> std::size_t"""
4087  return _IMP_kernel.Container_get_contents_hash(self)
4088 
4089  def do_get_outputs(self):
4090  r"""do_get_outputs(Container self) -> IMP::ModelObjectsTemp"""
4091  return _IMP_kernel.Container_do_get_outputs(self)
4092 
4093  def get_is_decomposable(self):
4094  r"""get_is_decomposable(Container self) -> bool"""
4095  return _IMP_kernel.Container_get_is_decomposable(self)
4096 
4097  def validate_readable(self):
4098  r"""validate_readable(Container self)"""
4099  return _IMP_kernel.Container_validate_readable(self)
4100 
4101  def validate_writable(self):
4102  r"""validate_writable(Container self)"""
4103  return _IMP_kernel.Container_validate_writable(self)
4104 
4105  def set_is_readable(self, tf):
4106  r"""set_is_readable(Container self, bool tf)"""
4107  return _IMP_kernel.Container_set_is_readable(self, tf)
4108 
4109  def set_is_writable(self, tf):
4110  r"""set_is_writable(Container self, bool tf)"""
4111  return _IMP_kernel.Container_set_is_writable(self, tf)
4112  __swig_destroy__ = _IMP_kernel.delete_Container
4113 
4114  def __str__(self):
4115  r"""__str__(Container self) -> std::string"""
4116  return _IMP_kernel.Container___str__(self)
4117 
4118  def __repr__(self):
4119  r"""__repr__(Container self) -> std::string"""
4120  return _IMP_kernel.Container___repr__(self)
4121 
4122  @staticmethod
4123  def get_from(o):
4124  return _object_cast_to_Container(o)
4125 
4126 
4127  def do_show(self, out):
4128  pass
4129 
4130  @staticmethod
4131  def get_from(o):
4132  return _object_cast_to_Container(o)
4133 
4134  def __disown__(self):
4135  self.this.disown()
4136  _IMP_kernel.disown_Container(self)
4137  return weakref.proxy(self)
4138 
4139  def do_destroy(self):
4140  r"""do_destroy(Container self)"""
4141  return _IMP_kernel.Container_do_destroy(self)
4142 
4143  def handle_set_has_required_score_states(self, arg0):
4144  r"""handle_set_has_required_score_states(Container self, bool arg0)"""
4145  return _IMP_kernel.Container_handle_set_has_required_score_states(self, arg0)
4146 
4147  def do_get_inputs(self):
4148  r"""do_get_inputs(Container self) -> IMP::ModelObjectsTemp"""
4149  return _IMP_kernel.Container_do_get_inputs(self)
4150 
4151  def do_get_interactions(self):
4152  r"""do_get_interactions(Container self) -> IMP::ModelObjectsTemps"""
4153  return _IMP_kernel.Container_do_get_interactions(self)
4154 
4155 # Register Container in _IMP_kernel:
4156 _IMP_kernel.Container_swigregister(Container)
4157 class RestraintInfo(Object):
4158  r"""Proxy of C++ IMP::RestraintInfo class."""
4159 
4160  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4161 
4162  def __init__(self, *args):
4163  r"""__init__(RestraintInfo self, std::string name="RestraintInfo %1%") -> RestraintInfo"""
4164  _IMP_kernel.RestraintInfo_swiginit(self, _IMP_kernel.new_RestraintInfo(*args))
4165 
4166  def clear(self):
4167  r"""clear(RestraintInfo self)"""
4168  return _IMP_kernel.RestraintInfo_clear(self)
4169 
4170  def add_int(self, key, value):
4171  r"""add_int(RestraintInfo self, std::string key, int value)"""
4172  return _IMP_kernel.RestraintInfo_add_int(self, key, value)
4173 
4174  def get_number_of_int(self):
4175  r"""get_number_of_int(RestraintInfo self) -> unsigned int"""
4176  return _IMP_kernel.RestraintInfo_get_number_of_int(self)
4177 
4178  def get_int_key(self, i):
4179  r"""get_int_key(RestraintInfo self, unsigned int i) -> std::string"""
4180  return _IMP_kernel.RestraintInfo_get_int_key(self, i)
4181 
4182  def get_int_value(self, i):
4183  r"""get_int_value(RestraintInfo self, unsigned int i) -> int"""
4184  return _IMP_kernel.RestraintInfo_get_int_value(self, i)
4185 
4186  def add_float(self, key, value):
4187  r"""add_float(RestraintInfo self, std::string key, double value)"""
4188  return _IMP_kernel.RestraintInfo_add_float(self, key, value)
4189 
4190  def get_number_of_float(self):
4191  r"""get_number_of_float(RestraintInfo self) -> unsigned int"""
4192  return _IMP_kernel.RestraintInfo_get_number_of_float(self)
4193 
4194  def get_float_key(self, i):
4195  r"""get_float_key(RestraintInfo self, unsigned int i) -> std::string"""
4196  return _IMP_kernel.RestraintInfo_get_float_key(self, i)
4197 
4198  def get_float_value(self, i):
4199  r"""get_float_value(RestraintInfo self, unsigned int i) -> double"""
4200  return _IMP_kernel.RestraintInfo_get_float_value(self, i)
4201 
4202  def add_string(self, key, value):
4203  r"""add_string(RestraintInfo self, std::string key, std::string value)"""
4204  return _IMP_kernel.RestraintInfo_add_string(self, key, value)
4205 
4206  def get_number_of_string(self):
4207  r"""get_number_of_string(RestraintInfo self) -> unsigned int"""
4208  return _IMP_kernel.RestraintInfo_get_number_of_string(self)
4209 
4210  def get_string_key(self, i):
4211  r"""get_string_key(RestraintInfo self, unsigned int i) -> std::string"""
4212  return _IMP_kernel.RestraintInfo_get_string_key(self, i)
4213 
4214  def get_string_value(self, i):
4215  r"""get_string_value(RestraintInfo self, unsigned int i) -> std::string"""
4216  return _IMP_kernel.RestraintInfo_get_string_value(self, i)
4217 
4218  def add_filename(self, key, value):
4219  r"""add_filename(RestraintInfo self, std::string key, std::string value)"""
4220  return _IMP_kernel.RestraintInfo_add_filename(self, key, value)
4221 
4222  def get_number_of_filename(self):
4223  r"""get_number_of_filename(RestraintInfo self) -> unsigned int"""
4224  return _IMP_kernel.RestraintInfo_get_number_of_filename(self)
4225 
4226  def get_filename_key(self, i):
4227  r"""get_filename_key(RestraintInfo self, unsigned int i) -> std::string"""
4228  return _IMP_kernel.RestraintInfo_get_filename_key(self, i)
4229 
4230  def get_filename_value(self, i):
4231  r"""get_filename_value(RestraintInfo self, unsigned int i) -> std::string"""
4232  return _IMP_kernel.RestraintInfo_get_filename_value(self, i)
4233 
4234  def add_floats(self, key, value):
4235  r"""add_floats(RestraintInfo self, std::string key, IMP::Floats value)"""
4236  return _IMP_kernel.RestraintInfo_add_floats(self, key, value)
4237 
4238  def get_number_of_floats(self):
4239  r"""get_number_of_floats(RestraintInfo self) -> unsigned int"""
4240  return _IMP_kernel.RestraintInfo_get_number_of_floats(self)
4241 
4242  def get_floats_key(self, i):
4243  r"""get_floats_key(RestraintInfo self, unsigned int i) -> std::string"""
4244  return _IMP_kernel.RestraintInfo_get_floats_key(self, i)
4245 
4246  def get_floats_value(self, i):
4247  r"""get_floats_value(RestraintInfo self, unsigned int i) -> IMP::Floats"""
4248  return _IMP_kernel.RestraintInfo_get_floats_value(self, i)
4249 
4250  def add_ints(self, key, value):
4251  r"""add_ints(RestraintInfo self, std::string key, IMP::Ints value)"""
4252  return _IMP_kernel.RestraintInfo_add_ints(self, key, value)
4253 
4254  def get_number_of_ints(self):
4255  r"""get_number_of_ints(RestraintInfo self) -> unsigned int"""
4256  return _IMP_kernel.RestraintInfo_get_number_of_ints(self)
4257 
4258  def get_ints_key(self, i):
4259  r"""get_ints_key(RestraintInfo self, unsigned int i) -> std::string"""
4260  return _IMP_kernel.RestraintInfo_get_ints_key(self, i)
4261 
4262  def get_ints_value(self, i):
4263  r"""get_ints_value(RestraintInfo self, unsigned int i) -> IMP::Ints"""
4264  return _IMP_kernel.RestraintInfo_get_ints_value(self, i)
4265 
4266  def add_strings(self, key, value):
4267  r"""add_strings(RestraintInfo self, std::string key, IMP::Strings value)"""
4268  return _IMP_kernel.RestraintInfo_add_strings(self, key, value)
4269 
4270  def get_number_of_strings(self):
4271  r"""get_number_of_strings(RestraintInfo self) -> unsigned int"""
4272  return _IMP_kernel.RestraintInfo_get_number_of_strings(self)
4273 
4274  def get_strings_key(self, i):
4275  r"""get_strings_key(RestraintInfo self, unsigned int i) -> std::string"""
4276  return _IMP_kernel.RestraintInfo_get_strings_key(self, i)
4277 
4278  def get_strings_value(self, i):
4279  r"""get_strings_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
4280  return _IMP_kernel.RestraintInfo_get_strings_value(self, i)
4281 
4282  def add_filenames(self, key, value):
4283  r"""add_filenames(RestraintInfo self, std::string key, IMP::Strings value)"""
4284  return _IMP_kernel.RestraintInfo_add_filenames(self, key, value)
4285 
4286  def get_number_of_filenames(self):
4287  r"""get_number_of_filenames(RestraintInfo self) -> unsigned int"""
4288  return _IMP_kernel.RestraintInfo_get_number_of_filenames(self)
4289 
4290  def get_filenames_key(self, i):
4291  r"""get_filenames_key(RestraintInfo self, unsigned int i) -> std::string"""
4292  return _IMP_kernel.RestraintInfo_get_filenames_key(self, i)
4293 
4294  def get_filenames_value(self, i):
4295  r"""get_filenames_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
4296  return _IMP_kernel.RestraintInfo_get_filenames_value(self, i)
4297 
4298  def add_particle_indexes(self, key, value):
4299  r"""add_particle_indexes(RestraintInfo self, std::string key, IMP::ParticleIndexes value)"""
4300  return _IMP_kernel.RestraintInfo_add_particle_indexes(self, key, value)
4301 
4302  def get_number_of_particle_indexes(self):
4303  r"""get_number_of_particle_indexes(RestraintInfo self) -> unsigned int"""
4304  return _IMP_kernel.RestraintInfo_get_number_of_particle_indexes(self)
4305 
4306  def get_particle_indexes_key(self, i):
4307  r"""get_particle_indexes_key(RestraintInfo self, unsigned int i) -> std::string"""
4308  return _IMP_kernel.RestraintInfo_get_particle_indexes_key(self, i)
4309 
4310  def get_particle_indexes_value(self, i):
4311  r"""get_particle_indexes_value(RestraintInfo self, unsigned int i) -> IMP::ParticleIndexes"""
4312  return _IMP_kernel.RestraintInfo_get_particle_indexes_value(self, i)
4313 
4314  def get_version_info(self):
4315  r"""get_version_info(RestraintInfo self) -> VersionInfo"""
4316  return _IMP_kernel.RestraintInfo_get_version_info(self)
4317  __swig_destroy__ = _IMP_kernel.delete_RestraintInfo
4318 
4319  def __str__(self):
4320  r"""__str__(RestraintInfo self) -> std::string"""
4321  return _IMP_kernel.RestraintInfo___str__(self)
4322 
4323  def __repr__(self):
4324  r"""__repr__(RestraintInfo self) -> std::string"""
4325  return _IMP_kernel.RestraintInfo___repr__(self)
4326 
4327  @staticmethod
4328  def get_from(o):
4329  return _object_cast_to_RestraintInfo(o)
4330 
4331 
4332 # Register RestraintInfo in _IMP_kernel:
4333 _IMP_kernel.RestraintInfo_swigregister(RestraintInfo)
4334 class Restraint(ModelObject):
4335  r"""Proxy of C++ IMP::Restraint class."""
4336 
4337  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4338 
4339  def __init__(self, *args):
4340  r"""
4341  __init__(Restraint self, Model m, std::string name) -> Restraint
4342  __init__(Restraint self) -> Restraint
4343  """
4344  if self.__class__ == Restraint:
4345  _self = None
4346  else:
4347  _self = self
4348  _IMP_kernel.Restraint_swiginit(self, _IMP_kernel.new_Restraint(_self, *args))
4349 
4350  if self.__class__ != Restraint:
4351  _director_objects.register(self)
4352 
4353 
4354 
4355 
4356  def get_score(self):
4357  r"""get_score(Restraint self) -> double"""
4358  return _IMP_kernel.Restraint_get_score(self)
4359 
4360  def evaluate(self, calc_derivs):
4361  r"""evaluate(Restraint self, bool calc_derivs) -> double"""
4362  return _IMP_kernel.Restraint_evaluate(self, calc_derivs)
4363 
4364  def evaluate_moved(self, calc_derivs, moved_pis, reset_pis):
4365  r"""evaluate_moved(Restraint self, bool calc_derivs, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
4366  return _IMP_kernel.Restraint_evaluate_moved(self, calc_derivs, moved_pis, reset_pis)
4367 
4368  def evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max):
4369  r"""evaluate_moved_if_below(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
4370  return _IMP_kernel.Restraint_evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max)
4371 
4372  def evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis):
4373  r"""evaluate_moved_if_good(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
4374  return _IMP_kernel.Restraint_evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis)
4375 
4376  def evaluate_if_good(self, calc_derivatives):
4377  r"""evaluate_if_good(Restraint self, bool calc_derivatives) -> double"""
4378  return _IMP_kernel.Restraint_evaluate_if_good(self, calc_derivatives)
4379 
4380  def evaluate_if_below(self, calc_derivatives, max):
4381  r"""evaluate_if_below(Restraint self, bool calc_derivatives, double max) -> double"""
4382  return _IMP_kernel.Restraint_evaluate_if_below(self, calc_derivatives, max)
4383 
4384  def unprotected_evaluate(self, da):
4385  r"""unprotected_evaluate(Restraint self, DerivativeAccumulator da) -> double"""
4386  return _IMP_kernel.Restraint_unprotected_evaluate(self, da)
4387 
4388  def unprotected_evaluate_moved(self, da, moved_pis, reset_pis):
4389  r"""unprotected_evaluate_moved(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
4390  return _IMP_kernel.Restraint_unprotected_evaluate_moved(self, da, moved_pis, reset_pis)
4391 
4392  def unprotected_evaluate_if_good(self, da, max):
4393  r"""unprotected_evaluate_if_good(Restraint self, DerivativeAccumulator da, double max) -> double"""
4394  return _IMP_kernel.Restraint_unprotected_evaluate_if_good(self, da, max)
4395 
4396  def unprotected_evaluate_if_below(self, da, max):
4397  r"""unprotected_evaluate_if_below(Restraint self, DerivativeAccumulator da, double max) -> double"""
4398  return _IMP_kernel.Restraint_unprotected_evaluate_if_below(self, da, max)
4399 
4400  def unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max):
4401  r"""unprotected_evaluate_moved_if_below(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
4402  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max)
4403 
4404  def unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max):
4405  r"""unprotected_evaluate_moved_if_good(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
4406  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max)
4407 
4408  def get_static_info(self):
4409  r"""get_static_info(Restraint self) -> RestraintInfo"""
4410  return _IMP_kernel.Restraint_get_static_info(self)
4411 
4412  def get_dynamic_info(self):
4413  r"""get_dynamic_info(Restraint self) -> RestraintInfo"""
4414  return _IMP_kernel.Restraint_get_dynamic_info(self)
4415 
4416  def add_score_and_derivatives(self, sa):
4417  r"""add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
4418  return _IMP_kernel.Restraint_add_score_and_derivatives(self, sa)
4419 
4420  def add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
4421  r"""add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
4422  return _IMP_kernel.Restraint_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
4423 
4424  def create_decomposition(self):
4425  r"""create_decomposition(Restraint self) -> Restraint"""
4426  return _IMP_kernel.Restraint_create_decomposition(self)
4427 
4428  def create_current_decomposition(self):
4429  r"""create_current_decomposition(Restraint self) -> Restraint"""
4430  return _IMP_kernel.Restraint_create_current_decomposition(self)
4431 
4432  def set_weight(self, weight):
4433  r"""set_weight(Restraint self, IMP::Float weight)"""
4434  return _IMP_kernel.Restraint_set_weight(self, weight)
4435 
4436  def get_weight(self):
4437  r"""get_weight(Restraint self) -> IMP::Float"""
4438  return _IMP_kernel.Restraint_get_weight(self)
4439 
4440  def get_maximum_score(self):
4441  r"""get_maximum_score(Restraint self) -> double"""
4442  return _IMP_kernel.Restraint_get_maximum_score(self)
4443 
4444  def set_maximum_score(self, s):
4445  r"""set_maximum_score(Restraint self, double s)"""
4446  return _IMP_kernel.Restraint_set_maximum_score(self, s)
4447 
4448  def create_scoring_function(self, *args):
4449  r"""create_scoring_function(Restraint self, double weight=1.0, double max=NO_MAX) -> ScoringFunction"""
4450  return _IMP_kernel.Restraint_create_scoring_function(self, *args)
4451 
4452  def set_last_score(self, s):
4453  r"""set_last_score(Restraint self, double s)"""
4454  return _IMP_kernel.Restraint_set_last_score(self, s)
4455 
4456  def set_last_last_score(self, s):
4457  r"""set_last_last_score(Restraint self, double s)"""
4458  return _IMP_kernel.Restraint_set_last_last_score(self, s)
4459 
4460  def get_last_score(self):
4461  r"""get_last_score(Restraint self) -> double"""
4462  return _IMP_kernel.Restraint_get_last_score(self)
4463 
4464  def get_last_last_score(self):
4465  r"""get_last_last_score(Restraint self) -> double"""
4466  return _IMP_kernel.Restraint_get_last_last_score(self)
4467 
4468  def get_is_aggregate(self):
4469  r"""get_is_aggregate(Restraint self) -> bool"""
4470  return _IMP_kernel.Restraint_get_is_aggregate(self)
4471 
4472  def get_was_good(self):
4473  r"""get_was_good(Restraint self) -> bool"""
4474  return _IMP_kernel.Restraint_get_was_good(self)
4475  __swig_destroy__ = _IMP_kernel.delete_Restraint
4476 
4477  def do_create_decomposition(self):
4478  r"""do_create_decomposition(Restraint self) -> IMP::Restraints"""
4479  return _IMP_kernel.Restraint_do_create_decomposition(self)
4480 
4481  def do_create_current_decomposition(self):
4482  r"""do_create_current_decomposition(Restraint self) -> IMP::Restraints"""
4483  return _IMP_kernel.Restraint_do_create_current_decomposition(self)
4484 
4485  def do_add_score_and_derivatives(self, sa):
4486  r"""do_add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
4487  return _IMP_kernel.Restraint_do_add_score_and_derivatives(self, sa)
4488 
4489  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
4490  r"""do_add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
4491  return _IMP_kernel.Restraint_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
4492 
4493  def do_get_outputs(self):
4494  r"""do_get_outputs(Restraint self) -> IMP::ModelObjectsTemp"""
4495  return _IMP_kernel.Restraint_do_get_outputs(self)
4496  is_aggregate_ = property(_IMP_kernel.Restraint_is_aggregate__get, _IMP_kernel.Restraint_is_aggregate__set, doc=r"""is_aggregate_ : bool""")
4497 
4498  def __str__(self):
4499  r"""__str__(Restraint self) -> std::string"""
4500  return _IMP_kernel.Restraint___str__(self)
4501 
4502  def __repr__(self):
4503  r"""__repr__(Restraint self) -> std::string"""
4504  return _IMP_kernel.Restraint___repr__(self)
4505 
4506  @staticmethod
4507  def get_from(o):
4508  return _object_cast_to_Restraint(o)
4509 
4510 
4511  def do_show(self, out):
4512  pass
4513 
4514  @staticmethod
4515  def get_from(o):
4516  return _object_cast_to_Restraint(o)
4517 
4518 
4519  def _wrap_jax(self, score_func, keys=None):
4520  """Create the return value for _get_jax.
4521  Use this method in _get_jax() to wrap the JAX scoring function
4522  with other model- and restraint-specific information.
4523 
4524  @param score_func A function implemented using JAX that takes
4525  a single argument (the current JAX Model) and returns
4526  the score of the restraint.
4527  @param keys If given, a set of IMP::Key objects describing Model
4528  attributes (other than xyz and radius) that the restraint
4529  uses. For example, a restraint that uses electrostatic charge
4530  would pass IMP::atom::Charged::get_charge_key() here.
4531  """
4532  from IMP._jax_util import JAXRestraintInfo
4533  return JAXRestraintInfo(m=self.get_model(), score_func=score_func,
4534  weight=self.get_weight(), keys=keys)
4535 
4536  def _get_jax(self):
4537  """Return a JAX implementation of this Restraint.
4538  Implement this method in a Restraint subclass to provide
4539  an equivalent function using [JAX](https://docs.jax.dev/)
4540  that scores the current JAX Model. See also _wrap_jax.
4541  """
4542  raise NotImplementedError(f"No JAX implementation for {self}")
4543 
4544  def __disown__(self):
4545  self.this.disown()
4546  _IMP_kernel.disown_Restraint(self)
4547  return weakref.proxy(self)
4548 
4549  def do_destroy(self):
4550  r"""do_destroy(Restraint self)"""
4551  return _IMP_kernel.Restraint_do_destroy(self)
4552 
4553  def handle_set_has_required_score_states(self, arg0):
4554  r"""handle_set_has_required_score_states(Restraint self, bool arg0)"""
4555  return _IMP_kernel.Restraint_handle_set_has_required_score_states(self, arg0)
4556 
4557  def do_get_inputs(self):
4558  r"""do_get_inputs(Restraint self) -> IMP::ModelObjectsTemp"""
4559  return _IMP_kernel.Restraint_do_get_inputs(self)
4560 
4561  def do_get_interactions(self):
4562  r"""do_get_interactions(Restraint self) -> IMP::ModelObjectsTemps"""
4563  return _IMP_kernel.Restraint_do_get_interactions(self)
4564 
4565 # Register Restraint in _IMP_kernel:
4566 _IMP_kernel.Restraint_swigregister(Restraint)
4567 class _RestraintsAdaptor(_InputAdaptor):
4568  r"""Proxy of C++ IMP::RestraintsAdaptor class."""
4569 
4570  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4571  __repr__ = _swig_repr
4572 
4573  def __init__(self, *args):
4574  r"""
4575  __init__(_RestraintsAdaptor self) -> _RestraintsAdaptor
4576  __init__(_RestraintsAdaptor self, IMP::Restraints const & sf) -> _RestraintsAdaptor
4577  __init__(_RestraintsAdaptor self, IMP::RestraintsTemp const & sf) -> _RestraintsAdaptor
4578  __init__(_RestraintsAdaptor self, Restraint sf) -> _RestraintsAdaptor
4579  """
4580  _IMP_kernel._RestraintsAdaptor_swiginit(self, _IMP_kernel.new__RestraintsAdaptor(*args))
4581  __swig_destroy__ = _IMP_kernel.delete__RestraintsAdaptor
4582 
4583 # Register _RestraintsAdaptor in _IMP_kernel:
4584 _IMP_kernel._RestraintsAdaptor_swigregister(_RestraintsAdaptor)
4585 class RestraintSet(Restraint):
4586  r"""Proxy of C++ IMP::RestraintSet class."""
4587 
4588  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4589 
4590  def __init__(self, *args):
4591  r"""
4592  __init__(RestraintSet self, Model m, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
4593  __init__(RestraintSet self, Model m, std::string const & name="RestraintSet %1%") -> RestraintSet
4594  __init__(RestraintSet self, IMP::RestraintsTemp const & rs, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
4595  __init__(RestraintSet self) -> RestraintSet
4596  """
4597  if self.__class__ == RestraintSet:
4598  _self = None
4599  else:
4600  _self = self
4601  _IMP_kernel.RestraintSet_swiginit(self, _IMP_kernel.new_RestraintSet(_self, *args))
4602 
4603  if self.__class__ != RestraintSet:
4604  _director_objects.register(self)
4605 
4606 
4607 
4608 
4609  def unprotected_evaluate(self, da):
4610  r"""unprotected_evaluate(RestraintSet self, DerivativeAccumulator da) -> double"""
4611  return _IMP_kernel.RestraintSet_unprotected_evaluate(self, da)
4612 
4613  def get_type_name(self):
4614  r"""get_type_name(RestraintSet self) -> std::string"""
4615  return _IMP_kernel.RestraintSet_get_type_name(self)
4616 
4617  def get_version_info(self):
4618  r"""get_version_info(RestraintSet self) -> VersionInfo"""
4619  return _IMP_kernel.RestraintSet_get_version_info(self)
4620  __swig_destroy__ = _IMP_kernel.delete_RestraintSet
4621  def __get_restraints(self): return _list_util.VarList(getdimfunc=self.get_number_of_restraints, getfunc=self.get_restraint, erasefunc=self.erase_restraint, appendfunc=self.add_restraint, extendfunc=self.add_restraints, clearfunc=self.clear_restraints, indexfunc=self._python_index_restraint)
4622  def __set_restraints(self, obj): _list_util.set_varlist(self.restraints, obj)
4623  def __del_restraints(self): _list_util.del_varlist(self.restraints)
4624  restraints = property(__get_restraints, __set_restraints, __del_restraints, doc="List of ##ucnames")
4625 
4626  def remove_restraint(self, d):
4627  r"""remove_restraint(RestraintSet self, Restraint d)"""
4628  return _IMP_kernel.RestraintSet_remove_restraint(self, d)
4629 
4630  def _python_index_restraint(self, d, start, stop):
4631  r"""_python_index_restraint(RestraintSet self, Restraint d, unsigned int start, unsigned int stop) -> unsigned int"""
4632  return _IMP_kernel.RestraintSet__python_index_restraint(self, d, start, stop)
4633 
4634  def remove_restraints(self, d):
4635  r"""remove_restraints(RestraintSet self, IMP::Restraints const & d)"""
4636  return _IMP_kernel.RestraintSet_remove_restraints(self, d)
4637 
4638  def set_restraints(self, ps):
4639  r"""set_restraints(RestraintSet self, IMP::Restraints const & ps)"""
4640  return _IMP_kernel.RestraintSet_set_restraints(self, ps)
4641 
4642  def set_restraints_order(self, objs):
4643  r"""set_restraints_order(RestraintSet self, IMP::Restraints const & objs)"""
4644  return _IMP_kernel.RestraintSet_set_restraints_order(self, objs)
4645 
4646  def add_restraint(self, obj):
4647  r"""add_restraint(RestraintSet self, Restraint obj) -> unsigned int"""
4648  return _IMP_kernel.RestraintSet_add_restraint(self, obj)
4649 
4650  def add_restraints(self, objs):
4651  r"""add_restraints(RestraintSet self, IMP::Restraints const & objs)"""
4652  return _IMP_kernel.RestraintSet_add_restraints(self, objs)
4653 
4654  def clear_restraints(self):
4655  r"""clear_restraints(RestraintSet self)"""
4656  return _IMP_kernel.RestraintSet_clear_restraints(self)
4657 
4658  def get_number_of_restraints(self):
4659  r"""get_number_of_restraints(RestraintSet self) -> unsigned int"""
4660  return _IMP_kernel.RestraintSet_get_number_of_restraints(self)
4661 
4662  def get_has_restraints(self):
4663  r"""get_has_restraints(RestraintSet self) -> bool"""
4664  return _IMP_kernel.RestraintSet_get_has_restraints(self)
4665 
4666  def get_restraint(self, i):
4667  r"""get_restraint(RestraintSet self, unsigned int i) -> Restraint"""
4668  return _IMP_kernel.RestraintSet_get_restraint(self, i)
4669 
4670  def get_restraints(self):
4671  r"""get_restraints(RestraintSet self) -> IMP::Restraints"""
4672  return _IMP_kernel.RestraintSet_get_restraints(self)
4673 
4674  def erase_restraint(self, i):
4675  r"""erase_restraint(RestraintSet self, unsigned int i)"""
4676  return _IMP_kernel.RestraintSet_erase_restraint(self, i)
4677 
4678  def reserve_restraints(self, sz):
4679  r"""reserve_restraints(RestraintSet self, unsigned int sz)"""
4680  return _IMP_kernel.RestraintSet_reserve_restraints(self, sz)
4681 
4682  def get_non_sets_and_sets(self):
4683  r"""get_non_sets_and_sets(RestraintSet self) -> std::pair< IMP::RestraintsTemp,IMP::RestraintSetsTemp >"""
4684  return _IMP_kernel.RestraintSet_get_non_sets_and_sets(self)
4685 
4686  def do_get_inputs(self):
4687  r"""do_get_inputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
4688  return _IMP_kernel.RestraintSet_do_get_inputs(self)
4689 
4690  def create_scoring_function(self, *args):
4691  r"""create_scoring_function(RestraintSet self, double weight=1.0, double max=std::numeric_limits< double >::max()) -> ScoringFunction"""
4692  return _IMP_kernel.RestraintSet_create_scoring_function(self, *args)
4693 
4694  def get_last_score(self):
4695  r"""get_last_score(RestraintSet self) -> double"""
4696  return _IMP_kernel.RestraintSet_get_last_score(self)
4697 
4698  def __str__(self):
4699  r"""__str__(RestraintSet self) -> std::string"""
4700  return _IMP_kernel.RestraintSet___str__(self)
4701 
4702  def __repr__(self):
4703  r"""__repr__(RestraintSet self) -> std::string"""
4704  return _IMP_kernel.RestraintSet___repr__(self)
4705 
4706  @staticmethod
4707  def get_from(o):
4708  return _object_cast_to_RestraintSet(o)
4709 
4710 
4711  def do_show(self, out):
4712  pass
4713 
4714  @staticmethod
4715  def get_from(o):
4716  return _object_cast_to_RestraintSet(o)
4717 
4718 
4719  def _get_as_binary(self):
4720  r"""_get_as_binary(RestraintSet self) -> PyObject *"""
4721  return _IMP_kernel.RestraintSet__get_as_binary(self)
4722 
4723  def _set_from_binary(self, p):
4724  r"""_set_from_binary(RestraintSet self, PyObject * p)"""
4725  return _IMP_kernel.RestraintSet__set_from_binary(self, p)
4726 
4727  def __getstate__(self):
4728  p = self._get_as_binary()
4729  if len(self.__dict__) > 1:
4730  d = self.__dict__.copy()
4731  del d['this']
4732  p = (d, p)
4733  return p
4734 
4735  def __setstate__(self, p):
4736  if not hasattr(self, 'this'):
4737  self.__init__()
4738  if isinstance(p, tuple):
4739  d, p = p
4740  self.__dict__.update(d)
4741  return self._set_from_binary(p)
4742 
4743 
4744  def _get_jax(self):
4745  jis = [r.get_derived_object()._get_jax() for r in self.restraints]
4746  funcs = [j.score_func for j in jis]
4747  keys = frozenset(x for j in jis for x in j._keys)
4748  def jax_sf(jm):
4749  if funcs:
4750  return sum(f(jm) for f in funcs)
4751  else:
4752  # sum([]) returns int, but we must return float
4753  return 0.
4754  return self._wrap_jax(jax_sf, keys=keys)
4755 
4756  def __disown__(self):
4757  self.this.disown()
4758  _IMP_kernel.disown_RestraintSet(self)
4759  return weakref.proxy(self)
4760 
4761  def do_destroy(self):
4762  r"""do_destroy(RestraintSet self)"""
4763  return _IMP_kernel.RestraintSet_do_destroy(self)
4764 
4765  def handle_set_has_required_score_states(self, arg0):
4766  r"""handle_set_has_required_score_states(RestraintSet self, bool arg0)"""
4767  return _IMP_kernel.RestraintSet_handle_set_has_required_score_states(self, arg0)
4768 
4769  def do_get_outputs(self):
4770  r"""do_get_outputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
4771  return _IMP_kernel.RestraintSet_do_get_outputs(self)
4772 
4773  def do_get_interactions(self):
4774  r"""do_get_interactions(RestraintSet self) -> IMP::ModelObjectsTemps"""
4775  return _IMP_kernel.RestraintSet_do_get_interactions(self)
4776 
4777  def do_create_decomposition(self):
4778  r"""do_create_decomposition(RestraintSet self) -> IMP::Restraints"""
4779  return _IMP_kernel.RestraintSet_do_create_decomposition(self)
4780 
4781  def do_create_current_decomposition(self):
4782  r"""do_create_current_decomposition(RestraintSet self) -> IMP::Restraints"""
4783  return _IMP_kernel.RestraintSet_do_create_current_decomposition(self)
4784 
4785  def do_add_score_and_derivatives(self, sa):
4786  r"""do_add_score_and_derivatives(RestraintSet self, ScoreAccumulator sa)"""
4787  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives(self, sa)
4788 
4789  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
4790  r"""do_add_score_and_derivatives_moved(RestraintSet self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
4791  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
4792 
4793 # Register RestraintSet in _IMP_kernel:
4794 _IMP_kernel.RestraintSet_swigregister(RestraintSet)
4795 
4796 def get_restraints(rs):
4797  r"""get_restraints(IMP::RestraintsTemp const & rs) -> IMP::RestraintsTemp"""
4798  return _IMP_kernel.get_restraints(rs)
4799 
4800 def _check_particle(p, a):
4801  if (not p.get_is_active()):
4802  raise ValueError("Inactive Particle")
4803  if (type(a)() == a):
4804  raise IndexError("Cannot use default Index")
4805  if (not p.has_attribute(a)):
4806  raise IndexError("Particle does not have attribute")
4807 
4808 class Particle(ModelObject):
4809  r"""Proxy of C++ IMP::Particle class."""
4810 
4811  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4812 
4813  def get_version_info(self):
4814  r"""get_version_info(Particle self) -> VersionInfo"""
4815  return _IMP_kernel.Particle_get_version_info(self)
4816  __swig_destroy__ = _IMP_kernel.delete_Particle
4817 
4818  def __init__(self, *args):
4819  r"""
4820  __init__(Particle self, Model m, std::string name) -> Particle
4821  __init__(Particle self, Model m) -> Particle
4822  __init__(Particle self) -> Particle
4823  """
4824  _IMP_kernel.Particle_swiginit(self, _IMP_kernel.new_Particle(*args))
4825 
4826  def get_float_keys(self):
4827  r"""get_float_keys(Particle self) -> IMP::FloatKeys"""
4828  return _IMP_kernel.Particle_get_float_keys(self)
4829 
4830  def get_floats_keys(self):
4831  r"""get_floats_keys(Particle self) -> IMP::FloatsKeys"""
4832  return _IMP_kernel.Particle_get_floats_keys(self)
4833 
4834  def get_int_keys(self):
4835  r"""get_int_keys(Particle self) -> IMP::IntKeys"""
4836  return _IMP_kernel.Particle_get_int_keys(self)
4837 
4838  def get_ints_keys(self):
4839  r"""get_ints_keys(Particle self) -> IMP::IntsKeys"""
4840  return _IMP_kernel.Particle_get_ints_keys(self)
4841 
4842  def get_string_keys(self):
4843  r"""get_string_keys(Particle self) -> IMP::StringKeys"""
4844  return _IMP_kernel.Particle_get_string_keys(self)
4845 
4846  def get_object_keys(self):
4847  r"""get_object_keys(Particle self) -> IMP::ObjectKeys"""
4848  return _IMP_kernel.Particle_get_object_keys(self)
4849 
4850  def add_cache_attribute(self, *args):
4851  r"""
4852  add_cache_attribute(Particle self, FloatKey name, IMP::Float value)
4853  add_cache_attribute(Particle self, FloatsKey name, IMP::Floats value)
4854  add_cache_attribute(Particle self, IntKey name, IMP::Int value)
4855  add_cache_attribute(Particle self, IntsKey name, IMP::Ints value)
4856  add_cache_attribute(Particle self, StringKey name, IMP::String value)
4857  add_cache_attribute(Particle self, ObjectKey name, Object value)
4858  add_cache_attribute(Particle self, IMP::WeakObjectKey name, Object value)
4859  """
4860  return _IMP_kernel.Particle_add_cache_attribute(self, *args)
4861 
4862  def get_weak_object_keys(self):
4863  r"""get_weak_object_keys(Particle self) -> IMP::WeakObjectKeys"""
4864  return _IMP_kernel.Particle_get_weak_object_keys(self)
4865 
4866  def add_to_derivative(self, key, value, da):
4867  r"""add_to_derivative(Particle self, FloatKey key, IMP::Float value, DerivativeAccumulator da)"""
4868  return _IMP_kernel.Particle_add_to_derivative(self, key, value, da)
4869 
4870  def set_is_optimized(self, k, tf):
4871  r"""set_is_optimized(Particle self, FloatKey k, bool tf)"""
4872  return _IMP_kernel.Particle_set_is_optimized(self, k, tf)
4873 
4874  def get_is_optimized(self, k):
4875  r"""get_is_optimized(Particle self, FloatKey k) -> bool"""
4876  return _IMP_kernel.Particle_get_is_optimized(self, k)
4877 
4878  def get_derivative(self, k):
4879  r"""get_derivative(Particle self, FloatKey k) -> IMP::Float"""
4880  return _IMP_kernel.Particle_get_derivative(self, k)
4881 
4882  def add_attribute(self, *args):
4883  r"""
4884  add_attribute(Particle self, FloatKey name, IMP::Float initial_value)
4885  add_attribute(Particle self, FloatsKey name, IMP::Floats initial_value)
4886  add_attribute(Particle self, IntKey name, IMP::Int initial_value)
4887  add_attribute(Particle self, IntsKey name, IMP::Ints initial_value)
4888  add_attribute(Particle self, StringKey name, IMP::String initial_value)
4889  add_attribute(Particle self, ObjectKey name, Object initial_value)
4890  add_attribute(Particle self, IMP::WeakObjectKey name, Object initial_value)
4891  add_attribute(Particle self, SparseStringKey name, IMP::String initial_value)
4892  add_attribute(Particle self, SparseIntKey name, IMP::Int initial_value)
4893  add_attribute(Particle self, SparseFloatKey name, IMP::Float initial_value)
4894  add_attribute(Particle self, SparseParticleIndexKey name, ParticleIndex initial_value)
4895  add_attribute(Particle self, FloatKey name, IMP::Float const initial_value, bool optimized)
4896  add_attribute(Particle self, ParticleIndexKey k, Particle v)
4897  """
4898  return _IMP_kernel.Particle_add_attribute(self, *args)
4899 
4900  def has_attribute(self, *args):
4901  r"""
4902  has_attribute(Particle self, FloatKey name) -> bool
4903  has_attribute(Particle self, FloatsKey name) -> bool
4904  has_attribute(Particle self, IntKey name) -> bool
4905  has_attribute(Particle self, IntsKey name) -> bool
4906  has_attribute(Particle self, StringKey name) -> bool
4907  has_attribute(Particle self, ObjectKey name) -> bool
4908  has_attribute(Particle self, IMP::WeakObjectKey name) -> bool
4909  has_attribute(Particle self, SparseStringKey name) -> bool
4910  has_attribute(Particle self, SparseIntKey name) -> bool
4911  has_attribute(Particle self, SparseFloatKey name) -> bool
4912  has_attribute(Particle self, SparseParticleIndexKey name) -> bool
4913  has_attribute(Particle self, ParticleIndexKey k) -> bool
4914  """
4915  return _IMP_kernel.Particle_has_attribute(self, *args)
4916 
4917  def set_value(self, *args):
4918  r"""
4919  set_value(Particle self, FloatKey name, IMP::Float value)
4920  set_value(Particle self, FloatsKey name, IMP::Floats value)
4921  set_value(Particle self, IntKey name, IMP::Int value)
4922  set_value(Particle self, IntsKey name, IMP::Ints value)
4923  set_value(Particle self, StringKey name, IMP::String value)
4924  set_value(Particle self, ObjectKey name, Object value)
4925  set_value(Particle self, IMP::WeakObjectKey name, Object value)
4926  set_value(Particle self, SparseStringKey name, IMP::String value)
4927  set_value(Particle self, SparseIntKey name, IMP::Int value)
4928  set_value(Particle self, SparseFloatKey name, IMP::Float value)
4929  set_value(Particle self, SparseParticleIndexKey name, ParticleIndex value)
4930  set_value(Particle self, ParticleIndexKey k, Particle v)
4931  """
4932  return _IMP_kernel.Particle_set_value(self, *args)
4933 
4934  def get_value(self, *args):
4935  r"""
4936  get_value(Particle self, FloatKey name) -> IMP::Float
4937  get_value(Particle self, FloatsKey name) -> IMP::Floats
4938  get_value(Particle self, IntKey name) -> IMP::Int
4939  get_value(Particle self, IntsKey name) -> IMP::Ints
4940  get_value(Particle self, StringKey name) -> IMP::String
4941  get_value(Particle self, ObjectKey name) -> Object
4942  get_value(Particle self, IMP::WeakObjectKey name) -> Object
4943  get_value(Particle self, SparseStringKey name) -> IMP::String
4944  get_value(Particle self, SparseIntKey name) -> IMP::Int
4945  get_value(Particle self, SparseFloatKey name) -> IMP::Float
4946  get_value(Particle self, SparseParticleIndexKey name) -> ParticleIndex
4947  get_value(Particle self, ParticleIndexKey k) -> Particle
4948  """
4949  return _IMP_kernel.Particle_get_value(self, *args)
4950 
4951  def remove_attribute(self, *args):
4952  r"""
4953  remove_attribute(Particle self, FloatKey name)
4954  remove_attribute(Particle self, FloatsKey name)
4955  remove_attribute(Particle self, IntKey name)
4956  remove_attribute(Particle self, IntsKey name)
4957  remove_attribute(Particle self, StringKey name)
4958  remove_attribute(Particle self, ObjectKey name)
4959  remove_attribute(Particle self, IMP::WeakObjectKey name)
4960  remove_attribute(Particle self, SparseStringKey name)
4961  remove_attribute(Particle self, SparseIntKey name)
4962  remove_attribute(Particle self, SparseFloatKey name)
4963  remove_attribute(Particle self, SparseParticleIndexKey name)
4964  remove_attribute(Particle self, ParticleIndexKey k)
4965  """
4966  return _IMP_kernel.Particle_remove_attribute(self, *args)
4967 
4968  def get_particle_keys(self):
4969  r"""get_particle_keys(Particle self) -> IMP::ParticleIndexKeys"""
4970  return _IMP_kernel.Particle_get_particle_keys(self)
4971 
4972  def show(self, *args):
4973  r"""show(Particle self, _ostream out=std::cout)"""
4974  return _IMP_kernel.Particle_show(self, *args)
4975 
4976  def get_is_active(self):
4977  r"""get_is_active(Particle self) -> bool"""
4978  return _IMP_kernel.Particle_get_is_active(self)
4979 
4980  def get_index(self):
4981  r"""get_index(Particle self) -> ParticleIndex"""
4982  return _IMP_kernel.Particle_get_index(self)
4983 
4984  def __eq__(self, *args):
4985  r"""
4986  __eq__(Particle self, Particle o) -> bool
4987  __eq__(Particle self, Decorator d) -> bool
4988  """
4989  return _IMP_kernel.Particle___eq__(self, *args)
4990 
4991  def __ne__(self, *args):
4992  r"""
4993  __ne__(Particle self, Particle o) -> bool
4994  __ne__(Particle self, Decorator d) -> bool
4995  """
4996  return _IMP_kernel.Particle___ne__(self, *args)
4997 
4998  def __le__(self, *args):
4999  r"""
5000  __le__(Particle self, Particle o) -> bool
5001  __le__(Particle self, Decorator d) -> bool
5002  """
5003  return _IMP_kernel.Particle___le__(self, *args)
5004 
5005  def __lt__(self, *args):
5006  r"""
5007  __lt__(Particle self, Particle o) -> bool
5008  __lt__(Particle self, Decorator d) -> bool
5009  """
5010  return _IMP_kernel.Particle___lt__(self, *args)
5011 
5012  def __ge__(self, *args):
5013  r"""
5014  __ge__(Particle self, Particle o) -> bool
5015  __ge__(Particle self, Decorator d) -> bool
5016  """
5017  return _IMP_kernel.Particle___ge__(self, *args)
5018 
5019  def __gt__(self, *args):
5020  r"""
5021  __gt__(Particle self, Particle o) -> bool
5022  __gt__(Particle self, Decorator d) -> bool
5023  """
5024  return _IMP_kernel.Particle___gt__(self, *args)
5025 
5026  __hash__ = ModelObject.__hash__
5027 
5028 
5029  def __str__(self):
5030  r"""__str__(Particle self) -> std::string"""
5031  return _IMP_kernel.Particle___str__(self)
5032 
5033  def __repr__(self):
5034  r"""__repr__(Particle self) -> std::string"""
5035  return _IMP_kernel.Particle___repr__(self)
5036 
5037  @staticmethod
5038  def get_from(o):
5039  return _object_cast_to_Particle(o)
5040 
5041 
5042  def _get_as_binary(self):
5043  r"""_get_as_binary(Particle self) -> PyObject *"""
5044  return _IMP_kernel.Particle__get_as_binary(self)
5045 
5046  def _set_from_binary(self, p):
5047  r"""_set_from_binary(Particle self, PyObject * p)"""
5048  return _IMP_kernel.Particle__set_from_binary(self, p)
5049 
5050  def __getstate__(self):
5051  p = self._get_as_binary()
5052  if len(self.__dict__) > 1:
5053  d = self.__dict__.copy()
5054  del d['this']
5055  p = (d, p)
5056  return p
5057 
5058  def __setstate__(self, p):
5059  if not hasattr(self, 'this'):
5060  self.__init__()
5061  if isinstance(p, tuple):
5062  d, p = p
5063  self.__dict__.update(d)
5064  return self._set_from_binary(p)
5065 
5066 
5067 # Register Particle in _IMP_kernel:
5068 _IMP_kernel.Particle_swigregister(Particle)
5069 class _ParticleAdaptor(_InputAdaptor):
5070  r"""Proxy of C++ IMP::ParticleAdaptor class."""
5071 
5072  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5073  __repr__ = _swig_repr
5074 
5075  def __init__(self, *args):
5076  r"""
5077  __init__(_ParticleAdaptor self) -> _ParticleAdaptor
5078  __init__(_ParticleAdaptor self, Particle p) -> _ParticleAdaptor
5079  __init__(_ParticleAdaptor self, Decorator d) -> _ParticleAdaptor
5080  """
5081  _IMP_kernel._ParticleAdaptor_swiginit(self, _IMP_kernel.new__ParticleAdaptor(*args))
5082 
5083  def get_model(self):
5084  r"""get_model(_ParticleAdaptor self) -> Model"""
5085  return _IMP_kernel._ParticleAdaptor_get_model(self)
5086 
5087  def get_particle_index(self):
5088  r"""get_particle_index(_ParticleAdaptor self) -> ParticleIndex"""
5089  return _IMP_kernel._ParticleAdaptor_get_particle_index(self)
5090  __swig_destroy__ = _IMP_kernel.delete__ParticleAdaptor
5091 
5092 # Register _ParticleAdaptor in _IMP_kernel:
5093 _IMP_kernel._ParticleAdaptor_swigregister(_ParticleAdaptor)
5094 class _DependencyGraphVertexIndex(object):
5095  r"""Proxy of C++ IMP::DependencyGraphVertexIndex class."""
5096 
5097  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5098  __repr__ = _swig_repr
5099 
5100  def __init__(self):
5101  r"""__init__(_DependencyGraphVertexIndex self) -> _DependencyGraphVertexIndex"""
5102  _IMP_kernel._DependencyGraphVertexIndex_swiginit(self, _IMP_kernel.new__DependencyGraphVertexIndex())
5103  __swig_destroy__ = _IMP_kernel.delete__DependencyGraphVertexIndex
5104 
5105 # Register _DependencyGraphVertexIndex in _IMP_kernel:
5106 _IMP_kernel._DependencyGraphVertexIndex_swigregister(_DependencyGraphVertexIndex)
5107 
5108 def show_as_graphviz(name, out):
5109  r"""show_as_graphviz(IMP::DependencyGraph const & name, TextOutput out)"""
5110  return _IMP_kernel.show_as_graphviz(name, out)
5111 
5112 def get_vertex_index(g):
5113  r"""get_vertex_index(IMP::DependencyGraph const & g) -> _DependencyGraphVertexIndex"""
5114  return _IMP_kernel.get_vertex_index(g)
5115 
5116 def get_dependency_graph(m):
5117  r"""get_dependency_graph(Model m) -> IMP::DependencyGraph"""
5118  return _IMP_kernel.get_dependency_graph(m)
5119 
5121  r"""get_pruned_dependency_graph(Model m) -> IMP::DependencyGraph"""
5122  return _IMP_kernel.get_pruned_dependency_graph(m)
5123 
5124 def get_dependent_particles(p, all, dg, index):
5125  r"""get_dependent_particles(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ParticlesTemp"""
5126  return _IMP_kernel.get_dependent_particles(p, all, dg, index)
5127 
5128 def get_required_score_states(*args):
5129  r"""
5130  get_required_score_states(IMP::ModelObjectsTemp const & mos, IMP::ScoreStatesTemp exclude=IMP::ScoreStatesTemp()) -> IMP::ScoreStatesTemp
5131  get_required_score_states(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ScoreStatesTemp
5132  get_required_score_states(Model m, ParticleIndex pi) -> IMP::ScoreStatesTemp
5133  """
5134  return _IMP_kernel.get_required_score_states(*args)
5135 class ScoringFunction(ModelObject):
5136  r"""Proxy of C++ IMP::ScoringFunction class."""
5137 
5138  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5139 
5140  def do_add_score_and_derivatives(self, sa, ss):
5141  r"""do_add_score_and_derivatives(ScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
5142  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives(self, sa, ss)
5143 
5144  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
5145  r"""do_add_score_and_derivatives_moved(ScoringFunction self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, IMP::ScoreStatesTemp const & ss)"""
5146  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
5147 
5148  def get_score_accumulator_if_below(self, deriv, max):
5149  r"""get_score_accumulator_if_below(ScoringFunction self, bool deriv, double max) -> ScoreAccumulator"""
5150  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_below(self, deriv, max)
5151 
5152  def get_score_accumulator_if_good(self, deriv):
5153  r"""get_score_accumulator_if_good(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
5154  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_good(self, deriv)
5155 
5156  def get_score_accumulator(self, deriv):
5157  r"""get_score_accumulator(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
5158  return _IMP_kernel.ScoringFunction_get_score_accumulator(self, deriv)
5159 
5160  def __init__(self, *args):
5161  r"""
5162  __init__(ScoringFunction self, Model m, std::string name) -> ScoringFunction
5163  __init__(ScoringFunction self) -> ScoringFunction
5164  """
5165  if self.__class__ == ScoringFunction:
5166  _self = None
5167  else:
5168  _self = self
5169  _IMP_kernel.ScoringFunction_swiginit(self, _IMP_kernel.new_ScoringFunction(_self, *args))
5170 
5171  if self.__class__ != ScoringFunction:
5172  _director_objects.register(self)
5173 
5174 
5175 
5176 
5177  def do_get_outputs(self):
5178  r"""do_get_outputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
5179  return _IMP_kernel.ScoringFunction_do_get_outputs(self)
5180 
5181  def evaluate(self, derivatives):
5182  r"""evaluate(ScoringFunction self, bool derivatives) -> double"""
5183  return _IMP_kernel.ScoringFunction_evaluate(self, derivatives)
5184 
5185  def evaluate_if_good(self, derivatives):
5186  r"""evaluate_if_good(ScoringFunction self, bool derivatives) -> double"""
5187  return _IMP_kernel.ScoringFunction_evaluate_if_good(self, derivatives)
5188 
5189  def evaluate_if_below(self, derivatives, max):
5190  r"""evaluate_if_below(ScoringFunction self, bool derivatives, double max) -> double"""
5191  return _IMP_kernel.ScoringFunction_evaluate_if_below(self, derivatives, max)
5192 
5193  def evaluate_moved(self, derivatives, moved_pis, reset_pis):
5194  r"""evaluate_moved(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5195  return _IMP_kernel.ScoringFunction_evaluate_moved(self, derivatives, moved_pis, reset_pis)
5196 
5197  def evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max):
5198  r"""evaluate_moved_if_below(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5199  return _IMP_kernel.ScoringFunction_evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max)
5200 
5201  def evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis):
5202  r"""evaluate_moved_if_good(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5203  return _IMP_kernel.ScoringFunction_evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis)
5204 
5205  def get_had_good_score(self):
5206  r"""get_had_good_score(ScoringFunction self) -> bool"""
5207  return _IMP_kernel.ScoringFunction_get_had_good_score(self)
5208 
5209  def get_last_score(self):
5210  r"""get_last_score(ScoringFunction self) -> double"""
5211  return _IMP_kernel.ScoringFunction_get_last_score(self)
5212 
5213  def create_restraints(self):
5214  r"""create_restraints(ScoringFunction self) -> IMP::Restraints"""
5215  return _IMP_kernel.ScoringFunction_create_restraints(self)
5216 
5217  def get_single_restraint(self):
5218  r"""get_single_restraint(ScoringFunction self) -> Restraint"""
5219  return _IMP_kernel.ScoringFunction_get_single_restraint(self)
5220 
5221  def __str__(self):
5222  r"""__str__(ScoringFunction self) -> std::string"""
5223  return _IMP_kernel.ScoringFunction___str__(self)
5224 
5225  def __repr__(self):
5226  r"""__repr__(ScoringFunction self) -> std::string"""
5227  return _IMP_kernel.ScoringFunction___repr__(self)
5228 
5229  @staticmethod
5230  def get_from(o):
5231  return _object_cast_to_ScoringFunction(o)
5232 
5233 
5234  def do_show(self, out):
5235  pass
5236 
5237  @staticmethod
5238  def get_from(o):
5239  return _object_cast_to_ScoringFunction(o)
5240 
5241 
5242  def _get_jax(self):
5243  r = self.get_single_restraint()
5244  if r is None:
5245  raise NotImplementedError(f"No JAX implementation for {self}")
5246  else:
5247  return r.get_derived_object()._get_jax()
5248 
5249  __swig_destroy__ = _IMP_kernel.delete_ScoringFunction
5250  def __disown__(self):
5251  self.this.disown()
5252  _IMP_kernel.disown_ScoringFunction(self)
5253  return weakref.proxy(self)
5254 
5255  def do_destroy(self):
5256  r"""do_destroy(ScoringFunction self)"""
5257  return _IMP_kernel.ScoringFunction_do_destroy(self)
5258 
5259  def handle_set_has_required_score_states(self, arg0):
5260  r"""handle_set_has_required_score_states(ScoringFunction self, bool arg0)"""
5261  return _IMP_kernel.ScoringFunction_handle_set_has_required_score_states(self, arg0)
5262 
5263  def do_get_inputs(self):
5264  r"""do_get_inputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
5265  return _IMP_kernel.ScoringFunction_do_get_inputs(self)
5266 
5267  def do_get_interactions(self):
5268  r"""do_get_interactions(ScoringFunction self) -> IMP::ModelObjectsTemps"""
5269  return _IMP_kernel.ScoringFunction_do_get_interactions(self)
5270 
5271 # Register ScoringFunction in _IMP_kernel:
5272 _IMP_kernel.ScoringFunction_swigregister(ScoringFunction)
5273 
5274 def create_decomposition(*args):
5275  r"""
5276  create_decomposition(IMP::RestraintsTemp const & rs) -> IMP::Restraints
5277  create_decomposition(ScoringFunction sf) -> IMP::ScoringFunctions
5278  """
5279  return _IMP_kernel.create_decomposition(*args)
5280 class _ScoringFunctionAdaptor(_InputAdaptor):
5281  r"""Proxy of C++ IMP::ScoringFunctionAdaptor class."""
5282 
5283  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5284  __repr__ = _swig_repr
5285 
5286  def __init__(self, *args):
5287  r"""
5288  __init__(_ScoringFunctionAdaptor self) -> _ScoringFunctionAdaptor
5289  __init__(_ScoringFunctionAdaptor self, ScoringFunction sf) -> _ScoringFunctionAdaptor
5290  __init__(_ScoringFunctionAdaptor self, IMP::RestraintsTemp const & sf) -> _ScoringFunctionAdaptor
5291  __init__(_ScoringFunctionAdaptor self, IMP::Restraints const & sf) -> _ScoringFunctionAdaptor
5292  __init__(_ScoringFunctionAdaptor self, Restraint sf) -> _ScoringFunctionAdaptor
5293  """
5294  _IMP_kernel._ScoringFunctionAdaptor_swiginit(self, _IMP_kernel.new__ScoringFunctionAdaptor(*args))
5295  __swig_destroy__ = _IMP_kernel.delete__ScoringFunctionAdaptor
5296 
5297 # Register _ScoringFunctionAdaptor in _IMP_kernel:
5298 _IMP_kernel._ScoringFunctionAdaptor_swigregister(_ScoringFunctionAdaptor)
5299 
5300 def show_restraint_hierarchy(*args):
5301  r"""show_restraint_hierarchy(_ScoringFunctionAdaptor rs, _ostream out=std::cout)"""
5302  return _IMP_kernel.show_restraint_hierarchy(*args)
5303 class Undecorator(Object):
5304  r"""Proxy of C++ IMP::Undecorator class."""
5305 
5306  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5307 
5308  def __init__(self, m, name):
5309  r"""__init__(Undecorator self, Model m, std::string name) -> Undecorator"""
5310  if self.__class__ == Undecorator:
5311  _self = None
5312  else:
5313  _self = self
5314  _IMP_kernel.Undecorator_swiginit(self, _IMP_kernel.new_Undecorator(_self, m, name))
5315 
5316  if self.__class__ != Undecorator:
5317  _director_objects.register(self)
5318 
5319 
5320 
5321 
5322  def teardown(self, pi):
5323  r"""teardown(Undecorator self, ParticleIndex pi)"""
5324  return _IMP_kernel.Undecorator_teardown(self, pi)
5325 
5326  def __str__(self):
5327  r"""__str__(Undecorator self) -> std::string"""
5328  return _IMP_kernel.Undecorator___str__(self)
5329 
5330  def __repr__(self):
5331  r"""__repr__(Undecorator self) -> std::string"""
5332  return _IMP_kernel.Undecorator___repr__(self)
5333 
5334  @staticmethod
5335  def get_from(o):
5336  return _object_cast_to_Undecorator(o)
5337 
5338 
5339  def do_show(self, out):
5340  pass
5341 
5342  @staticmethod
5343  def get_from(o):
5344  return _object_cast_to_Undecorator(o)
5345 
5346  __swig_destroy__ = _IMP_kernel.delete_Undecorator
5347  def __disown__(self):
5348  self.this.disown()
5349  _IMP_kernel.disown_Undecorator(self)
5350  return weakref.proxy(self)
5351 
5352  def do_destroy(self):
5353  r"""do_destroy(Undecorator self)"""
5354  return _IMP_kernel.Undecorator_do_destroy(self)
5355 
5356 # Register Undecorator in _IMP_kernel:
5357 _IMP_kernel.Undecorator_swigregister(Undecorator)
5358 class Model(Object):
5359  r"""Proxy of C++ IMP::Model class."""
5360 
5361  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5362 
5363  def __init__(self, *args):
5364  r"""__init__(Model self, std::string name="Model %1%") -> Model"""
5365  _IMP_kernel.Model_swiginit(self, _IMP_kernel.new_Model(*args))
5366 
5367  if self not in _models_set:
5368  _models_set.add(self)
5369 
5370 
5371 
5372 
5373  def clear_particle_caches(self, pi):
5374  r"""clear_particle_caches(Model self, ParticleIndex pi)"""
5375  return _IMP_kernel.Model_clear_particle_caches(self, pi)
5376 
5377  def add_particle(self, name):
5378  r"""add_particle(Model self, std::string name) -> ParticleIndex"""
5379  return _IMP_kernel.Model_add_particle(self, name)
5380 
5381  def get_particle_name(self, pi):
5382  r"""get_particle_name(Model self, ParticleIndex pi) -> std::string"""
5383  return _IMP_kernel.Model_get_particle_name(self, pi)
5384 
5385  def add_undecorator(self, pi, d):
5386  r"""add_undecorator(Model self, ParticleIndex pi, Undecorator d)"""
5387  return _IMP_kernel.Model_add_undecorator(self, pi, d)
5388 
5389  def get_dependent_restraints_uncached(self, pi):
5390  r"""get_dependent_restraints_uncached(Model self, ParticleIndex pi) -> IMP::RestraintsTemp"""
5391  return _IMP_kernel.Model_get_dependent_restraints_uncached(self, pi)
5392 
5393  def get_dependent_particles_uncached(self, pi):
5394  r"""get_dependent_particles_uncached(Model self, ParticleIndex pi) -> IMP::ParticlesTemp"""
5395  return _IMP_kernel.Model_get_dependent_particles_uncached(self, pi)
5396 
5397  def get_dependent_score_states_uncached(self, pi):
5398  r"""get_dependent_score_states_uncached(Model self, ParticleIndex pi) -> IMP::ScoreStatesTemp"""
5399  return _IMP_kernel.Model_get_dependent_score_states_uncached(self, pi)
5400  def __get_score_states(self): return _list_util.VarList(getdimfunc=self.get_number_of_score_states, getfunc=self.get_score_state, erasefunc=self.erase_score_state, appendfunc=self.add_score_state, extendfunc=self.add_score_states, clearfunc=self.clear_score_states, indexfunc=self._python_index_score_state)
5401  def __set_score_states(self, obj): _list_util.set_varlist(self.score_states, obj)
5402  def __del_score_states(self): _list_util.del_varlist(self.score_states)
5403  score_states = property(__get_score_states, __set_score_states, __del_score_states, doc="List of ##ucnames")
5404 
5405  def remove_score_state(self, d):
5406  r"""remove_score_state(Model self, ScoreState d)"""
5407  return _IMP_kernel.Model_remove_score_state(self, d)
5408 
5409  def _python_index_score_state(self, d, start, stop):
5410  r"""_python_index_score_state(Model self, ScoreState d, unsigned int start, unsigned int stop) -> unsigned int"""
5411  return _IMP_kernel.Model__python_index_score_state(self, d, start, stop)
5412 
5413  def remove_score_states(self, d):
5414  r"""remove_score_states(Model self, IMP::ScoreStates const & d)"""
5415  return _IMP_kernel.Model_remove_score_states(self, d)
5416 
5417  def set_score_states(self, ps):
5418  r"""set_score_states(Model self, IMP::ScoreStates const & ps)"""
5419  return _IMP_kernel.Model_set_score_states(self, ps)
5420 
5421  def set_score_states_order(self, objs):
5422  r"""set_score_states_order(Model self, IMP::ScoreStates const & objs)"""
5423  return _IMP_kernel.Model_set_score_states_order(self, objs)
5424 
5425  def add_score_state(self, obj):
5426  r"""add_score_state(Model self, ScoreState obj) -> unsigned int"""
5427  return _IMP_kernel.Model_add_score_state(self, obj)
5428 
5429  def add_score_states(self, objs):
5430  r"""add_score_states(Model self, IMP::ScoreStates const & objs)"""
5431  return _IMP_kernel.Model_add_score_states(self, objs)
5432 
5433  def clear_score_states(self):
5434  r"""clear_score_states(Model self)"""
5435  return _IMP_kernel.Model_clear_score_states(self)
5436 
5437  def get_number_of_score_states(self):
5438  r"""get_number_of_score_states(Model self) -> unsigned int"""
5439  return _IMP_kernel.Model_get_number_of_score_states(self)
5440 
5441  def get_has_score_states(self):
5442  r"""get_has_score_states(Model self) -> bool"""
5443  return _IMP_kernel.Model_get_has_score_states(self)
5444 
5445  def get_score_state(self, i):
5446  r"""get_score_state(Model self, unsigned int i) -> ScoreState"""
5447  return _IMP_kernel.Model_get_score_state(self, i)
5448 
5449  def get_score_states(self):
5450  r"""get_score_states(Model self) -> IMP::ScoreStates"""
5451  return _IMP_kernel.Model_get_score_states(self)
5452 
5453  def erase_score_state(self, i):
5454  r"""erase_score_state(Model self, unsigned int i)"""
5455  return _IMP_kernel.Model_erase_score_state(self, i)
5456 
5457  def reserve_score_states(self, sz):
5458  r"""reserve_score_states(Model self, unsigned int sz)"""
5459  return _IMP_kernel.Model_reserve_score_states(self, sz)
5460 
5461  def update(self):
5462  r"""update(Model self)"""
5463  return _IMP_kernel.Model_update(self)
5464 
5465  def get_ordered_score_states(self):
5466  r"""get_ordered_score_states(Model self) -> IMP::ScoreStatesTemp"""
5467  return _IMP_kernel.Model_get_ordered_score_states(self)
5468 
5469  def add_cache_attribute(self, *args):
5470  r"""
5471  add_cache_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
5472  add_cache_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
5473  add_cache_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
5474  add_cache_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, IMP::algebra::Vector3D value)
5475  add_cache_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
5476  add_cache_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
5477  add_cache_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
5478  add_cache_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
5479  add_cache_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
5480  add_cache_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
5481  """
5482  return _IMP_kernel.Model_add_cache_attribute(self, *args)
5483 
5484  def add_attribute(self, *args):
5485  r"""
5486  add_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
5487  add_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
5488  add_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
5489  add_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, IMP::algebra::Vector3D value)
5490  add_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
5491  add_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
5492  add_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
5493  add_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
5494  add_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
5495  add_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
5496  add_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
5497  add_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
5498  add_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
5499  add_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
5500  """
5501  return _IMP_kernel.Model_add_attribute(self, *args)
5502 
5503  def remove_attribute(self, *args):
5504  r"""
5505  remove_attribute(Model self, FloatKey attribute_key, ParticleIndex particle)
5506  remove_attribute(Model self, IntKey attribute_key, ParticleIndex particle)
5507  remove_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle)
5508  remove_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle)
5509  remove_attribute(Model self, IntsKey attribute_key, ParticleIndex particle)
5510  remove_attribute(Model self, StringKey attribute_key, ParticleIndex particle)
5511  remove_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle)
5512  remove_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle)
5513  remove_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle)
5514  remove_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle)
5515  remove_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle)
5516  remove_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle)
5517  remove_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle)
5518  remove_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle)
5519  """
5520  return _IMP_kernel.Model_remove_attribute(self, *args)
5521 
5522  def get_has_attribute(self, *args):
5523  r"""
5524  get_has_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> bool
5525  get_has_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> bool
5526  get_has_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> bool
5527  get_has_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> bool
5528  get_has_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> bool
5529  get_has_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> bool
5530  get_has_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> bool
5531  get_has_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> bool
5532  get_has_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> bool
5533  get_has_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> bool
5534  get_has_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> bool
5535  get_has_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> bool
5536  get_has_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> bool
5537  get_has_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> bool
5538  """
5539  return _IMP_kernel.Model_get_has_attribute(self, *args)
5540 
5541  def set_attribute(self, *args):
5542  r"""
5543  set_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
5544  set_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
5545  set_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
5546  set_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, IMP::algebra::Vector3D value)
5547  set_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
5548  set_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
5549  set_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
5550  set_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
5551  set_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
5552  set_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
5553  set_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
5554  set_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
5555  set_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
5556  set_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
5557  """
5558  return _IMP_kernel.Model_set_attribute(self, *args)
5559 
5560  def get_attribute(self, *args):
5561  r"""
5562  get_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> IMP::Float
5563  get_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> IMP::Int
5564  get_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> IMP::Floats
5565  get_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> IMP::algebra::Vector3D
5566  get_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> IMP::Ints
5567  get_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> IMP::String
5568  get_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> IMP::ParticleIndexes
5569  get_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
5570  get_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> Object
5571  get_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> Object
5572  get_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> IMP::String
5573  get_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> IMP::Int
5574  get_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> IMP::Float
5575  get_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
5576  """
5577  return _IMP_kernel.Model_get_attribute(self, *args)
5578 
5579  def set_is_optimized(self, arg2, arg3, arg4):
5580  r"""set_is_optimized(Model self, FloatKey arg2, ParticleIndex arg3, bool arg4)"""
5581  return _IMP_kernel.Model_set_is_optimized(self, arg2, arg3, arg4)
5582 
5583  def add_to_derivative(self, k, particle, v, da):
5584  r"""add_to_derivative(Model self, FloatKey k, ParticleIndex particle, double v, DerivativeAccumulator da)"""
5585  return _IMP_kernel.Model_add_to_derivative(self, k, particle, v, da)
5586 
5587  def get_particle(self, p):
5588  r"""get_particle(Model self, ParticleIndex p) -> Particle"""
5589  return _IMP_kernel.Model_get_particle(self, p)
5590 
5591  def get_has_particle(self, p):
5592  r"""get_has_particle(Model self, ParticleIndex p) -> bool"""
5593  return _IMP_kernel.Model_get_has_particle(self, p)
5594 
5595  def get_particle_indexes(self):
5596  r"""get_particle_indexes(Model self) -> IMP::ParticleIndexes"""
5597  return _IMP_kernel.Model_get_particle_indexes(self)
5598 
5599  def get_model_objects(self):
5600  r"""get_model_objects(Model self) -> IMP::ModelObjectsTemp"""
5601  return _IMP_kernel.Model_get_model_objects(self)
5602 
5603  def remove_particle(self, pi):
5604  r"""remove_particle(Model self, ParticleIndex pi)"""
5605  return _IMP_kernel.Model_remove_particle(self, pi)
5606 
5607  def add_data(self, mk, o):
5608  r"""add_data(Model self, ModelKey mk, Object o)"""
5609  return _IMP_kernel.Model_add_data(self, mk, o)
5610 
5611  def get_data(self, mk):
5612  r"""get_data(Model self, ModelKey mk) -> Object"""
5613  return _IMP_kernel.Model_get_data(self, mk)
5614 
5615  def remove_data(self, mk):
5616  r"""remove_data(Model self, ModelKey mk)"""
5617  return _IMP_kernel.Model_remove_data(self, mk)
5618 
5619  def get_has_data(self, mk):
5620  r"""get_has_data(Model self, ModelKey mk) -> bool"""
5621  return _IMP_kernel.Model_get_has_data(self, mk)
5622 
5623  def get_age(self):
5624  r"""get_age(Model self) -> unsigned int"""
5625  return _IMP_kernel.Model_get_age(self)
5626 
5627  def get_trigger_last_updated(self, tk):
5628  r"""get_trigger_last_updated(Model self, TriggerKey tk) -> unsigned int"""
5629  return _IMP_kernel.Model_get_trigger_last_updated(self, tk)
5630 
5631  def set_trigger_updated(self, tk):
5632  r"""set_trigger_updated(Model self, TriggerKey tk)"""
5633  return _IMP_kernel.Model_set_trigger_updated(self, tk)
5634 
5635  def get_dependencies_updated(self):
5636  r"""get_dependencies_updated(Model self) -> unsigned int"""
5637  return _IMP_kernel.Model_get_dependencies_updated(self)
5638 
5639  def get_removed_particles_attributes_age(self):
5640  r"""get_removed_particles_attributes_age(Model self) -> unsigned int"""
5641  return _IMP_kernel.Model_get_removed_particles_attributes_age(self)
5642 
5643  def save_dependencies(self):
5644  r"""save_dependencies(Model self)"""
5645  return _IMP_kernel.Model_save_dependencies(self)
5646 
5647  def restore_dependencies(self):
5648  r"""restore_dependencies(Model self)"""
5649  return _IMP_kernel.Model_restore_dependencies(self)
5650 
5651  def get_particles_size(self):
5652  r"""get_particles_size(Model self) -> unsigned int"""
5653  return _IMP_kernel.Model_get_particles_size(self)
5654 
5655  def get_unique_id(self):
5656  r"""get_unique_id(Model self) -> uint32_t"""
5657  return _IMP_kernel.Model_get_unique_id(self)
5658 
5659  @staticmethod
5660  def get_by_unique_id(id):
5661  r"""get_by_unique_id(uint32_t id) -> Model"""
5662  return _IMP_kernel.Model_get_by_unique_id(id)
5663 
5664  def get_version_info(self):
5665  r"""get_version_info(Model self) -> VersionInfo"""
5666  return _IMP_kernel.Model_get_version_info(self)
5667  __swig_destroy__ = _IMP_kernel.delete_Model
5668  def __del__(self):
5669  r"""__del__(Model self)"""
5670 
5671  _director_objects.cleanup()
5672 
5673 
5674  pass
5675 
5676 
5677  def do_destroy(self):
5678  r"""do_destroy(Model self)"""
5679  return _IMP_kernel.Model_do_destroy(self)
5680 
5681  def __str__(self):
5682  r"""__str__(Model self) -> std::string"""
5683  return _IMP_kernel.Model___str__(self)
5684 
5685  def __repr__(self):
5686  r"""__repr__(Model self) -> std::string"""
5687  return _IMP_kernel.Model___repr__(self)
5688 
5689  @staticmethod
5690  def get_from(o):
5691  return _object_cast_to_Model(o)
5692 
5693 
5694  def _get_as_binary(self):
5695  r"""_get_as_binary(Model self) -> PyObject *"""
5696  return _IMP_kernel.Model__get_as_binary(self)
5697 
5698  def _set_from_binary(self, p):
5699  r"""_set_from_binary(Model self, PyObject * p)"""
5700  return _IMP_kernel.Model__set_from_binary(self, p)
5701 
5702  def __getstate__(self):
5703  p = self._get_as_binary()
5704  if len(self.__dict__) > 1:
5705  d = self.__dict__.copy()
5706  del d['this']
5707  p = (d, p)
5708  return p
5709 
5710  def __setstate__(self, p):
5711  if not hasattr(self, 'this'):
5712  self.__init__()
5713  if isinstance(p, tuple):
5714  d, p = p
5715  self.__dict__.update(d)
5716  return self._set_from_binary(p)
5717 
5718 
5719  def get_ints_numpy(self, k, read_only=False):
5720  """Get the model's attribute array for IntKey k as a NumPy array.
5721  The array is indexed by ParticleIndex; particles that don't have
5722  this attribute will either be off the end of the array or will have
5723  the value INT_MAX.
5724  This is a NumPy view that shares memory with the Model. Thus,
5725  any changes to values in this list will be reflected in the Model.
5726  Also, if the Model attribute array moves in memory (e.g. if particles
5727  or attributes are added) this array will be invalidated, so it is
5728  unsafe to keep it around long term.
5729  If read_only is set True, values in the array cannot be changed.
5730  """
5731  return _get_ints_numpy(self, k, self, read_only)
5732 
5733  def get_numpy(self, k, read_only=False):
5734  """Get the model's attribute array for any type of Key
5735  k as a NumPy array. See Model::get_ints_numpy() for more details."""
5736  _numpy_meth_map = {IntKey: _get_ints_numpy,
5737  FloatKey: _get_floats_numpy,
5738  Vector3DKey: _get_vector3ds_numpy}
5739  return _numpy_meth_map[type(k)](self, k, self, read_only)
5740 
5741  def get_floats_numpy(self, k, read_only=False):
5742  """Get the model's attribute array for FloatKey k as a NumPy array.
5743  See Model::get_ints_numpy() for more details."""
5744  return _get_floats_numpy(self, k, self, read_only)
5745 
5746  def get_derivatives_numpy(self, k, read_only=False):
5747  """Get the model's attribute derivatives array for FloatKey k
5748  as a NumPy array. See Model::get_ints_numpy() for more details."""
5749  return _get_derivatives_numpy(self, k, self, read_only)
5750 
5751  def get_vector3ds_numpy(self, k, read_only=False):
5752  """Get the model's attribute array for Vector3DKey k as a NumPy array.
5753  See Model::get_ints_numpy() for more details."""
5754  return _get_vector3ds_numpy(self, k, self, read_only)
5755 
5756  def get_spheres_numpy(self, read_only=False):
5757  """Get the model's XYZR attribute arrays as NumPy arrays.
5758  The attribute arrays for Cartesian coordinates and radii are
5759  stored separately from those for other FloatKeys. This function
5760  returns a tuple of two NumPy arrays, the first of coordinates and
5761  the second of radii. See Model::get_ints_numpy() for more details."""
5762  return _get_spheres_numpy(self, self, read_only)
5763 
5764  def get_sphere_derivatives_numpy(self, read_only=False):
5765  """Get the model's XYZR attribute derivatives arrays as NumPy arrays.
5766  See Model::get_ints_numpy() for more details."""
5767  return _get_sphere_derivatives_numpy(self, self, read_only)
5768 
5769  def get_internal_coordinates_numpy(self, read_only=False):
5770  """Get the model's internal coordinate array as a NumPy array.
5771  The attribute arrays for rigid body internal coordinates are
5772  stored separately from those for other FloatKeys.
5773  See Model::get_ints_numpy() for more details."""
5774  return _get_internal_coordinates_numpy(self, self, read_only)
5775 
5776  def get_internal_coordinate_derivatives_numpy(self, read_only=False):
5777  """Get the model's internal coordinate derivative array as a
5778  NumPy array.
5779  See Model::get_ints_numpy() for more details."""
5780  return _get_internal_coordinate_derivatives_numpy(
5781  self, self, read_only)
5782 
5783 
5784 # Register Model in _IMP_kernel:
5785 _IMP_kernel.Model_swigregister(Model)
5786 class Decorator(_Value):
5787  r"""Proxy of C++ IMP::Decorator class."""
5788 
5789  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5790  __repr__ = _swig_repr
5791 
5792  def __init__(self, p):
5793  r"""__init__(Decorator self, _ParticleAdaptor p) -> Decorator"""
5794  _IMP_kernel.Decorator_swiginit(self, _IMP_kernel.new_Decorator(p))
5795 
5796  def __ne__(self, o):
5797  r"""__ne__(Decorator self, Object o) -> bool"""
5798  return _IMP_kernel.Decorator___ne__(self, o)
5799 
5800  def __lt__(self, o):
5801  r"""__lt__(Decorator self, Object o) -> bool"""
5802  return _IMP_kernel.Decorator___lt__(self, o)
5803 
5804  def __gt__(self, o):
5805  r"""__gt__(Decorator self, Object o) -> bool"""
5806  return _IMP_kernel.Decorator___gt__(self, o)
5807 
5808  def __ge__(self, o):
5809  r"""__ge__(Decorator self, Object o) -> bool"""
5810  return _IMP_kernel.Decorator___ge__(self, o)
5811 
5812  def __le__(self, o):
5813  r"""__le__(Decorator self, Object o) -> bool"""
5814  return _IMP_kernel.Decorator___le__(self, o)
5815 
5816  def get_particle(self):
5817  r"""get_particle(Decorator self) -> Particle"""
5818  return _IMP_kernel.Decorator_get_particle(self)
5819 
5820  def get_particle_index(self):
5821  r"""get_particle_index(Decorator self) -> ParticleIndex"""
5822  return _IMP_kernel.Decorator_get_particle_index(self)
5823 
5824  def get_model(self):
5825  m = _IMP_kernel.Decorator_get_model(self)
5826  if m in _models_set:
5827  m = _models_set_get(m)
5828  return m
5829 
5830 
5831 
5832  def get_is_valid(self):
5833  r"""get_is_valid(Decorator self) -> bool"""
5834  return _IMP_kernel.Decorator_get_is_valid(self)
5835 
5836  def __hash__(self):
5837  r"""__hash__(Decorator self) -> std::size_t"""
5838  return _IMP_kernel.Decorator___hash__(self)
5839 
5840  def __eq__(self, *args):
5841  r"""
5842  __eq__(Decorator self, Object o) -> bool
5843  __eq__(Decorator self, Decorator o) -> bool
5844  __eq__(Decorator self, Particle o) -> bool
5845  """
5846  return _IMP_kernel.Decorator___eq__(self, *args)
5847 
5848  def __bool__(self):
5849  r"""__bool__(Decorator self) -> bool"""
5850  return _IMP_kernel.Decorator___bool__(self)
5851  __swig_destroy__ = _IMP_kernel.delete_Decorator
5852 
5853 # Register Decorator in _IMP_kernel:
5854 _IMP_kernel.Decorator_swigregister(Decorator)
5855 
5856 def check_particle(m, pi):
5857  r"""check_particle(Model m, ParticleIndex pi)"""
5858  return _IMP_kernel.check_particle(m, pi)
5859 class UnaryFunction(Object):
5860  r"""Proxy of C++ IMP::UnaryFunction class."""
5861 
5862  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5863 
5864  def __init__(self, *args):
5865  r"""__init__(UnaryFunction self, std::string name="UnaryFunction%1%") -> UnaryFunction"""
5866  if self.__class__ == UnaryFunction:
5867  _self = None
5868  else:
5869  _self = self
5870  _IMP_kernel.UnaryFunction_swiginit(self, _IMP_kernel.new_UnaryFunction(_self, *args))
5871 
5872  if self.__class__ != UnaryFunction:
5873  _director_objects.register(self)
5874 
5875 
5876 
5877 
5878  def evaluate(self, feature):
5879  r"""evaluate(UnaryFunction self, double feature) -> double"""
5880  return _IMP_kernel.UnaryFunction_evaluate(self, feature)
5881 
5882  def evaluate_with_derivative(self, feature):
5883  r"""evaluate_with_derivative(UnaryFunction self, double feature) -> IMP::DerivativePair"""
5884  return _IMP_kernel.UnaryFunction_evaluate_with_derivative(self, feature)
5885  __swig_destroy__ = _IMP_kernel.delete_UnaryFunction
5886 
5887  def __str__(self):
5888  r"""__str__(UnaryFunction self) -> std::string"""
5889  return _IMP_kernel.UnaryFunction___str__(self)
5890 
5891  def __repr__(self):
5892  r"""__repr__(UnaryFunction self) -> std::string"""
5893  return _IMP_kernel.UnaryFunction___repr__(self)
5894 
5895  @staticmethod
5896  def get_from(o):
5897  return _object_cast_to_UnaryFunction(o)
5898 
5899 
5900  def do_show(self, out):
5901  pass
5902 
5903  @staticmethod
5904  def get_from(o):
5905  return _object_cast_to_UnaryFunction(o)
5906 
5907 
5908  def _get_jax(self):
5909  """Return a JAX implementation of this UnaryFunction.
5910  Implement this method in a UnaryFunction subclass to provide
5911  an equivalent function using [JAX](https://docs.jax.dev/)
5912  that scores the provided feature value.
5913  """
5914  raise NotImplementedError(f"No JAX implementation for {self}")
5915 
5916  def __disown__(self):
5917  self.this.disown()
5918  _IMP_kernel.disown_UnaryFunction(self)
5919  return weakref.proxy(self)
5920 
5921  def do_destroy(self):
5922  r"""do_destroy(UnaryFunction self)"""
5923  return _IMP_kernel.UnaryFunction_do_destroy(self)
5924 
5925 # Register UnaryFunction in _IMP_kernel:
5926 _IMP_kernel.UnaryFunction_swigregister(UnaryFunction)
5928  r"""Proxy of C++ IMP::OptimizerState class."""
5929 
5930  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5931 
5932  def __init__(self, *args):
5933  r"""
5934  __init__(OptimizerState self, Model m, std::string name) -> OptimizerState
5935  __init__(OptimizerState self) -> OptimizerState
5936  """
5937  if self.__class__ == OptimizerState:
5938  _self = None
5939  else:
5940  _self = self
5941  _IMP_kernel.OptimizerState_swiginit(self, _IMP_kernel.new_OptimizerState(_self, *args))
5942 
5943  if self.__class__ != OptimizerState:
5944  _director_objects.register(self)
5945 
5946 
5947 
5948 
5949  def update(self):
5950  r"""update(OptimizerState self)"""
5951  return _IMP_kernel.OptimizerState_update(self)
5952 
5953  def set_is_optimizing(self, arg0):
5954  r"""set_is_optimizing(OptimizerState self, bool arg0)"""
5955  return _IMP_kernel.OptimizerState_set_is_optimizing(self, arg0)
5956 
5957  def get_optimizer(self):
5958  r"""get_optimizer(OptimizerState self) -> Optimizer"""
5959  return _IMP_kernel.OptimizerState_get_optimizer(self)
5960 
5961  def set_period(self, p):
5962  r"""set_period(OptimizerState self, unsigned int p)"""
5963  return _IMP_kernel.OptimizerState_set_period(self, p)
5964 
5965  def get_period(self):
5966  r"""get_period(OptimizerState self) -> unsigned int"""
5967  return _IMP_kernel.OptimizerState_get_period(self)
5968 
5969  def reset(self):
5970  r"""reset(OptimizerState self)"""
5971  return _IMP_kernel.OptimizerState_reset(self)
5972 
5973  def update_always(self):
5974  r"""update_always(OptimizerState self)"""
5975  return _IMP_kernel.OptimizerState_update_always(self)
5976 
5977  def get_number_of_updates(self):
5978  r"""get_number_of_updates(OptimizerState self) -> unsigned int"""
5979  return _IMP_kernel.OptimizerState_get_number_of_updates(self)
5980 
5981  def set_number_of_updates(self, n):
5982  r"""set_number_of_updates(OptimizerState self, unsigned int n)"""
5983  return _IMP_kernel.OptimizerState_set_number_of_updates(self, n)
5984  __swig_destroy__ = _IMP_kernel.delete_OptimizerState
5985 
5986  def do_update(self, arg0):
5987  r"""do_update(OptimizerState self, unsigned int arg0)"""
5988  return _IMP_kernel.OptimizerState_do_update(self, arg0)
5989 
5990  def do_set_is_optimizing(self, arg0):
5991  r"""do_set_is_optimizing(OptimizerState self, bool arg0)"""
5992  return _IMP_kernel.OptimizerState_do_set_is_optimizing(self, arg0)
5993 
5994  def do_get_inputs(self):
5995  r"""do_get_inputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
5996  return _IMP_kernel.OptimizerState_do_get_inputs(self)
5997 
5998  def do_get_outputs(self):
5999  r"""do_get_outputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
6000  return _IMP_kernel.OptimizerState_do_get_outputs(self)
6001 
6002  def __str__(self):
6003  r"""__str__(OptimizerState self) -> std::string"""
6004  return _IMP_kernel.OptimizerState___str__(self)
6005 
6006  def __repr__(self):
6007  r"""__repr__(OptimizerState self) -> std::string"""
6008  return _IMP_kernel.OptimizerState___repr__(self)
6009 
6010  @staticmethod
6011  def get_from(o):
6012  return _object_cast_to_OptimizerState(o)
6013 
6014 
6015  def do_show(self, out):
6016  pass
6017 
6018  @staticmethod
6019  def get_from(o):
6020  return _object_cast_to_OptimizerState(o)
6021 
6022 
6023  def _get_jax(self, state_index):
6024  """Add JAX support for this OptimizerState.
6025 
6026  Each OptimizerState must explicitly support how it is going to
6027  be called when the Optimizer is run via JAX.
6028 
6029  OptimizerStates can run as traditional IMP CPU code
6030  on the IMP Model object, in which case None should be returned here.
6031  The Optimizer will sync any necessary information from JAX back
6032  with the IMP Model before calling the OptimizerState. However,
6033  the OptimizerState is not permitted to modify the Model; any
6034  changes will not be propagated back to the Optimizer.
6035  (For example, a thermostat which tries to change particle
6036  velocities will not function correctly.)
6037 
6038  Alternatively, a pure JAX implementation can be provided.
6039  See _wrap_jax for more information.
6040  """
6041  raise NotImplementedError(f"No JAX implementation for {self}")
6042 
6043  def _wrap_jax(self, init_func, apply_func):
6044  """Create the return value for _get_jax.
6045  Use this method in _get_jax() to wrap the JAX function
6046  with other OptimizerState-specific information.
6047 
6048  @param init_func a JAX function which, given a JAX Optimizer,
6049  does any necessary setup and returns a (possibly modified)
6050  JAX Optimizer. If any OptimizerState-specific
6051  persistent state is needed, it can be stored in
6052  `opt.optimizer_states[state_index]` and later retrieved or
6053  modified in apply_func.
6054  @param apply_func a JAX function which, given a JAX Optimizer,
6055  does the JAX equivalent of do_update() and returns a new
6056  JAX Optimizer.
6057  """
6058  from IMP._jax_util import JAXOptimizerStateInfo
6059  return JAXOptimizerStateInfo(self, init_func, apply_func)
6060 
6061  def __disown__(self):
6062  self.this.disown()
6063  _IMP_kernel.disown_OptimizerState(self)
6064  return weakref.proxy(self)
6065 
6066  def do_destroy(self):
6067  r"""do_destroy(OptimizerState self)"""
6068  return _IMP_kernel.OptimizerState_do_destroy(self)
6069 
6070  def handle_set_has_required_score_states(self, arg0):
6071  r"""handle_set_has_required_score_states(OptimizerState self, bool arg0)"""
6072  return _IMP_kernel.OptimizerState_handle_set_has_required_score_states(self, arg0)
6073 
6074  def do_get_interactions(self):
6075  r"""do_get_interactions(OptimizerState self) -> IMP::ModelObjectsTemps"""
6076  return _IMP_kernel.OptimizerState_do_get_interactions(self)
6077 
6078 # Register OptimizerState in _IMP_kernel:
6079 _IMP_kernel.OptimizerState_swigregister(OptimizerState)
6080 class Refiner(_ParticleInputs, Object):
6081  r"""Proxy of C++ IMP::Refiner class."""
6082 
6083  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6084 
6085  def __init__(self, *args):
6086  r"""__init__(Refiner self, std::string name="Refiner %1%", bool is_by_ref=False) -> Refiner"""
6087  if self.__class__ == Refiner:
6088  _self = None
6089  else:
6090  _self = self
6091  _IMP_kernel.Refiner_swiginit(self, _IMP_kernel.new_Refiner(_self, *args))
6092 
6093  if self.__class__ != Refiner:
6094  _director_objects.register(self)
6095 
6096 
6097 
6098 
6099  def get_can_refine(self, arg0):
6100  r"""get_can_refine(Refiner self, Particle arg0) -> bool"""
6101  return _IMP_kernel.Refiner_get_can_refine(self, arg0)
6102 
6103  def get_refined_indexes(self, m, pi):
6104  r"""get_refined_indexes(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes"""
6105  return _IMP_kernel.Refiner_get_refined_indexes(self, m, pi)
6106 
6107  def get_refined_indexes_by_ref(self, m, pi):
6108  r"""get_refined_indexes_by_ref(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes const &"""
6109  return _IMP_kernel.Refiner_get_refined_indexes_by_ref(self, m, pi)
6110 
6111  def get_is_by_ref_supported(self):
6112  r"""get_is_by_ref_supported(Refiner self) -> bool"""
6113  return _IMP_kernel.Refiner_get_is_by_ref_supported(self)
6114 
6115  def get_refined(self, *args):
6116  r"""
6117  get_refined(Refiner self, Particle a) -> IMP::ParticlesTemp const
6118  get_refined(Refiner self, Particle a, unsigned int i) -> Particle
6119  """
6120  return _IMP_kernel.Refiner_get_refined(self, *args)
6121 
6122  def get_number_of_refined(self, a):
6123  r"""get_number_of_refined(Refiner self, Particle a) -> unsigned int"""
6124  return _IMP_kernel.Refiner_get_number_of_refined(self, a)
6125 
6126  def __str__(self):
6127  r"""__str__(Refiner self) -> std::string"""
6128  return _IMP_kernel.Refiner___str__(self)
6129 
6130  def __repr__(self):
6131  r"""__repr__(Refiner self) -> std::string"""
6132  return _IMP_kernel.Refiner___repr__(self)
6133 
6134  @staticmethod
6135  def get_from(o):
6136  return _object_cast_to_Refiner(o)
6137 
6138 
6139  def do_show(self, out):
6140  pass
6141 
6142  @staticmethod
6143  def get_from(o):
6144  return _object_cast_to_Refiner(o)
6145 
6146  __swig_destroy__ = _IMP_kernel.delete_Refiner
6147  def __disown__(self):
6148  self.this.disown()
6149  _IMP_kernel.disown_Refiner(self)
6150  return weakref.proxy(self)
6151 
6152  def do_get_inputs(self, m, pis):
6153  r"""do_get_inputs(Refiner self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6154  return _IMP_kernel.Refiner_do_get_inputs(self, m, pis)
6155 
6156  def do_destroy(self):
6157  r"""do_destroy(Refiner self)"""
6158  return _IMP_kernel.Refiner_do_destroy(self)
6159 
6160 # Register Refiner in _IMP_kernel:
6161 _IMP_kernel.Refiner_swigregister(Refiner)
6162 class Optimizer(ModelObject):
6163  r"""Proxy of C++ IMP::Optimizer class."""
6164 
6165  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6166 
6167  def set_is_optimizing_states(self, tf):
6168  r"""set_is_optimizing_states(Optimizer self, bool tf)"""
6169  return _IMP_kernel.Optimizer_set_is_optimizing_states(self, tf)
6170 
6171  def get_optimizer_state_inputs(self):
6172  r"""get_optimizer_state_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
6173  return _IMP_kernel.Optimizer_get_optimizer_state_inputs(self)
6174 
6175  def do_get_inputs(self):
6176  r"""do_get_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
6177  return _IMP_kernel.Optimizer_do_get_inputs(self)
6178 
6179  def do_get_outputs(self):
6180  r"""do_get_outputs(Optimizer self) -> IMP::ModelObjectsTemp"""
6181  return _IMP_kernel.Optimizer_do_get_outputs(self)
6182 
6183  def __init__(self, *args):
6184  r"""
6185  __init__(Optimizer self, Model m, std::string name="Optimizer %1%") -> Optimizer
6186  __init__(Optimizer self) -> Optimizer
6187  """
6188  if self.__class__ == Optimizer:
6189  _self = None
6190  else:
6191  _self = self
6192  _IMP_kernel.Optimizer_swiginit(self, _IMP_kernel.new_Optimizer(_self, *args))
6193 
6194  if self.__class__ != Optimizer:
6195  _director_objects.register(self)
6196 
6197 
6198 
6199 
6200  def optimize(self, max_steps):
6201  r"""optimize(Optimizer self, unsigned int max_steps) -> double"""
6202  return _IMP_kernel.Optimizer_optimize(self, max_steps)
6203 
6204  def set_stop_on_good_score(self, tf):
6205  r"""set_stop_on_good_score(Optimizer self, bool tf)"""
6206  return _IMP_kernel.Optimizer_set_stop_on_good_score(self, tf)
6207 
6208  def get_stop_on_good_score(self):
6209  r"""get_stop_on_good_score(Optimizer self) -> bool"""
6210  return _IMP_kernel.Optimizer_get_stop_on_good_score(self)
6211 
6212  def get_last_score(self):
6213  r"""get_last_score(Optimizer self) -> double"""
6214  return _IMP_kernel.Optimizer_get_last_score(self)
6215 
6216  def get_scoring_function(self):
6217  r"""get_scoring_function(Optimizer self) -> ScoringFunction"""
6218  return _IMP_kernel.Optimizer_get_scoring_function(self)
6219  def __get_optimizer_states(self): return _list_util.VarList(getdimfunc=self.get_number_of_optimizer_states, getfunc=self.get_optimizer_state, erasefunc=self.erase_optimizer_state, appendfunc=self.add_optimizer_state, extendfunc=self.add_optimizer_states, clearfunc=self.clear_optimizer_states, indexfunc=self._python_index_optimizer_state)
6220  def __set_optimizer_states(self, obj): _list_util.set_varlist(self.optimizer_states, obj)
6221  def __del_optimizer_states(self): _list_util.del_varlist(self.optimizer_states)
6222  optimizer_states = property(__get_optimizer_states, __set_optimizer_states, __del_optimizer_states, doc="List of ##ucnames")
6223 
6224  def remove_optimizer_state(self, d):
6225  r"""remove_optimizer_state(Optimizer self, OptimizerState d)"""
6226  return _IMP_kernel.Optimizer_remove_optimizer_state(self, d)
6227 
6228  def _python_index_optimizer_state(self, d, start, stop):
6229  r"""_python_index_optimizer_state(Optimizer self, OptimizerState d, unsigned int start, unsigned int stop) -> unsigned int"""
6230  return _IMP_kernel.Optimizer__python_index_optimizer_state(self, d, start, stop)
6231 
6232  def remove_optimizer_states(self, d):
6233  r"""remove_optimizer_states(Optimizer self, IMP::OptimizerStates const & d)"""
6234  return _IMP_kernel.Optimizer_remove_optimizer_states(self, d)
6235 
6236  def set_optimizer_states(self, ps):
6237  r"""set_optimizer_states(Optimizer self, IMP::OptimizerStates const & ps)"""
6238  return _IMP_kernel.Optimizer_set_optimizer_states(self, ps)
6239 
6240  def set_optimizer_states_order(self, objs):
6241  r"""set_optimizer_states_order(Optimizer self, IMP::OptimizerStates const & objs)"""
6242  return _IMP_kernel.Optimizer_set_optimizer_states_order(self, objs)
6243 
6244  def add_optimizer_state(self, obj):
6245  r"""add_optimizer_state(Optimizer self, OptimizerState obj) -> unsigned int"""
6246  return _IMP_kernel.Optimizer_add_optimizer_state(self, obj)
6247 
6248  def add_optimizer_states(self, objs):
6249  r"""add_optimizer_states(Optimizer self, IMP::OptimizerStates const & objs)"""
6250  return _IMP_kernel.Optimizer_add_optimizer_states(self, objs)
6251 
6252  def clear_optimizer_states(self):
6253  r"""clear_optimizer_states(Optimizer self)"""
6254  return _IMP_kernel.Optimizer_clear_optimizer_states(self)
6255 
6256  def get_number_of_optimizer_states(self):
6257  r"""get_number_of_optimizer_states(Optimizer self) -> unsigned int"""
6258  return _IMP_kernel.Optimizer_get_number_of_optimizer_states(self)
6259 
6260  def get_has_optimizer_states(self):
6261  r"""get_has_optimizer_states(Optimizer self) -> bool"""
6262  return _IMP_kernel.Optimizer_get_has_optimizer_states(self)
6263 
6264  def get_optimizer_state(self, i):
6265  r"""get_optimizer_state(Optimizer self, unsigned int i) -> OptimizerState"""
6266  return _IMP_kernel.Optimizer_get_optimizer_state(self, i)
6267 
6268  def get_optimizer_states(self):
6269  r"""get_optimizer_states(Optimizer self) -> IMP::OptimizerStates"""
6270  return _IMP_kernel.Optimizer_get_optimizer_states(self)
6271 
6272  def erase_optimizer_state(self, i):
6273  r"""erase_optimizer_state(Optimizer self, unsigned int i)"""
6274  return _IMP_kernel.Optimizer_erase_optimizer_state(self, i)
6275 
6276  def reserve_optimizer_states(self, sz):
6277  r"""reserve_optimizer_states(Optimizer self, unsigned int sz)"""
6278  return _IMP_kernel.Optimizer_reserve_optimizer_states(self, sz)
6279 
6280  def set_scoring_function(self, sf):
6281  r"""set_scoring_function(Optimizer self, _ScoringFunctionAdaptor sf)"""
6282  return _IMP_kernel.Optimizer_set_scoring_function(self, sf)
6283  __swig_destroy__ = _IMP_kernel.delete_Optimizer
6284  def __del__(self):
6285  r"""__del__(Optimizer self)"""
6286 
6287  _director_objects.cleanup()
6288 
6289 
6290  pass
6291 
6292 
6293  def do_optimize(self, ns):
6294  r"""do_optimize(Optimizer self, unsigned int ns) -> double"""
6295  return _IMP_kernel.Optimizer_do_optimize(self, ns)
6296 
6297  def update_states(self):
6298  r"""update_states(Optimizer self)"""
6299  return _IMP_kernel.Optimizer_update_states(self)
6300 
6301  def __str__(self):
6302  r"""__str__(Optimizer self) -> std::string"""
6303  return _IMP_kernel.Optimizer___str__(self)
6304 
6305  def __repr__(self):
6306  r"""__repr__(Optimizer self) -> std::string"""
6307  return _IMP_kernel.Optimizer___repr__(self)
6308 
6309  @staticmethod
6310  def get_from(o):
6311  return _object_cast_to_Optimizer(o)
6312 
6313 
6314  def do_show(self, out):
6315  pass
6316 
6317  @staticmethod
6318  def get_from(o):
6319  return _object_cast_to_Optimizer(o)
6320 
6321  def __disown__(self):
6322  self.this.disown()
6323  _IMP_kernel.disown_Optimizer(self)
6324  return weakref.proxy(self)
6325 
6326  def do_destroy(self):
6327  r"""do_destroy(Optimizer self)"""
6328  return _IMP_kernel.Optimizer_do_destroy(self)
6329 
6330  def handle_set_has_required_score_states(self, arg0):
6331  r"""handle_set_has_required_score_states(Optimizer self, bool arg0)"""
6332  return _IMP_kernel.Optimizer_handle_set_has_required_score_states(self, arg0)
6333 
6334  def do_get_interactions(self):
6335  r"""do_get_interactions(Optimizer self) -> IMP::ModelObjectsTemps"""
6336  return _IMP_kernel.Optimizer_do_get_interactions(self)
6337 
6338 # Register Optimizer in _IMP_kernel:
6339 _IMP_kernel.Optimizer_swigregister(Optimizer)
6341  r"""Proxy of C++ IMP::AttributeOptimizer class."""
6342 
6343  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6344 
6345  def __init__(self, *args):
6346  r"""
6347  __init__(AttributeOptimizer self, Model m, std::string name="Optimizer %1%") -> AttributeOptimizer
6348  __init__(AttributeOptimizer self) -> AttributeOptimizer
6349  """
6350  if self.__class__ == AttributeOptimizer:
6351  _self = None
6352  else:
6353  _self = self
6354  _IMP_kernel.AttributeOptimizer_swiginit(self, _IMP_kernel.new_AttributeOptimizer(_self, *args))
6355 
6356  if self.__class__ != AttributeOptimizer:
6357  _director_objects.register(self)
6358 
6359 
6360 
6361 
6362  def get_optimized_attributes(self):
6363  r"""get_optimized_attributes(AttributeOptimizer self) -> IMP::FloatIndexes"""
6364  return _IMP_kernel.AttributeOptimizer_get_optimized_attributes(self)
6365 
6366  def set_value(self, fi, v):
6367  r"""set_value(AttributeOptimizer self, FloatIndex fi, double v)"""
6368  return _IMP_kernel.AttributeOptimizer_set_value(self, fi, v)
6369 
6370  def get_value(self, fi):
6371  r"""get_value(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
6372  return _IMP_kernel.AttributeOptimizer_get_value(self, fi)
6373 
6374  def get_derivative(self, fi):
6375  r"""get_derivative(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
6376  return _IMP_kernel.AttributeOptimizer_get_derivative(self, fi)
6377 
6378  def get_width(self, k):
6379  r"""get_width(AttributeOptimizer self, FloatKey k) -> double"""
6380  return _IMP_kernel.AttributeOptimizer_get_width(self, k)
6381 
6382  def set_scaled_value(self, fi, v):
6383  r"""set_scaled_value(AttributeOptimizer self, FloatIndex fi, IMP::Float v)"""
6384  return _IMP_kernel.AttributeOptimizer_set_scaled_value(self, fi, v)
6385 
6386  def get_scaled_value(self, fi):
6387  r"""get_scaled_value(AttributeOptimizer self, FloatIndex fi) -> double"""
6388  return _IMP_kernel.AttributeOptimizer_get_scaled_value(self, fi)
6389 
6390  def get_scaled_derivative(self, fi):
6391  r"""get_scaled_derivative(AttributeOptimizer self, FloatIndex fi) -> double"""
6392  return _IMP_kernel.AttributeOptimizer_get_scaled_derivative(self, fi)
6393 
6394  def clear_range_cache(self):
6395  r"""clear_range_cache(AttributeOptimizer self)"""
6396  return _IMP_kernel.AttributeOptimizer_clear_range_cache(self)
6397 
6398  def __str__(self):
6399  r"""__str__(AttributeOptimizer self) -> std::string"""
6400  return _IMP_kernel.AttributeOptimizer___str__(self)
6401 
6402  def __repr__(self):
6403  r"""__repr__(AttributeOptimizer self) -> std::string"""
6404  return _IMP_kernel.AttributeOptimizer___repr__(self)
6405 
6406  @staticmethod
6407  def get_from(o):
6408  return _object_cast_to_AttributeOptimizer(o)
6409 
6410 
6411  def do_show(self, out):
6412  pass
6413 
6414  @staticmethod
6415  def get_from(o):
6416  return _object_cast_to_AttributeOptimizer(o)
6417 
6418  __swig_destroy__ = _IMP_kernel.delete_AttributeOptimizer
6419  def __disown__(self):
6420  self.this.disown()
6421  _IMP_kernel.disown_AttributeOptimizer(self)
6422  return weakref.proxy(self)
6423 
6424  def do_destroy(self):
6425  r"""do_destroy(AttributeOptimizer self)"""
6426  return _IMP_kernel.AttributeOptimizer_do_destroy(self)
6427 
6428  def handle_set_has_required_score_states(self, arg0):
6429  r"""handle_set_has_required_score_states(AttributeOptimizer self, bool arg0)"""
6430  return _IMP_kernel.AttributeOptimizer_handle_set_has_required_score_states(self, arg0)
6431 
6432  def do_get_inputs(self):
6433  r"""do_get_inputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
6434  return _IMP_kernel.AttributeOptimizer_do_get_inputs(self)
6435 
6436  def do_get_outputs(self):
6437  r"""do_get_outputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
6438  return _IMP_kernel.AttributeOptimizer_do_get_outputs(self)
6439 
6440  def do_get_interactions(self):
6441  r"""do_get_interactions(AttributeOptimizer self) -> IMP::ModelObjectsTemps"""
6442  return _IMP_kernel.AttributeOptimizer_do_get_interactions(self)
6443 
6444  def do_optimize(self, ns):
6445  r"""do_optimize(AttributeOptimizer self, unsigned int ns) -> double"""
6446  return _IMP_kernel.AttributeOptimizer_do_optimize(self, ns)
6447 
6448 # Register AttributeOptimizer in _IMP_kernel:
6449 _IMP_kernel.AttributeOptimizer_swigregister(AttributeOptimizer)
6450 class ConfigurationSet(Object):
6451  r"""Proxy of C++ IMP::ConfigurationSet class."""
6452 
6453  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6454 
6455  def __init__(self, *args):
6456  r"""__init__(ConfigurationSet self, Model m, std::string name="ConfigurationSet %1%") -> ConfigurationSet"""
6457  _IMP_kernel.ConfigurationSet_swiginit(self, _IMP_kernel.new_ConfigurationSet(*args))
6458 
6459  def save_configuration(self):
6460  r"""save_configuration(ConfigurationSet self)"""
6461  return _IMP_kernel.ConfigurationSet_save_configuration(self)
6462 
6463  def get_number_of_configurations(self):
6464  r"""get_number_of_configurations(ConfigurationSet self) -> unsigned int"""
6465  return _IMP_kernel.ConfigurationSet_get_number_of_configurations(self)
6466 
6467  def load_configuration(self, i):
6468  r"""load_configuration(ConfigurationSet self, int i)"""
6469  return _IMP_kernel.ConfigurationSet_load_configuration(self, i)
6470 
6471  def remove_configuration(self, i):
6472  r"""remove_configuration(ConfigurationSet self, unsigned int i)"""
6473  return _IMP_kernel.ConfigurationSet_remove_configuration(self, i)
6474 
6475  def get_model(self):
6476  r"""get_model(ConfigurationSet self) -> Model"""
6477  return _IMP_kernel.ConfigurationSet_get_model(self)
6478 
6479  def get_version_info(self):
6480  r"""get_version_info(ConfigurationSet self) -> VersionInfo"""
6481  return _IMP_kernel.ConfigurationSet_get_version_info(self)
6482  __swig_destroy__ = _IMP_kernel.delete_ConfigurationSet
6483 
6484  def __str__(self):
6485  r"""__str__(ConfigurationSet self) -> std::string"""
6486  return _IMP_kernel.ConfigurationSet___str__(self)
6487 
6488  def __repr__(self):
6489  r"""__repr__(ConfigurationSet self) -> std::string"""
6490  return _IMP_kernel.ConfigurationSet___repr__(self)
6491 
6492  @staticmethod
6493  def get_from(o):
6494  return _object_cast_to_ConfigurationSet(o)
6495 
6496 
6497 # Register ConfigurationSet in _IMP_kernel:
6498 _IMP_kernel.ConfigurationSet_swigregister(ConfigurationSet)
6500  r"""Proxy of C++ IMP::SaveToConfigurationSetOptimizerState class."""
6501 
6502  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6503 
6504  def __init__(self, cs):
6505  r"""__init__(SaveToConfigurationSetOptimizerState self, ConfigurationSet cs) -> SaveToConfigurationSetOptimizerState"""
6506  _IMP_kernel.SaveToConfigurationSetOptimizerState_swiginit(self, _IMP_kernel.new_SaveToConfigurationSetOptimizerState(cs))
6507 
6508  def get_version_info(self):
6509  r"""get_version_info(SaveToConfigurationSetOptimizerState self) -> VersionInfo"""
6510  return _IMP_kernel.SaveToConfigurationSetOptimizerState_get_version_info(self)
6511  __swig_destroy__ = _IMP_kernel.delete_SaveToConfigurationSetOptimizerState
6512 
6513  def __str__(self):
6514  r"""__str__(SaveToConfigurationSetOptimizerState self) -> std::string"""
6515  return _IMP_kernel.SaveToConfigurationSetOptimizerState___str__(self)
6516 
6517  def __repr__(self):
6518  r"""__repr__(SaveToConfigurationSetOptimizerState self) -> std::string"""
6519  return _IMP_kernel.SaveToConfigurationSetOptimizerState___repr__(self)
6520 
6521  @staticmethod
6522  def get_from(o):
6523  return _object_cast_to_SaveToConfigurationSetOptimizerState(o)
6524 
6525 
6526 # Register SaveToConfigurationSetOptimizerState in _IMP_kernel:
6527 _IMP_kernel.SaveToConfigurationSetOptimizerState_swigregister(SaveToConfigurationSetOptimizerState)
6528 class Configuration(Object):
6529  r"""Proxy of C++ IMP::Configuration class."""
6530 
6531  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6532 
6533  def __init__(self, *args):
6534  r"""
6535  __init__(Configuration self, Model m, std::string name="Configuration %1%") -> Configuration
6536  __init__(Configuration self, Model m, Configuration base, std::string name="Configuration %1%") -> Configuration
6537  """
6538  _IMP_kernel.Configuration_swiginit(self, _IMP_kernel.new_Configuration(*args))
6539 
6540  def load_configuration(self):
6541  r"""load_configuration(Configuration self)"""
6542  return _IMP_kernel.Configuration_load_configuration(self)
6543 
6544  def swap_configuration(self):
6545  r"""swap_configuration(Configuration self)"""
6546  return _IMP_kernel.Configuration_swap_configuration(self)
6547 
6548  def get_version_info(self):
6549  r"""get_version_info(Configuration self) -> VersionInfo"""
6550  return _IMP_kernel.Configuration_get_version_info(self)
6551  __swig_destroy__ = _IMP_kernel.delete_Configuration
6552 
6553  def __str__(self):
6554  r"""__str__(Configuration self) -> std::string"""
6555  return _IMP_kernel.Configuration___str__(self)
6556 
6557  def __repr__(self):
6558  r"""__repr__(Configuration self) -> std::string"""
6559  return _IMP_kernel.Configuration___repr__(self)
6560 
6561  @staticmethod
6562  def get_from(o):
6563  return _object_cast_to_Configuration(o)
6564 
6565 
6566 # Register Configuration in _IMP_kernel:
6567 _IMP_kernel.Configuration_swigregister(Configuration)
6568 class Sampler(Object):
6569  r"""Proxy of C++ IMP::Sampler class."""
6570 
6571  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6572 
6573  def __init__(self, *args):
6574  r"""__init__(Sampler self, Model m, std::string name="Sampler %1%") -> Sampler"""
6575  if self.__class__ == Sampler:
6576  _self = None
6577  else:
6578  _self = self
6579  _IMP_kernel.Sampler_swiginit(self, _IMP_kernel.new_Sampler(_self, *args))
6580 
6581  if self.__class__ != Sampler:
6582  _director_objects.register(self)
6583 
6584 
6585 
6586 
6587  def create_sample(self):
6588  r"""create_sample(Sampler self) -> ConfigurationSet"""
6589  return _IMP_kernel.Sampler_create_sample(self)
6590 
6591  def get_scoring_function(self):
6592  r"""get_scoring_function(Sampler self) -> ScoringFunction"""
6593  return _IMP_kernel.Sampler_get_scoring_function(self)
6594 
6595  def set_scoring_function(self, sf):
6596  r"""set_scoring_function(Sampler self, _ScoringFunctionAdaptor sf)"""
6597  return _IMP_kernel.Sampler_set_scoring_function(self, sf)
6598 
6599  def get_model(self):
6600  r"""get_model(Sampler self) -> Model"""
6601  return _IMP_kernel.Sampler_get_model(self)
6602 
6603  def do_sample(self):
6604  r"""do_sample(Sampler self) -> ConfigurationSet"""
6605  return _IMP_kernel.Sampler_do_sample(self)
6606  __swig_destroy__ = _IMP_kernel.delete_Sampler
6607 
6608  def __str__(self):
6609  r"""__str__(Sampler self) -> std::string"""
6610  return _IMP_kernel.Sampler___str__(self)
6611 
6612  def __repr__(self):
6613  r"""__repr__(Sampler self) -> std::string"""
6614  return _IMP_kernel.Sampler___repr__(self)
6615 
6616  @staticmethod
6617  def get_from(o):
6618  return _object_cast_to_Sampler(o)
6619 
6620 
6621  def do_show(self, out):
6622  pass
6623 
6624  @staticmethod
6625  def get_from(o):
6626  return _object_cast_to_Sampler(o)
6627 
6628  def __disown__(self):
6629  self.this.disown()
6630  _IMP_kernel.disown_Sampler(self)
6631  return weakref.proxy(self)
6632 
6633  def do_destroy(self):
6634  r"""do_destroy(Sampler self)"""
6635  return _IMP_kernel.Sampler_do_destroy(self)
6636 
6637 # Register Sampler in _IMP_kernel:
6638 _IMP_kernel.Sampler_swigregister(Sampler)
6639 class PairModifier(_ParticleInputs, _ParticleOutputs, Object):
6640  r"""Proxy of C++ IMP::PairModifier class."""
6641 
6642  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6643 
6644  def __init__(self, *args):
6645  r"""__init__(PairModifier self, std::string name="PairModifier %1%") -> PairModifier"""
6646  if self.__class__ == PairModifier:
6647  _self = None
6648  else:
6649  _self = self
6650  _IMP_kernel.PairModifier_swiginit(self, _IMP_kernel.new_PairModifier(_self, *args))
6651 
6652  if self.__class__ != PairModifier:
6653  _director_objects.register(self)
6654 
6655 
6656 
6657 
6658  def apply_index(self, m, v):
6659  r"""apply_index(PairModifier self, Model m, IMP::ParticleIndexPair const & v)"""
6660  return _IMP_kernel.PairModifier_apply_index(self, m, v)
6661 
6662  def apply_indexes(self, m, o, lower_bound, upper_bound):
6663  r"""apply_indexes(PairModifier self, Model m, IMP::ParticleIndexPairs const & o, unsigned int lower_bound, unsigned int upper_bound)"""
6664  return _IMP_kernel.PairModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
6665 
6666  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
6667  r"""apply_indexes_moved(PairModifier self, Model m, IMP::ParticleIndexPairs const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
6668  return _IMP_kernel.PairModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
6669 
6670  def __str__(self):
6671  r"""__str__(PairModifier self) -> std::string"""
6672  return _IMP_kernel.PairModifier___str__(self)
6673 
6674  def __repr__(self):
6675  r"""__repr__(PairModifier self) -> std::string"""
6676  return _IMP_kernel.PairModifier___repr__(self)
6677 
6678  @staticmethod
6679  def get_from(o):
6680  return _object_cast_to_PairModifier(o)
6681 
6682 
6683  def do_show(self, out):
6684  pass
6685 
6686  @staticmethod
6687  def get_from(o):
6688  return _object_cast_to_PairModifier(o)
6689 
6690  __swig_destroy__ = _IMP_kernel.delete_PairModifier
6691  def __disown__(self):
6692  self.this.disown()
6693  _IMP_kernel.disown_PairModifier(self)
6694  return weakref.proxy(self)
6695 
6696  def do_get_inputs(self, m, pis):
6697  r"""do_get_inputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6698  return _IMP_kernel.PairModifier_do_get_inputs(self, m, pis)
6699 
6700  def do_get_outputs(self, m, pis):
6701  r"""do_get_outputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6702  return _IMP_kernel.PairModifier_do_get_outputs(self, m, pis)
6703 
6704  def do_destroy(self):
6705  r"""do_destroy(PairModifier self)"""
6706  return _IMP_kernel.PairModifier_do_destroy(self)
6707 
6708 # Register PairModifier in _IMP_kernel:
6709 _IMP_kernel.PairModifier_swigregister(PairModifier)
6710 class PairScore(_ParticleInputs, Object):
6711  r"""Proxy of C++ IMP::PairScore class."""
6712 
6713  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6714 
6715  def __init__(self, *args):
6716  r"""__init__(PairScore self, std::string name="PairScore %1%") -> PairScore"""
6717  if self.__class__ == PairScore:
6718  _self = None
6719  else:
6720  _self = self
6721  _IMP_kernel.PairScore_swiginit(self, _IMP_kernel.new_PairScore(_self, *args))
6722 
6723  if self.__class__ != PairScore:
6724  _director_objects.register(self)
6725 
6726 
6727 
6728 
6729  def evaluate_index(self, m, vt, da):
6730  r"""evaluate_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da) -> double"""
6731  return _IMP_kernel.PairScore_evaluate_index(self, m, vt, da)
6732 
6733  def check_indexes(self, m, pis):
6734  r"""check_indexes(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
6735  return _IMP_kernel.PairScore_check_indexes(self, m, pis)
6736 
6737  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
6738  r"""evaluate_indexes(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
6739  return _IMP_kernel.PairScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
6740 
6741  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
6742  r"""evaluate_indexes_scores(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
6743  return _IMP_kernel.PairScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
6744 
6745  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
6746  r"""evaluate_indexes_delta(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
6747  return _IMP_kernel.PairScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
6748 
6749  def evaluate_if_good_index(self, m, vt, da, max):
6750  r"""evaluate_if_good_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da, double max) -> double"""
6751  return _IMP_kernel.PairScore_evaluate_if_good_index(self, m, vt, da, max)
6752 
6753  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
6754  r"""evaluate_if_good_indexes(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
6755  return _IMP_kernel.PairScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
6756 
6757  def create_current_decomposition(self, m, vt):
6758  r"""create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
6759  return _IMP_kernel.PairScore_create_current_decomposition(self, m, vt)
6760 
6761  def do_create_current_decomposition(self, m, vt):
6762  r"""do_create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
6763  return _IMP_kernel.PairScore_do_create_current_decomposition(self, m, vt)
6764  __swig_destroy__ = _IMP_kernel.delete_PairScore
6765 
6766  def __str__(self):
6767  r"""__str__(PairScore self) -> std::string"""
6768  return _IMP_kernel.PairScore___str__(self)
6769 
6770  def __repr__(self):
6771  r"""__repr__(PairScore self) -> std::string"""
6772  return _IMP_kernel.PairScore___repr__(self)
6773 
6774  @staticmethod
6775  def get_from(o):
6776  return _object_cast_to_PairScore(o)
6777 
6778 
6779  def do_show(self, out):
6780  pass
6781 
6782  @staticmethod
6783  def get_from(o):
6784  return _object_cast_to_PairScore(o)
6785 
6786 
6787  def _wrap_jax(self, score_func, keys=None):
6788  """Create the return value for _get_jax.
6789  Use this method in _get_jax() to wrap the JAX scoring function
6790  with other score-specific information.
6791 
6792  @param score_func A function implemented using JAX that takes
6793  two arguments (the current JAX Model, and the
6794  ParticlePairIndexes to act on) and returns the total
6795  score (for all indexes).
6796  @param keys Model attributes used by the PairScore.
6797  See IMP::Restraint::_wrap_jax.
6798  """
6799  from IMP._jax_util import JAXScoreInfo
6800  return JAXScoreInfo(score_func=score_func, keys=keys)
6801 
6802  def _get_jax(self):
6803  """Return a JAX implementation of this PairScore.
6804  Implement this method in a PairScore subclass to provide
6805  an equivalent function using [JAX](https://docs.jax.dev/)
6806  that scores the current JAX Model with a given set of
6807  ParticlePairIndexes. See also _wrap_jax.
6808  """
6809  raise NotImplementedError(f"No JAX implementation for {self}")
6810 
6811  def __disown__(self):
6812  self.this.disown()
6813  _IMP_kernel.disown_PairScore(self)
6814  return weakref.proxy(self)
6815 
6816  def do_get_inputs(self, m, pis):
6817  r"""do_get_inputs(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6818  return _IMP_kernel.PairScore_do_get_inputs(self, m, pis)
6819 
6820  def do_destroy(self):
6821  r"""do_destroy(PairScore self)"""
6822  return _IMP_kernel.PairScore_do_destroy(self)
6823 
6824 # Register PairScore in _IMP_kernel:
6825 _IMP_kernel.PairScore_swigregister(PairScore)
6826 class PairPredicate(_ParticleInputs, Object):
6827  r"""Proxy of C++ IMP::PairPredicate class."""
6828 
6829  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6830 
6831  def __init__(self, *args):
6832  r"""__init__(PairPredicate self, std::string name="PairPredicate %1%") -> PairPredicate"""
6833  if self.__class__ == PairPredicate:
6834  _self = None
6835  else:
6836  _self = self
6837  _IMP_kernel.PairPredicate_swiginit(self, _IMP_kernel.new_PairPredicate(_self, *args))
6838 
6839  if self.__class__ != PairPredicate:
6840  _director_objects.register(self)
6841 
6842 
6843 
6844 
6845  def setup_for_get_value_index_in_batch(self, arg0):
6846  r"""setup_for_get_value_index_in_batch(PairPredicate self, Model arg0)"""
6847  return _IMP_kernel.PairPredicate_setup_for_get_value_index_in_batch(self, arg0)
6848 
6849  def get_value_index_in_batch(self, m, vt):
6850  r"""get_value_index_in_batch(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
6851  return _IMP_kernel.PairPredicate_get_value_index_in_batch(self, m, vt)
6852 
6853  def __call__(self, m, vt):
6854  r"""__call__(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
6855  return _IMP_kernel.PairPredicate___call__(self, m, vt)
6856 
6857  def get_value_index(self, *args):
6858  r"""
6859  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int
6860  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
6861  """
6862  return _IMP_kernel.PairPredicate_get_value_index(self, *args)
6863  __swig_destroy__ = _IMP_kernel.delete_PairPredicate
6864 
6865  def __str__(self):
6866  r"""__str__(PairPredicate self) -> std::string"""
6867  return _IMP_kernel.PairPredicate___str__(self)
6868 
6869  def __repr__(self):
6870  r"""__repr__(PairPredicate self) -> std::string"""
6871  return _IMP_kernel.PairPredicate___repr__(self)
6872 
6873  @staticmethod
6874  def get_from(o):
6875  return _object_cast_to_PairPredicate(o)
6876 
6877 
6878  def do_show(self, out):
6879  pass
6880 
6881  @staticmethod
6882  def get_from(o):
6883  return _object_cast_to_PairPredicate(o)
6884 
6885  def __disown__(self):
6886  self.this.disown()
6887  _IMP_kernel.disown_PairPredicate(self)
6888  return weakref.proxy(self)
6889 
6890  def do_get_inputs(self, m, pis):
6891  r"""do_get_inputs(PairPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
6892  return _IMP_kernel.PairPredicate_do_get_inputs(self, m, pis)
6893 
6894  def do_destroy(self):
6895  r"""do_destroy(PairPredicate self)"""
6896  return _IMP_kernel.PairPredicate_do_destroy(self)
6897 
6898 # Register PairPredicate in _IMP_kernel:
6899 _IMP_kernel.PairPredicate_swigregister(PairPredicate)
6900 class PairContainer(Container):
6901  r"""Proxy of C++ IMP::PairContainer class."""
6902 
6903  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6904 
6905  def apply_generic(self, m):
6906  r"""apply_generic(PairContainer self, PairModifier m)"""
6907  return _IMP_kernel.PairContainer_apply_generic(self, m)
6908 
6909  def apply_generic_moved(self, m, moved_pis, reset_pis):
6910  r"""apply_generic_moved(PairContainer self, PairModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
6911  return _IMP_kernel.PairContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
6912 
6913  def apply(self, sm):
6914  r"""apply(PairContainer self, PairModifier sm)"""
6915  return _IMP_kernel.PairContainer_apply(self, sm)
6916 
6917  def apply_moved(self, sm, moved_pis, reset_pis):
6918  r"""apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
6919  return _IMP_kernel.PairContainer_apply_moved(self, sm, moved_pis, reset_pis)
6920 
6921  def get_range_indexes(self):
6922  r"""get_range_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
6923  return _IMP_kernel.PairContainer_get_range_indexes(self)
6924 
6925  def get_contents(self):
6926  r"""get_contents(PairContainer self) -> IMP::ParticleIndexPairs const &"""
6927  return _IMP_kernel.PairContainer_get_contents(self)
6928 
6929  def get_indexes(self):
6930  r"""get_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
6931  return _IMP_kernel.PairContainer_get_indexes(self)
6932 
6933  def get(self, *args):
6934  r"""
6935  get(PairContainer self) -> IMP::ParticlePairsTemp
6936  get(PairContainer self, unsigned int i) -> IMP::ParticlePair
6937  """
6938  return _IMP_kernel.PairContainer_get(self, *args)
6939 
6940  def get_number(self):
6941  r"""get_number(PairContainer self) -> unsigned int"""
6942  return _IMP_kernel.PairContainer_get_number(self)
6943 
6944  def __init__(self, *args):
6945  r"""
6946  __init__(PairContainer self, Model m, std::string name="PairContainer %1%") -> PairContainer
6947  __init__(PairContainer self) -> PairContainer
6948  """
6949  if self.__class__ == PairContainer:
6950  _self = None
6951  else:
6952  _self = self
6953  _IMP_kernel.PairContainer_swiginit(self, _IMP_kernel.new_PairContainer(_self, *args))
6954 
6955  if self.__class__ != PairContainer:
6956  _director_objects.register(self)
6957 
6958 
6959 
6960 
6961  def do_apply(self, sm):
6962  r"""do_apply(PairContainer self, PairModifier sm)"""
6963  return _IMP_kernel.PairContainer_do_apply(self, sm)
6964 
6965  def do_apply_moved(self, sm, moved_pis, reset_pis):
6966  r"""do_apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
6967  return _IMP_kernel.PairContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
6968 
6969  def do_get_provides_access(self):
6970  r"""do_get_provides_access(PairContainer self) -> bool"""
6971  return _IMP_kernel.PairContainer_do_get_provides_access(self)
6972  __swig_destroy__ = _IMP_kernel.delete_PairContainer
6973 
6974  def __str__(self):
6975  r"""__str__(PairContainer self) -> std::string"""
6976  return _IMP_kernel.PairContainer___str__(self)
6977 
6978  def __repr__(self):
6979  r"""__repr__(PairContainer self) -> std::string"""
6980  return _IMP_kernel.PairContainer___repr__(self)
6981 
6982  @staticmethod
6983  def get_from(o):
6984  return _object_cast_to_PairContainer(o)
6985 
6986 
6987  def do_show(self, out):
6988  pass
6989 
6990  @staticmethod
6991  def get_from(o):
6992  return _object_cast_to_PairContainer(o)
6993 
6994  def __disown__(self):
6995  self.this.disown()
6996  _IMP_kernel.disown_PairContainer(self)
6997  return weakref.proxy(self)
6998 
6999  def do_destroy(self):
7000  r"""do_destroy(PairContainer self)"""
7001  return _IMP_kernel.PairContainer_do_destroy(self)
7002 
7003  def handle_set_has_required_score_states(self, arg0):
7004  r"""handle_set_has_required_score_states(PairContainer self, bool arg0)"""
7005  return _IMP_kernel.PairContainer_handle_set_has_required_score_states(self, arg0)
7006 
7007  def do_get_inputs(self):
7008  r"""do_get_inputs(PairContainer self) -> IMP::ModelObjectsTemp"""
7009  return _IMP_kernel.PairContainer_do_get_inputs(self)
7010 
7011  def do_get_interactions(self):
7012  r"""do_get_interactions(PairContainer self) -> IMP::ModelObjectsTemps"""
7013  return _IMP_kernel.PairContainer_do_get_interactions(self)
7014 
7015  def do_get_contents_hash(self):
7016  r"""do_get_contents_hash(PairContainer self) -> std::size_t"""
7017  return _IMP_kernel.PairContainer_do_get_contents_hash(self)
7018 
7019 # Register PairContainer in _IMP_kernel:
7020 _IMP_kernel.PairContainer_swigregister(PairContainer)
7021 class _PairContainerAdaptor(_InputAdaptor):
7022  r"""Proxy of C++ IMP::PairContainerAdaptor class."""
7023 
7024  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7025  __repr__ = _swig_repr
7026 
7027  def __init__(self, *args):
7028  r"""
7029  __init__(_PairContainerAdaptor self) -> _PairContainerAdaptor
7030  __init__(_PairContainerAdaptor self, PairContainer c) -> _PairContainerAdaptor
7031  __init__(_PairContainerAdaptor self, IMP::ParticlePairsTemp const & t) -> _PairContainerAdaptor
7032  """
7033  _IMP_kernel._PairContainerAdaptor_swiginit(self, _IMP_kernel.new__PairContainerAdaptor(*args))
7034 
7035  def set_name_if_default(self, name):
7036  r"""set_name_if_default(_PairContainerAdaptor self, std::string name)"""
7037  return _IMP_kernel._PairContainerAdaptor_set_name_if_default(self, name)
7038  __swig_destroy__ = _IMP_kernel.delete__PairContainerAdaptor
7039 
7040 # Register _PairContainerAdaptor in _IMP_kernel:
7041 _IMP_kernel._PairContainerAdaptor_swigregister(_PairContainerAdaptor)
7042 class QuadModifier(_ParticleInputs, _ParticleOutputs, Object):
7043  r"""Proxy of C++ IMP::QuadModifier class."""
7044 
7045  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7046 
7047  def __init__(self, *args):
7048  r"""__init__(QuadModifier self, std::string name="QuadModifier %1%") -> QuadModifier"""
7049  if self.__class__ == QuadModifier:
7050  _self = None
7051  else:
7052  _self = self
7053  _IMP_kernel.QuadModifier_swiginit(self, _IMP_kernel.new_QuadModifier(_self, *args))
7054 
7055  if self.__class__ != QuadModifier:
7056  _director_objects.register(self)
7057 
7058 
7059 
7060 
7061  def apply_index(self, m, v):
7062  r"""apply_index(QuadModifier self, Model m, IMP::ParticleIndexQuad const & v)"""
7063  return _IMP_kernel.QuadModifier_apply_index(self, m, v)
7064 
7065  def apply_indexes(self, m, o, lower_bound, upper_bound):
7066  r"""apply_indexes(QuadModifier self, Model m, IMP::ParticleIndexQuads const & o, unsigned int lower_bound, unsigned int upper_bound)"""
7067  return _IMP_kernel.QuadModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
7068 
7069  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
7070  r"""apply_indexes_moved(QuadModifier self, Model m, IMP::ParticleIndexQuads const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7071  return _IMP_kernel.QuadModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
7072 
7073  def __str__(self):
7074  r"""__str__(QuadModifier self) -> std::string"""
7075  return _IMP_kernel.QuadModifier___str__(self)
7076 
7077  def __repr__(self):
7078  r"""__repr__(QuadModifier self) -> std::string"""
7079  return _IMP_kernel.QuadModifier___repr__(self)
7080 
7081  @staticmethod
7082  def get_from(o):
7083  return _object_cast_to_QuadModifier(o)
7084 
7085 
7086  def do_show(self, out):
7087  pass
7088 
7089  @staticmethod
7090  def get_from(o):
7091  return _object_cast_to_QuadModifier(o)
7092 
7093  __swig_destroy__ = _IMP_kernel.delete_QuadModifier
7094  def __disown__(self):
7095  self.this.disown()
7096  _IMP_kernel.disown_QuadModifier(self)
7097  return weakref.proxy(self)
7098 
7099  def do_get_inputs(self, m, pis):
7100  r"""do_get_inputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7101  return _IMP_kernel.QuadModifier_do_get_inputs(self, m, pis)
7102 
7103  def do_get_outputs(self, m, pis):
7104  r"""do_get_outputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7105  return _IMP_kernel.QuadModifier_do_get_outputs(self, m, pis)
7106 
7107  def do_destroy(self):
7108  r"""do_destroy(QuadModifier self)"""
7109  return _IMP_kernel.QuadModifier_do_destroy(self)
7110 
7111 # Register QuadModifier in _IMP_kernel:
7112 _IMP_kernel.QuadModifier_swigregister(QuadModifier)
7113 class QuadScore(_ParticleInputs, Object):
7114  r"""Proxy of C++ IMP::QuadScore class."""
7115 
7116  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7117 
7118  def __init__(self, *args):
7119  r"""__init__(QuadScore self, std::string name="QuadScore %1%") -> QuadScore"""
7120  if self.__class__ == QuadScore:
7121  _self = None
7122  else:
7123  _self = self
7124  _IMP_kernel.QuadScore_swiginit(self, _IMP_kernel.new_QuadScore(_self, *args))
7125 
7126  if self.__class__ != QuadScore:
7127  _director_objects.register(self)
7128 
7129 
7130 
7131 
7132  def evaluate_index(self, m, vt, da):
7133  r"""evaluate_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da) -> double"""
7134  return _IMP_kernel.QuadScore_evaluate_index(self, m, vt, da)
7135 
7136  def check_indexes(self, m, pis):
7137  r"""check_indexes(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
7138  return _IMP_kernel.QuadScore_check_indexes(self, m, pis)
7139 
7140  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
7141  r"""evaluate_indexes(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7142  return _IMP_kernel.QuadScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
7143 
7144  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7145  r"""evaluate_indexes_scores(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7146  return _IMP_kernel.QuadScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
7147 
7148  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
7149  r"""evaluate_indexes_delta(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7150  return _IMP_kernel.QuadScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
7151 
7152  def evaluate_if_good_index(self, m, vt, da, max):
7153  r"""evaluate_if_good_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da, double max) -> double"""
7154  return _IMP_kernel.QuadScore_evaluate_if_good_index(self, m, vt, da, max)
7155 
7156  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7157  r"""evaluate_if_good_indexes(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7158  return _IMP_kernel.QuadScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
7159 
7160  def create_current_decomposition(self, m, vt):
7161  r"""create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
7162  return _IMP_kernel.QuadScore_create_current_decomposition(self, m, vt)
7163 
7164  def do_create_current_decomposition(self, m, vt):
7165  r"""do_create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
7166  return _IMP_kernel.QuadScore_do_create_current_decomposition(self, m, vt)
7167  __swig_destroy__ = _IMP_kernel.delete_QuadScore
7168 
7169  def __str__(self):
7170  r"""__str__(QuadScore self) -> std::string"""
7171  return _IMP_kernel.QuadScore___str__(self)
7172 
7173  def __repr__(self):
7174  r"""__repr__(QuadScore self) -> std::string"""
7175  return _IMP_kernel.QuadScore___repr__(self)
7176 
7177  @staticmethod
7178  def get_from(o):
7179  return _object_cast_to_QuadScore(o)
7180 
7181 
7182  def do_show(self, out):
7183  pass
7184 
7185  @staticmethod
7186  def get_from(o):
7187  return _object_cast_to_QuadScore(o)
7188 
7189  def __disown__(self):
7190  self.this.disown()
7191  _IMP_kernel.disown_QuadScore(self)
7192  return weakref.proxy(self)
7193 
7194  def do_get_inputs(self, m, pis):
7195  r"""do_get_inputs(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7196  return _IMP_kernel.QuadScore_do_get_inputs(self, m, pis)
7197 
7198  def do_destroy(self):
7199  r"""do_destroy(QuadScore self)"""
7200  return _IMP_kernel.QuadScore_do_destroy(self)
7201 
7202 # Register QuadScore in _IMP_kernel:
7203 _IMP_kernel.QuadScore_swigregister(QuadScore)
7204 class QuadPredicate(_ParticleInputs, Object):
7205  r"""Proxy of C++ IMP::QuadPredicate class."""
7206 
7207  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7208 
7209  def __init__(self, *args):
7210  r"""__init__(QuadPredicate self, std::string name="QuadPredicate %1%") -> QuadPredicate"""
7211  if self.__class__ == QuadPredicate:
7212  _self = None
7213  else:
7214  _self = self
7215  _IMP_kernel.QuadPredicate_swiginit(self, _IMP_kernel.new_QuadPredicate(_self, *args))
7216 
7217  if self.__class__ != QuadPredicate:
7218  _director_objects.register(self)
7219 
7220 
7221 
7222 
7223  def setup_for_get_value_index_in_batch(self, arg0):
7224  r"""setup_for_get_value_index_in_batch(QuadPredicate self, Model arg0)"""
7225  return _IMP_kernel.QuadPredicate_setup_for_get_value_index_in_batch(self, arg0)
7226 
7227  def get_value_index_in_batch(self, m, vt):
7228  r"""get_value_index_in_batch(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
7229  return _IMP_kernel.QuadPredicate_get_value_index_in_batch(self, m, vt)
7230 
7231  def __call__(self, m, vt):
7232  r"""__call__(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
7233  return _IMP_kernel.QuadPredicate___call__(self, m, vt)
7234 
7235  def get_value_index(self, *args):
7236  r"""
7237  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int
7238  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuads const & o) -> IMP::Ints
7239  """
7240  return _IMP_kernel.QuadPredicate_get_value_index(self, *args)
7241  __swig_destroy__ = _IMP_kernel.delete_QuadPredicate
7242 
7243  def __str__(self):
7244  r"""__str__(QuadPredicate self) -> std::string"""
7245  return _IMP_kernel.QuadPredicate___str__(self)
7246 
7247  def __repr__(self):
7248  r"""__repr__(QuadPredicate self) -> std::string"""
7249  return _IMP_kernel.QuadPredicate___repr__(self)
7250 
7251  @staticmethod
7252  def get_from(o):
7253  return _object_cast_to_QuadPredicate(o)
7254 
7255 
7256  def do_show(self, out):
7257  pass
7258 
7259  @staticmethod
7260  def get_from(o):
7261  return _object_cast_to_QuadPredicate(o)
7262 
7263  def __disown__(self):
7264  self.this.disown()
7265  _IMP_kernel.disown_QuadPredicate(self)
7266  return weakref.proxy(self)
7267 
7268  def do_get_inputs(self, m, pis):
7269  r"""do_get_inputs(QuadPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7270  return _IMP_kernel.QuadPredicate_do_get_inputs(self, m, pis)
7271 
7272  def do_destroy(self):
7273  r"""do_destroy(QuadPredicate self)"""
7274  return _IMP_kernel.QuadPredicate_do_destroy(self)
7275 
7276 # Register QuadPredicate in _IMP_kernel:
7277 _IMP_kernel.QuadPredicate_swigregister(QuadPredicate)
7278 class QuadContainer(Container):
7279  r"""Proxy of C++ IMP::QuadContainer class."""
7280 
7281  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7282 
7283  def apply_generic(self, m):
7284  r"""apply_generic(QuadContainer self, QuadModifier m)"""
7285  return _IMP_kernel.QuadContainer_apply_generic(self, m)
7286 
7287  def apply_generic_moved(self, m, moved_pis, reset_pis):
7288  r"""apply_generic_moved(QuadContainer self, QuadModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7289  return _IMP_kernel.QuadContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
7290 
7291  def apply(self, sm):
7292  r"""apply(QuadContainer self, QuadModifier sm)"""
7293  return _IMP_kernel.QuadContainer_apply(self, sm)
7294 
7295  def apply_moved(self, sm, moved_pis, reset_pis):
7296  r"""apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7297  return _IMP_kernel.QuadContainer_apply_moved(self, sm, moved_pis, reset_pis)
7298 
7299  def get_range_indexes(self):
7300  r"""get_range_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
7301  return _IMP_kernel.QuadContainer_get_range_indexes(self)
7302 
7303  def get_contents(self):
7304  r"""get_contents(QuadContainer self) -> IMP::ParticleIndexQuads const &"""
7305  return _IMP_kernel.QuadContainer_get_contents(self)
7306 
7307  def get_indexes(self):
7308  r"""get_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
7309  return _IMP_kernel.QuadContainer_get_indexes(self)
7310 
7311  def get(self, *args):
7312  r"""
7313  get(QuadContainer self) -> IMP::ParticleQuadsTemp
7314  get(QuadContainer self, unsigned int i) -> IMP::ParticleQuad
7315  """
7316  return _IMP_kernel.QuadContainer_get(self, *args)
7317 
7318  def get_number(self):
7319  r"""get_number(QuadContainer self) -> unsigned int"""
7320  return _IMP_kernel.QuadContainer_get_number(self)
7321 
7322  def __init__(self, *args):
7323  r"""
7324  __init__(QuadContainer self, Model m, std::string name="QuadContainer %1%") -> QuadContainer
7325  __init__(QuadContainer self) -> QuadContainer
7326  """
7327  if self.__class__ == QuadContainer:
7328  _self = None
7329  else:
7330  _self = self
7331  _IMP_kernel.QuadContainer_swiginit(self, _IMP_kernel.new_QuadContainer(_self, *args))
7332 
7333  if self.__class__ != QuadContainer:
7334  _director_objects.register(self)
7335 
7336 
7337 
7338 
7339  def do_apply(self, sm):
7340  r"""do_apply(QuadContainer self, QuadModifier sm)"""
7341  return _IMP_kernel.QuadContainer_do_apply(self, sm)
7342 
7343  def do_apply_moved(self, sm, moved_pis, reset_pis):
7344  r"""do_apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7345  return _IMP_kernel.QuadContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
7346 
7347  def do_get_provides_access(self):
7348  r"""do_get_provides_access(QuadContainer self) -> bool"""
7349  return _IMP_kernel.QuadContainer_do_get_provides_access(self)
7350  __swig_destroy__ = _IMP_kernel.delete_QuadContainer
7351 
7352  def __str__(self):
7353  r"""__str__(QuadContainer self) -> std::string"""
7354  return _IMP_kernel.QuadContainer___str__(self)
7355 
7356  def __repr__(self):
7357  r"""__repr__(QuadContainer self) -> std::string"""
7358  return _IMP_kernel.QuadContainer___repr__(self)
7359 
7360  @staticmethod
7361  def get_from(o):
7362  return _object_cast_to_QuadContainer(o)
7363 
7364 
7365  def do_show(self, out):
7366  pass
7367 
7368  @staticmethod
7369  def get_from(o):
7370  return _object_cast_to_QuadContainer(o)
7371 
7372  def __disown__(self):
7373  self.this.disown()
7374  _IMP_kernel.disown_QuadContainer(self)
7375  return weakref.proxy(self)
7376 
7377  def do_destroy(self):
7378  r"""do_destroy(QuadContainer self)"""
7379  return _IMP_kernel.QuadContainer_do_destroy(self)
7380 
7381  def handle_set_has_required_score_states(self, arg0):
7382  r"""handle_set_has_required_score_states(QuadContainer self, bool arg0)"""
7383  return _IMP_kernel.QuadContainer_handle_set_has_required_score_states(self, arg0)
7384 
7385  def do_get_inputs(self):
7386  r"""do_get_inputs(QuadContainer self) -> IMP::ModelObjectsTemp"""
7387  return _IMP_kernel.QuadContainer_do_get_inputs(self)
7388 
7389  def do_get_interactions(self):
7390  r"""do_get_interactions(QuadContainer self) -> IMP::ModelObjectsTemps"""
7391  return _IMP_kernel.QuadContainer_do_get_interactions(self)
7392 
7393  def do_get_contents_hash(self):
7394  r"""do_get_contents_hash(QuadContainer self) -> std::size_t"""
7395  return _IMP_kernel.QuadContainer_do_get_contents_hash(self)
7396 
7397 # Register QuadContainer in _IMP_kernel:
7398 _IMP_kernel.QuadContainer_swigregister(QuadContainer)
7399 class _QuadContainerAdaptor(_InputAdaptor):
7400  r"""Proxy of C++ IMP::QuadContainerAdaptor class."""
7401 
7402  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7403  __repr__ = _swig_repr
7404 
7405  def __init__(self, *args):
7406  r"""
7407  __init__(_QuadContainerAdaptor self) -> _QuadContainerAdaptor
7408  __init__(_QuadContainerAdaptor self, QuadContainer c) -> _QuadContainerAdaptor
7409  __init__(_QuadContainerAdaptor self, IMP::ParticleQuadsTemp const & t) -> _QuadContainerAdaptor
7410  """
7411  _IMP_kernel._QuadContainerAdaptor_swiginit(self, _IMP_kernel.new__QuadContainerAdaptor(*args))
7412 
7413  def set_name_if_default(self, name):
7414  r"""set_name_if_default(_QuadContainerAdaptor self, std::string name)"""
7415  return _IMP_kernel._QuadContainerAdaptor_set_name_if_default(self, name)
7416  __swig_destroy__ = _IMP_kernel.delete__QuadContainerAdaptor
7417 
7418 # Register _QuadContainerAdaptor in _IMP_kernel:
7419 _IMP_kernel._QuadContainerAdaptor_swigregister(_QuadContainerAdaptor)
7420 class SingletonModifier(_ParticleInputs, _ParticleOutputs, Object):
7421  r"""Proxy of C++ IMP::SingletonModifier class."""
7422 
7423  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7424 
7425  def __init__(self, *args):
7426  r"""__init__(SingletonModifier self, std::string name="SingletonModifier %1%") -> SingletonModifier"""
7427  if self.__class__ == SingletonModifier:
7428  _self = None
7429  else:
7430  _self = self
7431  _IMP_kernel.SingletonModifier_swiginit(self, _IMP_kernel.new_SingletonModifier(_self, *args))
7432 
7433  if self.__class__ != SingletonModifier:
7434  _director_objects.register(self)
7435 
7436 
7437 
7438 
7439  def apply_index(self, m, v):
7440  r"""apply_index(SingletonModifier self, Model m, ParticleIndex v)"""
7441  return _IMP_kernel.SingletonModifier_apply_index(self, m, v)
7442 
7443  def apply_indexes(self, m, o, lower_bound, upper_bound):
7444  r"""apply_indexes(SingletonModifier self, Model m, IMP::ParticleIndexes const & o, unsigned int lower_bound, unsigned int upper_bound)"""
7445  return _IMP_kernel.SingletonModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
7446 
7447  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
7448  r"""apply_indexes_moved(SingletonModifier self, Model m, IMP::ParticleIndexes const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7449  return _IMP_kernel.SingletonModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
7450 
7451  def __str__(self):
7452  r"""__str__(SingletonModifier self) -> std::string"""
7453  return _IMP_kernel.SingletonModifier___str__(self)
7454 
7455  def __repr__(self):
7456  r"""__repr__(SingletonModifier self) -> std::string"""
7457  return _IMP_kernel.SingletonModifier___repr__(self)
7458 
7459  @staticmethod
7460  def get_from(o):
7461  return _object_cast_to_SingletonModifier(o)
7462 
7463 
7464  def do_show(self, out):
7465  pass
7466 
7467  @staticmethod
7468  def get_from(o):
7469  return _object_cast_to_SingletonModifier(o)
7470 
7471 
7472  def _wrap_jax(self, apply_func, keys=None):
7473  from IMP._jax_util import JAXModifierInfo
7474  return JAXModifierInfo(apply_func=apply_func, keys=keys)
7475 
7476  def _get_jax(self, m, index=None):
7477  raise NotImplementedError(f"No JAX implementation for {self}")
7478 
7479  __swig_destroy__ = _IMP_kernel.delete_SingletonModifier
7480  def __disown__(self):
7481  self.this.disown()
7482  _IMP_kernel.disown_SingletonModifier(self)
7483  return weakref.proxy(self)
7484 
7485  def do_get_inputs(self, m, pis):
7486  r"""do_get_inputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7487  return _IMP_kernel.SingletonModifier_do_get_inputs(self, m, pis)
7488 
7489  def do_get_outputs(self, m, pis):
7490  r"""do_get_outputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7491  return _IMP_kernel.SingletonModifier_do_get_outputs(self, m, pis)
7492 
7493  def do_destroy(self):
7494  r"""do_destroy(SingletonModifier self)"""
7495  return _IMP_kernel.SingletonModifier_do_destroy(self)
7496 
7497 # Register SingletonModifier in _IMP_kernel:
7498 _IMP_kernel.SingletonModifier_swigregister(SingletonModifier)
7499 class SingletonScore(_ParticleInputs, Object):
7500  r"""Proxy of C++ IMP::SingletonScore class."""
7501 
7502  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7503 
7504  def __init__(self, *args):
7505  r"""__init__(SingletonScore self, std::string name="SingletonScore %1%") -> SingletonScore"""
7506  if self.__class__ == SingletonScore:
7507  _self = None
7508  else:
7509  _self = self
7510  _IMP_kernel.SingletonScore_swiginit(self, _IMP_kernel.new_SingletonScore(_self, *args))
7511 
7512  if self.__class__ != SingletonScore:
7513  _director_objects.register(self)
7514 
7515 
7516 
7517 
7518  def evaluate_index(self, m, vt, da):
7519  r"""evaluate_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da) -> double"""
7520  return _IMP_kernel.SingletonScore_evaluate_index(self, m, vt, da)
7521 
7522  def check_indexes(self, m, pis):
7523  r"""check_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
7524  return _IMP_kernel.SingletonScore_check_indexes(self, m, pis)
7525 
7526  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
7527  r"""evaluate_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7528  return _IMP_kernel.SingletonScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
7529 
7530  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7531  r"""evaluate_indexes_scores(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7532  return _IMP_kernel.SingletonScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
7533 
7534  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
7535  r"""evaluate_indexes_delta(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7536  return _IMP_kernel.SingletonScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
7537 
7538  def evaluate_if_good_index(self, m, vt, da, max):
7539  r"""evaluate_if_good_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da, double max) -> double"""
7540  return _IMP_kernel.SingletonScore_evaluate_if_good_index(self, m, vt, da, max)
7541 
7542  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7543  r"""evaluate_if_good_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7544  return _IMP_kernel.SingletonScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
7545 
7546  def create_current_decomposition(self, m, vt):
7547  r"""create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
7548  return _IMP_kernel.SingletonScore_create_current_decomposition(self, m, vt)
7549 
7550  def do_create_current_decomposition(self, m, vt):
7551  r"""do_create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
7552  return _IMP_kernel.SingletonScore_do_create_current_decomposition(self, m, vt)
7553  __swig_destroy__ = _IMP_kernel.delete_SingletonScore
7554 
7555  def __str__(self):
7556  r"""__str__(SingletonScore self) -> std::string"""
7557  return _IMP_kernel.SingletonScore___str__(self)
7558 
7559  def __repr__(self):
7560  r"""__repr__(SingletonScore self) -> std::string"""
7561  return _IMP_kernel.SingletonScore___repr__(self)
7562 
7563  @staticmethod
7564  def get_from(o):
7565  return _object_cast_to_SingletonScore(o)
7566 
7567 
7568  def do_show(self, out):
7569  pass
7570 
7571  @staticmethod
7572  def get_from(o):
7573  return _object_cast_to_SingletonScore(o)
7574 
7575 
7576  def _wrap_jax(self, score_func, keys=None):
7577  """See IMP::PairScore::_wrap_jax"""
7578  from IMP._jax_util import JAXScoreInfo
7579  return JAXScoreInfo(score_func=score_func, keys=keys)
7580 
7581  def _get_jax(self):
7582  """See IMP::PairScore::_get_jax"""
7583  raise NotImplementedError(f"No JAX implementation for {self}")
7584 
7585  def __disown__(self):
7586  self.this.disown()
7587  _IMP_kernel.disown_SingletonScore(self)
7588  return weakref.proxy(self)
7589 
7590  def do_get_inputs(self, m, pis):
7591  r"""do_get_inputs(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7592  return _IMP_kernel.SingletonScore_do_get_inputs(self, m, pis)
7593 
7594  def do_destroy(self):
7595  r"""do_destroy(SingletonScore self)"""
7596  return _IMP_kernel.SingletonScore_do_destroy(self)
7597 
7598 # Register SingletonScore in _IMP_kernel:
7599 _IMP_kernel.SingletonScore_swigregister(SingletonScore)
7600 class SingletonPredicate(_ParticleInputs, Object):
7601  r"""Proxy of C++ IMP::SingletonPredicate class."""
7602 
7603  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7604 
7605  def __init__(self, *args):
7606  r"""__init__(SingletonPredicate self, std::string name="SingletonPredicate %1%") -> SingletonPredicate"""
7607  if self.__class__ == SingletonPredicate:
7608  _self = None
7609  else:
7610  _self = self
7611  _IMP_kernel.SingletonPredicate_swiginit(self, _IMP_kernel.new_SingletonPredicate(_self, *args))
7612 
7613  if self.__class__ != SingletonPredicate:
7614  _director_objects.register(self)
7615 
7616 
7617 
7618 
7619  def setup_for_get_value_index_in_batch(self, arg0):
7620  r"""setup_for_get_value_index_in_batch(SingletonPredicate self, Model arg0)"""
7621  return _IMP_kernel.SingletonPredicate_setup_for_get_value_index_in_batch(self, arg0)
7622 
7623  def get_value_index_in_batch(self, m, vt):
7624  r"""get_value_index_in_batch(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
7625  return _IMP_kernel.SingletonPredicate_get_value_index_in_batch(self, m, vt)
7626 
7627  def __call__(self, m, vt):
7628  r"""__call__(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
7629  return _IMP_kernel.SingletonPredicate___call__(self, m, vt)
7630 
7631  def get_value_index(self, *args):
7632  r"""
7633  get_value_index(SingletonPredicate self, Model m, ParticleIndex vt) -> int
7634  get_value_index(SingletonPredicate self, Model m, IMP::ParticleIndexes const & o) -> IMP::Ints
7635  """
7636  return _IMP_kernel.SingletonPredicate_get_value_index(self, *args)
7637  __swig_destroy__ = _IMP_kernel.delete_SingletonPredicate
7638 
7639  def __str__(self):
7640  r"""__str__(SingletonPredicate self) -> std::string"""
7641  return _IMP_kernel.SingletonPredicate___str__(self)
7642 
7643  def __repr__(self):
7644  r"""__repr__(SingletonPredicate self) -> std::string"""
7645  return _IMP_kernel.SingletonPredicate___repr__(self)
7646 
7647  @staticmethod
7648  def get_from(o):
7649  return _object_cast_to_SingletonPredicate(o)
7650 
7651 
7652  def do_show(self, out):
7653  pass
7654 
7655  @staticmethod
7656  def get_from(o):
7657  return _object_cast_to_SingletonPredicate(o)
7658 
7659  def __disown__(self):
7660  self.this.disown()
7661  _IMP_kernel.disown_SingletonPredicate(self)
7662  return weakref.proxy(self)
7663 
7664  def do_get_inputs(self, m, pis):
7665  r"""do_get_inputs(SingletonPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7666  return _IMP_kernel.SingletonPredicate_do_get_inputs(self, m, pis)
7667 
7668  def do_destroy(self):
7669  r"""do_destroy(SingletonPredicate self)"""
7670  return _IMP_kernel.SingletonPredicate_do_destroy(self)
7671 
7672 # Register SingletonPredicate in _IMP_kernel:
7673 _IMP_kernel.SingletonPredicate_swigregister(SingletonPredicate)
7675  r"""Proxy of C++ IMP::SingletonContainer class."""
7676 
7677  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7678 
7679  def apply_generic(self, m):
7680  r"""apply_generic(SingletonContainer self, SingletonModifier m)"""
7681  return _IMP_kernel.SingletonContainer_apply_generic(self, m)
7682 
7683  def apply_generic_moved(self, m, moved_pis, reset_pis):
7684  r"""apply_generic_moved(SingletonContainer self, SingletonModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7685  return _IMP_kernel.SingletonContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
7686 
7687  def apply(self, sm):
7688  r"""apply(SingletonContainer self, SingletonModifier sm)"""
7689  return _IMP_kernel.SingletonContainer_apply(self, sm)
7690 
7691  def apply_moved(self, sm, moved_pis, reset_pis):
7692  r"""apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7693  return _IMP_kernel.SingletonContainer_apply_moved(self, sm, moved_pis, reset_pis)
7694 
7695  def get_range_indexes(self):
7696  r"""get_range_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
7697  return _IMP_kernel.SingletonContainer_get_range_indexes(self)
7698 
7699  def get_contents(self):
7700  r"""get_contents(SingletonContainer self) -> IMP::ParticleIndexes const &"""
7701  return _IMP_kernel.SingletonContainer_get_contents(self)
7702 
7703  def get_indexes(self):
7704  r"""get_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
7705  return _IMP_kernel.SingletonContainer_get_indexes(self)
7706 
7707  def get(self, *args):
7708  r"""
7709  get(SingletonContainer self) -> IMP::ParticlesTemp
7710  get(SingletonContainer self, unsigned int i) -> Particle
7711  """
7712  return _IMP_kernel.SingletonContainer_get(self, *args)
7713 
7714  def get_number(self):
7715  r"""get_number(SingletonContainer self) -> unsigned int"""
7716  return _IMP_kernel.SingletonContainer_get_number(self)
7717 
7718  def __init__(self, *args):
7719  r"""
7720  __init__(SingletonContainer self, Model m, std::string name="SingletonContainer %1%") -> SingletonContainer
7721  __init__(SingletonContainer self) -> SingletonContainer
7722  """
7723  if self.__class__ == SingletonContainer:
7724  _self = None
7725  else:
7726  _self = self
7727  _IMP_kernel.SingletonContainer_swiginit(self, _IMP_kernel.new_SingletonContainer(_self, *args))
7728 
7729  if self.__class__ != SingletonContainer:
7730  _director_objects.register(self)
7731 
7732 
7733 
7734 
7735  def do_apply(self, sm):
7736  r"""do_apply(SingletonContainer self, SingletonModifier sm)"""
7737  return _IMP_kernel.SingletonContainer_do_apply(self, sm)
7738 
7739  def do_apply_moved(self, sm, moved_pis, reset_pis):
7740  r"""do_apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7741  return _IMP_kernel.SingletonContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
7742 
7743  def do_get_provides_access(self):
7744  r"""do_get_provides_access(SingletonContainer self) -> bool"""
7745  return _IMP_kernel.SingletonContainer_do_get_provides_access(self)
7746  __swig_destroy__ = _IMP_kernel.delete_SingletonContainer
7747 
7748  def __str__(self):
7749  r"""__str__(SingletonContainer self) -> std::string"""
7750  return _IMP_kernel.SingletonContainer___str__(self)
7751 
7752  def __repr__(self):
7753  r"""__repr__(SingletonContainer self) -> std::string"""
7754  return _IMP_kernel.SingletonContainer___repr__(self)
7755 
7756  @staticmethod
7757  def get_from(o):
7758  return _object_cast_to_SingletonContainer(o)
7759 
7760 
7761  def do_show(self, out):
7762  pass
7763 
7764  @staticmethod
7765  def get_from(o):
7766  return _object_cast_to_SingletonContainer(o)
7767 
7768  def __disown__(self):
7769  self.this.disown()
7770  _IMP_kernel.disown_SingletonContainer(self)
7771  return weakref.proxy(self)
7772 
7773  def do_destroy(self):
7774  r"""do_destroy(SingletonContainer self)"""
7775  return _IMP_kernel.SingletonContainer_do_destroy(self)
7776 
7777  def handle_set_has_required_score_states(self, arg0):
7778  r"""handle_set_has_required_score_states(SingletonContainer self, bool arg0)"""
7779  return _IMP_kernel.SingletonContainer_handle_set_has_required_score_states(self, arg0)
7780 
7781  def do_get_inputs(self):
7782  r"""do_get_inputs(SingletonContainer self) -> IMP::ModelObjectsTemp"""
7783  return _IMP_kernel.SingletonContainer_do_get_inputs(self)
7784 
7785  def do_get_interactions(self):
7786  r"""do_get_interactions(SingletonContainer self) -> IMP::ModelObjectsTemps"""
7787  return _IMP_kernel.SingletonContainer_do_get_interactions(self)
7788 
7789  def do_get_contents_hash(self):
7790  r"""do_get_contents_hash(SingletonContainer self) -> std::size_t"""
7791  return _IMP_kernel.SingletonContainer_do_get_contents_hash(self)
7792 
7793 # Register SingletonContainer in _IMP_kernel:
7794 _IMP_kernel.SingletonContainer_swigregister(SingletonContainer)
7795 class _SingletonContainerAdaptor(_InputAdaptor):
7796  r"""Proxy of C++ IMP::SingletonContainerAdaptor class."""
7797 
7798  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7799  __repr__ = _swig_repr
7800 
7801  def __init__(self, *args):
7802  r"""
7803  __init__(_SingletonContainerAdaptor self) -> _SingletonContainerAdaptor
7804  __init__(_SingletonContainerAdaptor self, SingletonContainer c) -> _SingletonContainerAdaptor
7805  __init__(_SingletonContainerAdaptor self, IMP::ParticlesTemp const & t) -> _SingletonContainerAdaptor
7806  """
7807  _IMP_kernel._SingletonContainerAdaptor_swiginit(self, _IMP_kernel.new__SingletonContainerAdaptor(*args))
7808 
7809  def set_name_if_default(self, name):
7810  r"""set_name_if_default(_SingletonContainerAdaptor self, std::string name)"""
7811  return _IMP_kernel._SingletonContainerAdaptor_set_name_if_default(self, name)
7812  __swig_destroy__ = _IMP_kernel.delete__SingletonContainerAdaptor
7813 
7814 # Register _SingletonContainerAdaptor in _IMP_kernel:
7815 _IMP_kernel._SingletonContainerAdaptor_swigregister(_SingletonContainerAdaptor)
7816 class TripletModifier(_ParticleInputs, _ParticleOutputs, Object):
7817  r"""Proxy of C++ IMP::TripletModifier class."""
7818 
7819  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7820 
7821  def __init__(self, *args):
7822  r"""__init__(TripletModifier self, std::string name="TripletModifier %1%") -> TripletModifier"""
7823  if self.__class__ == TripletModifier:
7824  _self = None
7825  else:
7826  _self = self
7827  _IMP_kernel.TripletModifier_swiginit(self, _IMP_kernel.new_TripletModifier(_self, *args))
7828 
7829  if self.__class__ != TripletModifier:
7830  _director_objects.register(self)
7831 
7832 
7833 
7834 
7835  def apply_index(self, m, v):
7836  r"""apply_index(TripletModifier self, Model m, IMP::ParticleIndexTriplet const & v)"""
7837  return _IMP_kernel.TripletModifier_apply_index(self, m, v)
7838 
7839  def apply_indexes(self, m, o, lower_bound, upper_bound):
7840  r"""apply_indexes(TripletModifier self, Model m, IMP::ParticleIndexTriplets const & o, unsigned int lower_bound, unsigned int upper_bound)"""
7841  return _IMP_kernel.TripletModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
7842 
7843  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
7844  r"""apply_indexes_moved(TripletModifier self, Model m, IMP::ParticleIndexTriplets const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7845  return _IMP_kernel.TripletModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
7846 
7847  def __str__(self):
7848  r"""__str__(TripletModifier self) -> std::string"""
7849  return _IMP_kernel.TripletModifier___str__(self)
7850 
7851  def __repr__(self):
7852  r"""__repr__(TripletModifier self) -> std::string"""
7853  return _IMP_kernel.TripletModifier___repr__(self)
7854 
7855  @staticmethod
7856  def get_from(o):
7857  return _object_cast_to_TripletModifier(o)
7858 
7859 
7860  def do_show(self, out):
7861  pass
7862 
7863  @staticmethod
7864  def get_from(o):
7865  return _object_cast_to_TripletModifier(o)
7866 
7867  __swig_destroy__ = _IMP_kernel.delete_TripletModifier
7868  def __disown__(self):
7869  self.this.disown()
7870  _IMP_kernel.disown_TripletModifier(self)
7871  return weakref.proxy(self)
7872 
7873  def do_get_inputs(self, m, pis):
7874  r"""do_get_inputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7875  return _IMP_kernel.TripletModifier_do_get_inputs(self, m, pis)
7876 
7877  def do_get_outputs(self, m, pis):
7878  r"""do_get_outputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7879  return _IMP_kernel.TripletModifier_do_get_outputs(self, m, pis)
7880 
7881  def do_destroy(self):
7882  r"""do_destroy(TripletModifier self)"""
7883  return _IMP_kernel.TripletModifier_do_destroy(self)
7884 
7885 # Register TripletModifier in _IMP_kernel:
7886 _IMP_kernel.TripletModifier_swigregister(TripletModifier)
7887 class TripletScore(_ParticleInputs, Object):
7888  r"""Proxy of C++ IMP::TripletScore class."""
7889 
7890  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7891 
7892  def __init__(self, *args):
7893  r"""__init__(TripletScore self, std::string name="TripletScore %1%") -> TripletScore"""
7894  if self.__class__ == TripletScore:
7895  _self = None
7896  else:
7897  _self = self
7898  _IMP_kernel.TripletScore_swiginit(self, _IMP_kernel.new_TripletScore(_self, *args))
7899 
7900  if self.__class__ != TripletScore:
7901  _director_objects.register(self)
7902 
7903 
7904 
7905 
7906  def evaluate_index(self, m, vt, da):
7907  r"""evaluate_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da) -> double"""
7908  return _IMP_kernel.TripletScore_evaluate_index(self, m, vt, da)
7909 
7910  def check_indexes(self, m, pis):
7911  r"""check_indexes(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
7912  return _IMP_kernel.TripletScore_check_indexes(self, m, pis)
7913 
7914  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
7915  r"""evaluate_indexes(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7916  return _IMP_kernel.TripletScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
7917 
7918  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7919  r"""evaluate_indexes_scores(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7920  return _IMP_kernel.TripletScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
7921 
7922  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
7923  r"""evaluate_indexes_delta(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7924  return _IMP_kernel.TripletScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
7925 
7926  def evaluate_if_good_index(self, m, vt, da, max):
7927  r"""evaluate_if_good_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da, double max) -> double"""
7928  return _IMP_kernel.TripletScore_evaluate_if_good_index(self, m, vt, da, max)
7929 
7930  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7931  r"""evaluate_if_good_indexes(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7932  return _IMP_kernel.TripletScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
7933 
7934  def create_current_decomposition(self, m, vt):
7935  r"""create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
7936  return _IMP_kernel.TripletScore_create_current_decomposition(self, m, vt)
7937 
7938  def do_create_current_decomposition(self, m, vt):
7939  r"""do_create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
7940  return _IMP_kernel.TripletScore_do_create_current_decomposition(self, m, vt)
7941  __swig_destroy__ = _IMP_kernel.delete_TripletScore
7942 
7943  def __str__(self):
7944  r"""__str__(TripletScore self) -> std::string"""
7945  return _IMP_kernel.TripletScore___str__(self)
7946 
7947  def __repr__(self):
7948  r"""__repr__(TripletScore self) -> std::string"""
7949  return _IMP_kernel.TripletScore___repr__(self)
7950 
7951  @staticmethod
7952  def get_from(o):
7953  return _object_cast_to_TripletScore(o)
7954 
7955 
7956  def do_show(self, out):
7957  pass
7958 
7959  @staticmethod
7960  def get_from(o):
7961  return _object_cast_to_TripletScore(o)
7962 
7963  def __disown__(self):
7964  self.this.disown()
7965  _IMP_kernel.disown_TripletScore(self)
7966  return weakref.proxy(self)
7967 
7968  def do_get_inputs(self, m, pis):
7969  r"""do_get_inputs(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7970  return _IMP_kernel.TripletScore_do_get_inputs(self, m, pis)
7971 
7972  def do_destroy(self):
7973  r"""do_destroy(TripletScore self)"""
7974  return _IMP_kernel.TripletScore_do_destroy(self)
7975 
7976 # Register TripletScore in _IMP_kernel:
7977 _IMP_kernel.TripletScore_swigregister(TripletScore)
7978 class TripletPredicate(_ParticleInputs, Object):
7979  r"""Proxy of C++ IMP::TripletPredicate class."""
7980 
7981  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7982 
7983  def __init__(self, *args):
7984  r"""__init__(TripletPredicate self, std::string name="TripletPredicate %1%") -> TripletPredicate"""
7985  if self.__class__ == TripletPredicate:
7986  _self = None
7987  else:
7988  _self = self
7989  _IMP_kernel.TripletPredicate_swiginit(self, _IMP_kernel.new_TripletPredicate(_self, *args))
7990 
7991  if self.__class__ != TripletPredicate:
7992  _director_objects.register(self)
7993 
7994 
7995 
7996 
7997  def setup_for_get_value_index_in_batch(self, arg0):
7998  r"""setup_for_get_value_index_in_batch(TripletPredicate self, Model arg0)"""
7999  return _IMP_kernel.TripletPredicate_setup_for_get_value_index_in_batch(self, arg0)
8000 
8001  def get_value_index_in_batch(self, m, vt):
8002  r"""get_value_index_in_batch(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
8003  return _IMP_kernel.TripletPredicate_get_value_index_in_batch(self, m, vt)
8004 
8005  def __call__(self, m, vt):
8006  r"""__call__(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
8007  return _IMP_kernel.TripletPredicate___call__(self, m, vt)
8008 
8009  def get_value_index(self, *args):
8010  r"""
8011  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int
8012  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplets const & o) -> IMP::Ints
8013  """
8014  return _IMP_kernel.TripletPredicate_get_value_index(self, *args)
8015  __swig_destroy__ = _IMP_kernel.delete_TripletPredicate
8016 
8017  def __str__(self):
8018  r"""__str__(TripletPredicate self) -> std::string"""
8019  return _IMP_kernel.TripletPredicate___str__(self)
8020 
8021  def __repr__(self):
8022  r"""__repr__(TripletPredicate self) -> std::string"""
8023  return _IMP_kernel.TripletPredicate___repr__(self)
8024 
8025  @staticmethod
8026  def get_from(o):
8027  return _object_cast_to_TripletPredicate(o)
8028 
8029 
8030  def do_show(self, out):
8031  pass
8032 
8033  @staticmethod
8034  def get_from(o):
8035  return _object_cast_to_TripletPredicate(o)
8036 
8037  def __disown__(self):
8038  self.this.disown()
8039  _IMP_kernel.disown_TripletPredicate(self)
8040  return weakref.proxy(self)
8041 
8042  def do_get_inputs(self, m, pis):
8043  r"""do_get_inputs(TripletPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8044  return _IMP_kernel.TripletPredicate_do_get_inputs(self, m, pis)
8045 
8046  def do_destroy(self):
8047  r"""do_destroy(TripletPredicate self)"""
8048  return _IMP_kernel.TripletPredicate_do_destroy(self)
8049 
8050 # Register TripletPredicate in _IMP_kernel:
8051 _IMP_kernel.TripletPredicate_swigregister(TripletPredicate)
8053  r"""Proxy of C++ IMP::TripletContainer class."""
8054 
8055  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8056 
8057  def apply_generic(self, m):
8058  r"""apply_generic(TripletContainer self, TripletModifier m)"""
8059  return _IMP_kernel.TripletContainer_apply_generic(self, m)
8060 
8061  def apply_generic_moved(self, m, moved_pis, reset_pis):
8062  r"""apply_generic_moved(TripletContainer self, TripletModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8063  return _IMP_kernel.TripletContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8064 
8065  def apply(self, sm):
8066  r"""apply(TripletContainer self, TripletModifier sm)"""
8067  return _IMP_kernel.TripletContainer_apply(self, sm)
8068 
8069  def apply_moved(self, sm, moved_pis, reset_pis):
8070  r"""apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8071  return _IMP_kernel.TripletContainer_apply_moved(self, sm, moved_pis, reset_pis)
8072 
8073  def get_range_indexes(self):
8074  r"""get_range_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
8075  return _IMP_kernel.TripletContainer_get_range_indexes(self)
8076 
8077  def get_contents(self):
8078  r"""get_contents(TripletContainer self) -> IMP::ParticleIndexTriplets const &"""
8079  return _IMP_kernel.TripletContainer_get_contents(self)
8080 
8081  def get_indexes(self):
8082  r"""get_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
8083  return _IMP_kernel.TripletContainer_get_indexes(self)
8084 
8085  def get(self, *args):
8086  r"""
8087  get(TripletContainer self) -> IMP::ParticleTripletsTemp
8088  get(TripletContainer self, unsigned int i) -> IMP::ParticleTriplet
8089  """
8090  return _IMP_kernel.TripletContainer_get(self, *args)
8091 
8092  def get_number(self):
8093  r"""get_number(TripletContainer self) -> unsigned int"""
8094  return _IMP_kernel.TripletContainer_get_number(self)
8095 
8096  def __init__(self, *args):
8097  r"""
8098  __init__(TripletContainer self, Model m, std::string name="TripletContainer %1%") -> TripletContainer
8099  __init__(TripletContainer self) -> TripletContainer
8100  """
8101  if self.__class__ == TripletContainer:
8102  _self = None
8103  else:
8104  _self = self
8105  _IMP_kernel.TripletContainer_swiginit(self, _IMP_kernel.new_TripletContainer(_self, *args))
8106 
8107  if self.__class__ != TripletContainer:
8108  _director_objects.register(self)
8109 
8110 
8111 
8112 
8113  def do_apply(self, sm):
8114  r"""do_apply(TripletContainer self, TripletModifier sm)"""
8115  return _IMP_kernel.TripletContainer_do_apply(self, sm)
8116 
8117  def do_apply_moved(self, sm, moved_pis, reset_pis):
8118  r"""do_apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8119  return _IMP_kernel.TripletContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8120 
8121  def do_get_provides_access(self):
8122  r"""do_get_provides_access(TripletContainer self) -> bool"""
8123  return _IMP_kernel.TripletContainer_do_get_provides_access(self)
8124  __swig_destroy__ = _IMP_kernel.delete_TripletContainer
8125 
8126  def __str__(self):
8127  r"""__str__(TripletContainer self) -> std::string"""
8128  return _IMP_kernel.TripletContainer___str__(self)
8129 
8130  def __repr__(self):
8131  r"""__repr__(TripletContainer self) -> std::string"""
8132  return _IMP_kernel.TripletContainer___repr__(self)
8133 
8134  @staticmethod
8135  def get_from(o):
8136  return _object_cast_to_TripletContainer(o)
8137 
8138 
8139  def do_show(self, out):
8140  pass
8141 
8142  @staticmethod
8143  def get_from(o):
8144  return _object_cast_to_TripletContainer(o)
8145 
8146  def __disown__(self):
8147  self.this.disown()
8148  _IMP_kernel.disown_TripletContainer(self)
8149  return weakref.proxy(self)
8150 
8151  def do_destroy(self):
8152  r"""do_destroy(TripletContainer self)"""
8153  return _IMP_kernel.TripletContainer_do_destroy(self)
8154 
8155  def handle_set_has_required_score_states(self, arg0):
8156  r"""handle_set_has_required_score_states(TripletContainer self, bool arg0)"""
8157  return _IMP_kernel.TripletContainer_handle_set_has_required_score_states(self, arg0)
8158 
8159  def do_get_inputs(self):
8160  r"""do_get_inputs(TripletContainer self) -> IMP::ModelObjectsTemp"""
8161  return _IMP_kernel.TripletContainer_do_get_inputs(self)
8162 
8163  def do_get_interactions(self):
8164  r"""do_get_interactions(TripletContainer self) -> IMP::ModelObjectsTemps"""
8165  return _IMP_kernel.TripletContainer_do_get_interactions(self)
8166 
8167  def do_get_contents_hash(self):
8168  r"""do_get_contents_hash(TripletContainer self) -> std::size_t"""
8169  return _IMP_kernel.TripletContainer_do_get_contents_hash(self)
8170 
8171 # Register TripletContainer in _IMP_kernel:
8172 _IMP_kernel.TripletContainer_swigregister(TripletContainer)
8173 class _TripletContainerAdaptor(_InputAdaptor):
8174  r"""Proxy of C++ IMP::TripletContainerAdaptor class."""
8175 
8176  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8177  __repr__ = _swig_repr
8178 
8179  def __init__(self, *args):
8180  r"""
8181  __init__(_TripletContainerAdaptor self) -> _TripletContainerAdaptor
8182  __init__(_TripletContainerAdaptor self, TripletContainer c) -> _TripletContainerAdaptor
8183  __init__(_TripletContainerAdaptor self, IMP::ParticleTripletsTemp const & t) -> _TripletContainerAdaptor
8184  """
8185  _IMP_kernel._TripletContainerAdaptor_swiginit(self, _IMP_kernel.new__TripletContainerAdaptor(*args))
8186 
8187  def set_name_if_default(self, name):
8188  r"""set_name_if_default(_TripletContainerAdaptor self, std::string name)"""
8189  return _IMP_kernel._TripletContainerAdaptor_set_name_if_default(self, name)
8190  __swig_destroy__ = _IMP_kernel.delete__TripletContainerAdaptor
8191 
8192 # Register _TripletContainerAdaptor in _IMP_kernel:
8193 _IMP_kernel._TripletContainerAdaptor_swigregister(_TripletContainerAdaptor)
8194 
8195 def write_particles_to_buffer(particles, keys):
8196  r"""write_particles_to_buffer(IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys) -> IMP::Vector< char,std::allocator< char > >"""
8197  return _IMP_kernel.write_particles_to_buffer(particles, keys)
8198 
8199 def read_particles_from_buffer(buffer, particles, keys):
8200  r"""read_particles_from_buffer(IMP::Vector< char,std::allocator< char > > const & buffer, IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys)"""
8201  return _IMP_kernel.read_particles_from_buffer(buffer, particles, keys)
8202 
8203 def get_particles(m, ps):
8204  r"""get_particles(Model m, IMP::ParticleIndexes const & ps) -> IMP::ParticlesTemp"""
8205  return _IMP_kernel.get_particles(m, ps)
8206 
8207 def get_indexes(*args):
8208  r"""
8209  get_indexes(IMP::ParticlesTemp const & ps) -> IMP::ParticleIndexes
8210  get_indexes(IMP::ParticlePairsTemp const & ps) -> IMP::ParticleIndexPairs
8211  """
8212  return _IMP_kernel.get_indexes(*args)
8213 class _ParticleIndexAdaptor(object):
8214  r"""Proxy of C++ IMP::ParticleIndexAdaptor class."""
8215 
8216  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8217  __repr__ = _swig_repr
8218 
8219  def __init__(self, *args):
8220  r"""
8221  __init__(_ParticleIndexAdaptor self, Particle p) -> _ParticleIndexAdaptor
8222  __init__(_ParticleIndexAdaptor self, ParticleIndex pi) -> _ParticleIndexAdaptor
8223  __init__(_ParticleIndexAdaptor self, Decorator d) -> _ParticleIndexAdaptor
8224  """
8225  _IMP_kernel._ParticleIndexAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexAdaptor(*args))
8226  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexAdaptor
8227 
8228 # Register _ParticleIndexAdaptor in _IMP_kernel:
8229 _IMP_kernel._ParticleIndexAdaptor_swigregister(_ParticleIndexAdaptor)
8230 class _ParticleIndexesAdaptor(_InputAdaptor):
8231  r"""Proxy of C++ IMP::ParticleIndexesAdaptor class."""
8232 
8233  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8234  __repr__ = _swig_repr
8235 
8236  def __init__(self, *args):
8237  r"""
8238  __init__(_ParticleIndexesAdaptor self, IMP::ParticlesTemp const & ps) -> _ParticleIndexesAdaptor
8239  __init__(_ParticleIndexesAdaptor self, IMP::ParticleIndexes const & pi) -> _ParticleIndexesAdaptor
8240  __init__(_ParticleIndexesAdaptor self) -> _ParticleIndexesAdaptor
8241  """
8242  _IMP_kernel._ParticleIndexesAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexesAdaptor(*args))
8243  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexesAdaptor
8244 
8245 # Register _ParticleIndexesAdaptor in _IMP_kernel:
8246 _IMP_kernel._ParticleIndexesAdaptor_swigregister(_ParticleIndexesAdaptor)
8247 class _ParticleIndexPairsAdaptor(object):
8248  r"""Proxy of C++ IMP::ParticleIndexPairsAdaptor class."""
8249 
8250  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8251  __repr__ = _swig_repr
8252 
8253  def __init__(self, *args):
8254  r"""
8255  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticlePairsTemp const & ps) -> _ParticleIndexPairsAdaptor
8256  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticleIndexPairs const & pi) -> _ParticleIndexPairsAdaptor
8257  __init__(_ParticleIndexPairsAdaptor self) -> _ParticleIndexPairsAdaptor
8258  """
8259  _IMP_kernel._ParticleIndexPairsAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexPairsAdaptor(*args))
8260  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexPairsAdaptor
8261 
8262 # Register _ParticleIndexPairsAdaptor in _IMP_kernel:
8263 _IMP_kernel._ParticleIndexPairsAdaptor_swigregister(_ParticleIndexPairsAdaptor)
8264 class _ConstRestraint(Restraint):
8265  r"""Proxy of C++ IMP::internal::_ConstRestraint class."""
8266 
8267  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8268 
8269  def __init__(self, *args):
8270  r"""
8271  __init__(_ConstRestraint self, Model m, IMP::ParticleIndexes const & pis, double v) -> _ConstRestraint
8272  __init__(_ConstRestraint self) -> _ConstRestraint
8273  """
8274  _IMP_kernel._ConstRestraint_swiginit(self, _IMP_kernel.new__ConstRestraint(*args))
8275 
8276  def get_value(self):
8277  r"""get_value(_ConstRestraint self) -> double"""
8278  return _IMP_kernel._ConstRestraint_get_value(self)
8279 
8280  def do_create_decomposition(self):
8281  r"""do_create_decomposition(_ConstRestraint self) -> IMP::Restraints"""
8282  return _IMP_kernel._ConstRestraint_do_create_decomposition(self)
8283 
8284  def do_get_inputs(self):
8285  r"""do_get_inputs(_ConstRestraint self) -> IMP::ModelObjectsTemp"""
8286  return _IMP_kernel._ConstRestraint_do_get_inputs(self)
8287 
8288  def get_version_info(self):
8289  r"""get_version_info(_ConstRestraint self) -> VersionInfo"""
8290  return _IMP_kernel._ConstRestraint_get_version_info(self)
8291  __swig_destroy__ = _IMP_kernel.delete__ConstRestraint
8292 
8293  def __str__(self):
8294  r"""__str__(_ConstRestraint self) -> std::string"""
8295  return _IMP_kernel._ConstRestraint___str__(self)
8296 
8297  def __repr__(self):
8298  r"""__repr__(_ConstRestraint self) -> std::string"""
8299  return _IMP_kernel._ConstRestraint___repr__(self)
8300 
8301  @staticmethod
8302  def get_from(o):
8303  return _object_cast_to__ConstRestraint(o)
8304 
8305 
8306  def _get_as_binary(self):
8307  r"""_get_as_binary(_ConstRestraint self) -> PyObject *"""
8308  return _IMP_kernel._ConstRestraint__get_as_binary(self)
8309 
8310  def _set_from_binary(self, p):
8311  r"""_set_from_binary(_ConstRestraint self, PyObject * p)"""
8312  return _IMP_kernel._ConstRestraint__set_from_binary(self, p)
8313 
8314  def __getstate__(self):
8315  p = self._get_as_binary()
8316  if len(self.__dict__) > 1:
8317  d = self.__dict__.copy()
8318  del d['this']
8319  p = (d, p)
8320  return p
8321 
8322  def __setstate__(self, p):
8323  if not hasattr(self, 'this'):
8324  self.__init__()
8325  if isinstance(p, tuple):
8326  d, p = p
8327  self.__dict__.update(d)
8328  return self._set_from_binary(p)
8329 
8330 
8331  def _get_jax(self):
8332  value = self.get_value()
8333  # We always return `value` regardless of the JAX Model
8334  return self._wrap_jax(lambda jm: value)
8335 
8336 
8337 # Register _ConstRestraint in _IMP_kernel:
8338 _IMP_kernel._ConstRestraint_swigregister(_ConstRestraint)
8339 class _ConstSingletonScore(SingletonScore):
8340  r"""Proxy of C++ IMP::internal::_ConstSingletonScore class."""
8341 
8342  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8343 
8344  def __init__(self, *args):
8345  r"""
8346  __init__(_ConstSingletonScore self, double v) -> _ConstSingletonScore
8347  __init__(_ConstSingletonScore self) -> _ConstSingletonScore
8348  """
8349  _IMP_kernel._ConstSingletonScore_swiginit(self, _IMP_kernel.new__ConstSingletonScore(*args))
8350 
8351  def get_value(self):
8352  r"""get_value(_ConstSingletonScore self) -> double"""
8353  return _IMP_kernel._ConstSingletonScore_get_value(self)
8354 
8355  def do_get_inputs(self, arg2, arg3):
8356  r"""do_get_inputs(_ConstSingletonScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
8357  return _IMP_kernel._ConstSingletonScore_do_get_inputs(self, arg2, arg3)
8358 
8359  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
8360  r"""evaluate_indexes(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8361  return _IMP_kernel._ConstSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
8362 
8363  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8364  r"""evaluate_indexes_scores(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8365  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
8366 
8367  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
8368  r"""evaluate_indexes_delta(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8369  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
8370 
8371  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8372  r"""evaluate_if_good_indexes(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8373  return _IMP_kernel._ConstSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
8374 
8375  def get_version_info(self):
8376  r"""get_version_info(_ConstSingletonScore self) -> VersionInfo"""
8377  return _IMP_kernel._ConstSingletonScore_get_version_info(self)
8378  __swig_destroy__ = _IMP_kernel.delete__ConstSingletonScore
8379 
8380  def __str__(self):
8381  r"""__str__(_ConstSingletonScore self) -> std::string"""
8382  return _IMP_kernel._ConstSingletonScore___str__(self)
8383 
8384  def __repr__(self):
8385  r"""__repr__(_ConstSingletonScore self) -> std::string"""
8386  return _IMP_kernel._ConstSingletonScore___repr__(self)
8387 
8388  @staticmethod
8389  def get_from(o):
8390  return _object_cast_to__ConstSingletonScore(o)
8391 
8392 
8393  def _get_as_binary(self):
8394  r"""_get_as_binary(_ConstSingletonScore self) -> PyObject *"""
8395  return _IMP_kernel._ConstSingletonScore__get_as_binary(self)
8396 
8397  def _set_from_binary(self, p):
8398  r"""_set_from_binary(_ConstSingletonScore self, PyObject * p)"""
8399  return _IMP_kernel._ConstSingletonScore__set_from_binary(self, p)
8400 
8401  def __getstate__(self):
8402  p = self._get_as_binary()
8403  if len(self.__dict__) > 1:
8404  d = self.__dict__.copy()
8405  del d['this']
8406  p = (d, p)
8407  return p
8408 
8409  def __setstate__(self, p):
8410  if not hasattr(self, 'this'):
8411  self.__init__()
8412  if isinstance(p, tuple):
8413  d, p = p
8414  self.__dict__.update(d)
8415  return self._set_from_binary(p)
8416 
8417 
8418  def _get_jax(self):
8419  value = self.get_value()
8420  # We always return `value` regardless of the JAX Model or indexes
8421  return self._wrap_jax(lambda jm, indexes: value)
8422 
8423 
8424 # Register _ConstSingletonScore in _IMP_kernel:
8425 _IMP_kernel._ConstSingletonScore_swigregister(_ConstSingletonScore)
8426 class _ConstPairScore(PairScore):
8427  r"""Proxy of C++ IMP::internal::_ConstPairScore class."""
8428 
8429  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8430 
8431  def __init__(self, *args):
8432  r"""
8433  __init__(_ConstPairScore self, double v) -> _ConstPairScore
8434  __init__(_ConstPairScore self) -> _ConstPairScore
8435  """
8436  _IMP_kernel._ConstPairScore_swiginit(self, _IMP_kernel.new__ConstPairScore(*args))
8437 
8438  def get_value(self):
8439  r"""get_value(_ConstPairScore self) -> double"""
8440  return _IMP_kernel._ConstPairScore_get_value(self)
8441 
8442  def do_get_inputs(self, arg2, arg3):
8443  r"""do_get_inputs(_ConstPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
8444  return _IMP_kernel._ConstPairScore_do_get_inputs(self, arg2, arg3)
8445 
8446  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
8447  r"""evaluate_indexes(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8448  return _IMP_kernel._ConstPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
8449 
8450  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8451  r"""evaluate_indexes_scores(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8452  return _IMP_kernel._ConstPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
8453 
8454  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
8455  r"""evaluate_indexes_delta(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8456  return _IMP_kernel._ConstPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
8457 
8458  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8459  r"""evaluate_if_good_indexes(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8460  return _IMP_kernel._ConstPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
8461 
8462  def get_version_info(self):
8463  r"""get_version_info(_ConstPairScore self) -> VersionInfo"""
8464  return _IMP_kernel._ConstPairScore_get_version_info(self)
8465  __swig_destroy__ = _IMP_kernel.delete__ConstPairScore
8466 
8467  def __str__(self):
8468  r"""__str__(_ConstPairScore self) -> std::string"""
8469  return _IMP_kernel._ConstPairScore___str__(self)
8470 
8471  def __repr__(self):
8472  r"""__repr__(_ConstPairScore self) -> std::string"""
8473  return _IMP_kernel._ConstPairScore___repr__(self)
8474 
8475  @staticmethod
8476  def get_from(o):
8477  return _object_cast_to__ConstPairScore(o)
8478 
8479 
8480  def _get_as_binary(self):
8481  r"""_get_as_binary(_ConstPairScore self) -> PyObject *"""
8482  return _IMP_kernel._ConstPairScore__get_as_binary(self)
8483 
8484  def _set_from_binary(self, p):
8485  r"""_set_from_binary(_ConstPairScore self, PyObject * p)"""
8486  return _IMP_kernel._ConstPairScore__set_from_binary(self, p)
8487 
8488  def __getstate__(self):
8489  p = self._get_as_binary()
8490  if len(self.__dict__) > 1:
8491  d = self.__dict__.copy()
8492  del d['this']
8493  p = (d, p)
8494  return p
8495 
8496  def __setstate__(self, p):
8497  if not hasattr(self, 'this'):
8498  self.__init__()
8499  if isinstance(p, tuple):
8500  d, p = p
8501  self.__dict__.update(d)
8502  return self._set_from_binary(p)
8503 
8504 
8505  def _get_jax(self):
8506  value = self.get_value()
8507  # We always return `value` regardless of the JAX Model or indexes
8508  return self._wrap_jax(lambda jm, indexes: value)
8509 
8510 
8511 # Register _ConstPairScore in _IMP_kernel:
8512 _IMP_kernel._ConstPairScore_swigregister(_ConstPairScore)
8513 class _TrivialDecorator(Decorator):
8514  r"""Proxy of C++ IMP::internal::_TrivialDecorator class."""
8515 
8516  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8517 
8518  def __init__(self, *args):
8519  r"""
8520  __init__(_TrivialDecorator self) -> _TrivialDecorator
8521  __init__(_TrivialDecorator self, Model m, ParticleIndex id) -> _TrivialDecorator
8522  __init__(_TrivialDecorator self, _ParticleAdaptor d) -> _TrivialDecorator
8523  """
8524  _IMP_kernel._TrivialDecorator_swiginit(self, _IMP_kernel.new__TrivialDecorator(*args))
8525 
8526  def show(self, *args):
8527  r"""show(_TrivialDecorator self, _ostream out=std::cout)"""
8528  return _IMP_kernel._TrivialDecorator_show(self, *args)
8529 
8530  @staticmethod
8531  def setup_particle(*args):
8532  r"""
8533  setup_particle(Model m, ParticleIndex pi) -> _TrivialDecorator
8534  setup_particle(_ParticleAdaptor pa) -> _TrivialDecorator
8535  """
8536  return _IMP_kernel._TrivialDecorator_setup_particle(*args)
8537 
8538  @staticmethod
8539  def get_is_setup(*args):
8540  r"""
8541  get_is_setup(_ParticleAdaptor p) -> bool
8542  get_is_setup(Model m, ParticleIndex pi) -> bool
8543  """
8544  return _IMP_kernel._TrivialDecorator_get_is_setup(*args)
8545 
8546  def add_attribute(self, *args):
8547  r"""
8548  add_attribute(_TrivialDecorator self, FloatKey k, IMP::Float v, bool opt)
8549  add_attribute(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
8550  add_attribute(_TrivialDecorator self, IntKey a0, IMP::Int a1)
8551  add_attribute(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
8552  add_attribute(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
8553  add_attribute(_TrivialDecorator self, StringKey a0, IMP::String a1)
8554  add_attribute(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
8555  add_attribute(_TrivialDecorator self, ObjectKey a0, Object a1)
8556  add_attribute(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
8557  add_attribute(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
8558  add_attribute(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
8559  add_attribute(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
8560  """
8561  return _IMP_kernel._TrivialDecorator_add_attribute(self, *args)
8562 
8563  def get_value(self, *args):
8564  r"""
8565  get_value(_TrivialDecorator self, FloatKey a0) -> IMP::Float
8566  get_value(_TrivialDecorator self, IntKey a0) -> IMP::Int
8567  get_value(_TrivialDecorator self, FloatsKey a0) -> IMP::Floats
8568  get_value(_TrivialDecorator self, IntsKey a0) -> IMP::Ints
8569  get_value(_TrivialDecorator self, StringKey a0) -> IMP::String
8570  get_value(_TrivialDecorator self, ParticleIndexKey a0) -> Particle
8571  get_value(_TrivialDecorator self, ObjectKey a0) -> Object
8572  get_value(_TrivialDecorator self, SparseFloatKey a0) -> IMP::Float
8573  get_value(_TrivialDecorator self, SparseIntKey a0) -> IMP::Int
8574  get_value(_TrivialDecorator self, SparseStringKey a0) -> IMP::String
8575  get_value(_TrivialDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
8576  """
8577  return _IMP_kernel._TrivialDecorator_get_value(self, *args)
8578 
8579  def set_value(self, *args):
8580  r"""
8581  set_value(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
8582  set_value(_TrivialDecorator self, IntKey a0, IMP::Int a1)
8583  set_value(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
8584  set_value(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
8585  set_value(_TrivialDecorator self, StringKey a0, IMP::String a1)
8586  set_value(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
8587  set_value(_TrivialDecorator self, ObjectKey a0, Object a1)
8588  set_value(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
8589  set_value(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
8590  set_value(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
8591  set_value(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
8592  """
8593  return _IMP_kernel._TrivialDecorator_set_value(self, *args)
8594 
8595  def remove_attribute(self, *args):
8596  r"""
8597  remove_attribute(_TrivialDecorator self, FloatKey a0)
8598  remove_attribute(_TrivialDecorator self, IntKey a0)
8599  remove_attribute(_TrivialDecorator self, FloatsKey a0)
8600  remove_attribute(_TrivialDecorator self, IntsKey a0)
8601  remove_attribute(_TrivialDecorator self, StringKey a0)
8602  remove_attribute(_TrivialDecorator self, ParticleIndexKey a0)
8603  remove_attribute(_TrivialDecorator self, ObjectKey a0)
8604  remove_attribute(_TrivialDecorator self, SparseFloatKey a0)
8605  remove_attribute(_TrivialDecorator self, SparseIntKey a0)
8606  remove_attribute(_TrivialDecorator self, SparseStringKey a0)
8607  remove_attribute(_TrivialDecorator self, SparseParticleIndexKey a0)
8608  """
8609  return _IMP_kernel._TrivialDecorator_remove_attribute(self, *args)
8610 
8611  def has_attribute(self, *args):
8612  r"""
8613  has_attribute(_TrivialDecorator self, FloatKey a0) -> bool
8614  has_attribute(_TrivialDecorator self, IntKey a0) -> bool
8615  has_attribute(_TrivialDecorator self, FloatsKey a0) -> bool
8616  has_attribute(_TrivialDecorator self, IntsKey a0) -> bool
8617  has_attribute(_TrivialDecorator self, StringKey a0) -> bool
8618  has_attribute(_TrivialDecorator self, ParticleIndexKey a0) -> bool
8619  has_attribute(_TrivialDecorator self, ObjectKey a0) -> bool
8620  has_attribute(_TrivialDecorator self, SparseFloatKey a0) -> bool
8621  has_attribute(_TrivialDecorator self, SparseIntKey a0) -> bool
8622  has_attribute(_TrivialDecorator self, SparseStringKey a0) -> bool
8623  has_attribute(_TrivialDecorator self, SparseParticleIndexKey a0) -> bool
8624  """
8625  return _IMP_kernel._TrivialDecorator_has_attribute(self, *args)
8626 
8627  def get_derivative(self, a0):
8628  r"""get_derivative(_TrivialDecorator self, FloatKey a0) -> double"""
8629  return _IMP_kernel._TrivialDecorator_get_derivative(self, a0)
8630 
8631  def get_name(self):
8632  r"""get_name(_TrivialDecorator self) -> std::string"""
8633  return _IMP_kernel._TrivialDecorator_get_name(self)
8634 
8635  def clear_caches(self):
8636  r"""clear_caches(_TrivialDecorator self)"""
8637  return _IMP_kernel._TrivialDecorator_clear_caches(self)
8638 
8639  def set_name(self, a0):
8640  r"""set_name(_TrivialDecorator self, std::string a0)"""
8641  return _IMP_kernel._TrivialDecorator_set_name(self, a0)
8642 
8643  def set_check_level(self, a0):
8644  r"""set_check_level(_TrivialDecorator self, IMP::CheckLevel a0)"""
8645  return _IMP_kernel._TrivialDecorator_set_check_level(self, a0)
8646 
8647  def add_to_derivative(self, a0, a1, a2):
8648  r"""add_to_derivative(_TrivialDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
8649  return _IMP_kernel._TrivialDecorator_add_to_derivative(self, a0, a1, a2)
8650 
8651  def set_is_optimized(self, a0, a1):
8652  r"""set_is_optimized(_TrivialDecorator self, FloatKey a0, bool a1)"""
8653  return _IMP_kernel._TrivialDecorator_set_is_optimized(self, a0, a1)
8654 
8655  def get_is_optimized(self, a0):
8656  r"""get_is_optimized(_TrivialDecorator self, FloatKey a0) -> bool"""
8657  return _IMP_kernel._TrivialDecorator_get_is_optimized(self, a0)
8658 
8659  def get_check_level(self):
8660  r"""get_check_level(_TrivialDecorator self) -> IMP::CheckLevel"""
8661  return _IMP_kernel._TrivialDecorator_get_check_level(self)
8662 
8663  def __eq__(self, *args):
8664  r"""
8665  __eq__(_TrivialDecorator self, _TrivialDecorator o) -> bool
8666  __eq__(_TrivialDecorator self, Particle d) -> bool
8667  """
8668  return _IMP_kernel._TrivialDecorator___eq__(self, *args)
8669 
8670  def __ne__(self, *args):
8671  r"""
8672  __ne__(_TrivialDecorator self, _TrivialDecorator o) -> bool
8673  __ne__(_TrivialDecorator self, Particle d) -> bool
8674  """
8675  return _IMP_kernel._TrivialDecorator___ne__(self, *args)
8676 
8677  def __le__(self, *args):
8678  r"""
8679  __le__(_TrivialDecorator self, _TrivialDecorator o) -> bool
8680  __le__(_TrivialDecorator self, Particle d) -> bool
8681  """
8682  return _IMP_kernel._TrivialDecorator___le__(self, *args)
8683 
8684  def __lt__(self, *args):
8685  r"""
8686  __lt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
8687  __lt__(_TrivialDecorator self, Particle d) -> bool
8688  """
8689  return _IMP_kernel._TrivialDecorator___lt__(self, *args)
8690 
8691  def __ge__(self, *args):
8692  r"""
8693  __ge__(_TrivialDecorator self, _TrivialDecorator o) -> bool
8694  __ge__(_TrivialDecorator self, Particle d) -> bool
8695  """
8696  return _IMP_kernel._TrivialDecorator___ge__(self, *args)
8697 
8698  def __gt__(self, *args):
8699  r"""
8700  __gt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
8701  __gt__(_TrivialDecorator self, Particle d) -> bool
8702  """
8703  return _IMP_kernel._TrivialDecorator___gt__(self, *args)
8704 
8705  def __hash__(self):
8706  r"""__hash__(_TrivialDecorator self) -> std::size_t"""
8707  return _IMP_kernel._TrivialDecorator___hash__(self)
8708 
8709  def __str__(self):
8710  r"""__str__(_TrivialDecorator self) -> std::string"""
8711  return _IMP_kernel._TrivialDecorator___str__(self)
8712 
8713  def __repr__(self):
8714  r"""__repr__(_TrivialDecorator self) -> std::string"""
8715  return _IMP_kernel._TrivialDecorator___repr__(self)
8716 
8717  def _get_as_binary(self):
8718  r"""_get_as_binary(_TrivialDecorator self) -> PyObject *"""
8719  return _IMP_kernel._TrivialDecorator__get_as_binary(self)
8720 
8721  def _set_from_binary(self, p):
8722  r"""_set_from_binary(_TrivialDecorator self, PyObject * p)"""
8723  return _IMP_kernel._TrivialDecorator__set_from_binary(self, p)
8724 
8725  def __getstate__(self):
8726  p = self._get_as_binary()
8727  if len(self.__dict__) > 1:
8728  d = self.__dict__.copy()
8729  del d['this']
8730  p = (d, p)
8731  return p
8732 
8733  def __setstate__(self, p):
8734  if not hasattr(self, 'this'):
8735  self.__init__()
8736  if isinstance(p, tuple):
8737  d, p = p
8738  self.__dict__.update(d)
8739  return self._set_from_binary(p)
8740 
8741  __swig_destroy__ = _IMP_kernel.delete__TrivialDecorator
8742 
8743 # Register _TrivialDecorator in _IMP_kernel:
8744 _IMP_kernel._TrivialDecorator_swigregister(_TrivialDecorator)
8745 class _TrivialDerivedDecorator(_TrivialDecorator):
8746  r"""Proxy of C++ IMP::internal::_TrivialDerivedDecorator class."""
8747 
8748  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8749 
8750  def __init__(self, *args):
8751  r"""
8752  __init__(_TrivialDerivedDecorator self) -> _TrivialDerivedDecorator
8753  __init__(_TrivialDerivedDecorator self, Model m, ParticleIndex id) -> _TrivialDerivedDecorator
8754  __init__(_TrivialDerivedDecorator self, _ParticleAdaptor d) -> _TrivialDerivedDecorator
8755  """
8756  _IMP_kernel._TrivialDerivedDecorator_swiginit(self, _IMP_kernel.new__TrivialDerivedDecorator(*args))
8757 
8758  def show(self, *args):
8759  r"""show(_TrivialDerivedDecorator self, _ostream out=std::cout)"""
8760  return _IMP_kernel._TrivialDerivedDecorator_show(self, *args)
8761 
8762  @staticmethod
8763  def setup_particle(*args):
8764  r"""
8765  setup_particle(Model m, ParticleIndex pi) -> _TrivialDerivedDecorator
8766  setup_particle(_ParticleAdaptor pa) -> _TrivialDerivedDecorator
8767  """
8768  return _IMP_kernel._TrivialDerivedDecorator_setup_particle(*args)
8769 
8770  @staticmethod
8771  def get_is_setup(*args):
8772  r"""
8773  get_is_setup(_ParticleAdaptor p) -> bool
8774  get_is_setup(Model m, ParticleIndex pi) -> bool
8775  """
8776  return _IMP_kernel._TrivialDerivedDecorator_get_is_setup(*args)
8777 
8778  def add_attribute(self, *args):
8779  r"""
8780  add_attribute(_TrivialDerivedDecorator self, FloatKey k, IMP::Float v, bool opt)
8781  add_attribute(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
8782  add_attribute(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
8783  add_attribute(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
8784  add_attribute(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
8785  add_attribute(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
8786  add_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
8787  add_attribute(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
8788  add_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
8789  add_attribute(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
8790  add_attribute(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
8791  add_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
8792  """
8793  return _IMP_kernel._TrivialDerivedDecorator_add_attribute(self, *args)
8794 
8795  def get_value(self, *args):
8796  r"""
8797  get_value(_TrivialDerivedDecorator self, FloatKey a0) -> IMP::Float
8798  get_value(_TrivialDerivedDecorator self, IntKey a0) -> IMP::Int
8799  get_value(_TrivialDerivedDecorator self, FloatsKey a0) -> IMP::Floats
8800  get_value(_TrivialDerivedDecorator self, IntsKey a0) -> IMP::Ints
8801  get_value(_TrivialDerivedDecorator self, StringKey a0) -> IMP::String
8802  get_value(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> Particle
8803  get_value(_TrivialDerivedDecorator self, ObjectKey a0) -> Object
8804  get_value(_TrivialDerivedDecorator self, SparseFloatKey a0) -> IMP::Float
8805  get_value(_TrivialDerivedDecorator self, SparseIntKey a0) -> IMP::Int
8806  get_value(_TrivialDerivedDecorator self, SparseStringKey a0) -> IMP::String
8807  get_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
8808  """
8809  return _IMP_kernel._TrivialDerivedDecorator_get_value(self, *args)
8810 
8811  def set_value(self, *args):
8812  r"""
8813  set_value(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
8814  set_value(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
8815  set_value(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
8816  set_value(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
8817  set_value(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
8818  set_value(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
8819  set_value(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
8820  set_value(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
8821  set_value(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
8822  set_value(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
8823  set_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
8824  """
8825  return _IMP_kernel._TrivialDerivedDecorator_set_value(self, *args)
8826 
8827  def remove_attribute(self, *args):
8828  r"""
8829  remove_attribute(_TrivialDerivedDecorator self, FloatKey a0)
8830  remove_attribute(_TrivialDerivedDecorator self, IntKey a0)
8831  remove_attribute(_TrivialDerivedDecorator self, FloatsKey a0)
8832  remove_attribute(_TrivialDerivedDecorator self, IntsKey a0)
8833  remove_attribute(_TrivialDerivedDecorator self, StringKey a0)
8834  remove_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0)
8835  remove_attribute(_TrivialDerivedDecorator self, ObjectKey a0)
8836  remove_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0)
8837  remove_attribute(_TrivialDerivedDecorator self, SparseIntKey a0)
8838  remove_attribute(_TrivialDerivedDecorator self, SparseStringKey a0)
8839  remove_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0)
8840  """
8841  return _IMP_kernel._TrivialDerivedDecorator_remove_attribute(self, *args)
8842 
8843  def has_attribute(self, *args):
8844  r"""
8845  has_attribute(_TrivialDerivedDecorator self, FloatKey a0) -> bool
8846  has_attribute(_TrivialDerivedDecorator self, IntKey a0) -> bool
8847  has_attribute(_TrivialDerivedDecorator self, FloatsKey a0) -> bool
8848  has_attribute(_TrivialDerivedDecorator self, IntsKey a0) -> bool
8849  has_attribute(_TrivialDerivedDecorator self, StringKey a0) -> bool
8850  has_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> bool
8851  has_attribute(_TrivialDerivedDecorator self, ObjectKey a0) -> bool
8852  has_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0) -> bool
8853  has_attribute(_TrivialDerivedDecorator self, SparseIntKey a0) -> bool
8854  has_attribute(_TrivialDerivedDecorator self, SparseStringKey a0) -> bool
8855  has_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> bool
8856  """
8857  return _IMP_kernel._TrivialDerivedDecorator_has_attribute(self, *args)
8858 
8859  def get_derivative(self, a0):
8860  r"""get_derivative(_TrivialDerivedDecorator self, FloatKey a0) -> double"""
8861  return _IMP_kernel._TrivialDerivedDecorator_get_derivative(self, a0)
8862 
8863  def get_name(self):
8864  r"""get_name(_TrivialDerivedDecorator self) -> std::string"""
8865  return _IMP_kernel._TrivialDerivedDecorator_get_name(self)
8866 
8867  def clear_caches(self):
8868  r"""clear_caches(_TrivialDerivedDecorator self)"""
8869  return _IMP_kernel._TrivialDerivedDecorator_clear_caches(self)
8870 
8871  def set_name(self, a0):
8872  r"""set_name(_TrivialDerivedDecorator self, std::string a0)"""
8873  return _IMP_kernel._TrivialDerivedDecorator_set_name(self, a0)
8874 
8875  def set_check_level(self, a0):
8876  r"""set_check_level(_TrivialDerivedDecorator self, IMP::CheckLevel a0)"""
8877  return _IMP_kernel._TrivialDerivedDecorator_set_check_level(self, a0)
8878 
8879  def add_to_derivative(self, a0, a1, a2):
8880  r"""add_to_derivative(_TrivialDerivedDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
8881  return _IMP_kernel._TrivialDerivedDecorator_add_to_derivative(self, a0, a1, a2)
8882 
8883  def set_is_optimized(self, a0, a1):
8884  r"""set_is_optimized(_TrivialDerivedDecorator self, FloatKey a0, bool a1)"""
8885  return _IMP_kernel._TrivialDerivedDecorator_set_is_optimized(self, a0, a1)
8886 
8887  def get_is_optimized(self, a0):
8888  r"""get_is_optimized(_TrivialDerivedDecorator self, FloatKey a0) -> bool"""
8889  return _IMP_kernel._TrivialDerivedDecorator_get_is_optimized(self, a0)
8890 
8891  def get_check_level(self):
8892  r"""get_check_level(_TrivialDerivedDecorator self) -> IMP::CheckLevel"""
8893  return _IMP_kernel._TrivialDerivedDecorator_get_check_level(self)
8894 
8895  def __eq__(self, *args):
8896  r"""
8897  __eq__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
8898  __eq__(_TrivialDerivedDecorator self, Particle d) -> bool
8899  """
8900  return _IMP_kernel._TrivialDerivedDecorator___eq__(self, *args)
8901 
8902  def __ne__(self, *args):
8903  r"""
8904  __ne__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
8905  __ne__(_TrivialDerivedDecorator self, Particle d) -> bool
8906  """
8907  return _IMP_kernel._TrivialDerivedDecorator___ne__(self, *args)
8908 
8909  def __le__(self, *args):
8910  r"""
8911  __le__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
8912  __le__(_TrivialDerivedDecorator self, Particle d) -> bool
8913  """
8914  return _IMP_kernel._TrivialDerivedDecorator___le__(self, *args)
8915 
8916  def __lt__(self, *args):
8917  r"""
8918  __lt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
8919  __lt__(_TrivialDerivedDecorator self, Particle d) -> bool
8920  """
8921  return _IMP_kernel._TrivialDerivedDecorator___lt__(self, *args)
8922 
8923  def __ge__(self, *args):
8924  r"""
8925  __ge__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
8926  __ge__(_TrivialDerivedDecorator self, Particle d) -> bool
8927  """
8928  return _IMP_kernel._TrivialDerivedDecorator___ge__(self, *args)
8929 
8930  def __gt__(self, *args):
8931  r"""
8932  __gt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
8933  __gt__(_TrivialDerivedDecorator self, Particle d) -> bool
8934  """
8935  return _IMP_kernel._TrivialDerivedDecorator___gt__(self, *args)
8936 
8937  def __hash__(self):
8938  r"""__hash__(_TrivialDerivedDecorator self) -> std::size_t"""
8939  return _IMP_kernel._TrivialDerivedDecorator___hash__(self)
8940 
8941  def __str__(self):
8942  r"""__str__(_TrivialDerivedDecorator self) -> std::string"""
8943  return _IMP_kernel._TrivialDerivedDecorator___str__(self)
8944 
8945  def __repr__(self):
8946  r"""__repr__(_TrivialDerivedDecorator self) -> std::string"""
8947  return _IMP_kernel._TrivialDerivedDecorator___repr__(self)
8948 
8949  def _get_as_binary(self):
8950  r"""_get_as_binary(_TrivialDerivedDecorator self) -> PyObject *"""
8951  return _IMP_kernel._TrivialDerivedDecorator__get_as_binary(self)
8952 
8953  def _set_from_binary(self, p):
8954  r"""_set_from_binary(_TrivialDerivedDecorator self, PyObject * p)"""
8955  return _IMP_kernel._TrivialDerivedDecorator__set_from_binary(self, p)
8956 
8957  def __getstate__(self):
8958  p = self._get_as_binary()
8959  if len(self.__dict__) > 1:
8960  d = self.__dict__.copy()
8961  del d['this']
8962  p = (d, p)
8963  return p
8964 
8965  def __setstate__(self, p):
8966  if not hasattr(self, 'this'):
8967  self.__init__()
8968  if isinstance(p, tuple):
8969  d, p = p
8970  self.__dict__.update(d)
8971  return self._set_from_binary(p)
8972 
8973  __swig_destroy__ = _IMP_kernel.delete__TrivialDerivedDecorator
8974 
8975 # Register _TrivialDerivedDecorator in _IMP_kernel:
8976 _IMP_kernel._TrivialDerivedDecorator_swigregister(_TrivialDerivedDecorator)
8977 class _TrivialTraitsDecorator(Decorator):
8978  r"""Proxy of C++ IMP::internal::_TrivialTraitsDecorator class."""
8979 
8980  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8981 
8982  def get_decorator_traits(self):
8983  r"""get_decorator_traits(_TrivialTraitsDecorator self) -> StringKey"""
8984  return _IMP_kernel._TrivialTraitsDecorator_get_decorator_traits(self)
8985 
8986  @staticmethod
8987  def get_default_decorator_traits():
8988  r"""get_default_decorator_traits() -> StringKey"""
8989  return _IMP_kernel._TrivialTraitsDecorator_get_default_decorator_traits()
8990 
8991  def __init__(self, *args):
8992  r"""
8993  __init__(_TrivialTraitsDecorator self) -> _TrivialTraitsDecorator
8994  __init__(_TrivialTraitsDecorator self, Model m, ParticleIndex id, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
8995  __init__(_TrivialTraitsDecorator self, _ParticleAdaptor d, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
8996  """
8997  _IMP_kernel._TrivialTraitsDecorator_swiginit(self, _IMP_kernel.new__TrivialTraitsDecorator(*args))
8998 
8999  def show(self, *args):
9000  r"""show(_TrivialTraitsDecorator self, _ostream out=std::cout)"""
9001  return _IMP_kernel._TrivialTraitsDecorator_show(self, *args)
9002 
9003  @staticmethod
9004  def setup_particle(*args):
9005  r"""
9006  setup_particle(Model m, ParticleIndex pi, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
9007  setup_particle(_ParticleAdaptor d, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
9008  """
9009  return _IMP_kernel._TrivialTraitsDecorator_setup_particle(*args)
9010 
9011  @staticmethod
9012  def get_is_setup(*args):
9013  r"""
9014  get_is_setup(_ParticleAdaptor p, StringKey tr=get_default_key()) -> bool
9015  get_is_setup(Model m, ParticleIndex pi, StringKey k=get_default_key()) -> bool
9016  """
9017  return _IMP_kernel._TrivialTraitsDecorator_get_is_setup(*args)
9018 
9019  @staticmethod
9020  def get_default_key():
9021  r"""get_default_key() -> StringKey"""
9022  return _IMP_kernel._TrivialTraitsDecorator_get_default_key()
9023 
9024  def add_attribute(self, *args):
9025  r"""
9026  add_attribute(_TrivialTraitsDecorator self, FloatKey k, IMP::Float v, bool opt)
9027  add_attribute(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
9028  add_attribute(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
9029  add_attribute(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
9030  add_attribute(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
9031  add_attribute(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
9032  add_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
9033  add_attribute(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
9034  add_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
9035  add_attribute(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
9036  add_attribute(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
9037  add_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9038  """
9039  return _IMP_kernel._TrivialTraitsDecorator_add_attribute(self, *args)
9040 
9041  def get_value(self, *args):
9042  r"""
9043  get_value(_TrivialTraitsDecorator self, FloatKey a0) -> IMP::Float
9044  get_value(_TrivialTraitsDecorator self, IntKey a0) -> IMP::Int
9045  get_value(_TrivialTraitsDecorator self, FloatsKey a0) -> IMP::Floats
9046  get_value(_TrivialTraitsDecorator self, IntsKey a0) -> IMP::Ints
9047  get_value(_TrivialTraitsDecorator self, StringKey a0) -> IMP::String
9048  get_value(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> Particle
9049  get_value(_TrivialTraitsDecorator self, ObjectKey a0) -> Object
9050  get_value(_TrivialTraitsDecorator self, SparseFloatKey a0) -> IMP::Float
9051  get_value(_TrivialTraitsDecorator self, SparseIntKey a0) -> IMP::Int
9052  get_value(_TrivialTraitsDecorator self, SparseStringKey a0) -> IMP::String
9053  get_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9054  """
9055  return _IMP_kernel._TrivialTraitsDecorator_get_value(self, *args)
9056 
9057  def set_value(self, *args):
9058  r"""
9059  set_value(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
9060  set_value(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
9061  set_value(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
9062  set_value(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
9063  set_value(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
9064  set_value(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
9065  set_value(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
9066  set_value(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
9067  set_value(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
9068  set_value(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
9069  set_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9070  """
9071  return _IMP_kernel._TrivialTraitsDecorator_set_value(self, *args)
9072 
9073  def remove_attribute(self, *args):
9074  r"""
9075  remove_attribute(_TrivialTraitsDecorator self, FloatKey a0)
9076  remove_attribute(_TrivialTraitsDecorator self, IntKey a0)
9077  remove_attribute(_TrivialTraitsDecorator self, FloatsKey a0)
9078  remove_attribute(_TrivialTraitsDecorator self, IntsKey a0)
9079  remove_attribute(_TrivialTraitsDecorator self, StringKey a0)
9080  remove_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0)
9081  remove_attribute(_TrivialTraitsDecorator self, ObjectKey a0)
9082  remove_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0)
9083  remove_attribute(_TrivialTraitsDecorator self, SparseIntKey a0)
9084  remove_attribute(_TrivialTraitsDecorator self, SparseStringKey a0)
9085  remove_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0)
9086  """
9087  return _IMP_kernel._TrivialTraitsDecorator_remove_attribute(self, *args)
9088 
9089  def has_attribute(self, *args):
9090  r"""
9091  has_attribute(_TrivialTraitsDecorator self, FloatKey a0) -> bool
9092  has_attribute(_TrivialTraitsDecorator self, IntKey a0) -> bool
9093  has_attribute(_TrivialTraitsDecorator self, FloatsKey a0) -> bool
9094  has_attribute(_TrivialTraitsDecorator self, IntsKey a0) -> bool
9095  has_attribute(_TrivialTraitsDecorator self, StringKey a0) -> bool
9096  has_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> bool
9097  has_attribute(_TrivialTraitsDecorator self, ObjectKey a0) -> bool
9098  has_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0) -> bool
9099  has_attribute(_TrivialTraitsDecorator self, SparseIntKey a0) -> bool
9100  has_attribute(_TrivialTraitsDecorator self, SparseStringKey a0) -> bool
9101  has_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> bool
9102  """
9103  return _IMP_kernel._TrivialTraitsDecorator_has_attribute(self, *args)
9104 
9105  def get_derivative(self, a0):
9106  r"""get_derivative(_TrivialTraitsDecorator self, FloatKey a0) -> double"""
9107  return _IMP_kernel._TrivialTraitsDecorator_get_derivative(self, a0)
9108 
9109  def get_name(self):
9110  r"""get_name(_TrivialTraitsDecorator self) -> std::string"""
9111  return _IMP_kernel._TrivialTraitsDecorator_get_name(self)
9112 
9113  def clear_caches(self):
9114  r"""clear_caches(_TrivialTraitsDecorator self)"""
9115  return _IMP_kernel._TrivialTraitsDecorator_clear_caches(self)
9116 
9117  def set_name(self, a0):
9118  r"""set_name(_TrivialTraitsDecorator self, std::string a0)"""
9119  return _IMP_kernel._TrivialTraitsDecorator_set_name(self, a0)
9120 
9121  def set_check_level(self, a0):
9122  r"""set_check_level(_TrivialTraitsDecorator self, IMP::CheckLevel a0)"""
9123  return _IMP_kernel._TrivialTraitsDecorator_set_check_level(self, a0)
9124 
9125  def add_to_derivative(self, a0, a1, a2):
9126  r"""add_to_derivative(_TrivialTraitsDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9127  return _IMP_kernel._TrivialTraitsDecorator_add_to_derivative(self, a0, a1, a2)
9128 
9129  def set_is_optimized(self, a0, a1):
9130  r"""set_is_optimized(_TrivialTraitsDecorator self, FloatKey a0, bool a1)"""
9131  return _IMP_kernel._TrivialTraitsDecorator_set_is_optimized(self, a0, a1)
9132 
9133  def get_is_optimized(self, a0):
9134  r"""get_is_optimized(_TrivialTraitsDecorator self, FloatKey a0) -> bool"""
9135  return _IMP_kernel._TrivialTraitsDecorator_get_is_optimized(self, a0)
9136 
9137  def get_check_level(self):
9138  r"""get_check_level(_TrivialTraitsDecorator self) -> IMP::CheckLevel"""
9139  return _IMP_kernel._TrivialTraitsDecorator_get_check_level(self)
9140 
9141  def __eq__(self, *args):
9142  r"""
9143  __eq__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
9144  __eq__(_TrivialTraitsDecorator self, Particle d) -> bool
9145  """
9146  return _IMP_kernel._TrivialTraitsDecorator___eq__(self, *args)
9147 
9148  def __ne__(self, *args):
9149  r"""
9150  __ne__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
9151  __ne__(_TrivialTraitsDecorator self, Particle d) -> bool
9152  """
9153  return _IMP_kernel._TrivialTraitsDecorator___ne__(self, *args)
9154 
9155  def __le__(self, *args):
9156  r"""
9157  __le__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
9158  __le__(_TrivialTraitsDecorator self, Particle d) -> bool
9159  """
9160  return _IMP_kernel._TrivialTraitsDecorator___le__(self, *args)
9161 
9162  def __lt__(self, *args):
9163  r"""
9164  __lt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
9165  __lt__(_TrivialTraitsDecorator self, Particle d) -> bool
9166  """
9167  return _IMP_kernel._TrivialTraitsDecorator___lt__(self, *args)
9168 
9169  def __ge__(self, *args):
9170  r"""
9171  __ge__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
9172  __ge__(_TrivialTraitsDecorator self, Particle d) -> bool
9173  """
9174  return _IMP_kernel._TrivialTraitsDecorator___ge__(self, *args)
9175 
9176  def __gt__(self, *args):
9177  r"""
9178  __gt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
9179  __gt__(_TrivialTraitsDecorator self, Particle d) -> bool
9180  """
9181  return _IMP_kernel._TrivialTraitsDecorator___gt__(self, *args)
9182 
9183  def __hash__(self):
9184  r"""__hash__(_TrivialTraitsDecorator self) -> std::size_t"""
9185  return _IMP_kernel._TrivialTraitsDecorator___hash__(self)
9186 
9187  def __str__(self):
9188  r"""__str__(_TrivialTraitsDecorator self) -> std::string"""
9189  return _IMP_kernel._TrivialTraitsDecorator___str__(self)
9190 
9191  def __repr__(self):
9192  r"""__repr__(_TrivialTraitsDecorator self) -> std::string"""
9193  return _IMP_kernel._TrivialTraitsDecorator___repr__(self)
9194  __swig_destroy__ = _IMP_kernel.delete__TrivialTraitsDecorator
9195 
9196 # Register _TrivialTraitsDecorator in _IMP_kernel:
9197 _IMP_kernel._TrivialTraitsDecorator_swigregister(_TrivialTraitsDecorator)
9198 
9199 def __lshift__(*args):
9200  r"""
9201  __lshift__(_ostream out, _TrivialDecorator n) -> _ostream
9202  __lshift__(_ostream out, _TrivialDerivedDecorator n) -> _ostream
9203  __lshift__(_ostream out, _TrivialTraitsDecorator n) -> _ostream
9204  """
9205  return _IMP_kernel.__lshift__(*args)
9206 class _ConstOptimizer(Optimizer):
9207  r"""Proxy of C++ IMP::internal::_ConstOptimizer class."""
9208 
9209  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9210 
9211  def __init__(self, *args):
9212  r"""
9213  __init__(_ConstOptimizer self, Model m) -> _ConstOptimizer
9214  __init__(_ConstOptimizer self) -> _ConstOptimizer
9215  """
9216  _IMP_kernel._ConstOptimizer_swiginit(self, _IMP_kernel.new__ConstOptimizer(*args))
9217 
9218  def do_optimize(self, max_steps):
9219  r"""do_optimize(_ConstOptimizer self, unsigned int max_steps) -> IMP::Float"""
9220  return _IMP_kernel._ConstOptimizer_do_optimize(self, max_steps)
9221 
9222  def get_version_info(self):
9223  r"""get_version_info(_ConstOptimizer self) -> VersionInfo"""
9224  return _IMP_kernel._ConstOptimizer_get_version_info(self)
9225  __swig_destroy__ = _IMP_kernel.delete__ConstOptimizer
9226 
9227  def __str__(self):
9228  r"""__str__(_ConstOptimizer self) -> std::string"""
9229  return _IMP_kernel._ConstOptimizer___str__(self)
9230 
9231  def __repr__(self):
9232  r"""__repr__(_ConstOptimizer self) -> std::string"""
9233  return _IMP_kernel._ConstOptimizer___repr__(self)
9234 
9235  @staticmethod
9236  def get_from(o):
9237  return _object_cast_to__ConstOptimizer(o)
9238 
9239 
9240  def _get_as_binary(self):
9241  r"""_get_as_binary(_ConstOptimizer self) -> PyObject *"""
9242  return _IMP_kernel._ConstOptimizer__get_as_binary(self)
9243 
9244  def _set_from_binary(self, p):
9245  r"""_set_from_binary(_ConstOptimizer self, PyObject * p)"""
9246  return _IMP_kernel._ConstOptimizer__set_from_binary(self, p)
9247 
9248  def __getstate__(self):
9249  p = self._get_as_binary()
9250  if len(self.__dict__) > 1:
9251  d = self.__dict__.copy()
9252  del d['this']
9253  p = (d, p)
9254  return p
9255 
9256  def __setstate__(self, p):
9257  if not hasattr(self, 'this'):
9258  self.__init__()
9259  if isinstance(p, tuple):
9260  d, p = p
9261  self.__dict__.update(d)
9262  return self._set_from_binary(p)
9263 
9264 
9265 # Register _ConstOptimizer in _IMP_kernel:
9266 _IMP_kernel._ConstOptimizer_swigregister(_ConstOptimizer)
9267 
9268 def get_particle(p):
9269  r"""get_particle(Particle p) -> Particle"""
9270  return _IMP_kernel.get_particle(p)
9271 
9272 def _decorator_test(p):
9273  r"""_decorator_test(Particle p)"""
9274  return _IMP_kernel._decorator_test(p)
9275 
9276 def _overloaded_decorator(*args):
9277  r"""
9278  _overloaded_decorator(_TrivialDecorator a) -> int
9279  _overloaded_decorator(_TrivialDerivedDecorator a) -> int
9280  """
9281  return _IMP_kernel._overloaded_decorator(*args)
9282 
9283 def _take_particles(*args):
9284  r"""
9285  _take_particles(IMP::Particles const & ps) -> unsigned int
9286  _take_particles(Model m, IMP::Particles const & ps) -> unsigned int
9287  _take_particles(Model m, IMP::Particles const & ps, TextOutput out) -> unsigned int
9288  """
9289  return _IMP_kernel._take_particles(*args)
9290 
9291 def _give_particles(m):
9292  r"""_give_particles(Model m) -> IMP::Particles const &"""
9293  return _IMP_kernel._give_particles(m)
9294 
9295 def _pass_particles(ps):
9296  r"""_pass_particles(IMP::Particles const & ps) -> IMP::Particles const &"""
9297  return _IMP_kernel._pass_particles(ps)
9298 
9299 def _pass_particle(ps):
9300  r"""_pass_particle(Particle ps) -> Particle"""
9301  return _IMP_kernel._pass_particle(ps)
9302 
9303 def _pass_particle_pair(pp):
9304  r"""_pass_particle_pair(IMP::ParticlePair const & pp) -> IMP::ParticlePair const &"""
9305  return _IMP_kernel._pass_particle_pair(pp)
9306 
9307 def _give_particles_copy(m):
9308  r"""_give_particles_copy(Model m) -> IMP::Particles"""
9309  return _IMP_kernel._give_particles_copy(m)
9310 
9311 def _pass_float_keys(input):
9312  r"""_pass_float_keys(IMP::FloatKeys const & input) -> IMP::FloatKeys"""
9313  return _IMP_kernel._pass_float_keys(input)
9314 
9315 def _pass(*args):
9316  r"""
9317  _pass(IMP::Particles const & p) -> IMP::Particles const
9318  _pass(IMP::Restraints const & p) -> IMP::Restraints const &
9319  """
9320  return _IMP_kernel._pass(*args)
9321 
9322 def _pass_decorators(p):
9323  r"""_pass_decorators(IMP::internal::_TrivialDecorators const & p) -> IMP::internal::_TrivialDecorators const &"""
9324  return _IMP_kernel._pass_decorators(p)
9325 
9326 def _pass_decorator_traits(p):
9327  r"""_pass_decorator_traits(IMP::internal::_TrivialTraitsDecorators const & p) -> IMP::internal::_TrivialTraitsDecorators const &"""
9328  return _IMP_kernel._pass_decorator_traits(p)
9329 
9330 def _pass_particle_pairs(p):
9331  r"""_pass_particle_pairs(IMP::ParticlePairsTemp const & p) -> IMP::ParticlePairsTemp"""
9332  return _IMP_kernel._pass_particle_pairs(p)
9333 
9334 def _pass_particle_index_pairs(p):
9335  r"""_pass_particle_index_pairs(IMP::ParticleIndexPairs const & p) -> IMP::ParticleIndexPairs"""
9336  return _IMP_kernel._pass_particle_index_pairs(p)
9337 
9338 def _pass_model_objects(p):
9339  r"""_pass_model_objects(IMP::ModelObjectsTemp const & p) -> IMP::ModelObjectsTemp"""
9340  return _IMP_kernel._pass_model_objects(p)
9341 
9342 def _pass_particles_temps(ps):
9343  r"""_pass_particles_temps(IMP::ParticlesTemps const & ps) -> IMP::ParticlesTemps"""
9344  return _IMP_kernel._pass_particles_temps(ps)
9345 
9346 def _test_overload(*args):
9347  r"""
9348  _test_overload(IMP::Particles const & ps) -> int
9349  _test_overload(IMP::Restraints const & ps) -> int
9350  """
9351  return _IMP_kernel._test_overload(*args)
9352 
9353 def _get_range(m, k):
9354  r"""_get_range(Model m, FloatKey k) -> IMP::FloatRange"""
9355  return _IMP_kernel._get_range(m, k)
9356 
9357 def _create_particles_from_pdb(name, m):
9358  r"""_create_particles_from_pdb(std::string name, Model m) -> IMP::ParticleIndexes"""
9359  return _IMP_kernel._create_particles_from_pdb(name, m)
9360 class _LogPairScore(PairScore):
9361  r"""Proxy of C++ IMP::internal::_LogPairScore class."""
9362 
9363  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9364  __repr__ = _swig_repr
9365 
9366  def __init__(self):
9367  r"""__init__(_LogPairScore self) -> _LogPairScore"""
9368  _IMP_kernel._LogPairScore_swiginit(self, _IMP_kernel.new__LogPairScore())
9369 
9370  def do_get_inputs(self, arg2, arg3):
9371  r"""do_get_inputs(_LogPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9372  return _IMP_kernel._LogPairScore_do_get_inputs(self, arg2, arg3)
9373 
9374  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9375  r"""evaluate_indexes(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9376  return _IMP_kernel._LogPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9377 
9378  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9379  r"""evaluate_indexes_scores(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9380  return _IMP_kernel._LogPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9381 
9382  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9383  r"""evaluate_indexes_delta(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9384  return _IMP_kernel._LogPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9385 
9386  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9387  r"""evaluate_if_good_indexes(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9388  return _IMP_kernel._LogPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9389 
9390  def get_version_info(self):
9391  r"""get_version_info(_LogPairScore self) -> VersionInfo"""
9392  return _IMP_kernel._LogPairScore_get_version_info(self)
9393  __swig_destroy__ = _IMP_kernel.delete__LogPairScore
9394 
9395  def get_particle_pairs(self):
9396  r"""get_particle_pairs(_LogPairScore self) -> IMP::ParticlePairsTemp"""
9397  return _IMP_kernel._LogPairScore_get_particle_pairs(self)
9398 
9399  def clear(self):
9400  r"""clear(_LogPairScore self)"""
9401  return _IMP_kernel._LogPairScore_clear(self)
9402 
9403  def get_contains(self, pp):
9404  r"""get_contains(_LogPairScore self, IMP::ParticlePair const & pp) -> bool"""
9405  return _IMP_kernel._LogPairScore_get_contains(self, pp)
9406 
9407 # Register _LogPairScore in _IMP_kernel:
9408 _IMP_kernel._LogPairScore_swigregister(_LogPairScore)
9409 
9410 def _overloaded_particles(*args):
9411  r"""
9412  _overloaded_particles(Particle arg1)
9413  _overloaded_particles(IMP::Particles const & arg1)
9414  _overloaded_particles(IMP::ParticlesTemp const & arg1)
9415  _overloaded_particles(Model arg1, IMP::ParticleIndexes const & arg2)
9416  _overloaded_particles(IMP::internal::_TrivialDecorators const & arg1)
9417  _overloaded_particles(_TrivialDecorator arg1)
9418  """
9419  return _IMP_kernel._overloaded_particles(*args)
9420 class _ImplicitParticles(object):
9421  r"""Proxy of C++ IMP::internal::_ImplicitParticles class."""
9422 
9423  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9424  __repr__ = _swig_repr
9425 
9426  def __init__(self, *args):
9427  r"""
9428  __init__(_ImplicitParticles self, Particle arg2) -> _ImplicitParticles
9429  __init__(_ImplicitParticles self, IMP::Particles const & arg2) -> _ImplicitParticles
9430  __init__(_ImplicitParticles self, IMP::ParticlesTemp const & arg2) -> _ImplicitParticles
9431  __init__(_ImplicitParticles self, Model arg2, IMP::ParticleIndexes const & arg3) -> _ImplicitParticles
9432  __init__(_ImplicitParticles self, IMP::internal::_TrivialDecorators const & arg2) -> _ImplicitParticles
9433  __init__(_ImplicitParticles self, _TrivialDecorator arg2) -> _ImplicitParticles
9434  """
9435  _IMP_kernel._ImplicitParticles_swiginit(self, _IMP_kernel.new__ImplicitParticles(*args))
9436  __swig_destroy__ = _IMP_kernel.delete__ImplicitParticles
9437 
9438 # Register _ImplicitParticles in _IMP_kernel:
9439 _IMP_kernel._ImplicitParticles_swigregister(_ImplicitParticles)
9440 
9441 def _implicit_particles(arg1):
9442  r"""_implicit_particles(_ImplicitParticles arg1)"""
9443  return _IMP_kernel._implicit_particles(arg1)
9444 
9445 def _take_particle_adaptor(pa):
9446  r"""_take_particle_adaptor(_ParticleAdaptor pa) -> ParticleIndex"""
9447  return _IMP_kernel._take_particle_adaptor(pa)
9448 
9449 def _take_particle_indexes_adaptor(pa):
9450  r"""_take_particle_indexes_adaptor(_ParticleIndexesAdaptor pa) -> IMP::ParticleIndexes"""
9451  return _IMP_kernel._take_particle_indexes_adaptor(pa)
9452 class ScopedSetFloatAttribute(_RAII):
9453  r"""Proxy of C++ IMP::ScopedSetAttribute< IMP::FloatKey,IMP::Float > class."""
9454 
9455  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9456 
9457  def __init__(self, *args):
9458  r"""
9459  __init__(ScopedSetFloatAttribute self) -> ScopedSetFloatAttribute
9460  __init__(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value) -> ScopedSetFloatAttribute
9461  """
9462  _IMP_kernel.ScopedSetFloatAttribute_swiginit(self, _IMP_kernel.new_ScopedSetFloatAttribute(*args))
9463 
9464  def set(self, p, key, value):
9465  r"""set(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value)"""
9466  return _IMP_kernel.ScopedSetFloatAttribute_set(self, p, key, value)
9467 
9468  def reset(self):
9469  r"""reset(ScopedSetFloatAttribute self)"""
9470  return _IMP_kernel.ScopedSetFloatAttribute_reset(self)
9471  __swig_destroy__ = _IMP_kernel.delete_ScopedSetFloatAttribute
9472 
9473  def show(self, *args):
9474  r"""show(ScopedSetFloatAttribute self, _ostream out=std::cout)"""
9475  return _IMP_kernel.ScopedSetFloatAttribute_show(self, *args)
9476 
9477  def __str__(self):
9478  r"""__str__(ScopedSetFloatAttribute self) -> std::string"""
9479  return _IMP_kernel.ScopedSetFloatAttribute___str__(self)
9480 
9481  def __repr__(self):
9482  r"""__repr__(ScopedSetFloatAttribute self) -> std::string"""
9483  return _IMP_kernel.ScopedSetFloatAttribute___repr__(self)
9484 
9485 # Register ScopedSetFloatAttribute in _IMP_kernel:
9486 _IMP_kernel.ScopedSetFloatAttribute_swigregister(ScopedSetFloatAttribute)
9487 
9488 def _get_module_data_path(module, file_name):
9489  r"""_get_module_data_path(std::string module, std::string file_name) -> std::string"""
9490  return _IMP_kernel._get_module_data_path(module, file_name)
9491 
9492 def _get_module_example_path(module, file_name):
9493  r"""_get_module_example_path(std::string module, std::string file_name) -> std::string"""
9494  return _IMP_kernel._get_module_example_path(module, file_name)
9495 
9496 #used_modules=[]
9497 #def show_used_modules():
9498 # for m in used_modules:
9499 # print "%-20s %s" % (m.get_module(), m.get_version())
9500 
9501 # Ensure that Windows gets the PATH set to include anything in the library
9502 # search path
9503 if sys.platform == 'win32' and 'IMP_LD_PATH' in os.environ:
9504  dirs = os.environ['IMP_LD_PATH'].split(":")
9505  pathcomps = os.environ['PATH'].split(";")
9506  for d in dirs:
9507  if d not in pathcomps:
9508  os.environ['PATH'] = d + ';' + os.environ['PATH']
9509 
9510 
9511 
9512 import sys
9513 import os
9514 
9516  """Allow command line tools to easily implement multiple commands.
9517  Typically, an IMP command line tool will use an instance of this class
9518  to provide a consistent interface to multiple distinct commands
9519  from a single binary, rather than providing a potentially large
9520  number of binaries. This is similar to the way a number of common
9521  command line tools outside of IMP function (e.g. Git provides a single
9522  `git` tool which implements multiple commands - `git add`, `git commit`,
9523  `git push` and so on).
9524 
9525  Each command is implemented with a Python module of the same name
9526  that can be imported from the module (for example, if `module_name`
9527  is `IMP.foo`, the `bar` command is provided by the `IMP.foo.bar` Python
9528  module, which would usually be found as `modules/foo/pyext/src/bar.py`).
9529  Each such module should have a docstring and a `%main()` method
9530  that takes no arguments (the module should also call its `%main()` method
9531  if it is run directly, i.e. with something like
9532  `if __name__=="__main__": %main()`). The encompassing module
9533  (`IMP.foo` in the example) should define `_all_commands` as a Python
9534  list of all valid commands.
9535 
9536  See the `multifit` and `cnmultifit` command line tools for example
9537  usage.
9538  """
9539 
9540  def __init__(self, short_help, long_help, module_name):
9541  """Constructor.
9542  @param short_help A few words that describe the command line tool.
9543  @param long_help Longer text, used in the `help` command.
9544  @param module_name Name of the module (e.g. `IMP.foo`) that
9545  implements the commands.
9546  """
9547  self.short_help = short_help
9548  self.long_help = long_help
9549  self.module_name = module_name
9550  self._all_commands = self.import_module()._all_commands
9551  self._progname = os.path.basename(sys.argv[0])
9552 
9553  def main(self):
9554  """Call this method to act upon the user-provided command line"""
9555  if len(sys.argv) <= 1:
9556  print(self.short_help + " Use '%s help' for help." % self._progname)
9557  else:
9558  command = sys.argv[1]
9559  if command in ('help', '--help', '-h'):
9560  if len(sys.argv) == 3:
9561  self.show_command_help(sys.argv[2])
9562  else:
9563  self.show_help()
9564  elif command == '--version':
9565  self.show_version()
9566  elif command in self._all_commands:
9567  self.do_command(command)
9568  else:
9569  self.unknown_command(command)
9570 
9571  def import_module(self, mod=None):
9572  modname = self.module_name
9573  if mod is not None:
9574  modname += "." + mod
9575  return __import__(modname, {}, {}, [''])
9576 
9577  def unknown_command(self, command):
9578  print("Unknown command: '%s'" % command)
9579  print("Use '%s help' for help." % self._progname)
9580  sys.exit(1)
9581 
9582  def _get_version(self):
9583  return self.import_module().get_module_version()
9584 
9585  def show_version(self):
9586  print(self._progname + ' ' + self._get_version())
9587 
9588  def show_help(self):
9589  ver = self._get_version()
9590  print("%s, version %s." % (self._progname, ver))
9591  print(self.long_help + """
9592 
9593 This program is part of IMP, the Integrative Modeling Platform,
9594 which is %s.
9595 For additional information about IMP, see <https://integrativemodeling.org>.
9596 
9597 Usage: %s <command> [options] [args]
9598 
9599 Commands:""" % (get_copyright(), self._progname))
9600  commands = self._all_commands[:] + ['help']
9601  commands.sort()
9602  cmdlen = max([len(c) for c in commands])
9603  for c in commands:
9604  if c == 'help':
9605  doc = 'Get help on using %s.' % self._progname
9606  else:
9607  doc = self.import_module(c).__doc__ or "<no help>"
9608  c += ' ' * (cmdlen - len(c))
9609  print(' ' + c + ' ' + doc)
9610  print("""
9611 Use "%s help <command>" for detailed help on any command
9612  or "%s --version" to see the version number.""" % (self._progname,
9613  self._progname))
9614 
9615  def do_command(self, command):
9616  mod = self.import_module(command)
9617  sys.argv[0] = self._progname + ' ' + command
9618  del sys.argv[1]
9619  mod.main()
9620 
9621  def show_command_help(self, command):
9622  if command == 'help':
9623  self.show_help()
9624  elif command in self._all_commands or command == 'help':
9625  mod = self.import_module(command)
9626  sys.argv = [self._progname + ' ' + command, '--help']
9627  mod.main()
9628  else:
9629  self.unknown_command(command)
9630 
9631 
9632 
9633 
9634 def get_networkx_graph(ig):
9635  import networkx
9636  g = networkx.DiGraph()
9637  if len(ig.get_vertices()) == 0:
9638  return g
9639 
9640  class NodeWrapper:
9641 
9642  def __init__(self, p):
9643  self.p = p
9644 
9645  def __str__(self):
9646  return self.p.get_name()
9647 
9648  def __call__(self, name):
9649  return self.p.__call__(name)
9650 
9651  for vi in ig.get_vertices():
9652  n = ig.get_vertex_name(vi)
9653  g.add_node(NodeWrapper(n))
9654  for vi in ig.get_vertices():
9655  n = ig.get_vertex_name(vi)
9656  for ni in ig.get_out_neighbors(vi):
9657  nn = ig.get_vertex_name(ni)
9658  g.add_edge(NodeWrapper(n), NodeWrapper(nn))
9659  return g
9660 
9661 
9662 def show_altgraph(g):
9663  def clean(name):
9664  try:
9665  n0 = name.get_name()
9666  except:
9667  n0 = str(name)
9668  n1 = str(n0).replace('"', '')
9669  n2 = n1.replace("\n", '')
9670  return n2
9671  import altgraph
9672  from altgraph import Graph, Dot
9673  graph = Graph.Graph()
9674  for i, v in enumerate(g.get_vertices()):
9675  graph.add_node(i) # , node_data=g.get_vertex_name(v)
9676  for i, v in enumerate(g.get_vertices()):
9677  for n in g.get_out_neighbors(v):
9678  graph.add_edge(v, n)
9679  dot = Dot.Dot(graph) # , graph_type="digraph"
9680  for i, v in enumerate(g.get_vertices()):
9681  dot.node_style(i, label=clean(g.get_vertex_name(v)))
9682  dot.display()
9683 
9684 
9685 def show_graphviz(g):
9686  import subprocess
9687  tfn = create_temporary_file_name("graph", ".dot")
9688  tfon = create_temporary_file_name("graph", ".pdf")
9689  st = g.get_graphviz_string()
9690  with open(tfn, "w") as fh:
9691  fh.write(st)
9692  try:
9693  print("running dot")
9694  sp = subprocess.Popen(["dot", "-Tpdf", tfn, "-o" + tfon])
9695  sp.wait()
9696  except:
9697  import sys
9698  sys.stderr.write("The dot command from the graphviz package was not found. Please make sure it is in the PATH passed to IMP.\n")
9699  return
9700  import platform
9701  if platform.system() == "Darwin":
9702  cmd = ["open"]
9703  else:
9704  cmd = ["gv", "acroread", "xpdf"]
9705  success = False
9706  for c in cmd:
9707  print("launching viewer " + c)
9708  try:
9709  subprocess.check_call([c, tfon])
9710  success = True
9711  break
9712  except:
9713  pass
9714  if not success:
9715  print("Could not display file. It is saved at " + tfon)
9716  return tfon
9717 
9718 
9719 
9720 
9721 import functools
9722 import contextlib
9723 
9724 def deprecated_module(version, module, help_message):
9725  """Mark a Python module as deprecated.
9726  @note The `module` argument would normally be `__name__`.
9727  @see [deprecation support](@ref deprecation)."""
9729  "Module %s is deprecated. %s\n" % (module, help_message))
9730 
9731 def deprecated_object(version, help_message):
9732  """Python decorator to mark a class as deprecated.
9733  @see [deprecation support](@ref deprecation)."""
9734  def wrapper(obj):
9735  orig_init = obj.__init__
9736 # Don't try to copy __module__ since __init__ may not have it
9737 # (e.g. if we subclassed object but didn't override __init__)
9738  @functools.wraps(orig_init, ('__name__', '__doc__'))
9739  def __init__(obj, *args, **keys):
9740  handle_use_deprecated("Object %s is deprecated. %s\n"
9741  % (type(obj), help_message))
9742  orig_init(obj, *args, **keys)
9743  obj.__init__ = __init__
9744  return obj
9745  return wrapper
9746 
9747 def deprecated_method(version, help_message):
9748  """Python decorator to mark a method as deprecated.
9749  @see [deprecation support](@ref deprecation)."""
9750  def out_wrapper(obj):
9751  @functools.wraps(obj)
9752  def wrapper(cls, *args, **keys):
9753  handle_use_deprecated("Method %s in %s is deprecated. %s\n"
9754  % (obj.__name__, type(cls), help_message))
9755  return obj(cls, *args, **keys)
9756  return wrapper
9757  return out_wrapper
9758 
9759 def deprecated_function(version, help_message):
9760  """Python decorator to mark a function as deprecated.
9761  @see [deprecation support](@ref deprecation)."""
9762  def out_wrapper(obj):
9763  @functools.wraps(obj)
9764  def wrapper(*args, **keys):
9765  handle_use_deprecated("Function %s is deprecated. %s\n"
9766  % (obj.__name__, help_message))
9767  return obj(*args, **keys)
9768  return wrapper
9769  return out_wrapper
9770 
9771 @contextlib.contextmanager
9772 def allow_deprecated(allow=True):
9773  """Context manager to temporarily allow (or disallow) deprecated code.
9774  @see [deprecation support](@ref deprecation)."""
9776  set_deprecation_exceptions(not allow)
9777  yield
9779 
9780 
9781 def _get_all_flags(ntokens):
9782  r"""_get_all_flags(unsigned int ntokens) -> IMP::Strings"""
9783  return _IMP_kernel._get_all_flags(ntokens)
9784 
9785 def _print_internal_help(out, description):
9786  r"""_print_internal_help(_ostream out, std::string description)"""
9787  return _IMP_kernel._print_internal_help(out, description)
9788 
9789 
9790 import argparse
9791 import sys
9792 
9793 class _PassThroughAction(argparse.Action):
9794  """Pass an argument through to the IMP Boost parser"""
9795  def __call__(self, parser, namespace, values, option_string=None):
9796  parser._boost_command_line.append(option_string)
9797  if values != []:
9798  parser._boost_command_line.append(values)
9799 # Terminate processing immediately if necessary (otherwise argparse
9800 # may fail if we're missing positional arguments)
9801  if option_string in ('-h', '--help', '--help_advanced', '--version'):
9802  parser._handle_boost()
9803 
9804 
9805 class ArgumentParser(argparse.ArgumentParser):
9806  """IMP-specific subclass of argparse.ArgumentParser.
9807  This adds options common to all IMP applications
9808  (see IMP::setup_from_argv()).
9809  """
9810 
9811  def __init__(self, *args, **kwargs):
9812 # Don't add --help option (since the Boost option parser handles it)
9813  kwargs['add_help'] = False
9814  super().__init__(*args, **kwargs)
9815  for ntoken in (0, 1):
9816  flags = _get_all_flags(ntoken)
9817  for f in flags:
9818  arg = ['-h', '--help'] if f == 'help' else ['--' + f]
9819  self.add_argument(*arg, help=argparse.SUPPRESS,
9820  nargs=None if ntoken else 0,
9821  action=_PassThroughAction,
9822  default=argparse.SUPPRESS)
9823 
9824  def parse_args(self, args=None, namespace=None):
9825  """Parse the command line and return optional and positional arguments.
9826  This functions in the same way as the method in the base class
9827  argparse.ArgumentParser, except that it also processes optional
9828  arguments common to all IMP applications (these are not returned
9829  in `args`, but can be obtained in the usual way, e.g. by calling
9830  IMP::get_string_flag()).
9831  @returns args
9832  """
9833  self._boost_command_line = [sys.argv[0]]
9834  ret = super().parse_args(args, namespace)
9835  if len(self._boost_command_line) > 1:
9836  self._handle_boost()
9837  return ret
9838 
9839  def _get_description(self):
9840  return self.format_help() + "\nOptions common to all IMP applications:"
9841 
9842  def print_help(self, file=None):
9843  _print_internal_help(file if file else sys.stdout,
9844  self._get_description())
9845 
9846  def _handle_boost(self):
9847  setup_from_argv(self._boost_command_line,
9848  self._get_description(),
9849  '==SUPPRESS==', 0)
9850 
9851 class RandomNumberGenerator(object):
9852  r"""Proxy of C++ IMP::RandomNumberGenerator class."""
9853 
9854  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9855  __repr__ = _swig_repr
9856 
9857  def seed(self, x):
9858  r"""seed(RandomNumberGenerator self, int x)"""
9859  return _IMP_kernel.RandomNumberGenerator_seed(self, x)
9860 
9861  def __call__(self):
9862  r"""__call__(RandomNumberGenerator self) -> int"""
9863  return _IMP_kernel.RandomNumberGenerator___call__(self)
9864 
9865  def __init__(self):
9866  r"""__init__(RandomNumberGenerator self) -> RandomNumberGenerator"""
9867  _IMP_kernel.RandomNumberGenerator_swiginit(self, _IMP_kernel.new_RandomNumberGenerator())
9868  __swig_destroy__ = _IMP_kernel.delete_RandomNumberGenerator
9869 
9870 # Register RandomNumberGenerator in _IMP_kernel:
9871 _IMP_kernel.RandomNumberGenerator_swigregister(RandomNumberGenerator)
9872 
9873 def get_random_float_uniform(*args):
9874  r"""
9875  get_random_float_uniform() -> float
9876  get_random_float_uniform(float min, float max) -> float
9877  """
9878  return _IMP_kernel.get_random_float_uniform(*args)
9879 
9880 def get_random_double_uniform(*args):
9881  r"""
9882  get_random_double_uniform() -> double
9883  get_random_double_uniform(double min, double max) -> double
9884  """
9885  return _IMP_kernel.get_random_double_uniform(*args)
9886 
9887 def get_random_floats_normal(n, mean=0.0, stddev=1.0):
9888  r"""get_random_floats_normal(unsigned int n, float mean=0.0, float stddev=1.0) -> IMP::Vector< float,std::allocator< float > >"""
9889  return _IMP_kernel.get_random_floats_normal(n, mean, stddev)
9890 
9891 def get_random_doubles_normal(n, mean=0.0, stddev=1.0):
9892  r"""get_random_doubles_normal(unsigned int n, double mean=0.0, double stddev=1.0) -> IMP::Vector< double,std::allocator< double > >"""
9893  return _IMP_kernel.get_random_doubles_normal(n, mean, stddev)
9894 
9895 def get_random_floats_uniform(n):
9896  r"""get_random_floats_uniform(unsigned int n) -> IMP::Vector< float,std::allocator< float > >"""
9897  return _IMP_kernel.get_random_floats_uniform(n)
9898 
9899 def get_random_doubles_uniform(n):
9900  r"""get_random_doubles_uniform(unsigned int n) -> IMP::Vector< double,std::allocator< double > >"""
9901  return _IMP_kernel.get_random_doubles_uniform(n)
9902 
9903 def get_random_seed():
9904  r"""get_random_seed() -> boost::uint64_t"""
9905  return _IMP_kernel.get_random_seed()
9906 
9907 def _get_derivatives_numpy(m, k, m_pyobj, read_only):
9908  r"""_get_derivatives_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9909  return _IMP_kernel._get_derivatives_numpy(m, k, m_pyobj, read_only)
9910 
9911 def _get_floats_numpy(m, k, m_pyobj, read_only):
9912  r"""_get_floats_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9913  return _IMP_kernel._get_floats_numpy(m, k, m_pyobj, read_only)
9914 
9915 def _get_ints_numpy(m, k, m_pyobj, read_only):
9916  r"""_get_ints_numpy(Model m, IntKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9917  return _IMP_kernel._get_ints_numpy(m, k, m_pyobj, read_only)
9918 
9919 def _get_vector3ds_numpy(m, k, m_pyobj, read_only):
9920  r"""_get_vector3ds_numpy(Model m, Vector3DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9921  return _IMP_kernel._get_vector3ds_numpy(m, k, m_pyobj, read_only)
9922 
9923 def _get_spheres_numpy(m, m_pyobj, read_only):
9924  r"""_get_spheres_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9925  return _IMP_kernel._get_spheres_numpy(m, m_pyobj, read_only)
9926 
9927 def _get_sphere_derivatives_numpy(m, m_pyobj, read_only):
9928  r"""_get_sphere_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9929  return _IMP_kernel._get_sphere_derivatives_numpy(m, m_pyobj, read_only)
9930 
9931 def _get_internal_coordinates_numpy(m, m_pyobj, read_only):
9932  r"""_get_internal_coordinates_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9933  return _IMP_kernel._get_internal_coordinates_numpy(m, m_pyobj, read_only)
9934 
9935 def _get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only):
9936  r"""_get_internal_coordinate_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
9937  return _IMP_kernel._get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only)
9938 
9939 try:
9940  import numpy
9941  ParticleIndex = numpy.intc
9942 except ImportError:
9943  pass
9944 
9945 
9946 def get_module_name():
9947  r"""get_module_name() -> std::string const"""
9948  return _IMP_kernel.get_module_name()
9949 
9950 def get_module_version():
9951  r"""get_module_version() -> std::string const"""
9952  return _IMP_kernel.get_module_version()
9953 
9954 def get_example_path(fname):
9955  r"""get_example_path(std::string fname) -> std::string"""
9956  return _IMP_kernel.get_example_path(fname)
9957 
9958 def get_data_path(fname):
9959  r"""get_data_path(std::string fname) -> std::string"""
9960  return _IMP_kernel.get_data_path(fname)
9961 
9962 from . import _version_check
9963 _version_check.check_version(get_module_version())
9964 __version__ = get_module_version()
9965 
9966 
9967 random_number_generator = cvar.random_number_generator
9968 
Particle * get_particle(ParticleIndex p) const
Get the particle from an index.
Definition: Model.h:506
A base class for modifiers of ParticlesTemp.
A class to store a configuration of a model.
Definition: Configuration.h:20
def get_ints_numpy
Get the model's attribute array for IntKey k as a NumPy array.
Definition: __init__.py:5719
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:44
A shared container for Pairs.
Definition: PairContainer.h:39
void add_int_flag(std::string name, size_t default_value, std::string description)
Allow command line tools to easily implement multiple commands.
Definition: __init__.py:9515
CheckLevel get_check_level()
Get the current audit mode.
Definition: exception.h:80
Key< 11 > TriggerKey
The type used to identify changed model properties.
Definition: base_types.h:82
bool get_is_quick_test()
Definition: flags.h:183
Abstract predicate function.
Definition: QuadPredicate.h:31
Key< 0 > FloatKey
The type used to identify float attributes in the Particles.
Definition: base_types.h:32
def allow_deprecated
Context manager to temporarily allow (or disallow) deprecated code.
Definition: __init__.py:9772
std::string get_unique_name(std::string templ)
Return a unique name produced from the string.
DependencyGraph get_dependency_graph(Model *m)
def get_floats_numpy
Get the model's attribute array for FloatKey k as a NumPy array.
Definition: __init__.py:5741
Objects get_live_objects()
Return pointers to all live objects.
def get_derived_object
Return this object cast to the most derived subclass.
Definition: __init__.py:843
Vector< char > write_particles_to_buffer(const ParticlesTemp &particles, const FloatKeys &keys)
return a binary buffer with the data
Key< 13 > SparseIntKey
The type used to identify sparse int attributes in the Particles.
Definition: base_types.h:90
def main
Call this method to act upon the user-provided command line.
Definition: __init__.py:9553
Key< 15 > SparseParticleIndexKey
The type used to identify sparse particle attributes in the Particles.
Definition: base_types.h:98
boost::graph DependencyGraph
Directed graph on the interactions between the various objects in the model.
ContainersTemp get_input_containers(const ModelObjectsTemp &mos)
Return all the input particles for a given ModelObject.
def deprecated_module
Mark a Python module as deprecated.
Definition: __init__.py:9724
Key< 16 > Vector3DKey
The type used to identify 3D vector attributes in the Particles.
Definition: base_types.h:102
Vector< VectorD< D > > get_vertices(const BoundingBoxD< D > &bb)
Return a list of the 2^D bounding points for the bounding box.
Definition: BoundingBoxD.h:281
Array< 4, WeakPointer< Particle >, Particle * > ParticleQuad
Definition: base_types.h:172
bool get_bool_flag(std::string name)
void handle_use_deprecated(std::string message)
Break in this method in gdb to find deprecated uses at runtime.
void set_progress_display(std::string description, unsigned int steps)
Set up the progress bar with the passed description.
def deprecated_function
Python decorator to mark a function as deprecated.
Definition: __init__.py:9759
virtual ::IMP::VersionInfo get_version_info() const override
Get information about the module and version of the object.
Definition: Model.h:668
void remove_attribute(TypeKey attribute_key, ParticleIndex particle)
remove particle attribute with the specified key
Index< ParticleIndexTag > ParticleIndex
Definition: base_types.h:182
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
Get the particles from a list of indexes.
Key< 6 > ParticleIndexesKey
The type used to identify a particle attribute in the Particles.
Definition: base_types.h:64
Array< 3, WeakPointer< Particle >, Particle * > ParticleTriplet
Definition: base_types.h:169
ContainersTemp get_output_containers(const ModelObjectsTemp &mos)
Return all the output particles for a given ModelObject.
Base class for all samplers.
Definition: Sampler.h:31
void add_particle(RMF::FileHandle fh, Particle *hs)
virtual void clear_caches()
Definition: Object.h:270
std::string get_data_path(std::string file_name)
Return the full path to one of this module's data files.
void add_string_flag(std::string name, std::string default_value, std::string description)
LogLevel get_log_level()
Get the currently active global log level.
Definition: log.h:92
def get_sphere_derivatives_numpy
Get the model's XYZR attribute derivatives arrays as NumPy arrays.
Definition: __init__.py:5764
void set_deprecation_warnings(bool tf)
Toggle printing of warnings on using deprecated classes.
def get_numpy
Get the model's attribute array for any type of Key k as a NumPy array.
Definition: __init__.py:5733
TextOutput create_temporary_file(std::string prefix="imp_temp", std::string suffix="")
Create a temporary file. The path can be extracted from the TextOutput.
ParticlesTemp get_output_particles(const ModelObjectsTemp &mos)
Return all the output particles for a given ModelObject.
ScoringFunction * create_scoring_function(RestraintType *rs, double weight=1.0, double max=NO_MAX, std::string name=std::string())
Create a ScoringFunction on a single restraint.
Definition: generic.h:23
A base class for modifiers of ParticlePairsTemp.
Definition: PairModifier.h:32
void write_help(std::ostream &out=std::cerr)
Key< 2 > StringKey
The type used to identify string attributes in the Particles.
Definition: base_types.h:40
size_t get_int_flag(std::string name)
Key< 10 > FloatsKey
The type used to identify float vector attributes in the Particles.
Definition: base_types.h:60
void add_restraint(RMF::FileHandle fh, Restraint *hs)
Abstract class for scoring object(s) of type ParticleIndexQuad.
Definition: QuadScore.h:44
Base class for objects in a Model that depend on other objects.
Definition: ModelObject.h:28
boost::uint64_t get_random_seed()
Return the initial random seed.
Abstract predicate function.
Key< 3 > ParticleIndexKey
The type used to identify a particle attribute in the Particles.
Definition: base_types.h:44
Strings get_live_object_names()
Return the names of all live objects.
void add_to_progress_display(unsigned int step=1)
Set the current progress.
void add_attribute(TypeKey attribute_key, ParticleIndex particle, Type value)
add particle attribute with the specified key and initial value
void add_float_flag(std::string name, double default_value, std::string description)
virtual void do_destroy()
Definition: Object.h:274
Ints get_index(const ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
Common base class for heavy weight IMP objects.
Definition: Object.h:111
ParticleIndexes get_particle_indexes(ParticlesTemp const &particles)
def deprecated_method
Python decorator to mark a method as deprecated.
Definition: __init__.py:9747
Abstract class for scoring object(s) of type ParticleIndex.
Base class for all optimizers.
Definition: Optimizer.h:48
void reset_log_timer()
Reset the log timer.
void add_restraints(RMF::FileHandle fh, const Restraints &hs)
void add_to_log(LogLevel level, std::string to_write)
Write a string to the log, for Python.
def parse_args
Parse the command line and return optional and positional arguments.
Definition: __init__.py:9824
def get_internal_coordinates_numpy
Get the model's internal coordinate array as a NumPy array.
Definition: __init__.py:5770
void set_is_optimized(TypeKey attribute_key, ParticleIndex particle, bool true_or_false)
Key< 1 > IntKey
The type used to identify int attributes in the Particles.
Definition: base_types.h:36
Restraints create_decomposition(const RestraintsTemp &rs)
Return the decomposition of a list of restraints.
std::string get_relative_path(std::string base, std::string relative)
Return a path to a file relative to another file.
A class to store a set of configurations of a model.
A shared container for Quads.
Definition: QuadContainer.h:39
def get_internal_coordinate_derivatives_numpy
Get the model's internal coordinate derivative array as a NumPy array.
Definition: __init__.py:5776
A shared container for Singletons.
void set_deprecation_exceptions(bool tf)
Toggle whether an exception is thrown when a deprecated method is used.
def get_spheres_numpy
Get the model's XYZR attribute arrays as NumPy arrays.
Definition: __init__.py:5758
Key< 4 > ObjectKey
The type used to identify an Object attribute.
Definition: base_types.h:48
Interface to specialized Particle types (e.g. atoms)
Definition: Decorator.h:119
IMP-specific subclass of argparse.ArgumentParser.
Definition: __init__.py:9805
def get_derivatives_numpy
Get the model's attribute derivatives array for FloatKey k as a NumPy array.
Definition: __init__.py:5746
std::ostream & show(Hierarchy h, std::ostream &out=std::cout)
Print the hierarchy using a given decorator to display each node.
std::string get_absolute_path(std::string file)
Convert a possibly relative path to an absolute path.
std::string get_executable_name()
Return the name of the current executable.
void set_log_level(LogLevel l)
Set the current global log level.
unsigned int get_number_of_threads()
float get_random_float_uniform()
Return a uniformly distributed float number in range [0..1)
Definition: random_utils.h:138
def deprecated_object
Python decorator to mark a class as deprecated.
Definition: __init__.py:9731
ParticlesTemp get_input_particles(const ModelObjectsTemp &mos)
Return all the input particles for a given ModelObject.
Base class for optimizers that act on individual attributes.
void set_show_leaked_objects(bool tf)
Set whether to complain about objects not being properly cleaned up.
Abstract predicate function.
Definition: PairPredicate.h:31
bool get_deprecation_exceptions()
Get whether an exception is thrown when a deprecated method is used.
void set_log_timer(bool tb)
Set whether log messages are tagged with the current log time.
void show_restraint_hierarchy(ScoringFunctionAdaptor rs, std::ostream &out=std::cout)
Print the hierarchy of restraints.
DependencyGraph get_pruned_dependency_graph(Model *m)
std::string get_example_path(std::string file_name)
Return the full path to one of this module's example files.
Object(std::string name)
Construct an object with the given name.
Array< 2, WeakPointer< Particle >, Particle * > ParticlePair
Definition: base_types.h:163
Key< 5 > IntsKey
The type used to identify int attributes in the Particles.
Definition: base_types.h:56
virtual VersionInfo get_version_info() const
Get information about the module and version of the object.
Definition: Object.h:206
Restraints create_restraints(RMF::FileConstHandle fh, Model *m)
Shared optimizer state that is invoked upon commitment of new coordinates.
Abstract predicate function.
Abstract class to implement hierarchical methods.
Definition: Refiner.h:34
A base class for modifiers of ParticleTripletsTemp.
std::string show_graphviz(Graph g)
void set_check_level(CheckLevel l)
std::string get_string_flag(std::string name)
networkx::DiGraph get_networkx_graph(Graph g)
def __init__
Constructor.
Definition: __init__.py:9540
double get_random_double_uniform()
Return a uniformly distributed double number in range [0..1)
Definition: random_utils.h:173
Key< 8 > ModelKey
The type used to identify data stored directly in the model.
Definition: base_types.h:78
A base class for modifiers of ParticleQuadsTemp.
Definition: QuadModifier.h:32
Key< 14 > SparseFloatKey
The type used to identify sparse float attributes in the Particles.
Definition: base_types.h:94
A shared container for Triplets.
def get_vector3ds_numpy
Get the model's attribute array for Vector3DKey k as a NumPy array.
Definition: __init__.py:5751
Abstract class for scoring object(s) of type ParticleIndexTriplet.
Definition: TripletScore.h:44
void show_altgraph(Graph g)
void update()
Sometimes it is useful to be able to make sure the model is up to date.
void setup_from_argv(int argc, char **argv, std::string description)
Parse the command line flags and return the positional arguments.
void add_bool_flag(std::string name, std::string description)
ParticleIndexes get_indexes(const ParticlesTemp &ps)
Get the indexes from a list of particles.
Abstract class for containers of particles.
void read_particles_from_buffer(const Vector< char > &buffer, const ParticlesTemp &particles, const FloatKeys &keys)
load found attributes into the particles
Abstract single variable functor class for score functions.
Definition: UnaryFunction.h:27
void set_number_of_threads(unsigned int n)
double get_float_flag(std::string name)
void set_check_level(CheckLevel tf)
Control runtime checks in the code.
Definition: exception.h:72
ScoreStatesTemp get_update_order(ScoreStatesTemp input)
std::string get_module_version()
Return the version of this module, as a string.
std::string create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="")
Create a temporary file.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:56
Key< 12 > SparseStringKey
The type used to identify sparse string attributes in the Particles.
Definition: base_types.h:86
std::string get_copyright()
Get the IMP copyright notice.