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