reframe-hpc 4.10.0__py3-none-any.whl

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 (151) hide show
  1. reframe/__init__.py +26 -0
  2. reframe/core/backends.py +72 -0
  3. reframe/core/buildsystems.py +1027 -0
  4. reframe/core/builtins.py +240 -0
  5. reframe/core/config.py +720 -0
  6. reframe/core/containers.py +302 -0
  7. reframe/core/decorators.py +248 -0
  8. reframe/core/deferrable.py +397 -0
  9. reframe/core/environments.py +340 -0
  10. reframe/core/exceptions.py +485 -0
  11. reframe/core/fields.py +206 -0
  12. reframe/core/fixtures.py +1061 -0
  13. reframe/core/hooks.py +214 -0
  14. reframe/core/launchers/__init__.py +153 -0
  15. reframe/core/launchers/local.py +18 -0
  16. reframe/core/launchers/mpi.py +198 -0
  17. reframe/core/launchers/rsh.py +39 -0
  18. reframe/core/logging.py +1186 -0
  19. reframe/core/meta.py +1007 -0
  20. reframe/core/modules.py +1045 -0
  21. reframe/core/namespaces.py +165 -0
  22. reframe/core/parameters.py +478 -0
  23. reframe/core/pipeline.py +3582 -0
  24. reframe/core/runtime.py +505 -0
  25. reframe/core/schedulers/__init__.py +731 -0
  26. reframe/core/schedulers/flux.py +153 -0
  27. reframe/core/schedulers/local.py +218 -0
  28. reframe/core/schedulers/lsf.py +150 -0
  29. reframe/core/schedulers/oar.py +200 -0
  30. reframe/core/schedulers/pbs.py +410 -0
  31. reframe/core/schedulers/registry.py +44 -0
  32. reframe/core/schedulers/sge.py +140 -0
  33. reframe/core/schedulers/slurm.py +825 -0
  34. reframe/core/schedulers/ssh.py +228 -0
  35. reframe/core/settings.py +97 -0
  36. reframe/core/shell.py +131 -0
  37. reframe/core/systems.py +737 -0
  38. reframe/core/variables.py +973 -0
  39. reframe/core/warnings.py +101 -0
  40. reframe/frontend/__init__.py +0 -0
  41. reframe/frontend/argparse.py +369 -0
  42. reframe/frontend/autodetect.py +288 -0
  43. reframe/frontend/ci.py +104 -0
  44. reframe/frontend/cli.py +1930 -0
  45. reframe/frontend/dependencies.py +273 -0
  46. reframe/frontend/executors/__init__.py +874 -0
  47. reframe/frontend/executors/policies.py +671 -0
  48. reframe/frontend/filters.py +126 -0
  49. reframe/frontend/loader.py +248 -0
  50. reframe/frontend/printer.py +303 -0
  51. reframe/frontend/reporting/__init__.py +801 -0
  52. reframe/frontend/reporting/storage.py +462 -0
  53. reframe/frontend/reporting/utility.py +449 -0
  54. reframe/frontend/testgenerators.py +245 -0
  55. reframe/schemas/config.json +733 -0
  56. reframe/schemas/junit.xsd +212 -0
  57. reframe/schemas/runreport.json +130 -0
  58. reframe/utility/__init__.py +1496 -0
  59. reframe/utility/color.py +91 -0
  60. reframe/utility/cpuinfo.py +299 -0
  61. reframe/utility/jsonext.py +145 -0
  62. reframe/utility/osext.py +967 -0
  63. reframe/utility/profile.py +90 -0
  64. reframe/utility/sanity.py +1059 -0
  65. reframe/utility/typecheck.py +488 -0
  66. reframe/utility/udeps.py +166 -0
  67. reframe/utility/versioning.py +91 -0
  68. reframe_hpc-4.10.0.data/data/share/bash-completion/completions/reframe +46 -0
  69. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/config/mysettings.py +164 -0
  70. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/cscs-webinar-2022.cast +4228 -0
  71. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/src/stream.c +585 -0
  72. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream1.py +14 -0
  73. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream2.py +18 -0
  74. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream3.py +29 -0
  75. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream4.py +43 -0
  76. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream5.py +46 -0
  77. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream6.py +48 -0
  78. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream7.py +59 -0
  79. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream8.py +75 -0
  80. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/cscs-webinar-2022/tests/stream9.py +87 -0
  81. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/flux/README.md +4 -0
  82. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/flux/example1.py +30 -0
  83. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/flux/settings.py +85 -0
  84. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/reference_index.py +94 -0
  85. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/testlib/__init__.py +0 -0
  86. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/testlib/simple.py +27 -0
  87. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/testlib/utility/__init__.py +7 -0
  88. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/howto/testlib_example.py +12 -0
  89. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/baseline.py +29 -0
  90. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/baseline.yaml +18 -0
  91. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/baseline_contplatf.py +24 -0
  92. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/baseline_environs.py +43 -0
  93. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/baseline_modules.py +24 -0
  94. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/cluster.py +71 -0
  95. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/cluster_logging.py +94 -0
  96. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/cluster_mpi.py +78 -0
  97. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/cluster_perflogs.py +90 -0
  98. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/cluster_perflogs_httpjson.py +128 -0
  99. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/cluster_resources.py +71 -0
  100. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/multifile/common/settings.py +32 -0
  101. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/multifile/environments/settings.py +27 -0
  102. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/config/multifile/pseudo-cluster/settings.py +31 -0
  103. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/containers/container_test.py +26 -0
  104. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/deps/deps_complex.py +197 -0
  105. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/deps/parameterized.py +40 -0
  106. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/eb-spack.dockerfile +38 -0
  107. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/flux.dockerfile +13 -0
  108. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/singlenode.Dockerfile +31 -0
  109. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/README.txt +6 -0
  110. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/dbd/Dockerfile +38 -0
  111. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/dbd/cgroup.conf +5 -0
  112. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/dbd/docker-entrypoint.sh +19 -0
  113. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/dbd/slurm.conf +156 -0
  114. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/dbd/slurmdbd.conf +35 -0
  115. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/docker-compose.yml +163 -0
  116. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/master/Dockerfile +24 -0
  117. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/master/docker-entrypoint.sh +6 -0
  118. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/munge/Dockerfile +19 -0
  119. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/munge/entrypoint.sh +5 -0
  120. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/node/Dockerfile +35 -0
  121. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/node/docker-entrypoint.sh +6 -0
  122. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile +49 -0
  123. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dockerfiles/slurm-cluster/reframe/docker-entrypoint.sh +11 -0
  124. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/dummy/params.py +49 -0
  125. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/easybuild/eb_test.py +30 -0
  126. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/mpi/osu.py +111 -0
  127. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/mpi/osu_deps.py +126 -0
  128. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/scripts/runall.sh +23 -0
  129. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/spack/spack_test.py +27 -0
  130. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/src/stream.c +585 -0
  131. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_build_run.py +33 -0
  132. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_config.yaml +18 -0
  133. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_cpuinfo.py +51 -0
  134. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_fixtures.py +46 -0
  135. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_make.py +51 -0
  136. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_multistep.py +52 -0
  137. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_parameters.py +51 -0
  138. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_parameters_fixtures.py +53 -0
  139. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_runonly.py +26 -0
  140. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_runonly_xfail.py +26 -0
  141. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_runonly_xfail_cond.py +31 -0
  142. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_variables.py +50 -0
  143. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_variables_fixtures.py +50 -0
  144. reframe_hpc-4.10.0.data/data/share/doc/reframe-hpc/examples/tutorial/stream/stream_workflows.py +62 -0
  145. reframe_hpc-4.10.0.data/data/share/fish/vendor_completions.d/reframe.fish +17 -0
  146. reframe_hpc-4.10.0.data/data/share/reframe/completions/reframe.tcsh +1 -0
  147. reframe_hpc-4.10.0.dist-info/METADATA +234 -0
  148. reframe_hpc-4.10.0.dist-info/RECORD +151 -0
  149. reframe_hpc-4.10.0.dist-info/WHEEL +4 -0
  150. reframe_hpc-4.10.0.dist-info/entry_points.txt +2 -0
  151. reframe_hpc-4.10.0.dist-info/licenses/LICENSE +29 -0
reframe/__init__.py ADDED
@@ -0,0 +1,26 @@
1
+ # Copyright 2016-2026 Swiss National Supercomputing Centre (CSCS/ETH Zurich)
2
+ # ReFrame Project Developers. See the top-level LICENSE file for details.
3
+ #
4
+ # SPDX-License-Identifier: BSD-3-Clause
5
+
6
+ import os
7
+ import sys
8
+
9
+ VERSION = '4.10.0'
10
+ INSTALL_PREFIX = os.path.normpath(
11
+ os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
12
+ )
13
+ MIN_PYTHON_VERSION = (3, 10)
14
+
15
+ # Check python version
16
+ if sys.version_info[:3] < MIN_PYTHON_VERSION:
17
+ sys.stderr.write('Unsupported Python version: '
18
+ 'Python >= %d.%d is required\n' % MIN_PYTHON_VERSION)
19
+ sys.exit(1)
20
+
21
+ os.environ['RFM_INSTALL_PREFIX'] = INSTALL_PREFIX
22
+
23
+
24
+ # Import important names for user tests
25
+ from reframe.core.pipeline import * # noqa: F401, F403, E402
26
+ from reframe.core.decorators import * # noqa: F401, F403, E402
@@ -0,0 +1,72 @@
1
+ # Copyright 2016-2024 Swiss National Supercomputing Centre (CSCS/ETH Zurich)
2
+ # ReFrame Project Developers. See the top-level LICENSE file for details.
3
+ #
4
+ # SPDX-License-Identifier: BSD-3-Clause
5
+
6
+
7
+ import importlib
8
+ import functools
9
+
10
+ import reframe.core.fields as fields
11
+ from reframe.core.exceptions import ConfigError
12
+
13
+ _launcher_backend_modules = [
14
+ 'reframe.core.launchers.local',
15
+ 'reframe.core.launchers.mpi',
16
+ 'reframe.core.launchers.rsh'
17
+ ]
18
+ _launchers = {}
19
+ _scheduler_backend_modules = [
20
+ 'reframe.core.schedulers.flux',
21
+ 'reframe.core.schedulers.local',
22
+ 'reframe.core.schedulers.lsf',
23
+ 'reframe.core.schedulers.pbs',
24
+ 'reframe.core.schedulers.oar',
25
+ 'reframe.core.schedulers.sge',
26
+ 'reframe.core.schedulers.slurm',
27
+ 'reframe.core.schedulers.ssh'
28
+ ]
29
+ _schedulers = {}
30
+
31
+
32
+ def _register_backend(name, local=False, error=None, *, backend_type):
33
+ def do_register(cls):
34
+ registry = globals()[f'_{backend_type}s']
35
+ if name in registry:
36
+ raise ConfigError(
37
+ f"'{name}' is already registered as a {backend_type}"
38
+ )
39
+
40
+ cls.is_local = fields.ConstantField(bool(local))
41
+ cls.registered_name = fields.ConstantField(name)
42
+ registry[name] = (cls, error)
43
+ return cls
44
+
45
+ return do_register
46
+
47
+
48
+ def _get_backend(name, *, backend_type):
49
+ backend_modules = globals()[f'_{backend_type}_backend_modules']
50
+ for mod in backend_modules:
51
+ importlib.import_module(mod)
52
+
53
+ try:
54
+ cls, error = globals()[f'_{backend_type}s'][name]
55
+ if error:
56
+ raise ConfigError(
57
+ f'could not register {backend_type} backend: {error}'
58
+ )
59
+ except KeyError:
60
+ raise ConfigError(f'no such {backend_type}: {name!r}')
61
+ else:
62
+ return cls
63
+
64
+
65
+ register_scheduler = functools.partial(
66
+ _register_backend, backend_type='scheduler'
67
+ )
68
+ register_launcher = functools.partial(
69
+ _register_backend, backend_type='launcher'
70
+ )
71
+ getscheduler = functools.partial(_get_backend, backend_type='scheduler')
72
+ getlauncher = functools.partial(_get_backend, backend_type='launcher')