IMP logo
IMP Reference Guide  develop.74ba496d88,2026/11/03
The Integrative Modeling Platform
mpi/__init__.py
1 # This file was automatically generated by SWIG (https://www.swig.org).
2 # Version 4.5.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 import os
14 if 'IMP_NO_MPI' in os.environ:
15  raise ImportError(
16  "IMP.mpi module disabled by IMP_NO_MPI environment variable")
17 
18 
19 
20 import typing
21 import _IMP_mpi
22 
23 import builtins as __builtin__
24 
25 def _swig_repr(self):
26  try:
27  strthis = "proxy of " + self.this.__repr__()
28  except __builtin__.Exception:
29  strthis = ""
30  return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
31 
32 
33 def _swig_setattr_nondynamic_instance_variable(set):
34  def set_instance_attr(self, name, value):
35  if name == "this":
36  set(self, name, value)
37  elif name == "thisown":
38  self.this.own(value)
39  elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
40  set(self, name, value)
41  else:
42  raise AttributeError("You cannot add instance attributes to %s" % self)
43  return set_instance_attr
44 
45 
46 def _swig_setattr_nondynamic_class_variable(set):
47  def set_class_attr(cls, name, value):
48  if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
49  set(cls, name, value)
50  else:
51  raise AttributeError("You cannot add class attributes to %s" % cls)
52  return set_class_attr
53 
54 
55 class _SwigNonDynamicMeta(type):
56  """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
57  __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)
58 
59 
60 import weakref
61 
62 class IMP_MPI_SwigPyIterator(object):
63  r"""Proxy of C++ swig::IMP_MPI_SwigPyIterator class."""
64 
65  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
66 
67  def __init__(self, *args, **kwargs):
68  raise AttributeError("No constructor defined - class is abstract")
69  __repr__ = _swig_repr
70  __swig_destroy__ = _IMP_mpi.delete_IMP_MPI_SwigPyIterator
71 
72  def value(self):
73  r"""value(IMP_MPI_SwigPyIterator self) -> PyObject *"""
74  return _IMP_mpi.IMP_MPI_SwigPyIterator_value(self)
75 
76  def incr(self, n=1):
77  r"""incr(IMP_MPI_SwigPyIterator self, size_t n=1) -> IMP_MPI_SwigPyIterator"""
78  return _IMP_mpi.IMP_MPI_SwigPyIterator_incr(self, n)
79 
80  def decr(self, n=1):
81  r"""decr(IMP_MPI_SwigPyIterator self, size_t n=1) -> IMP_MPI_SwigPyIterator"""
82  return _IMP_mpi.IMP_MPI_SwigPyIterator_decr(self, n)
83 
84  def distance(self, x):
85  r"""distance(IMP_MPI_SwigPyIterator self, IMP_MPI_SwigPyIterator x) -> ptrdiff_t"""
86  return _IMP_mpi.IMP_MPI_SwigPyIterator_distance(self, x)
87 
88  def equal(self, x):
89  r"""equal(IMP_MPI_SwigPyIterator self, IMP_MPI_SwigPyIterator x) -> bool"""
90  return _IMP_mpi.IMP_MPI_SwigPyIterator_equal(self, x)
91 
92  def copy(self):
93  r"""copy(IMP_MPI_SwigPyIterator self) -> IMP_MPI_SwigPyIterator"""
94  return _IMP_mpi.IMP_MPI_SwigPyIterator_copy(self)
95 
96  def __next__(self):
97  r"""__next__(IMP_MPI_SwigPyIterator self) -> PyObject *"""
98  return _IMP_mpi.IMP_MPI_SwigPyIterator___next__(self)
99 
100  def previous(self):
101  r"""previous(IMP_MPI_SwigPyIterator self) -> PyObject *"""
102  return _IMP_mpi.IMP_MPI_SwigPyIterator_previous(self)
103 
104  def advance(self, n):
105  r"""advance(IMP_MPI_SwigPyIterator self, ptrdiff_t n) -> IMP_MPI_SwigPyIterator"""
106  return _IMP_mpi.IMP_MPI_SwigPyIterator_advance(self, n)
107 
108  def __eq__(self, x):
109  r"""__eq__(IMP_MPI_SwigPyIterator self, IMP_MPI_SwigPyIterator x) -> bool"""
110  return _IMP_mpi.IMP_MPI_SwigPyIterator___eq__(self, x)
111 
112  def __ne__(self, x):
113  r"""__ne__(IMP_MPI_SwigPyIterator self, IMP_MPI_SwigPyIterator x) -> bool"""
114  return _IMP_mpi.IMP_MPI_SwigPyIterator___ne__(self, x)
115 
116  def __iadd__(self, n):
117  r"""__iadd__(IMP_MPI_SwigPyIterator self, ptrdiff_t n) -> IMP_MPI_SwigPyIterator"""
118  return _IMP_mpi.IMP_MPI_SwigPyIterator___iadd__(self, n)
119 
120  def __isub__(self, n):
121  r"""__isub__(IMP_MPI_SwigPyIterator self, ptrdiff_t n) -> IMP_MPI_SwigPyIterator"""
122  return _IMP_mpi.IMP_MPI_SwigPyIterator___isub__(self, n)
123 
124  def __add__(self, n):
125  r"""__add__(IMP_MPI_SwigPyIterator self, ptrdiff_t n) -> IMP_MPI_SwigPyIterator"""
126  return _IMP_mpi.IMP_MPI_SwigPyIterator___add__(self, n)
127 
128  def __sub__(self, *args):
129  r"""
130  __sub__(IMP_MPI_SwigPyIterator self, ptrdiff_t n) -> IMP_MPI_SwigPyIterator
131  __sub__(IMP_MPI_SwigPyIterator self, IMP_MPI_SwigPyIterator x) -> ptrdiff_t
132  """
133  return _IMP_mpi.IMP_MPI_SwigPyIterator___sub__(self, *args)
134  def __iter__(self):
135  return self
136 
137 # Register IMP_MPI_SwigPyIterator in _IMP_mpi:
138 _IMP_mpi.IMP_MPI_SwigPyIterator_swigregister(IMP_MPI_SwigPyIterator)
139 
140 _value_types=[]
141 _object_types=[]
142 _raii_types=[]
143 _plural_types=[]
144 
145 IMP_DEBUG = _IMP_mpi.IMP_DEBUG
146 
147 IMP_RELEASE = _IMP_mpi.IMP_RELEASE
148 
149 IMP_SILENT = _IMP_mpi.IMP_SILENT
150 
151 IMP_PROGRESS = _IMP_mpi.IMP_PROGRESS
152 
153 IMP_TERSE = _IMP_mpi.IMP_TERSE
154 
155 IMP_VERBOSE = _IMP_mpi.IMP_VERBOSE
156 
157 IMP_MEMORY = _IMP_mpi.IMP_MEMORY
158 
159 IMP_NONE = _IMP_mpi.IMP_NONE
160 
161 IMP_USAGE = _IMP_mpi.IMP_USAGE
162 
163 IMP_INTERNAL = _IMP_mpi.IMP_INTERNAL
164 
165 IMP_KERNEL_HAS_LOG4CXX = _IMP_mpi.IMP_KERNEL_HAS_LOG4CXX
166 
167 IMP_COMPILER_HAS_CEREAL_RAW_POINTER = _IMP_mpi.IMP_COMPILER_HAS_CEREAL_RAW_POINTER
168 
169 IMP_COMPILER_HAS_DEBUG_VECTOR = _IMP_mpi.IMP_COMPILER_HAS_DEBUG_VECTOR
170 
171 IMP_COMPILER_HAS_RANDOM_SHUFFLE = _IMP_mpi.IMP_COMPILER_HAS_RANDOM_SHUFFLE
172 
173 IMP_COMPILER_HAS_THREE_WAY = _IMP_mpi.IMP_COMPILER_HAS_THREE_WAY
174 
175 IMP_KERNEL_HAS_BOOST_RANDOM = _IMP_mpi.IMP_KERNEL_HAS_BOOST_RANDOM
176 
177 IMP_KERNEL_HAS_NUMPY = _IMP_mpi.IMP_KERNEL_HAS_NUMPY
178 
179 IMP_KERNEL_HAS_BOOST_SYSTEM = _IMP_mpi.IMP_KERNEL_HAS_BOOST_SYSTEM
180 
181 IMP_KERNEL_HAS_GPERFTOOLS = _IMP_mpi.IMP_KERNEL_HAS_GPERFTOOLS
182 
183 IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER = _IMP_mpi.IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER
184 
185 IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER = _IMP_mpi.IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER
186 
187 IMPKERNEL_SHOW_WARNINGS = _IMP_mpi.IMPKERNEL_SHOW_WARNINGS
188 
189 
190 import sys
191 class _DirectorObjects:
192  """@internal Simple class to keep references to director objects
193  to prevent premature deletion."""
194  def __init__(self):
195  self._objects = []
196  def register(self, obj):
197  """Take a reference to a director object; will only work for
198  refcounted C++ classes"""
199  if hasattr(obj, 'get_ref_count'):
200  self._objects.append(obj)
201  def cleanup(self):
202  """Only drop our reference and allow cleanup by Python if no other
203  Python references exist (we hold 3 references: one in self._objects,
204  one in x, and one in the argument list for getrefcount) *and* no
205  other C++ references exist (the Python object always holds one)"""
206  objs = [x for x in self._objects if sys.getrefcount(x) > 3 \
207  or x.get_ref_count() > 1]
208 # Do in two steps so the references are kept until the end of the
209 # function (deleting references may trigger a fresh call to this method)
210  self._objects = objs
211  def get_object_count(self):
212  """Get number of director objects (useful for testing only)"""
213  return len(self._objects)
214 _director_objects = _DirectorObjects()
215 
216 class _ostream(object):
217  r"""Proxy of C++ std::ostream class."""
218 
219  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
220 
221  def __init__(self, *args, **kwargs):
222  raise AttributeError("No constructor defined")
223  __repr__ = _swig_repr
224 
225  def write(self, osa_buf):
226  r"""write(_ostream self, char const * osa_buf)"""
227  return _IMP_mpi._ostream_write(self, osa_buf)
228 
229 # Register _ostream in _IMP_mpi:
230 _IMP_mpi._ostream_swigregister(_ostream)
231 IMP_C_OPEN_BINARY = _IMP_mpi.IMP_C_OPEN_BINARY
232 
233 import IMP
234 IMP_MPI_HAS_BOOST_FILESYSTEM = _IMP_mpi.IMP_MPI_HAS_BOOST_FILESYSTEM
235 
236 IMP_MPI_HAS_BOOST_PROGRAMOPTIONS = _IMP_mpi.IMP_MPI_HAS_BOOST_PROGRAMOPTIONS
237 
238 IMP_MPI_HAS_BOOST_RANDOM = _IMP_mpi.IMP_MPI_HAS_BOOST_RANDOM
239 
240 IMP_MPI_HAS_NUMPY = _IMP_mpi.IMP_MPI_HAS_NUMPY
241 
242 IMPMPI_SHOW_WARNINGS = _IMP_mpi.IMPMPI_SHOW_WARNINGS
243 
244 
245 _object_types.append("ReplicaExchange")
246 
247 
248 def _object_cast_to_ReplicaExchange(o):
249  r"""_object_cast_to_ReplicaExchange(Object o) -> ReplicaExchange"""
250  return _IMP_mpi._object_cast_to_ReplicaExchange(o)
251 class ReplicaExchange(IMP.Object):
252  r"""Proxy of C++ IMP::mpi::ReplicaExchange class."""
253 
254  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
255 
256  def __init__(self):
257  r"""__init__(ReplicaExchange self) -> ReplicaExchange"""
258  _IMP_mpi.ReplicaExchange_swiginit(self, _IMP_mpi.new_ReplicaExchange())
259 
260  def set_my_parameter(self, key, values):
261  r"""set_my_parameter(ReplicaExchange self, std::string key, IMP::Floats values)"""
262  return _IMP_mpi.ReplicaExchange_set_my_parameter(self, key, values)
263 
264  def get_my_parameter(self, key):
265  r"""get_my_parameter(ReplicaExchange self, std::string key) -> IMP::Floats"""
266  return _IMP_mpi.ReplicaExchange_get_my_parameter(self, key)
267 
268  def get_friend_index(self, istep):
269  r"""get_friend_index(ReplicaExchange self, int istep) -> int"""
270  return _IMP_mpi.ReplicaExchange_get_friend_index(self, istep)
271 
272  def get_exchange_array(self):
273  r"""get_exchange_array(ReplicaExchange self) -> IMP::Ints"""
274  return _IMP_mpi.ReplicaExchange_get_exchange_array(self)
275 
276  def get_friend_parameter(self, key, findex):
277  r"""get_friend_parameter(ReplicaExchange self, std::string key, int findex) -> IMP::Floats"""
278  return _IMP_mpi.ReplicaExchange_get_friend_parameter(self, key, findex)
279 
280  def do_exchange(self, myscore0, myscore1, findex):
281  r"""do_exchange(ReplicaExchange self, double myscore0, double myscore1, int findex) -> bool"""
282  return _IMP_mpi.ReplicaExchange_do_exchange(self, myscore0, myscore1, findex)
283 
284  def create_temperatures(self, tmin, tmax, nrep):
285  r"""create_temperatures(ReplicaExchange self, double tmin, double tmax, int nrep) -> IMP::Floats"""
286  return _IMP_mpi.ReplicaExchange_create_temperatures(self, tmin, tmax, nrep)
287 
288  def get_my_index(self):
289  r"""get_my_index(ReplicaExchange self) -> int"""
290  return _IMP_mpi.ReplicaExchange_get_my_index(self)
291 
292  def get_number_of_replicas(self):
293  r"""get_number_of_replicas(ReplicaExchange self) -> int"""
294  return _IMP_mpi.ReplicaExchange_get_number_of_replicas(self)
295 
296  def get_version_info(self):
297  r"""get_version_info(ReplicaExchange self) -> VersionInfo"""
298  return _IMP_mpi.ReplicaExchange_get_version_info(self)
299  __swig_destroy__ = _IMP_mpi.delete_ReplicaExchange
300 
301  def __str__(self):
302  r"""__str__(ReplicaExchange self) -> std::string"""
303  return _IMP_mpi.ReplicaExchange___str__(self)
304 
305  def __repr__(self):
306  r"""__repr__(ReplicaExchange self) -> std::string"""
307  return _IMP_mpi.ReplicaExchange___repr__(self)
308 
309  @staticmethod
310  def get_from(o):
311  return _object_cast_to_ReplicaExchange(o)
312 
313 
314  def _get_as_binary(self):
315  r"""_get_as_binary(ReplicaExchange self) -> PyObject *"""
316  return _IMP_mpi.ReplicaExchange__get_as_binary(self)
317 
318  def _set_from_binary(self, p):
319  r"""_set_from_binary(ReplicaExchange self, PyObject * p)"""
320  return _IMP_mpi.ReplicaExchange__set_from_binary(self, p)
321 
322  def __getstate__(self):
323  p = self._get_as_binary()
324  if len(self.__dict__) > 1:
325  d = self.__dict__.copy()
326  del d['this']
327  p = (d, p)
328  return p
329 
330  def __setstate__(self, p):
331  if not hasattr(self, 'this'):
332  self.__init__()
333  if isinstance(p, tuple):
334  d, p = p
335  self.__dict__.update(d)
336  return self._set_from_binary(p)
337 
338 
339 # Register ReplicaExchange in _IMP_mpi:
340 _IMP_mpi.ReplicaExchange_swigregister(ReplicaExchange)
341 
342 def get_module_name():
343  r"""get_module_name() -> std::string const"""
344  return _IMP_mpi.get_module_name()
345 
346 def get_module_version():
347  r"""get_module_version() -> std::string const"""
348  return _IMP_mpi.get_module_version()
349 
350 def get_example_path(fname):
351  r"""get_example_path(std::string fname) -> std::string"""
352  return _IMP_mpi.get_example_path(fname)
353 
354 def get_data_path(fname):
355  r"""get_data_path(std::string fname) -> std::string"""
356  return _IMP_mpi.get_data_path(fname)
357 
358 from . import _version_check
359 _version_check.check_version(get_module_version())
360 __version__ = get_module_version()
361 
362 
def get_module_version
Return the version of this module, as a string.
def get_example_path
Return the full path to one of this module's example files.
def get_data_path
Return the full path to one of this module's data files.
Common base class for heavy weight IMP objects.
Definition: Object.h:111
def get_module_name
Return the fully-qualified name of this module.