Multiclass-interface 1.12__tar.gz → 1.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {multiclass_interface-1.12 → multiclass_interface-1.14}/.gitlab-ci.yml +1 -1
  2. {multiclass_interface-1.12 → multiclass_interface-1.14/Multiclass_interface.egg-info}/PKG-INFO +1 -1
  3. {multiclass_interface-1.12/Multiclass_interface.egg-info → multiclass_interface-1.14}/PKG-INFO +1 -1
  4. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/mpi_interface.py +14 -0
  5. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/tests/test_mpi.py +4 -2
  6. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/version.py +2 -2
  7. {multiclass_interface-1.12 → multiclass_interface-1.14}/.gitignore +0 -0
  8. {multiclass_interface-1.12 → multiclass_interface-1.14}/LICENSE +0 -0
  9. {multiclass_interface-1.12 → multiclass_interface-1.14}/Multiclass_interface.egg-info/SOURCES.txt +0 -0
  10. {multiclass_interface-1.12 → multiclass_interface-1.14}/Multiclass_interface.egg-info/dependency_links.txt +0 -0
  11. {multiclass_interface-1.12 → multiclass_interface-1.14}/Multiclass_interface.egg-info/requires.txt +0 -0
  12. {multiclass_interface-1.12 → multiclass_interface-1.14}/Multiclass_interface.egg-info/top_level.txt +0 -0
  13. {multiclass_interface-1.12 → multiclass_interface-1.14}/README.md +0 -0
  14. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/__init__.py +0 -0
  15. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/multi_object_list.py +0 -0
  16. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/multiprocess_interface.py +0 -0
  17. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/tests/__init__.py +0 -0
  18. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/tests/my_test_cls.py +0 -0
  19. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/tests/test_multiclass_list.py +0 -0
  20. {multiclass_interface-1.12 → multiclass_interface-1.14}/multiclass_interface/tests/test_multiprocessinterface.py +0 -0
  21. {multiclass_interface-1.12 → multiclass_interface-1.14}/pyproject.toml +0 -0
  22. {multiclass_interface-1.12 → multiclass_interface-1.14}/sequence_diagrams.md +0 -0
  23. {multiclass_interface-1.12 → multiclass_interface-1.14}/setup.cfg +0 -0
@@ -61,7 +61,7 @@ pypi_linux:
61
61
  #- pip install pypandoc
62
62
  - pip install -e . --upgrade
63
63
  - pip install --upgrade build
64
- - pip install --upgrade twine
64
+ - pip install twine==6.0.1 --upgrade
65
65
  - python3 -m build
66
66
  - twine upload dist/* -u $TWINE_USERNAME -p $TWINE_PASSWORD
67
67
  rules:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: Multiclass_interface
3
- Version: 1.12
3
+ Version: 1.14
4
4
  Summary: Multiclass interface
5
5
  Author-email: "Mads M. Pedersen" <mmpe@dtu.dk>
6
6
  Project-URL: Homepage, https://gitlab.windenergy.dtu.dk/DYNAMIKS/multiclass_interface
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: Multiclass_interface
3
- Version: 1.12
3
+ Version: 1.14
4
4
  Summary: Multiclass interface
5
5
  Author-email: "Mads M. Pedersen" <mmpe@dtu.dk>
6
6
  Project-URL: Homepage, https://gitlab.windenergy.dtu.dk/DYNAMIKS/multiclass_interface
@@ -43,6 +43,20 @@ TERMINATE_ON_CLOSE = True # MPI workers (rank>0) will terminate (sys.exit) when
43
43
  COLLECTIVE_MPI = True # rank0 acts as a single point of contact (scatters command+arg and gathers results)
44
44
 
45
45
 
46
+ def main_run(f, *args, **kwargs):
47
+ if main:
48
+ r = f(*args, **kwargs)
49
+ if COLLECTIVE_MPI:
50
+ return r[0]
51
+ else:
52
+ try:
53
+ f(*args, **kwargs)
54
+ except BaseException:
55
+ pass
56
+ r = None
57
+ return comm.bcast(r)
58
+
59
+
46
60
  class MPIClassInterface():
47
61
  def __init__(self, cls, args_lst):
48
62
  if len(args_lst) > size:
@@ -21,6 +21,8 @@ def mpitest_mpi_MyTest():
21
21
  i = m.get_id()
22
22
  npt.assert_array_equal(i, np.arange(N))
23
23
 
24
+ i = mpi_interface.main_run(lambda: m.get_id())
25
+ npt.assert_array_equal(i, 0)
24
26
  npt.assert_array_equal(m[1:3].get_id(), np.arange(1, 3))
25
27
  t = time.time()
26
28
  m.work(1)
@@ -54,6 +56,8 @@ def mpitest_non_collective_mpi():
54
56
 
55
57
  try:
56
58
  assert m.get_id()[0] == rank + 10, m.get_id()
59
+ main_id = mpi_interface.main_run(lambda: m.get_id())
60
+ assert main_id == [10], (rank, main_id)
57
61
  assert rank < N # rank > N will fail with ChildProcessError
58
62
  except ChildProcessError:
59
63
  pass
@@ -86,9 +90,7 @@ def mpitest_all():
86
90
  try:
87
91
  with MPIClassInterface(MyTest, [(1,), (2,), (3,)]) as mpici:
88
92
  for f in [test_attribute, test_missing_attribute, test_execption, test_setattr, test_setattr_method]:
89
-
90
93
  run(f, mpici)
91
-
92
94
  except ChildProcessError:
93
95
  pass
94
96
 
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.12'
16
- __version_tuple__ = version_tuple = (1, 12)
15
+ __version__ = version = '1.14'
16
+ __version_tuple__ = version_tuple = (1, 14)