gammasimtools 0.5.1__tar.gz → 0.6.1__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 (372) hide show
  1. gammasimtools-0.6.1/.env_template +13 -0
  2. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/.github/workflows/CI-docs.yml +19 -8
  3. gammasimtools-0.6.1/.github/workflows/CI-integrationtests.yml +45 -0
  4. gammasimtools-0.6.1/.github/workflows/CI-linter.yml +136 -0
  5. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/.github/workflows/CI-unittests.yml +28 -35
  6. gammasimtools-0.5.1/.github/workflows/build-docker-images.yml → gammasimtools-0.6.1/.github/workflows/build-docker-corsika-simtelarray-image.yml +19 -13
  7. gammasimtools-0.6.1/.github/workflows/build-docker-images.yml +108 -0
  8. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/.github/workflows/pypi.yml +3 -3
  9. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/.gitignore +6 -5
  10. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/.pre-commit-config.yaml +27 -4
  11. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/CITATION.cff +5 -0
  12. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/PKG-INFO +97 -27
  13. gammasimtools-0.6.1/README.rst +104 -0
  14. gammasimtools-0.6.1/codecov.yml +11 -0
  15. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-North-1LST.ecsv +4 -4
  16. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-North-1MST.ecsv +4 -4
  17. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-North-4LST.ecsv +4 -4
  18. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-North-4MST.ecsv +4 -4
  19. gammasimtools-0.6.1/data/layout/telescope_positions-North-TestLayout.ecsv +115 -0
  20. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-South-1LST.ecsv +4 -4
  21. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-South-1MST.ecsv +4 -4
  22. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-South-1SST.ecsv +4 -4
  23. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-South-4LST.ecsv +4 -4
  24. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-South-4MST.ecsv +4 -4
  25. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/layout/telescope_positions-South-4SST.ecsv +4 -4
  26. gammasimtools-0.6.1/data/layout/telescope_positions-South-TestLayout.ecsv +153 -0
  27. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/parameters/array-simulator_parameters.yml +0 -4
  28. gammasimtools-0.5.1/data/parameters/simtel-runner-ray-tracing_parameters.yml → gammasimtools-0.6.1/data/parameters/camera-efficiency_parameters.yml +5 -14
  29. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/parameters/corsika_parameters.yml +18 -0
  30. gammasimtools-0.6.1/docker/Dockerfile-dev +25 -0
  31. gammasimtools-0.6.1/docker/Dockerfile-prod +24 -0
  32. gammasimtools-0.6.1/docker/Dockerfile-simtelarray +45 -0
  33. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docker/README.md +9 -11
  34. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/Makefile +1 -1
  35. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/applications.rst +30 -13
  36. gammasimtools-0.5.1/docs/source/layout_array.rst → gammasimtools-0.6.1/docs/source/array_layout.rst +10 -2
  37. gammasimtools-0.6.1/docs/source/coding_guidelines.rst +163 -0
  38. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/conf.py +69 -112
  39. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/data_model.rst +0 -8
  40. gammasimtools-0.6.1/docs/source/developer_guidelines.rst +242 -0
  41. gammasimtools-0.6.1/docs/source/getting_started.rst +215 -0
  42. gammasimtools-0.6.1/docs/source/index.rst +19 -0
  43. gammasimtools-0.6.1/docs/source/io_operations.rst +22 -0
  44. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/library.rst +3 -3
  45. gammasimtools-0.6.1/docs/source/pull_requests.rst +46 -0
  46. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/environment.yml +17 -10
  47. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/gammasimtools.egg-info/PKG-INFO +97 -27
  48. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/gammasimtools.egg-info/SOURCES.txt +118 -21
  49. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/gammasimtools.egg-info/entry_points.txt +4 -2
  50. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/gammasimtools.egg-info/requires.txt +8 -3
  51. gammasimtools-0.6.1/pyproject.toml +155 -0
  52. gammasimtools-0.6.1/simtools/_version.py +16 -0
  53. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/add_file_to_db.py +2 -1
  54. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/compare_cumulative_psf.py +10 -15
  55. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/db_development_tools/add_new_parameter_to_db.py +12 -6
  56. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/derive_mirror_rnda.py +95 -71
  57. gammasimtools-0.6.1/simtools/applications/generate_corsika_histograms.py +493 -0
  58. gammasimtools-0.6.1/simtools/applications/generate_default_metadata.py +110 -0
  59. gammasimtools-0.6.1/simtools/applications/generate_simtel_array_histograms.py +192 -0
  60. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/get_file_from_db.py +1 -1
  61. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/get_parameter.py +3 -3
  62. gammasimtools-0.6.1/simtools/applications/make_regular_arrays.py +160 -0
  63. gammasimtools-0.5.1/simtools/applications/plot_layout_array.py → gammasimtools-0.6.1/simtools/applications/plot_array_layout.py +15 -14
  64. gammasimtools-0.6.1/simtools/applications/print_array_elements.py +196 -0
  65. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/produce_array_config.py +2 -2
  66. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/production.py +39 -5
  67. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/sim_showers_for_trigger_rates.py +26 -30
  68. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/simulate_prod.py +49 -107
  69. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/submit_data_from_external.py +8 -10
  70. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/tune_psf.py +16 -18
  71. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/validate_camera_efficiency.py +63 -9
  72. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/validate_camera_fov.py +9 -13
  73. gammasimtools-0.6.1/simtools/applications/validate_file_using_schema.py +127 -0
  74. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/validate_optics.py +13 -15
  75. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/camera_efficiency.py +73 -80
  76. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/configuration/commandline_parser.py +52 -22
  77. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/configuration/configurator.py +98 -33
  78. gammasimtools-0.6.1/simtools/constants.py +9 -0
  79. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/corsika/corsika_config.py +28 -22
  80. gammasimtools-0.6.1/simtools/corsika/corsika_default_config.py +282 -0
  81. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/corsika/corsika_histograms.py +328 -282
  82. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/corsika/corsika_histograms_visualize.py +162 -163
  83. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/corsika/corsika_runner.py +8 -4
  84. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/corsika_simtel/corsika_simtel_runner.py +18 -23
  85. gammasimtools-0.6.1/simtools/data_model/data_reader.py +129 -0
  86. gammasimtools-0.6.1/simtools/data_model/metadata_collector.py +539 -0
  87. gammasimtools-0.6.1/simtools/data_model/metadata_model.py +186 -0
  88. gammasimtools-0.6.1/simtools/data_model/model_data_writer.py +197 -0
  89. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/data_model/validate_data.py +96 -46
  90. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/db_handler.py +67 -42
  91. gammasimtools-0.6.1/simtools/io_operations/hdf5_handler.py +112 -0
  92. {gammasimtools-0.5.1/simtools → gammasimtools-0.6.1/simtools/io_operations}/io_handler.py +51 -22
  93. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/job_execution/job_manager.py +1 -1
  94. gammasimtools-0.5.1/simtools/layout/layout_array.py → gammasimtools-0.6.1/simtools/layout/array_layout.py +168 -199
  95. gammasimtools-0.6.1/simtools/layout/geo_coordinates.py +196 -0
  96. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/layout/telescope_position.py +12 -12
  97. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/model/array_model.py +16 -14
  98. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/model/camera.py +5 -8
  99. gammasimtools-0.6.1/simtools/model/mirrors.py +222 -0
  100. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/model/model_utils.py +1 -69
  101. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/model/telescope_model.py +32 -25
  102. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/psf_analysis.py +26 -19
  103. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/ray_tracing.py +54 -26
  104. gammasimtools-0.6.1/simtools/schemas/data.metaschema.yml +400 -0
  105. gammasimtools-0.6.1/simtools/schemas/metadata.metaschema.yml +566 -0
  106. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/simtel/simtel_config_writer.py +14 -5
  107. gammasimtools-0.6.1/simtools/simtel/simtel_histograms.py +414 -0
  108. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/simtel/simtel_runner.py +8 -7
  109. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/simtel/simtel_runner_array.py +7 -8
  110. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/simtel/simtel_runner_camera_efficiency.py +48 -2
  111. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/simtel/simtel_runner_ray_tracing.py +61 -25
  112. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/simulator.py +43 -50
  113. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/utils/general.py +232 -286
  114. gammasimtools-0.6.1/simtools/utils/geometry.py +163 -0
  115. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/utils/names.py +294 -142
  116. gammasimtools-0.6.1/simtools/visualization/__init__.py +0 -0
  117. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/visualization/legend_handlers.py +115 -9
  118. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/visualization/visualize.py +13 -13
  119. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/conftest.py +138 -28
  120. gammasimtools-0.6.1/tests/integration_tests/config/add_file_to_db_run.yml +8 -0
  121. gammasimtools-0.6.1/tests/integration_tests/config/compare_cumulative_psf_prod5_psf.yml +11 -0
  122. gammasimtools-0.6.1/tests/integration_tests/config/derive_mirror_rnda_psf_mean.yml +12 -0
  123. gammasimtools-0.6.1/tests/integration_tests/config/derive_mirror_rnda_psf_measurement.yml +13 -0
  124. gammasimtools-0.6.1/tests/integration_tests/config/derive_mirror_rnda_psf_no_tuning.yml +13 -0
  125. gammasimtools-0.6.1/tests/integration_tests/config/derive_mirror_rnda_psf_random_flen.yml +12 -0
  126. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_1D_run_header.yml +12 -0
  127. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_1d_and_2d_run_header.yml +15 -0
  128. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_2D_run_header.yml +14 -0
  129. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_figures.yml +9 -0
  130. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_figures_and_tables.yml +10 -0
  131. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_individual_telescopes_and_indices.yml +13 -0
  132. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_output.yml +11 -0
  133. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_tables.yml +11 -0
  134. gammasimtools-0.6.1/tests/integration_tests/config/generate_corsika_histograms_telescope_indices.yml +12 -0
  135. gammasimtools-0.6.1/tests/integration_tests/config/generate_default_metadata_to_json_file.yml +10 -0
  136. gammasimtools-0.6.1/tests/integration_tests/config/generate_default_metadata_to_yml_file.yml +10 -0
  137. gammasimtools-0.6.1/tests/integration_tests/config/generate_simtel_array_histograms_file_lists.yml +12 -0
  138. gammasimtools-0.6.1/tests/integration_tests/config/generate_simtel_array_histograms_hist_file_names.yml +13 -0
  139. gammasimtools-0.6.1/tests/integration_tests/config/generate_simtel_array_histograms_hist_file_names_pdf_hdf5.yml +14 -0
  140. gammasimtools-0.6.1/tests/integration_tests/config/generate_simtel_array_histograms_hist_file_names_pdf_no_name.yml +12 -0
  141. gammasimtools-0.6.1/tests/integration_tests/config/generate_simtel_array_histograms_hist_more_file_names.yml +14 -0
  142. gammasimtools-0.6.1/tests/integration_tests/config/get_file_from_db_CTA-Simulation-Model-Derived-Values.yml +6 -0
  143. gammasimtools-0.6.1/tests/integration_tests/config/get_file_from_db_CTA-Simulation-Model.yml +6 -0
  144. gammasimtools-0.6.1/tests/integration_tests/config/get_file_from_db_test-data.yml +6 -0
  145. gammasimtools-0.6.1/tests/integration_tests/config/get_parameter_site_parameter.yml +6 -0
  146. gammasimtools-0.6.1/tests/integration_tests/config/get_parameter_telescope_parameter.yml +8 -0
  147. gammasimtools-0.6.1/tests/integration_tests/config/make_regular_arrays_run_north.yml +6 -0
  148. gammasimtools-0.6.1/tests/integration_tests/config/make_regular_arrays_run_south.yml +6 -0
  149. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_by_name.yml +6 -0
  150. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_by_two_names_one_angle.yml +9 -0
  151. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_by_two_names_two_angles.yml +9 -0
  152. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_layout_name_one_angle.yml +7 -0
  153. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_one_file.yml +6 -0
  154. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_one_file_one_angle.yml +7 -0
  155. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_one_file_two_angles.yml +7 -0
  156. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_one_file_with_name.yml +7 -0
  157. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_one_file_with_name_with_extension.yml +7 -0
  158. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_two_files.yml +8 -0
  159. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_two_files_one_angle.yml +9 -0
  160. gammasimtools-0.6.1/tests/integration_tests/config/plot_array_layout_two_files_two_angles.yml +9 -0
  161. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_ground_to_ground.yml +9 -0
  162. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_mercator_to_utm_meta_in_table.yml +16 -0
  163. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_print_all.yml +5 -0
  164. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_print_compact.yml +6 -0
  165. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_print_compact_corsika_telescopeheights.yml +11 -0
  166. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_print_compact_nocors_corsika.yml +6 -0
  167. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_print_compact_nocors_utm.yml +6 -0
  168. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_utm_to_ground_meta_in_table.yml +15 -0
  169. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_utm_to_ground_meta_in_yml.yml +16 -0
  170. gammasimtools-0.6.1/tests/integration_tests/config/print_array_elements_utm_to_mercator_meta_in_table.yml +15 -0
  171. gammasimtools-0.6.1/tests/integration_tests/config/produce_array_config_run.yml +6 -0
  172. gammasimtools-0.6.1/tests/integration_tests/config/production_array_only.yml +16 -0
  173. gammasimtools-0.6.1/tests/integration_tests/config/production_showers_only.yml +14 -0
  174. gammasimtools-0.6.1/tests/integration_tests/config/sim_showers_for_trigger_rates_run.yml +13 -0
  175. gammasimtools-0.6.1/tests/integration_tests/config/simulate_prod_gamma_20_deg.yml +15 -0
  176. gammasimtools-0.6.1/tests/integration_tests/config/simulate_prod_gamma_20_deg_pack_for_grid.yml +16 -0
  177. gammasimtools-0.6.1/tests/integration_tests/config/submit_data_from_external_submit_table.yml +9 -0
  178. gammasimtools-0.6.1/tests/integration_tests/config/submit_data_from_external_submit_yml.yml +8 -0
  179. gammasimtools-0.6.1/tests/integration_tests/config/tune_psf_run.yml +11 -0
  180. gammasimtools-0.6.1/tests/integration_tests/config/validate_camera_efficiency_mst_flashcam.yml +9 -0
  181. gammasimtools-0.6.1/tests/integration_tests/config/validate_camera_efficiency_mst_nectarcam.yml +8 -0
  182. gammasimtools-0.6.1/tests/integration_tests/config/validate_camera_efficiency_sst.yml +8 -0
  183. gammasimtools-0.6.1/tests/integration_tests/config/validate_camera_fov_run.yml +8 -0
  184. gammasimtools-0.6.1/tests/integration_tests/config/validate_file_using_schema_ecsv_input.yml +6 -0
  185. gammasimtools-0.6.1/tests/integration_tests/config/validate_file_using_schema_ecsv_input_test_meta.yml +6 -0
  186. gammasimtools-0.6.1/tests/integration_tests/config/validate_file_using_schema_json_input.yml +7 -0
  187. gammasimtools-0.6.1/tests/integration_tests/config/validate_file_using_schema_json_input_no_schema.yml +5 -0
  188. gammasimtools-0.6.1/tests/integration_tests/config/validate_file_using_schema_json_input_test_meta.yml +6 -0
  189. gammasimtools-0.6.1/tests/integration_tests/config/validate_file_using_schema_yml_input.yml +6 -0
  190. gammasimtools-0.6.1/tests/integration_tests/config/validate_file_using_schema_yml_input_no_schema.yml +5 -0
  191. gammasimtools-0.6.1/tests/integration_tests/config/validate_optics_run.yml +11 -0
  192. gammasimtools-0.6.1/tests/integration_tests/test_applications_from_config.py +317 -0
  193. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/integration_tests/test_ray_tracing.py +53 -56
  194. gammasimtools-0.6.1/tests/resources/CTA-North-LST-1-Released_test-telescope-model.cfg +107 -0
  195. gammasimtools-0.6.1/tests/resources/MLTdata-preproduction.ecsv +209 -0
  196. gammasimtools-0.6.1/tests/resources/MLTdata-preproduction.meta.yml +71 -0
  197. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/MST_mirror_2f_measurements.schema.yml +8 -8
  198. gammasimtools-0.6.1/tests/resources/PSFcurve_data_v2.txt +43 -0
  199. gammasimtools-0.6.1/tests/resources/benn_ellison_spectrum_for_testing.txt +445 -0
  200. gammasimtools-0.6.1/tests/resources/log_sub_corsika_run000001_gamma_North_TestLayout_test-production.out +1 -0
  201. gammasimtools-0.6.1/tests/resources/mirror_list_CTA-N-LST1_v2019-03-31_rotated.ecsv +222 -0
  202. gammasimtools-0.6.1/tests/resources/mirror_list_CTA-N-LST1_v2019-03-31_rotated_simtel.dat +225 -0
  203. gammasimtools-0.6.1/tests/resources/photons-North-LST-1-d10.0-za20.0-off0.000_validate_optics.lis.gz +0 -0
  204. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/prod_config_test.yml +6 -6
  205. gammasimtools-0.6.1/tests/resources/prod_multi_config_test.yml +21 -0
  206. gammasimtools-0.6.1/tests/resources/ray-tracing-North-LST-1-d10.0-za20.0_validate_optics.ecsv +37 -0
  207. gammasimtools-0.6.1/tests/resources/reference_point_altitude.json +79 -0
  208. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/reference_position_mercator.schema.yml +5 -5
  209. gammasimtools-0.6.1/tests/resources/simtel_histograms_file_list.txt +1 -0
  210. gammasimtools-0.6.1/tests/resources/telescope_positions-North-ground.ecsv +115 -0
  211. gammasimtools-0.6.1/tests/resources/telescope_positions-North-mercator.ecsv +78 -0
  212. gammasimtools-0.6.1/tests/resources/telescope_positions-North-utm-without-cta-meta.ecsv +54 -0
  213. gammasimtools-0.6.1/tests/resources/telescope_positions-North-utm.ecsv +75 -0
  214. gammasimtools-0.6.1/tests/resources/telescope_positions-North-utm.meta.yml +57 -0
  215. gammasimtools-0.6.1/tests/resources/telescope_positions-North-with-calibration-devices-ground.ecsv +127 -0
  216. gammasimtools-0.6.1/tests/resources/telescope_positions-South-ground.ecsv +153 -0
  217. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/configuration/test_commandline_parser.py +50 -6
  218. gammasimtools-0.6.1/tests/unit_tests/configuration/test_configurator.py +367 -0
  219. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/corsika/test_corsika_config.py +16 -12
  220. gammasimtools-0.6.1/tests/unit_tests/corsika/test_corsika_default_config.py +106 -0
  221. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/corsika/test_corsika_histograms.py +281 -297
  222. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/corsika/test_corsika_histograms_visualize.py +54 -41
  223. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/corsika/test_corsika_runner.py +4 -5
  224. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/corsika_simtel/test_corsika_simtel_runner.py +24 -43
  225. gammasimtools-0.6.1/tests/unit_tests/data_model/test_data_reader.py +126 -0
  226. gammasimtools-0.6.1/tests/unit_tests/data_model/test_metadata_collector.py +384 -0
  227. gammasimtools-0.6.1/tests/unit_tests/data_model/test_metadata_model.py +145 -0
  228. gammasimtools-0.6.1/tests/unit_tests/data_model/test_model_data_writer.py +131 -0
  229. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/data_model/test_validate_data.py +151 -54
  230. gammasimtools-0.6.1/tests/unit_tests/io_operations/test_hdf5_handler.py +44 -0
  231. {gammasimtools-0.5.1/tests/unit_tests → gammasimtools-0.6.1/tests/unit_tests/io_operations}/test_io_handler.py +49 -13
  232. gammasimtools-0.6.1/tests/unit_tests/layout/test_array_layout.py +688 -0
  233. gammasimtools-0.6.1/tests/unit_tests/layout/test_geo_coordinates.py +128 -0
  234. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/layout/test_telescope_position.py +97 -29
  235. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/model/test_array_model.py +1 -1
  236. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/model/test_camera_model.py +0 -2
  237. gammasimtools-0.6.1/tests/unit_tests/model/test_mirrors.py +181 -0
  238. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/model/test_telescope_model.py +3 -13
  239. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/simtel/test_simtel_config_writer.py +13 -10
  240. gammasimtools-0.6.1/tests/unit_tests/simtel/test_simtel_histograms.py +105 -0
  241. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/simtel/test_simtel_runner.py +7 -1
  242. gammasimtools-0.6.1/tests/unit_tests/simtel/test_simtel_runner_camera_efficiency.py +128 -0
  243. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/simtel/test_simtel_runner_ray_tracing.py +3 -5
  244. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/test_camera_efficiency.py +36 -19
  245. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/test_db_handler.py +101 -50
  246. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/test_psf_analysis.py +2 -3
  247. gammasimtools-0.6.1/tests/unit_tests/test_ray_tracing.py +226 -0
  248. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/test_simulator.py +30 -64
  249. gammasimtools-0.6.1/tests/unit_tests/utils/test_general.py +720 -0
  250. gammasimtools-0.6.1/tests/unit_tests/utils/test_geometry.py +87 -0
  251. gammasimtools-0.6.1/tests/unit_tests/utils/test_names.py +638 -0
  252. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/visualization/test_legend_handlers.py +2 -2
  253. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/visualization/test_visualize.py +21 -14
  254. gammasimtools-0.5.1/.github/workflows/CI-integrationtests.yml +0 -95
  255. gammasimtools-0.5.1/.github/workflows/build-docker-corsika-simtelarray-image.yml +0 -82
  256. gammasimtools-0.5.1/.mailmap +0 -3
  257. gammasimtools-0.5.1/README.rst +0 -60
  258. gammasimtools-0.5.1/data/layout/telescope_positions-North-TestLayout.ecsv +0 -67
  259. gammasimtools-0.5.1/data/layout/telescope_positions-South-TestLayout.ecsv +0 -128
  260. gammasimtools-0.5.1/data/parameters/camera-efficiency_parameters.yml +0 -7
  261. gammasimtools-0.5.1/data/parameters/ray-tracing_parameters.yml +0 -30
  262. gammasimtools-0.5.1/docker/Dockerfile-dev +0 -31
  263. gammasimtools-0.5.1/docker/Dockerfile-prod +0 -29
  264. gammasimtools-0.5.1/docker/Dockerfile-simtelarray +0 -49
  265. gammasimtools-0.5.1/docker/entrypoint.sh +0 -9
  266. gammasimtools-0.5.1/docs/source/getting_started.rst +0 -179
  267. gammasimtools-0.5.1/docs/source/guidelines.rst +0 -331
  268. gammasimtools-0.5.1/docs/source/index.rst +0 -51
  269. gammasimtools-0.5.1/docs/source/io_handler.rst +0 -14
  270. gammasimtools-0.5.1/pyproject.toml +0 -629
  271. gammasimtools-0.5.1/set_DB_environ_template.sh +0 -11
  272. gammasimtools-0.5.1/simtools/_version.py +0 -4
  273. gammasimtools-0.5.1/simtools/applications/generate_corsika_histograms.py +0 -408
  274. gammasimtools-0.5.1/simtools/applications/make_regular_arrays.py +0 -164
  275. gammasimtools-0.5.1/simtools/applications/plot_simtel_histograms.py +0 -120
  276. gammasimtools-0.5.1/simtools/applications/print_array_elements.py +0 -149
  277. gammasimtools-0.5.1/simtools/applications/validate_schema_files.py +0 -135
  278. gammasimtools-0.5.1/simtools/corsika/corsika_output_visualize.py +0 -345
  279. gammasimtools-0.5.1/simtools/data_model/metadata_collector.py +0 -311
  280. gammasimtools-0.5.1/simtools/data_model/metadata_model.py +0 -281
  281. gammasimtools-0.5.1/simtools/data_model/model_data_writer.py +0 -140
  282. gammasimtools-0.5.1/simtools/data_model/validate_schema.py +0 -285
  283. gammasimtools-0.5.1/simtools/model/mirrors.py +0 -159
  284. gammasimtools-0.5.1/simtools/simtel/simtel_histograms.py +0 -231
  285. gammasimtools-0.5.1/tests/integration_tests/test_applications.py +0 -696
  286. gammasimtools-0.5.1/tests/resources/MLTdata-preproduction.ecsv +0 -17
  287. gammasimtools-0.5.1/tests/resources/MLTdata-preproduction.meta.yml +0 -55
  288. gammasimtools-0.5.1/tests/resources/photons-LST-d12.0-za20.0-off0.000_lst_integral.lis +0 -5558
  289. gammasimtools-0.5.1/tests/resources/prod_multi_config_test.yml +0 -49
  290. gammasimtools-0.5.1/tests/resources/telescope_positions-North-utm.ecsv +0 -68
  291. gammasimtools-0.5.1/tests/resources/telescope_positions-North-utm.meta.yml +0 -45
  292. gammasimtools-0.5.1/tests/resources/telescope_positions-South-4MST.ecsv +0 -64
  293. gammasimtools-0.5.1/tests/unit_tests/configuration/test_configurator.py +0 -189
  294. gammasimtools-0.5.1/tests/unit_tests/data_model/test_metadata_collector.py +0 -266
  295. gammasimtools-0.5.1/tests/unit_tests/data_model/test_metadata_model.py +0 -73
  296. gammasimtools-0.5.1/tests/unit_tests/data_model/test_model_data_writer.py +0 -60
  297. gammasimtools-0.5.1/tests/unit_tests/data_model/test_validate_schema.py +0 -260
  298. gammasimtools-0.5.1/tests/unit_tests/layout/test_layout_array.py +0 -505
  299. gammasimtools-0.5.1/tests/unit_tests/model/test_mirrors.py +0 -28
  300. gammasimtools-0.5.1/tests/unit_tests/simtel/test_simtel_histograms.py +0 -33
  301. gammasimtools-0.5.1/tests/unit_tests/simtel/test_simtel_runner_camera_efficiency.py +0 -74
  302. gammasimtools-0.5.1/tests/unit_tests/test_ray_tracing.py +0 -72
  303. gammasimtools-0.5.1/tests/unit_tests/utils/test_general.py +0 -337
  304. gammasimtools-0.5.1/tests/unit_tests/utils/test_names.py +0 -77
  305. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/.github/dependabot.yml +0 -0
  306. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/LICENSE +0 -0
  307. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/data/parameters/simtel-runner-array_parameters.yml +0 -0
  308. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docker/download_simulationsoftware.sh +0 -0
  309. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/auxiliary_files.rst +0 -0
  310. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/camera_efficiency.rst +0 -0
  311. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/configuration_module.rst +0 -0
  312. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/corsika.rst +0 -0
  313. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/corsika_simtel.rst +0 -0
  314. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/databases.rst +0 -0
  315. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/db_handler.rst +0 -0
  316. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/compare_cumulative_psf_North-LST-1_cumulativePSF.png +0 -0
  317. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/compare_cumulative_psf_North-LST-1_image.png +0 -0
  318. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/derive_mirror_rnda_North-MST-FlashCam-D.png +0 -0
  319. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/derive_mirror_rnda_North-MST-FlashCam-D_D80-distributions.png +0 -0
  320. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/tune_psf.png +0 -0
  321. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/validate_camera_efficiency_North-MST-NectarCam-D_cherenkov.png +0 -0
  322. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/validate_camera_efficiency_North-MST-NectarCam-D_nsb.png +0 -0
  323. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/validate_camera_fov_North-LST-1_pixelLayout.png +0 -0
  324. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/validate_optics_North-LST-1_d80_cm.png +0 -0
  325. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/validate_optics_North-LST-1_d80_deg.png +0 -0
  326. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/validate_optics_North-LST-1_eff_area.png +0 -0
  327. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/images/validate_optics_North-LST-1_eff_flen.png +0 -0
  328. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/job_execution.rst +0 -0
  329. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/mc_model.rst +0 -0
  330. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/psf_analysis.rst +0 -0
  331. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/ray_tracing.rst +0 -0
  332. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/sim_telarray.rst +0 -0
  333. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/simtools-configuration.rst +0 -0
  334. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/simulation_software.rst +0 -0
  335. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/simulators.rst +0 -0
  336. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/utils.rst +0 -0
  337. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/docs/source/visualization.rst +0 -0
  338. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/gammasimtools.egg-info/dependency_links.txt +0 -0
  339. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/gammasimtools.egg-info/top_level.txt +0 -0
  340. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/setup.cfg +0 -0
  341. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/__init__.py +0 -0
  342. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/_dev_version/__init__.py +0 -0
  343. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/_dev_version/scm_version.py +0 -0
  344. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/__init__.py +0 -0
  345. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/db_development_tools/add_unit_to_parameter_in_db.py +0 -0
  346. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/applications/db_development_tools/mark_non_optics_parameters_non_applicable.py +0 -0
  347. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/configuration/__init__.py +0 -0
  348. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/corsika/__init__.py +0 -0
  349. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/corsika_simtel/__init__.py +0 -0
  350. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/data_model/__init__.py +0 -0
  351. {gammasimtools-0.5.1/simtools/job_execution → gammasimtools-0.6.1/simtools/io_operations}/__init__.py +0 -0
  352. {gammasimtools-0.5.1/simtools/layout → gammasimtools-0.6.1/simtools/job_execution}/__init__.py +0 -0
  353. {gammasimtools-0.5.1/simtools/model → gammasimtools-0.6.1/simtools/layout}/__init__.py +0 -0
  354. {gammasimtools-0.5.1/simtools/simtel → gammasimtools-0.6.1/simtools/model}/__init__.py +0 -0
  355. {gammasimtools-0.5.1/simtools/utils → gammasimtools-0.6.1/simtools/simtel}/__init__.py +0 -0
  356. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/simtel/simtel_events.py +0 -0
  357. {gammasimtools-0.5.1/simtools/visualization → gammasimtools-0.6.1/simtools/utils}/__init__.py +0 -0
  358. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/simtools/version.py +0 -0
  359. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/array_config_test.yml +0 -0
  360. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/gamma_20deg_0deg_run1___cta-prod5-lapalma_desert-2158m-LaPalma-dark.hdata.zst +0 -0
  361. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/reference_position_mercator.yml +0 -0
  362. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/run1_gamma_za20deg_azm0deg-North-Prod5_test-production-5.hdata.zst +0 -0
  363. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/run1_proton_za20deg_azm0deg_North_1LST_test-lst-array.corsika.zst +0 -0
  364. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/run201_proton_za20deg_azm0deg_North_TestLayout_test-prod.simtel.zst +0 -0
  365. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/run202_proton_za20deg_azm0deg_North_TestLayout_test-prod.simtel.zst +0 -0
  366. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/run2_gamma_za20deg_azm0deg-North-Prod5_test-production-5.hdata.zst +0 -0
  367. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/tel_output_10GeV-2-gamma-20deg-CTAO-South.corsikaio +0 -0
  368. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/resources/test_parameters.yml +0 -0
  369. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/__init__.py +0 -0
  370. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/job_execution/test_job_manager.py +0 -0
  371. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/simtel/test_simtel_events.py +0 -0
  372. {gammasimtools-0.5.1 → gammasimtools-0.6.1}/tests/unit_tests/simtel/test_simtel_runner_array.py +0 -0
@@ -0,0 +1,13 @@
1
+ # Template file for environment variables settings
2
+ # Copy this file to '.env' and add the required
3
+ # credentials for simulation model database access
4
+ SIMTOOLS_DB_API_PORT=27017 #Port on the MongoDB server
5
+ SIMTOOLS_DB_SERVER='cta-simpipe-protodb.zeuthen.desy.de' # MongoDB server
6
+ SIMTOOLS_DB_API_USER=YOUR_USERNAME # username for MongoDB: ask the responsible person
7
+ SIMTOOLS_DB_API_PW=YOUR_PASSWORD # Password for MongoDB: ask the responsible person
8
+ SIMTOOLS_DB_API_AUTHENTICATION_DATABASE='admin'
9
+ SIMTOOLS_SIMTEL_PATH='/workdir/sim_telarray'
10
+
11
+ # The dashboards to monitor the MongoDB instance are in (accessible only from within DESY)
12
+ # https://statspub.zeuthen.desy.de/d/4vXnWwMGz/mongodb?orgId=1&refresh=30s
13
+ # https://statspub.zeuthen.desy.de/d/tBkrQGNmz/mongodb-wiredtiger?orgId=1&refresh=1m
@@ -14,31 +14,42 @@ jobs:
14
14
 
15
15
  steps:
16
16
  - name: checkout
17
- uses: actions/checkout@v3
17
+ uses: actions/checkout@v4
18
18
 
19
- - name: Set up Python 3.10.4
20
- uses: actions/setup-python@v4
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
21
  with:
22
- python-version: 3.10.4
22
+ python-version: "3.11"
23
23
 
24
24
  - name: Python dependencies
25
25
  run: |
26
- python --version
27
26
  pip install '.[doc]'
28
27
 
28
+ - name: Check for non-ASCII characters
29
+ run: |
30
+ output=$(perl -ne 'print if /[^[:ascii:]]/' docs/source/*)
31
+ if [ -n "$output" ]; then
32
+ echo "Non-ASCII characters found in documentation."
33
+ exit 1
34
+ fi
35
+
29
36
  - name: Build docs
30
37
  shell: bash -l {0}
31
38
  run: |
32
39
  make -C docs/ html
40
+ exit_code=$?
41
+ if [ $exit_code -ne 0 ]; then
42
+ echo "Make command failed with exit code $exit_code"
43
+ exit $exit_code
44
+ fi
33
45
  touch docs/build/html/.nojekyll
34
46
 
35
- - name: Deploy to gihub pages
47
+ - name: Deploy to github pages
36
48
  # only run when PR is merged
37
49
  if: github.event.pull_request.merged
38
50
  uses: JamesIves/github-pages-deploy-action@v4
39
51
  with:
40
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
52
+ TOKEN: ${{ secrets.GITHUB_TOKEN }}
41
53
  BRANCH: gh-pages
42
54
  FOLDER: docs/build/html
43
55
  CLEAN: true
44
- SINGLE_COMMIT: true
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: CI-integrationtests
3
+ # Integration tests for applications
4
+
5
+ env:
6
+ SIMTOOLS_DB_SERVER: ${{ secrets.DB_SERVER }}
7
+ SIMTOOLS_DB_API_USER: ${{ secrets.DB_API_USER }}
8
+ SIMTOOLS_DB_API_PW: ${{ secrets.DB_API_PW }}
9
+ SIMTOOLS_DB_API_PORT: ${{ secrets.DB_API_PORT }}
10
+ SIMTOOLS_SIMTEL_PATH: "/workdir/sim_telarray/"
11
+
12
+ on:
13
+ pull_request:
14
+ types: [opened, synchronize]
15
+ schedule:
16
+ - cron: "0 0 * * *"
17
+
18
+ jobs:
19
+
20
+ integrationtests:
21
+ runs-on: ubuntu-latest
22
+ container:
23
+ image: ghcr.io/gammasim/simtools-dev:latest
24
+ options: --user 0
25
+
26
+ defaults:
27
+ run:
28
+ shell: bash -leo pipefail {0}
29
+
30
+ steps:
31
+
32
+ - name: checkout
33
+ uses: actions/checkout@v4
34
+
35
+ - name: Set PATH
36
+ run: |
37
+ echo "PATH=\$PATH:/usr/bin:/usr/local/bin:$SIMTOOLS_SIMTEL_PATH" >> $GITHUB_ENV
38
+
39
+ - name: Run integration tests
40
+ shell: bash -l {0}
41
+ run: |
42
+ source /workdir/env/bin/activate
43
+ pip install '.[tests,dev,doc]'
44
+ export PYTHONPATH=$PYTHONPATH:.
45
+ pytest --color=yes --durations=10 --no-cov tests/integration_tests/
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: CI-linting
3
+
4
+ on:
5
+ pull_request:
6
+ types: [opened, synchronize]
7
+ schedule:
8
+ - cron: "0 0 * * *"
9
+
10
+ jobs:
11
+
12
+ linting:
13
+ runs-on: ubuntu-latest
14
+ defaults:
15
+ run:
16
+ shell: bash -leo pipefail {0}
17
+
18
+ permissions:
19
+ contents: read
20
+ packages: read
21
+ statuses: write
22
+
23
+ steps:
24
+ - name: checkout
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: "3.11"
31
+
32
+ - name: Check for non-ASCII characters
33
+ run: |
34
+ output=$(find . -type f \
35
+ \( -name "*.py" -o -name "*.rst" -o -name "*.yml" -o -name "*.toml" \) \
36
+ -exec perl -ne 'print if /[^[:ascii:]]/' {} \;)
37
+ if [ -n "$output" ]; then
38
+ echo "Non-ASCII characters found in documentation."
39
+ exit 1
40
+ fi
41
+
42
+ - name: install packages not included in super-linter
43
+ run: |
44
+ pip install validate-pyproject restructuredtext-lint
45
+
46
+ - name: pyproject.toml
47
+ run: |
48
+ validate-pyproject pyproject.toml
49
+
50
+ # RST linter
51
+ # Note: unclear how to suppress error messages
52
+ # (use grep -v in this case)
53
+ # - name: restructuredtext-lint
54
+ # run: |
55
+ # rst-lint README.rst docs/source |
56
+ # grep -v "Unknown directive type" |
57
+ # grep -v "Unknown interpreted text role" |
58
+ # grep -v "Cannot analyze code. Pygments package not found."
59
+
60
+ - name: Check whether the citation metadata from CITATION.cff is valid
61
+ uses: citation-file-format/cffconvert-github-action@2.0.0
62
+ with:
63
+ args: "--validate"
64
+
65
+ - name: yaml_config used by super-linter
66
+ run: |
67
+ # TODO - very large line length
68
+ echo 'rules:' > yaml_config.yaml
69
+ echo ' line-length:' >> yaml_config.yaml
70
+ echo ' max: 250' >> yaml_config.yaml
71
+
72
+ # Dependencies required to avoid errors
73
+ # reported by linters
74
+ - name: Install mamba dependencies
75
+ uses: mamba-org/setup-micromamba@v1
76
+ with:
77
+ environment-file: environment.yml
78
+ init-shell: bash
79
+
80
+ - name: Python dependencies
81
+ run: |
82
+ pip install -e '.[tests,dev,doc]'
83
+ pip install pylint
84
+
85
+ - name: pylint
86
+ run: |
87
+ pylint $(git ls-files 'simtools/*.py')
88
+
89
+
90
+ - name: Lint Code Base
91
+ uses: super-linter/super-linter@v5
92
+ env:
93
+ VALIDATE_ALL_CODEBASE: false
94
+ # github actions
95
+ VALIDATE_GITHUB_ACTIONS: true
96
+ # yaml
97
+ VALIDATE_YAML: true
98
+ YAML_CONFIG_FILE: yaml_config.yaml
99
+ YAML_ERROR_ON_WARNING: false
100
+ # isort
101
+ VALIDATE_PYTHON_ISORT: true
102
+ PYTHON_ISORT_CONFIG_FILE: pyproject.toml
103
+ # flake8
104
+ VALIDATE_PYTHON_FLAKE8: true
105
+ # black
106
+ VALIDATE_PYTHON_BLACK: true
107
+ PYTHON_BLACK_CONFIG_FILE: pyproject.toml
108
+ # markdown
109
+ VALIDATE_MARKDOWN: true
110
+ # docker
111
+ VALIDATE_DOCKERFILE_HADOLINT: true
112
+ # copy and paste
113
+ VALIDATE_JSCPD_ALL_CODEBASE: true
114
+ # .env file
115
+ VALIDATE_ENV: true
116
+ # language
117
+ VALIDATE_NATURAL_LANGUAGE: true
118
+ # bash
119
+ VALIDATE_BASH: true
120
+ # path for linter rules
121
+ LINTER_RULES_PATH: ./
122
+ # create a log file
123
+ CREATE_LOG_FILE: true
124
+ LOG_FILE: superlinter.log
125
+ DEFAULT_BRANCH: main
126
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
127
+
128
+ # Upload super-linter log file
129
+ # and keep it for 5 days
130
+ - name: Archive production artifacts
131
+ uses: actions/upload-artifact@v4
132
+ with:
133
+ name: super-linter reports
134
+ path: |
135
+ superlinter.log
136
+ retention-days: 5
@@ -1,20 +1,18 @@
1
1
  ---
2
2
  name: CI-unittests
3
- # Execute unit tests - pyflakes and pytest
3
+ # Execute unit tests - flake8 and pytest
4
4
  #
5
5
  env:
6
- DB_SERVER: ${{ secrets.DB_SERVER }}
7
- DB_API_USER: ${{ secrets.DB_API_USER }}
8
- DB_API_PW: ${{ secrets.DB_API_PW }}
9
- DB_API_PORT: ${{ secrets.DB_API_PORT }}
6
+ SIMTOOLS_DB_SERVER: ${{ secrets.DB_SERVER }}
7
+ SIMTOOLS_DB_API_USER: ${{ secrets.DB_API_USER }}
8
+ SIMTOOLS_DB_API_PW: ${{ secrets.DB_API_PW }}
9
+ SIMTOOLS_DB_API_PORT: ${{ secrets.DB_API_PORT }}
10
10
 
11
11
  on:
12
12
  pull_request:
13
- branches: [main]
14
13
  types: [opened, synchronize]
15
- push:
16
- branches:
17
- - main
14
+ schedule:
15
+ - cron: "0 0 * * *"
18
16
 
19
17
  jobs:
20
18
 
@@ -27,29 +25,14 @@ jobs:
27
25
  python-version: "3.9"
28
26
  install-method: mamba
29
27
 
30
- - os: ubuntu-latest
31
- python-version: "3.9"
32
- install-method: pip
33
-
34
- - os: macos-latest
35
- python-version: "3.9"
36
- install-method: mamba
37
-
38
28
  - os: macos-latest
39
29
  python-version: "3.9"
40
- install-method: pip
41
-
42
- - os: ubuntu-latest
43
- python-version: "3.10"
44
30
  install-method: mamba
45
31
 
46
- - os: ubuntu-latest
47
- python-version: "3.10"
48
- install-method: pip
49
-
50
32
  - os: ubuntu-latest
51
33
  python-version: "3.11"
52
34
  install-method: mamba
35
+ extra-args: ["codecov"]
53
36
 
54
37
  - os: ubuntu-latest
55
38
  python-version: "3.11"
@@ -61,10 +44,10 @@ jobs:
61
44
 
62
45
  steps:
63
46
  - name: checkout
64
- uses: actions/checkout@v3
47
+ uses: actions/checkout@v4
65
48
 
66
- - name: Set up Python ${{ matrix.python-version }}
67
- uses: actions/setup-python@v4
49
+ - name: Set up Python
50
+ uses: actions/setup-python@v5
68
51
  with:
69
52
  python-version: ${{ matrix.python-version }}
70
53
 
@@ -86,7 +69,7 @@ jobs:
86
69
 
87
70
  - name: Python setup
88
71
  if: matrix.install-method == 'pip'
89
- uses: actions/setup-python@v4
72
+ uses: actions/setup-python@v5
90
73
  with:
91
74
  python-version: ${{ matrix.python-version }}
92
75
  check-latest: true
@@ -97,17 +80,27 @@ jobs:
97
80
  run: |
98
81
  tee -a ~/.bash_profile <<<'export PATH="$pythonLocation/bin:$PATH"'
99
82
 
100
- - name: Python dependencies
83
+ - name: Python dependencies (pip)
84
+ if: matrix.install-method == 'pip'
101
85
  run: |
102
- python --version
103
86
  pip install '.[tests,dev,doc]'
104
87
 
105
- - name: pyflakes liniting
88
+ - name: Python dependencies (mamba)
89
+ if: matrix.install-method == 'mamba'
90
+ run: |
91
+ pip install -e '.[tests,dev,doc]'
92
+
93
+ - name: flake8
106
94
  run: |
107
- pyflakes .
95
+ flake8 --max-line-length 100 --per-file-ignores="_version.py:F401 E501" .
108
96
 
109
97
  - name: Unit tests
110
98
  shell: bash -l {0}
111
- run: pytest --durations=10 --color=yes --cov --cov-report=xml
99
+ run: |
100
+ pytest --durations=10 --color=yes
112
101
 
113
- - uses: codecov/codecov-action@v3.1.4
102
+ - name: Upload coverage report to codecov
103
+ uses: codecov/codecov-action@v3
104
+ if: contains(matrix.extra-args, 'codecov')
105
+ with:
106
+ token: ${{ secrets.CODECOV_SIMTOOLS_TOKEN }}
@@ -1,15 +1,16 @@
1
1
  # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images
2
- name: docker-simtools
2
+ name: docker-corsika-simtelarray
3
3
 
4
4
  on:
5
5
  workflow_dispatch:
6
+ pull_request:
7
+ paths:
8
+ - './docker/Dockerfile-simtelarray'
6
9
  push:
7
10
  branches:
8
11
  - main
9
12
  tags:
10
13
  - 'v*'
11
- pull_request:
12
- branches: ["main"]
13
14
  release:
14
15
  types: [published]
15
16
  schedule:
@@ -21,27 +22,32 @@ env:
21
22
 
22
23
  jobs:
23
24
 
24
- build-simtools-container:
25
+ corsika-simtelarray-container:
25
26
  runs-on: ubuntu-latest
26
27
  permissions:
27
28
  contents: read
28
29
  packages: write
29
30
  strategy:
30
31
  matrix:
31
- type: ['dev', 'prod']
32
+ type: ['corsika_sim_telarray']
32
33
 
33
34
  steps:
34
35
  - name: Checkout repository
35
- uses: actions/checkout@v3
36
+ uses: actions/checkout@v4
37
+
38
+ - name: download corsikasimtelpackage
39
+ run: |
40
+ wget --no-verbose https://syncandshare.desy.de/index.php/s/${{ secrets.CLOUD_SIMTEL }}/download
41
+ mv download corsika7.7_simtelarray.tar.gz
36
42
 
37
43
  - name: Set up QEMU
38
- uses: docker/setup-qemu-action@v2
44
+ uses: docker/setup-qemu-action@v3
39
45
 
40
46
  - name: Set up Docker Buildx
41
- uses: docker/setup-buildx-action@v2
47
+ uses: docker/setup-buildx-action@v3
42
48
 
43
49
  - name: Log in to the Container registry
44
- uses: docker/login-action@v2
50
+ uses: docker/login-action@v3
45
51
  with:
46
52
  registry: ${{ env.REGISTRY }}
47
53
  username: ${{ github.actor }}
@@ -49,7 +55,7 @@ jobs:
49
55
 
50
56
  - name: Extract metadata (tags, labels) for Docker
51
57
  id: meta
52
- uses: docker/metadata-action@v4
58
+ uses: docker/metadata-action@v5
53
59
  with:
54
60
  tags: |
55
61
  type=ref,event=pr
@@ -60,12 +66,12 @@ jobs:
60
66
  flavor: latest=true
61
67
 
62
68
  - name: Build and push Docker image
63
- uses: docker/build-push-action@v4
69
+ uses: docker/build-push-action@v5
64
70
  with:
65
71
  context: .
66
72
  platforms: linux/amd64,linux/arm64/v8
67
73
  push:
68
- ${{ github.event_name == 'pull_request' || github.event_name == 'release' || github.event_name == 'workflow_dispatch' }}
69
- file: ./docker/Dockerfile-${{ matrix.type }}
74
+ ${{ github.event_name == 'release' || github.event.pull_request.merged == true || github.event_name == 'workflow_dispatch' }}
75
+ file: ./docker/Dockerfile-simtelarray
70
76
  tags: ${{ steps.meta.outputs.tags }}
71
77
  labels: ${{ steps.meta.outputs.labels }}-${{ matrix.type }}
@@ -0,0 +1,108 @@
1
+ # https://docs.github.com/en/actions/publishing-packages/publishing-docker-images
2
+ name: docker-simtools
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ push:
7
+ branches:
8
+ - main
9
+ tags:
10
+ - 'v*'
11
+ pull_request:
12
+ branches: ["main"]
13
+ types: [review_requested, ready_for_review]
14
+ release:
15
+ types: [published]
16
+ schedule:
17
+ - cron: '0 0 * * 0' # Every Sunday at 00:00 UTC
18
+
19
+ env:
20
+ SIMTOOLS_DB_SERVER: ${{ secrets.DB_SERVER }}
21
+ SIMTOOLS_DB_API_USER: ${{ secrets.DB_READ_USER }}
22
+ SIMTOOLS_DB_API_PW: ${{ secrets.DB_READ_PW }}
23
+ SIMTOOLS_DB_API_PORT: ${{ secrets.DB_API_PORT }}
24
+ REGISTRY: ghcr.io
25
+ IMAGE_NAME: ${{ github.repository }}
26
+ TEST_TAG: user/app:test
27
+
28
+ jobs:
29
+
30
+ build-simtools-container:
31
+ runs-on: ubuntu-latest
32
+ permissions:
33
+ contents: read
34
+ packages: write
35
+ strategy:
36
+ matrix:
37
+ type: ['dev', 'prod']
38
+
39
+ steps:
40
+ - name: Checkout repository
41
+ uses: actions/checkout@v4
42
+
43
+ - name: Set build arguments
44
+ run: |
45
+ if [[ "${{ github.event_name }}" == 'pull_request' ]]; then
46
+ echo "BUILD_BRANCH=${GITHUB_HEAD_REF}" >> "$GITHUB_ENV"
47
+ else
48
+ echo "BUILD_BRANCH=${GITHUB_REF#refs/heads/}" >> "$GITHUB_ENV"
49
+ fi
50
+ - name: Set up QEMU
51
+ uses: docker/setup-qemu-action@v3
52
+
53
+ - name: Set up Docker Buildx
54
+ uses: docker/setup-buildx-action@v3
55
+
56
+ - name: Log in to the Container registry
57
+ uses: docker/login-action@v3
58
+ with:
59
+ registry: ${{ env.REGISTRY }}
60
+ username: ${{ github.actor }}
61
+ password: ${{ secrets.GITHUB_TOKEN }}
62
+
63
+ - name: Extract metadata (tags, labels) for Docker
64
+ id: meta
65
+ uses: docker/metadata-action@v5
66
+ with:
67
+ tags: |
68
+ type=ref,event=pr
69
+ type=semver,pattern={{major}}.{{minor}}.{{patch}}
70
+ type=schedule,pattern={{date 'YYYYMMDD'}}
71
+ type=raw,value={{date 'YYYYMMDD-HHmmss'}}
72
+ images: ${{ env.REGISTRY }}/gammasim/simtools-${{ matrix.type }}
73
+ flavor: latest=true
74
+
75
+ - name: Build Docker image
76
+ uses: docker/build-push-action@v5
77
+ if: matrix.type == 'prod'
78
+ with:
79
+ context: .
80
+ build-args: BUILD_BRANCH=${{ env.BUILD_BRANCH }}
81
+ load: true
82
+ file: ./docker/Dockerfile-${{ matrix.type }}
83
+ tags: ${{ env.TEST_TAG }}
84
+
85
+ # test the prod image with one application using the database
86
+ # and the sim_telarray installation
87
+ - name: Test Docker image
88
+ if: matrix.type == 'prod'
89
+ run: >
90
+ docker run --rm
91
+ -e "SIMTOOLS_SIMTEL_PATH='/workdir/sim_telarray'"
92
+ -e "SIMTOOLS_DB_API_PORT=${{ env.SIMTOOLS_DB_API_PORT }}"
93
+ -e "SIMTOOLS_DB_API_USER=${{ env.SIMTOOLS_DB_API_USER }}"
94
+ -e "SIMTOOLS_DB_API_PW=${{ env.SIMTOOLS_DB_API_PW }}"
95
+ -e "SIMTOOLS_DB_SERVER=${{ env.SIMTOOLS_DB_SERVER }}" -v "$(pwd):/workdir/external" ${{ env.TEST_TAG }}
96
+ bash -c "cd /workdir/external && simtools-simulate-prod --config /workdir/external/tests/integration_tests/config/simulate_prod_gamma_20_deg_pack_for_grid.yml"
97
+ shell: /usr/bin/bash -e {0}
98
+
99
+ - name: Push Docker image
100
+ uses: docker/build-push-action@v5
101
+ with:
102
+ context: .
103
+ platforms: linux/amd64,linux/arm64/v8
104
+ push:
105
+ ${{ github.event_name == 'release' || github.ref == 'refs/heads/main' }}
106
+ file: ./docker/Dockerfile-${{ matrix.type }}
107
+ tags: ${{ steps.meta.outputs.tags }}
108
+ labels: ${{ steps.meta.outputs.labels }}-${{ matrix.type }}
@@ -10,15 +10,15 @@ jobs:
10
10
  deploy:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v3
13
+ - uses: actions/checkout@v4
14
14
 
15
15
  # make sure we have version info
16
16
  - run: git fetch --tags
17
17
 
18
18
  - name: Set up Python
19
- uses: actions/setup-python@v4
19
+ uses: actions/setup-python@v5
20
20
  with:
21
- python-version: "3.9"
21
+ python-version: "3.11"
22
22
 
23
23
  - name: Install dependencies
24
24
  run: |
@@ -8,11 +8,8 @@ __pycache__
8
8
  # Sphinx
9
9
  docs/build
10
10
 
11
- # DB config gfile
12
- dbDetails.yml
13
-
14
- # set environment
15
- set_env_db.sh
11
+ # environmental variables
12
+ .env
16
13
 
17
14
  # Mac users
18
15
  .DS_Store
@@ -31,3 +28,7 @@ simtools-output
31
28
  # Dynamic version file
32
29
  # generated by setuptools_scm
33
30
  simtools/_version.py
31
+
32
+ # Coverage files
33
+ coverage*
34
+ .coverage*
@@ -6,7 +6,7 @@ repos:
6
6
  - id: isort
7
7
  args: ["--profile", "black", "--filter-files"]
8
8
  - repo: https://github.com/psf/black
9
- rev: 23.7.0
9
+ rev: 23.11.0
10
10
  hooks:
11
11
  - id: black
12
12
  args: ["--line-length=100"]
@@ -15,16 +15,39 @@ repos:
15
15
  rev: 6.1.0
16
16
  hooks:
17
17
  - id: flake8
18
- args: ["--max-line-length=100", "--extend-ignore=E203,E712"]
18
+ args: ["--max-line-length=100"]
19
19
  # https://github.com/pre-commit/pre-commit-hooks
20
20
  - repo: https://github.com/pre-commit/pre-commit-hooks
21
- rev: v4.4.0
21
+ rev: v4.5.0
22
22
  hooks:
23
23
  - id: trailing-whitespace
24
24
  - id: end-of-file-fixer
25
+ - repo: local
26
+ hooks:
27
+ - id: pylint
28
+ name: pylint
29
+ entry: pylint
30
+ language: system
31
+ types: [python]
32
+ exclude: ^tests/|^simtools/applications/db_development_tools/
33
+ args:
34
+ [
35
+ "-rn", # Only display messages
36
+ "-sn", # Don't display the score
37
+ ]
25
38
  # https://github.com/HunterMcGushion/docstr_coverage
26
39
  - repo: https://github.com/HunterMcGushion/docstr_coverage
27
- rev: v2.3.0 # most recent docstr-coverage release or commit sha
40
+ rev: v2.3.0 # most recent docstr-coverage release or commit sha
28
41
  hooks:
29
42
  - id: docstr-coverage
30
43
  args: ["--verbose", "2", "--fail-under", "70.", "simtools"]
44
+ # gitup action
45
+ - repo: https://github.com/rhysd/actionlint
46
+ rev: v1.6.26
47
+ hooks:
48
+ - id: actionlint
49
+ # https://pyproject-fmt.readthedocs.io/en/latest/
50
+ - repo: https://github.com/tox-dev/pyproject-fmt
51
+ rev: "1.0.0"
52
+ hooks:
53
+ - id: pyproject-fmt
@@ -18,6 +18,11 @@ authors:
18
18
  family-names: Gueta
19
19
  orcid: 'https://orcid.org/0000-0002-9440-2398'
20
20
  affiliation: DESY
21
+ - given-names: Tobias
22
+ name-particle: K.
23
+ family-names: Kleiner
24
+ orcid: 'https://orcid.org/0000-0002-4260-9186'
25
+ affiliation: DESY
21
26
  - given-names: Victor
22
27
  family-names: Barbosa Martins
23
28
  orcid: 'https://orcid.org/0000-0002-5085-8828'