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