LbAPLocal 0.12.0__tar.gz → 0.12.2__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 (163) hide show
  1. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/PKG-INFO +1 -1
  2. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/generate.py +31 -25
  3. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/mc_lookup.py +11 -3
  4. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal.egg-info/PKG-INFO +1 -1
  5. lbaplocal-0.12.2/src/LbAPLocal.egg-info/scm_version.json +8 -0
  6. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_generate.py +2 -2
  7. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_mc_lookup.py +61 -0
  8. lbaplocal-0.12.0/src/LbAPLocal.egg-info/scm_version.json +0 -8
  9. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/.coveragerc +0 -0
  10. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/.gitattributes +0 -0
  11. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/.gitignore +0 -0
  12. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/.gitlab-ci.yml +0 -0
  13. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/.pre-commit-config.yaml +0 -0
  14. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/CONTRIBUTING.md +0 -0
  15. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/LICENSE +0 -0
  16. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/README.md +0 -0
  17. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/example.json +0 -0
  18. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/pyproject.toml +0 -0
  19. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/setup.cfg +0 -0
  20. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/__init__.py +0 -0
  21. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/__init__.py +0 -0
  22. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/cvmfs.py +0 -0
  23. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/decfile_lexer.py +0 -0
  24. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/legacy.py +0 -0
  25. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/main.py +0 -0
  26. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/mc_wizard.py +0 -0
  27. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/textual_ui.py +0 -0
  28. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cli/wizards.py +0 -0
  29. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cwl/__init__.py +0 -0
  30. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cwl/app_runner.py +0 -0
  31. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cwl/generate_replica_map.py +0 -0
  32. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cwl/quickjs_engine.py +0 -0
  33. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cwl/rewrite.py +0 -0
  34. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/cwl/runner.py +0 -0
  35. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/handlers/__init__.py +0 -0
  36. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/handlers/anaprod.py +0 -0
  37. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/handlers/mc_request.py +0 -0
  38. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/job_slice.py +0 -0
  39. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/log_parsing.py +0 -0
  40. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/models.py +0 -0
  41. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/testing.py +0 -0
  42. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal/utils.py +0 -0
  43. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal.egg-info/SOURCES.txt +0 -0
  44. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal.egg-info/dependency_links.txt +0 -0
  45. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal.egg-info/entry_points.txt +0 -0
  46. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal.egg-info/requires.txt +0 -0
  47. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal.egg-info/scm_file_list.json +0 -0
  48. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/src/LbAPLocal.egg-info/top_level.txt +0 -0
  49. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/capture_fixtures.py +0 -0
  50. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/cassettes/test_execute/test_run_test[2016_MagDown_PromptMC_D02KK-2444].yaml +0 -0
  51. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/cassettes/test_execute/test_run_test[2016_MagDown_PromptMC_D02KK_noautoconf-2444].yaml +0 -0
  52. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/cassettes/test_execute/test_run_test[2016_MagUp_PromptMC_D02KK-2393].yaml +0 -0
  53. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/cassettes/test_execute/test_run_test[2016_MagUp_PromptMC_D02KK_noautoconf-2393].yaml +0 -0
  54. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/conftest.py +0 -0
  55. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/.gitignore +0 -0
  56. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/.gitlab-ci.yml +0 -0
  57. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/AnalysisProductions.xenv +0 -0
  58. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bc2Bspi2JpsiPhi.py +0 -0
  59. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bd2JpsiKstar.py +0 -0
  60. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bd2JpsiKstar_stripping.py +0 -0
  61. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bs2DsPi.py +0 -0
  62. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bs2JpsiPhi.py +0 -0
  63. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bs2JpsiPhi_Prompt.py +0 -0
  64. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bs2JpsiPhi_Prompt_PVMixer.py +0 -0
  65. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bs2JpsiPhi_Swave.py +0 -0
  66. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bu2JpsiKplus.py +0 -0
  67. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/Bu2JpsiKplus_stripping.py +0 -0
  68. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/LbJpsipK.py +0 -0
  69. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/README.md +0 -0
  70. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/helpers/__init__.py +0 -0
  71. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/helpers/stripping.py +0 -0
  72. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/helpers/tuple_maker.py +0 -0
  73. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/info.yaml +0 -0
  74. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/BsToJpsiPhi/sequence_setup.py +0 -0
  75. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/COPYING +0 -0
  76. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/RDs/README.md +0 -0
  77. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/RDs/Run1_Signal.py +0 -0
  78. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/RDs/Run2_Signal.py +0 -0
  79. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/RDs/helpers/__init__.py +0 -0
  80. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/RDs/helpers/signal_tuple_maker.py +0 -0
  81. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/RDs/info.yaml +0 -0
  82. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/README.md +0 -0
  83. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/__init__.py +0 -0
  84. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/2011_datatype.py +0 -0
  85. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/2012_datatype.py +0 -0
  86. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/2015_datatype.py +0 -0
  87. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/2016_datatype.py +0 -0
  88. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/2017_datatype.py +0 -0
  89. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/2018_datatype.py +0 -0
  90. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/B0ToK0ee.py +0 -0
  91. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/B0ToK0mumu.py +0 -0
  92. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/BpToKee.py +0 -0
  93. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/BpToKmumu.py +0 -0
  94. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/LbToL0ee.py +0 -0
  95. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/LbToL0eeSS.py +0 -0
  96. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/LbToL0emu.py +0 -0
  97. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/LbToL0emuSS.py +0 -0
  98. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/LbToL0mumu.py +0 -0
  99. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/LbToL0mumuSS.py +0 -0
  100. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/README.md +0 -0
  101. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/__init__.py +0 -0
  102. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/general_options.py +0 -0
  103. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/MC_tuple_maker.py +0 -0
  104. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/__init__.py +0 -0
  105. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/decay_descriptors.py +0 -0
  106. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/locations.py +0 -0
  107. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/related_info.py +0 -0
  108. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/stripping.py +0 -0
  109. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/tags.py +0 -0
  110. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/helpers/tuple_maker.py +0 -0
  111. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/info.yaml +0 -0
  112. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_general_options_DST.py +0 -0
  113. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_general_options_FDST.py +0 -0
  114. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_general_options_FMDST.py +0 -0
  115. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_general_options_MDST.py +0 -0
  116. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bd2JpsiKs_ee.py +0 -0
  117. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bd2JpsiKs_mm.py +0 -0
  118. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bd2Ksee.py +0 -0
  119. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bd2Ksmm.py +0 -0
  120. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bd2PsiKs_ee.py +0 -0
  121. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bd2PsiKs_mm.py +0 -0
  122. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bu2JpsiK_ee.py +0 -0
  123. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Bu2JpsiK_mm.py +0 -0
  124. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Lb2JpsiL_ee.py +0 -0
  125. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Lb2JpsiL_mm.py +0 -0
  126. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Lb2Lee.py +0 -0
  127. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Lb2Lem.py +0 -0
  128. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Lb2Lmm.py +0 -0
  129. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Lb2PsiL_ee.py +0 -0
  130. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/mc_samples/MC_Lb2PsiL_mm.py +0 -0
  131. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/sequence_setup.py +0 -0
  132. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/cbtesting/stripping_seq.py +0 -0
  133. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/executabletests/2016_MagDown_PromptMC_D02KK_autoconf.py +0 -0
  134. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/executabletests/2016_MagUp_PromptMC_D02KK_autoconf.py +0 -0
  135. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/executabletests/info.yaml +0 -0
  136. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/data-pkg-repo/executabletests/ntuple_options.py +0 -0
  137. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/error-failed-to-read-file.log +0 -0
  138. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/error-illegal-instruction.log +0 -0
  139. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/error-missing-shared-library.log +0 -0
  140. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/error-platform-unsupported.log +0 -0
  141. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/error-related-info-missing.log +0 -0
  142. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/good-DaVinci_00110296_00000038_1.log +0 -0
  143. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/good-DaVinci_00110296_00000194_1.log +0 -0
  144. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/data/example-logs/good-Gauss_00104988_00000011_1.log +0 -0
  145. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/fixture_loader.py +0 -0
  146. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/fixtures/executabletests/2016_MagDown_PromptMC_D02KK/query_result.json +0 -0
  147. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/fixtures/executabletests/2016_MagUp_PromptMC_D02KK/query_result.json +0 -0
  148. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/fixtures/executabletests/manifest.yaml +0 -0
  149. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/reslice_fixture.py +0 -0
  150. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test-input-dst/00070767_00000711_7.AllStreams_slice.dst +0 -0
  151. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test-input-dst/00070793_00000685_7.AllStreams_slice.dst +0 -0
  152. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_app_runner.py +0 -0
  153. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_cli.py +0 -0
  154. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_cwl_cli.py +0 -0
  155. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_cwl_runner.py +0 -0
  156. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_execute.py +0 -0
  157. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_get_mc.py +0 -0
  158. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_handlers.py +0 -0
  159. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_input_resolution.py +0 -0
  160. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_local_datapkg.py +0 -0
  161. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_log_parse.py +0 -0
  162. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_no_dirac_cwl.py +0 -0
  163. {lbaplocal-0.12.0 → lbaplocal-0.12.2}/tests/test_quickjs_engine.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: LbAPLocal
3
- Version: 0.12.0
3
+ Version: 0.12.2
4
4
  Summary: Tool to locally run tests for AnalysisProductions
5
5
  Author: LHCb
6
6
  Project-URL: Homepage, https://gitlab.cern.ch/lhcb-dpa/analysis-productions/lbaplocal
@@ -398,7 +398,7 @@ def generate_options(lines: list[str]) -> str:
398
398
  ##############################
399
399
 
400
400
 
401
- def add_mc_variables(particles, line):
401
+ def add_mc_variables(particles, line) -> FunctorCollection:
402
402
  \"\"\"Truth matching and background category, added for simulation only.\"\"\"
403
403
  mctruth = MCTruthAndBkgCat(particles, name=f"MCTruthAndBkgCat_{line}")
404
404
  return FunctorCollection(
@@ -414,7 +414,7 @@ def generate_options(lines: list[str]) -> str:
414
414
  )
415
415
 
416
416
 
417
- def add_variables(particles, line, simulation):
417
+ def add_variables(particles, line, simulation) -> dict[str, FunctorCollection]:
418
418
  \"\"\"Variables to tuple, keyed by field (\"ALL\" covers every field).\"\"\"
419
419
  variables = {}
420
420
  variables["ALL"] = FC.Kinematics()
@@ -425,7 +425,7 @@ def generate_options(lines: list[str]) -> str:
425
425
  return variables
426
426
 
427
427
 
428
- def add_event_variables():
428
+ def add_event_variables() -> FunctorCollection:
429
429
  \"\"\"Event-level information tupled once per event.\"\"\"
430
430
  event_variables = FunctorCollection()
431
431
  event_variables += FC.EventInfo()
@@ -433,35 +433,41 @@ def generate_options(lines: list[str]) -> str:
433
433
  return event_variables
434
434
 
435
435
 
436
+ def configure_funtuple(line: str, input_process: str, simulation: bool):
437
+ particles = get_particles(line=line, input_process=input_process)
438
+
439
+ descriptor = DESCRIPTORS.get(line)
440
+ if not descriptor:
441
+ raise RuntimeError(f"Descriptor template not filled for line: {line}")
442
+ fields = descriptor_fields(descriptor)
443
+
444
+ variables = add_variables(particles, line, simulation)
445
+ event_variables = add_event_variables()
446
+
447
+ funtuple = Funtuple(
448
+ name=f"Tuple_{line}",
449
+ tuple_name="DecayTree",
450
+ fields=fields,
451
+ variables=variables,
452
+ event_variables=event_variables,
453
+ inputs=particles,
454
+ )
455
+ line_filter = create_lines_filter(name=f"PreFilter_{line}", lines=[line])
456
+ return [line_filter, funtuple]
457
+
458
+
436
459
  def main(options: Options, *raw_args):
437
460
  parser = argparse.ArgumentParser()
438
461
  parser.add_argument("--line", dest="lines", action="append")
439
462
  parser.add_argument("--skip-line", dest="skip", action="append", default=[])
440
463
  args = parser.parse_args(raw_args)
464
+
441
465
  lines = [line for line in (args.lines or DEFAULT_LINES) if line not in args.skip]
442
466
 
443
- tuples = {}
444
- for line in lines:
445
- particles = get_particles(line=line, input_process=options.input_process)
446
-
447
- descriptor = DESCRIPTORS.get(line)
448
- if not descriptor:
449
- raise RuntimeError(f"Descriptor template not filled for line: {line}")
450
- fields = descriptor_fields(descriptor)
451
-
452
- variables = add_variables(particles, line, options.simulation)
453
- event_variables = add_event_variables()
454
-
455
- funtuple = Funtuple(
456
- name=f"Tuple_{line}",
457
- tuple_name="DecayTree",
458
- fields=fields,
459
- variables=variables,
460
- event_variables=event_variables,
461
- inputs=particles,
462
- )
463
- line_filter = create_lines_filter(name=f"PreFilter_{line}", lines=[line])
464
- tuples[line] = [line_filter, funtuple]
467
+ tuples = {
468
+ line: configure_funtuple(line, options.input_process, options.simulation)
469
+ for line in lines
470
+ }
465
471
 
466
472
  return make_config(options, tuples)
467
473
  """))
@@ -48,8 +48,16 @@ REQUIRED_COLUMNS = {
48
48
  }
49
49
 
50
50
  # Analysis-consumable file types: the post-trigger / post-sprucing DSTs a
51
- # DaVinci analysis production reads. Everything else is intermediate.
52
- ANALYSIS_FILETYPES = {"HLT2.DST", "SPRUCE.DST"}
51
+ # DaVinci analysis production reads. Everything else is intermediate. Besides the
52
+ # plain HLT2.DST / SPRUCE.DST, filtered productions publish a distinct filetype
53
+ # per filter -- HLT2_FILTERED_<hash>.DST / SPRUCE_FILTERED_<hash>.DST (e.g. the
54
+ # +DisabledFunctors samples), and the earlier hyphenated HLT2-FILTERED-<hash>.DST
55
+ # -- those are analysis inputs too. Bare ".DST" is far too broad: it would readmit
56
+ # ALLSTREAMS.DST and the Run1/2 *.STRIP.DST families that automatically_configure
57
+ # cannot set up. .XDST is likewise excluded, matching the plain-DST-only rule.
58
+ _ANALYSIS_FILETYPE_RE = re.compile(
59
+ r"^(HLT2|SPRUCE)([_-]FILTERED[_-][0-9A-Fa-f]+)?\.DST$"
60
+ )
53
61
 
54
62
  # Polarity token embedded in a condition description.
55
63
  _POLARITY_RE = re.compile(r"Mag(Up|Down|Off)")
@@ -181,7 +189,7 @@ def _samples_by_event_type() -> dict[str, list[dict]]:
181
189
  for row in snapshot["rows"]:
182
190
  if row[idx["config_name"]] != "MC":
183
191
  continue
184
- if row[idx["filetype"]] not in ANALYSIS_FILETYPES:
192
+ if not _ANALYSIS_FILETYPE_RE.match(row[idx["filetype"]]):
185
193
  continue
186
194
  record = _parse_snapshot_row(row, idx)
187
195
  if record is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: LbAPLocal
3
- Version: 0.12.0
3
+ Version: 0.12.2
4
4
  Summary: Tool to locally run tests for AnalysisProductions
5
5
  Author: LHCb
6
6
  Project-URL: Homepage, https://gitlab.cern.ch/lhcb-dpa/analysis-productions/lbaplocal
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.12.2",
3
+ "distance": 0,
4
+ "node": "ge6fb1806a34965ce5a4a383f643fc9915375e434",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-08-12"
8
+ }
@@ -337,10 +337,10 @@ def test_generate_MC_multiple_lines(tmp_path, monkeypatch):
337
337
  assert result.exit_code == 0, result.output
338
338
 
339
339
  options_text = (tmp_path / "test" / "options.py").read_text()
340
- # Both lines are the default set, each with a descriptor slot, tupled in a loop.
340
+ # Both lines are the default set, each with a descriptor slot, tupled per line.
341
341
  for line in lines:
342
342
  assert f'"{line}",' in options_text
343
- assert "for line in lines:" in options_text
343
+ assert "configure_funtuple(line" in options_text
344
344
  assert "--skip-line" in options_text
345
345
 
346
346
  # Every sample runs every line by default, so the job needs no override.
@@ -112,6 +112,67 @@ def test_mc_view_from_snapshot(snapshot):
112
112
  assert not mc_lookup.has_samples("94000000")
113
113
 
114
114
 
115
+ def test_filtered_dst_variants_included(snapshot):
116
+ """Filtered productions publish a per-filter filetype; those count as samples.
117
+
118
+ HLT2_FILTERED_<hash>.DST / SPRUCE_FILTERED_<hash>.DST (and the older
119
+ hyphenated HLT2-FILTERED-<hash>.DST) are analysis inputs, so they must be
120
+ offered -- some event types exist only as filtered DSTs. The broad legacy
121
+ formats (ALLSTREAMS/Stripping) and .XDST stay excluded.
122
+ """
123
+ snapshot(
124
+ [
125
+ # underscore-form filtered HLT2 (e.g. a +DisabledFunctors production)
126
+ [
127
+ "MC",
128
+ "2024",
129
+ _CONDITION,
130
+ "/Sim10h/HLT2_FILTERED-2024.W35.39+DisabledFunctors",
131
+ "13264021",
132
+ "HLT2_FILTERED_52EACF17.DST",
133
+ ],
134
+ # hyphenated filtered HLT2 (earlier naming) -- same format
135
+ [
136
+ "MC",
137
+ "2024",
138
+ _CONDITION,
139
+ "/Sim10e/HLT2-Filtered-2024.W35.39",
140
+ "13264021",
141
+ "HLT2-FILTERED-96AC3C1C.DST",
142
+ ],
143
+ # filtered Spruce
144
+ [
145
+ "MC",
146
+ "2024",
147
+ _CONDITION,
148
+ "/Sim10h/HLT2-2024.W35.39/Spruce25r1_FILTERED+DisabledFunctors",
149
+ "13884001",
150
+ "SPRUCE_FILTERED_1BF1BEE3.DST",
151
+ ],
152
+ # .XDST filtered -> excluded (extended DST, like plain DST-only rule)
153
+ [
154
+ "MC",
155
+ "2024",
156
+ _CONDITION,
157
+ "/Sim10h/HLT2_FILTERED-2024.W35.39",
158
+ "13884001",
159
+ "HLT2_FILTERED_B71FA064.XDST",
160
+ ],
161
+ # legacy merged / Stripping streams -> excluded
162
+ ["MC", "2024", _CONDITION, "/Sim10d/HLT2-x", "13264021", "ALLSTREAMS.DST"],
163
+ ["MC", "2024", _CONDITION, "/Sim10d/Strip", "13264021", "B2DH.STRIP.DST"],
164
+ ]
165
+ )
166
+
167
+ hlt2 = mc_lookup.get_samples("13264021")
168
+ assert {s["filetype"] for s in hlt2} == {
169
+ "HLT2_FILTERED_52EACF17.DST",
170
+ "HLT2-FILTERED-96AC3C1C.DST",
171
+ }
172
+ spruce = mc_lookup.get_samples("13884001")
173
+ assert {s["filetype"] for s in spruce} == {"SPRUCE_FILTERED_1BF1BEE3.DST"}
174
+
175
+
115
176
  def test_snapshot_missing_column_rejected(snapshot):
116
177
  """A snapshot predating the event_type rename says so, not KeyError."""
117
178
  path = snapshot([])
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.12.0",
3
- "distance": 0,
4
- "node": "g2eafc73c3587ec77e5396b304f9890cfe321bb38",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-08-10"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes