rcdb 2.2.8__tar.gz → 2.2.9__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 (213) hide show
  1. {rcdb-2.2.8/rcdb.egg-info → rcdb-2.2.9}/PKG-INFO +1 -1
  2. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/app.py +8 -2
  3. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/db.py +56 -1
  4. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/info.py +15 -8
  5. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/version.py +1 -1
  6. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/__init__.py +1 -1
  7. {rcdb-2.2.8 → rcdb-2.2.9/rcdb.egg-info}/PKG-INFO +1 -1
  8. {rcdb-2.2.8 → rcdb-2.2.9}/MANIFEST.in +0 -0
  9. {rcdb-2.2.8 → rcdb-2.2.9}/README.md +0 -0
  10. {rcdb-2.2.8 → rcdb-2.2.9}/pyproject.toml +0 -0
  11. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/__init__.py +0 -0
  12. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/__main__.py +0 -0
  13. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/alias.py +0 -0
  14. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/app_context.py +0 -0
  15. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/__init__.py +0 -0
  16. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/__main__.py +0 -0
  17. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/context.py +0 -0
  18. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/ls.py +0 -0
  19. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/repair/__init__.py +0 -0
  20. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/repair/evio_files.py +0 -0
  21. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/rp.py +0 -0
  22. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/run.py +0 -0
  23. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/select.py +0 -0
  24. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/cli/web.py +0 -0
  25. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/coda_parser.py +0 -0
  26. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/condition_query_builder.py +0 -0
  27. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/config_parser.py +0 -0
  28. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/constants.py +0 -0
  29. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/errors.py +0 -0
  30. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/file_archiver.py +0 -0
  31. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/halld_daq_config_parser.py +0 -0
  32. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/lexer.py +0 -0
  33. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/log_format.py +0 -0
  34. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/model.py +0 -0
  35. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/provider.py +0 -0
  36. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/stopwatch.py +0 -0
  37. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/update.py +0 -0
  38. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/modules/__init__.py +0 -0
  39. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/modules/conditions.py +0 -0
  40. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/modules/files.py +0 -0
  41. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/modules/logs.py +0 -0
  42. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/modules/runs.py +0 -0
  43. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/modules/select_values.py +0 -0
  44. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/modules/statistics.py +0 -0
  45. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/pagination.py +0 -0
  46. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/run_table.py +0 -0
  47. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/dataTables.bootstrap.css +0 -0
  48. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/dataTables.bootstrap.min.css +0 -0
  49. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/dataTables.foundation.css +0 -0
  50. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/dataTables.foundation.min.css +0 -0
  51. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/dataTables.jqueryui.css +0 -0
  52. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/dataTables.jqueryui.min.css +0 -0
  53. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/jquery.dataTables.css +0 -0
  54. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/jquery.dataTables.min.css +0 -0
  55. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/css/jquery.dataTables_themeroller.css +0 -0
  56. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/images/sort_asc.png +0 -0
  57. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/images/sort_asc_disabled.png +0 -0
  58. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/images/sort_both.png +0 -0
  59. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/images/sort_desc.png +0 -0
  60. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/images/sort_desc_disabled.png +0 -0
  61. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/dataTables.bootstrap.js +0 -0
  62. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/dataTables.bootstrap.min.js +0 -0
  63. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/dataTables.foundation.js +0 -0
  64. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/dataTables.foundation.min.js +0 -0
  65. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/dataTables.jqueryui.js +0 -0
  66. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/dataTables.jqueryui.min.js +0 -0
  67. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/jquery.dataTables.js +0 -0
  68. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/DataTables-1.10.10/js/jquery.dataTables.min.js +0 -0
  69. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.bootstrap.css +0 -0
  70. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.bootstrap.min.css +0 -0
  71. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.dataTables.css +0 -0
  72. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.dataTables.min.css +0 -0
  73. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.foundation.css +0 -0
  74. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.foundation.min.css +0 -0
  75. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.jqueryui.css +0 -0
  76. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/css/responsive.jqueryui.min.css +0 -0
  77. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/dataTables.responsive.js +0 -0
  78. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/dataTables.responsive.min.js +0 -0
  79. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/responsive.bootstrap.js +0 -0
  80. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/responsive.bootstrap.min.js +0 -0
  81. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/responsive.foundation.js +0 -0
  82. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/responsive.foundation.min.js +0 -0
  83. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/responsive.jqueryui.js +0 -0
  84. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/Responsive-2.0.0/js/responsive.jqueryui.min.js +0 -0
  85. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.bootstrap.css +0 -0
  86. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.bootstrap.min.css +0 -0
  87. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.dataTables.css +0 -0
  88. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.dataTables.min.css +0 -0
  89. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.foundation.css +0 -0
  90. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.foundation.min.css +0 -0
  91. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.jqueryui.css +0 -0
  92. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/css/rowReorder.jqueryui.min.css +0 -0
  93. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/js/dataTables.rowReorder.js +0 -0
  94. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/RowReorder-1.1.0/js/dataTables.rowReorder.min.js +0 -0
  95. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/datatables.css +0 -0
  96. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/datatables.js +0 -0
  97. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/datatables.min.css +0 -0
  98. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/DataTables/datatables.min.js +0 -0
  99. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap-theme.css +0 -0
  100. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap-theme.css.map +0 -0
  101. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap-theme.min.css +0 -0
  102. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap-theme.min.css.map +0 -0
  103. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap.css +0 -0
  104. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap.css.map +0 -0
  105. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap.min.css +0 -0
  106. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/bootstrap.min.css.map +0 -0
  107. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/buttons.dataTables.min.css +0 -0
  108. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/dataTables.tableTools.css +0 -0
  109. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/jquery-ui.min.css +0 -0
  110. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/jquery-ui.structure.min.css +0 -0
  111. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/jquery-ui.theme.min.css +0 -0
  112. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/jquery.dataTables.min.css +0 -0
  113. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/jquery.dataTables.yadcf.css +0 -0
  114. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/jquery.jsonview.css +0 -0
  115. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/main.css +0 -0
  116. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/select.dataTables.min.css +0 -0
  117. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/css/webintellisense.css +0 -0
  118. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/favicon.png +0 -0
  119. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/fonts/glyphicons-halflings-regular.eot +0 -0
  120. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/fonts/glyphicons-halflings-regular.svg +0 -0
  121. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/fonts/glyphicons-halflings-regular.ttf +0 -0
  122. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/fonts/glyphicons-halflings-regular.woff +0 -0
  123. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/fonts/glyphicons-halflings-regular.woff2 +0 -0
  124. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/humans.txt +0 -0
  125. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/img/glyphicons-halflings-white.png +0 -0
  126. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/img/glyphicons-halflings.png +0 -0
  127. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/img/logo.png +0 -0
  128. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/bootstrap.js +0 -0
  129. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/bootstrap.min.js +0 -0
  130. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/clipboard.min.js +0 -0
  131. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/copy_clipboard.js +0 -0
  132. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/dataTables.buttons.min.js +0 -0
  133. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/dataTables.select.min.js +0 -0
  134. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/jquery-2.1.0.min.js +0 -0
  135. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/jquery-2.1.4.min.js +0 -0
  136. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/jquery-ui.min.js +0 -0
  137. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/jquery.dataTables.min.js +0 -0
  138. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/jquery.dataTables.yadcf.js +0 -0
  139. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/jquery.flot.min.js +0 -0
  140. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/jquery.jsonview.js +0 -0
  141. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/npm.js +0 -0
  142. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/webintellisense-ace.js +0 -0
  143. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/webintellisense-codemirror.js +0 -0
  144. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/webintellisense-textbox.js +0 -0
  145. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/js/webintellisense.js +0 -0
  146. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/robots.txt +0 -0
  147. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/static/style.css +0 -0
  148. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/404.html +0 -0
  149. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/admin/index.html +0 -0
  150. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/admin/layout.html +0 -0
  151. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/admin/user.html +0 -0
  152. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/admin/users.html +0 -0
  153. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/conditions/index.html +0 -0
  154. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/custom_column_run_table.html +0 -0
  155. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/default_run_table.html +0 -0
  156. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/errors/forbidden_page.html +0 -0
  157. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/errors/layout.html +0 -0
  158. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/errors/page_not_found.html +0 -0
  159. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/errors/server_error.html +0 -0
  160. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/files/index.html +0 -0
  161. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/files/info.html +0 -0
  162. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/files/not_found.html +0 -0
  163. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/create_profile.html +0 -0
  164. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/footers/help.html +0 -0
  165. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/login.html +0 -0
  166. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/login_openid.html +0 -0
  167. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/reauth.html +0 -0
  168. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/reset_password.html +0 -0
  169. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/search.html +0 -0
  170. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/frontend/signup.html +0 -0
  171. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/index.html +0 -0
  172. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/layout.html +0 -0
  173. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/layouts/base.html +0 -0
  174. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/layouts/base2.html +0 -0
  175. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/login.html +0 -0
  176. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/logs/index.html +0 -0
  177. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/macros/_ask_user_to_update_ie.html +0 -0
  178. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/macros/_form.html +0 -0
  179. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/macros/_google_analytics.html +0 -0
  180. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/macros/_misc.html +0 -0
  181. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/macros/_reset_password.html +0 -0
  182. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/render_pagination.html +0 -0
  183. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/run_search_box.html +0 -0
  184. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/runs/conditions.html +0 -0
  185. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/runs/example.html +0 -0
  186. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/runs/index.html +0 -0
  187. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/runs/info.html +0 -0
  188. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/runs/not_found.html +0 -0
  189. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/select_values/index.html +0 -0
  190. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/settings/layout.html +0 -0
  191. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/settings/password.html +0 -0
  192. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/settings/profile.html +0 -0
  193. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/show_entries.html +0 -0
  194. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/statistics/index.html +0 -0
  195. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/user/index.html +0 -0
  196. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb/web/templates/user/profile.html +0 -0
  197. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb.egg-info/SOURCES.txt +0 -0
  198. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb.egg-info/dependency_links.txt +0 -0
  199. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb.egg-info/entry_points.txt +0 -0
  200. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb.egg-info/requires.txt +0 -0
  201. {rcdb-2.2.8 → rcdb-2.2.9}/rcdb.egg-info/top_level.txt +0 -0
  202. {rcdb-2.2.8 → rcdb-2.2.9}/setup.cfg +0 -0
  203. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_coda_parser.py +0 -0
  204. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_conditions.py +0 -0
  205. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_config_parser.py +0 -0
  206. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_get_run_periods.py +0 -0
  207. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_get_runs.py +0 -0
  208. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_halld_run_config_parser.py +0 -0
  209. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_save_files.py +0 -0
  210. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_select_runs.py +0 -0
  211. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_select_values.py +0 -0
  212. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_sql_schema_version.py +0 -0
  213. {rcdb-2.2.8 → rcdb-2.2.9}/tests/test_value_comparison.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rcdb
3
- Version: 2.2.8
3
+ Version: 2.2.9
4
4
  Summary: RCDB - Run Conditions DataBase
5
5
  Author-email: Dmitry Romanov <romanov@jlab.org>
6
6
  License-Expression: MIT
@@ -51,9 +51,15 @@ def rcdb_cli(ctx, user_config, connection, config, verbose):
51
51
  for key, value in config:
52
52
  ctx.obj.set_config(key, value)
53
53
 
54
+ # Bo commands given
54
55
  if ctx.invoked_subcommand is None:
55
- "No command was specified"
56
- click.echo(ctx.get_help())
56
+ # There is a connection but no subcommand
57
+ if connection:
58
+ # If user typed just `rcdb -c <db>`, call info() automatically:
59
+ ctx.invoke(info_command) # => invoke the "info" command
60
+ else:
61
+ # No subcommand, no connection => show help
62
+ click.echo(ctx.get_help())
57
63
 
58
64
 
59
65
  # Add commands to application
@@ -1,6 +1,6 @@
1
1
  import click
2
2
  import sqlalchemy
3
- from sqlalchemy import create_engine, MetaData, Table, desc, select
3
+ from sqlalchemy import create_engine, MetaData, Table, desc, select, text
4
4
  from sqlalchemy.exc import OperationalError
5
5
 
6
6
  import rcdb
@@ -28,6 +28,61 @@ def db_command(ctx):
28
28
  schema_version, = provider.session.execute(query).first()
29
29
  print("Schema version: {} - '{}'".format(schema_version.version, schema_version.comment))
30
30
 
31
+ if connection_str.startswith("mysql"):
32
+ _print_mysql_table_sizes(engine=provider.engine)
33
+ elif connection_str.startswith("sqlite"):
34
+ _print_sqlite_table_sizes(engine=provider.engine)
35
+ else:
36
+ click.echo("Table size info: not supported for this database dialect")
37
+
38
+ def _print_mysql_table_sizes(engine):
39
+ """Query MySQL information_schema to print approximate table sizes in MB."""
40
+ # Find which database/schema we are connected to
41
+ db_name = engine.url.database
42
+
43
+ sql = text(f"""
44
+ SELECT
45
+ table_name AS tbl,
46
+ ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb
47
+ FROM information_schema.tables
48
+ WHERE table_schema = :db
49
+ ORDER BY size_mb DESC
50
+ """)
51
+
52
+ with engine.connect() as conn:
53
+ results = conn.execute(sql, {"db": db_name}).fetchall()
54
+
55
+ click.echo("\nTable sizes in MB (MySQL):")
56
+ for row in results:
57
+ table, size_mb = row
58
+ click.echo(f" {table:30} {size_mb} MB")
59
+
60
+ def _print_sqlite_table_sizes(engine):
61
+ """Use 'dbstat' virtual table (if available) to estimate table sizes."""
62
+ try:
63
+ with engine.connect() as conn:
64
+ # Enable the dbstat extension if needed
65
+ # conn.execute("SELECT load_extension('dbstat')")
66
+ # (Only if your SQLite requires explicit load_extension calls)
67
+
68
+ # dbstat vtable can be queried like this:
69
+ rows = conn.execute(text("""
70
+ SELECT
71
+ name AS table_name,
72
+ SUM(pgsize) as total_bytes
73
+ FROM dbstat
74
+ GROUP BY name
75
+ ORDER BY total_bytes DESC
76
+ """)).fetchall()
77
+
78
+ click.echo("\nApproximate per-table sizes (SQLite dbstat):")
79
+ for table_name, total_bytes in rows:
80
+ size_mb = round(total_bytes / 1024 / 1024, 2)
81
+ click.echo(f" {table_name:30} {size_mb} MB")
82
+
83
+ except Exception as ex:
84
+ click.echo("\n No table size info: sqlite dbstat extension is not installed. Use sqlite3_analyzer to get table sizes")
85
+
31
86
 
32
87
  @db_command.command()
33
88
  @pass_rcdb_context
@@ -2,6 +2,7 @@ import click
2
2
  import datetime
3
3
  from .context import pass_rcdb_context
4
4
  from rcdb.model import Condition, Run, ConfigurationFile, RunPeriod
5
+ from .. import ConditionType
5
6
 
6
7
 
7
8
  @click.command("info", help="Prints summary info about RCDB contents")
@@ -12,6 +13,9 @@ def info_command(context):
12
13
  """
13
14
  db = context.db
14
15
 
16
+ # Number of condition types
17
+ cnd_type_count = db.session.query(ConditionType).count()
18
+
15
19
  # Number of conditions
16
20
  cnd_count = db.session.query(Condition).count()
17
21
 
@@ -35,19 +39,22 @@ def info_command(context):
35
39
  last_rp = db.session.query(RunPeriod).order_by(RunPeriod.id.desc()).first()
36
40
 
37
41
  # Print it all
38
- click.echo(f"Number of conditions: {cnd_count}")
42
+ click.echo(f"Num, condition types: {cnd_type_count}")
43
+ click.echo(f"Num. condition values: {cnd_count}")
39
44
  click.echo(f"Last condition date/time: {cnd_last_time}")
40
45
  click.echo(f"Number of runs: {run_count}")
41
46
  click.echo(f"Number of files: {file_count}")
42
- click.echo("Last 5 runs saved: " +
43
- ", ".join(str(r.number) for r in last_5_runs) if last_5_runs else "No runs")
47
+ click.echo("Last 5 runs saved: " + ", ".join(str(r.number) for r in last_5_runs) if last_5_runs else "No runs")
44
48
  click.echo(f"Number of run periods: {rp_count}")
45
49
  if last_rp:
46
- click.echo(f"Last run period: {last_rp.name} (ID={last_rp.id})")
47
- else:
48
- click.echo("No run periods found.")
50
+ click.echo(f"Last Run Period:")
51
+ click.echo(f" Name: {last_rp.name}")
52
+ click.echo(f" Description: {last_rp.name}")
53
+ click.echo(f" Run Range: {last_rp.run_min} - {last_rp.run_max}")
54
+ click.echo(f" Start Date: {last_rp.start_date}")
55
+ click.echo(f" End Date: {last_rp.end_date}")
49
56
 
50
57
  # Finally, show all possible commands (help):
51
58
  ctx = click.get_current_context()
52
- click.echo("\n==== Available commands ====")
53
- click.echo(ctx.parent.get_help())
59
+ click.echo("\nrun 'rcdb --help' for the list of available commands")
60
+
@@ -1,5 +1,5 @@
1
1
  # String version. Used both for setup.py and for internal code
2
- version = '2.2.8'
2
+ version = '2.2.9'
3
3
 
4
4
  # version as the tuple of ints
5
5
  version_tuple = tuple(int(val) for val in version.split('.'))
@@ -24,7 +24,7 @@ SQL_CONNECTION_STRING = "mysql+pymysql://rcdb@127.0.0.1/rcdb"
24
24
  # Get the current directory
25
25
  current_directory = os.path.dirname(os.path.abspath(__file__))
26
26
  template_folder=os.path.join(current_directory, 'templates')
27
- print(f"template_folder={template_folder}")
27
+
28
28
  # Create Flask app with custom template folder
29
29
  app = Flask(__name__, template_folder=template_folder)
30
30
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rcdb
3
- Version: 2.2.8
3
+ Version: 2.2.9
4
4
  Summary: RCDB - Run Conditions DataBase
5
5
  Author-email: Dmitry Romanov <romanov@jlab.org>
6
6
  License-Expression: MIT
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
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
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes