rucio 34.4.1__tar.gz → 34.4.3__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.

Potentially problematic release.


This version of rucio might be problematic. Click here for more details.

Files changed (591) hide show
  1. {rucio-34.4.1 → rucio-34.4.3}/PKG-INFO +1 -1
  2. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/rule.py +108 -25
  3. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/accountclient.py +43 -21
  4. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/accountlimitclient.py +36 -6
  5. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/baseclient.py +18 -9
  6. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/configclient.py +18 -3
  7. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/credentialclient.py +8 -1
  8. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/downloadclient.py +1 -1
  9. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/lifetimeclient.py +20 -2
  10. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/requestclient.py +34 -16
  11. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/scopeclient.py +7 -3
  12. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/touchclient.py +7 -1
  13. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/uploadclient.py +3 -2
  14. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/pcache.py +114 -91
  15. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/types.py +61 -15
  16. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/utils.py +140 -95
  17. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/account.py +97 -26
  18. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/account_counter.py +56 -16
  19. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did_meta_plugins/filter_engine.py +58 -42
  20. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/dirac.py +2 -2
  21. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/lock.py +24 -16
  22. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/oidc.py +1 -1
  23. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/transfer.py +2 -1
  24. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/abacus/account.py +7 -7
  25. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/cache/consumer.py +3 -4
  26. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/models.py +29 -18
  27. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/util.py +15 -27
  28. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/fts3.py +6 -2
  29. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/fts3_plugins.py +2 -6
  30. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/vcsversion.py +3 -3
  31. {rucio-34.4.1/lib/rucio/web/rest → rucio-34.4.3/lib/rucio/web}/__init__.py +0 -0
  32. {rucio-34.4.1/lib/rucio/web/rest/flaskapi → rucio-34.4.3/lib/rucio/web/rest}/__init__.py +0 -0
  33. rucio-34.4.3/lib/rucio/web/rest/flaskapi/v1/__init__.py +13 -0
  34. {rucio-34.4.1 → rucio-34.4.3}/pyproject.toml +1 -0
  35. {rucio-34.4.1 → rucio-34.4.3}/tests/test_transfer_plugins.py +22 -4
  36. rucio-34.4.1/lib/rucio/daemons/cache/__init__.py +0 -14
  37. {rucio-34.4.1 → rucio-34.4.3}/AUTHORS.rst +0 -0
  38. {rucio-34.4.1 → rucio-34.4.3}/ChangeLog +0 -0
  39. {rucio-34.4.1 → rucio-34.4.3}/LICENSE +0 -0
  40. {rucio-34.4.1 → rucio-34.4.3}/MANIFEST.in +0 -0
  41. {rucio-34.4.1 → rucio-34.4.3}/README.rst +0 -0
  42. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio +0 -0
  43. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-abacus-account +0 -0
  44. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-abacus-collection-replica +0 -0
  45. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-abacus-rse +0 -0
  46. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-admin +0 -0
  47. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-atropos +0 -0
  48. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-auditor +0 -0
  49. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-automatix +0 -0
  50. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-bb8 +0 -0
  51. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-c3po +0 -0
  52. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-cache-client +0 -0
  53. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-cache-consumer +0 -0
  54. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-conveyor-finisher +0 -0
  55. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-conveyor-poller +0 -0
  56. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-conveyor-preparer +0 -0
  57. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-conveyor-receiver +0 -0
  58. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-conveyor-stager +0 -0
  59. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-conveyor-submitter +0 -0
  60. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-conveyor-throttler +0 -0
  61. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-dark-reaper +0 -0
  62. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-dumper +0 -0
  63. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-follower +0 -0
  64. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-hermes +0 -0
  65. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-judge-cleaner +0 -0
  66. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-judge-evaluator +0 -0
  67. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-judge-injector +0 -0
  68. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-judge-repairer +0 -0
  69. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-kronos +0 -0
  70. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-minos +0 -0
  71. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-minos-temporary-expiration +0 -0
  72. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-necromancer +0 -0
  73. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-oauth-manager +0 -0
  74. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-reaper +0 -0
  75. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-replica-recoverer +0 -0
  76. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-rse-decommissioner +0 -0
  77. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-storage-consistency-actions +0 -0
  78. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-transmogrifier +0 -0
  79. {rucio-34.4.1 → rucio-34.4.3}/bin/rucio-undertaker +0 -0
  80. {rucio-34.4.1 → rucio-34.4.3}/etc/alembic.ini.template +0 -0
  81. {rucio-34.4.1 → rucio-34.4.3}/etc/alembic_offline.ini.template +0 -0
  82. {rucio-34.4.1 → rucio-34.4.3}/etc/globus-config.yml.template +0 -0
  83. {rucio-34.4.1 → rucio-34.4.3}/etc/ldap.cfg.template +0 -0
  84. {rucio-34.4.1 → rucio-34.4.3}/etc/mail_templates/rule_approval_request.tmpl +0 -0
  85. {rucio-34.4.1 → rucio-34.4.3}/etc/mail_templates/rule_approved_admin.tmpl +0 -0
  86. {rucio-34.4.1 → rucio-34.4.3}/etc/mail_templates/rule_approved_user.tmpl +0 -0
  87. {rucio-34.4.1 → rucio-34.4.3}/etc/mail_templates/rule_denied_admin.tmpl +0 -0
  88. {rucio-34.4.1 → rucio-34.4.3}/etc/mail_templates/rule_denied_user.tmpl +0 -0
  89. {rucio-34.4.1 → rucio-34.4.3}/etc/mail_templates/rule_ok_notification.tmpl +0 -0
  90. {rucio-34.4.1 → rucio-34.4.3}/etc/rse-accounts.cfg.template +0 -0
  91. {rucio-34.4.1 → rucio-34.4.3}/etc/rucio.cfg.atlas.client.template +0 -0
  92. {rucio-34.4.1 → rucio-34.4.3}/etc/rucio.cfg.template +0 -0
  93. {rucio-34.4.1 → rucio-34.4.3}/etc/rucio_multi_vo.cfg.template +0 -0
  94. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/__init__.py +0 -0
  95. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/alembicrevision.py +0 -0
  96. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/__init__.py +0 -0
  97. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/account.py +0 -0
  98. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/account_limit.py +0 -0
  99. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/authentication.py +0 -0
  100. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/config.py +0 -0
  101. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/credential.py +0 -0
  102. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/did.py +0 -0
  103. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/dirac.py +0 -0
  104. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/exporter.py +0 -0
  105. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/heartbeat.py +0 -0
  106. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/identity.py +0 -0
  107. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/importer.py +0 -0
  108. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/lifetime_exception.py +0 -0
  109. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/lock.py +0 -0
  110. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/meta_conventions.py +0 -0
  111. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/permission.py +0 -0
  112. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/quarantined_replica.py +0 -0
  113. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/replica.py +0 -0
  114. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/request.py +0 -0
  115. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/rse.py +0 -0
  116. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/scope.py +0 -0
  117. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/subscription.py +0 -0
  118. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/api/vo.py +0 -0
  119. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/__init__.py +0 -0
  120. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/client.py +0 -0
  121. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/didclient.py +0 -0
  122. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/diracclient.py +0 -0
  123. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/exportclient.py +0 -0
  124. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/fileclient.py +0 -0
  125. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/importclient.py +0 -0
  126. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/lockclient.py +0 -0
  127. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/metaconventionsclient.py +0 -0
  128. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/pingclient.py +0 -0
  129. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/replicaclient.py +0 -0
  130. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/rseclient.py +0 -0
  131. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/ruleclient.py +0 -0
  132. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/client/subscriptionclient.py +0 -0
  133. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/__init__.py +0 -0
  134. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/cache.py +0 -0
  135. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/config.py +0 -0
  136. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/constants.py +0 -0
  137. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/constraints.py +0 -0
  138. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/didtype.py +0 -0
  139. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/dumper/__init__.py +0 -0
  140. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/dumper/consistency.py +0 -0
  141. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/dumper/data_models.py +0 -0
  142. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/dumper/path_parsing.py +0 -0
  143. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/exception.py +0 -0
  144. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/extra.py +0 -0
  145. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/logging.py +0 -0
  146. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/plugins.py +0 -0
  147. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/policy.py +0 -0
  148. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/__init__.py +0 -0
  149. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/atlas.py +0 -0
  150. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/belleii.py +0 -0
  151. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/domatpc.py +0 -0
  152. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/escape.py +0 -0
  153. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/generic.py +0 -0
  154. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  155. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/schema/icecube.py +0 -0
  156. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/stomp_utils.py +0 -0
  157. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/stopwatch.py +0 -0
  158. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/common/test_rucio_server.py +0 -0
  159. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/__init__.py +0 -0
  160. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/account_limit.py +0 -0
  161. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/authentication.py +0 -0
  162. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/config.py +0 -0
  163. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/credential.py +0 -0
  164. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did.py +0 -0
  165. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did_meta_plugins/__init__.py +0 -0
  166. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did_meta_plugins/did_column_meta.py +0 -0
  167. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did_meta_plugins/did_meta_plugin_interface.py +0 -0
  168. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did_meta_plugins/json_meta.py +0 -0
  169. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did_meta_plugins/mongo_meta.py +0 -0
  170. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/did_meta_plugins/postgres_meta.py +0 -0
  171. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/distance.py +0 -0
  172. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/exporter.py +0 -0
  173. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/heartbeat.py +0 -0
  174. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/identity.py +0 -0
  175. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/importer.py +0 -0
  176. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/lifetime_exception.py +0 -0
  177. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/message.py +0 -0
  178. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/meta_conventions.py +0 -0
  179. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/monitor.py +0 -0
  180. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/naming_convention.py +0 -0
  181. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/nongrid_trace.py +0 -0
  182. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/permission/__init__.py +0 -0
  183. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/permission/atlas.py +0 -0
  184. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/permission/belleii.py +0 -0
  185. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/permission/escape.py +0 -0
  186. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/permission/generic.py +0 -0
  187. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/permission/generic_multi_vo.py +0 -0
  188. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/quarantined_replica.py +0 -0
  189. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/replica.py +0 -0
  190. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/replica_sorter.py +0 -0
  191. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/request.py +0 -0
  192. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/rse.py +0 -0
  193. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/rse_counter.py +0 -0
  194. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/rse_expression_parser.py +0 -0
  195. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/rse_selector.py +0 -0
  196. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/rule.py +0 -0
  197. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/rule_grouping.py +0 -0
  198. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/scope.py +0 -0
  199. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/subscription.py +0 -0
  200. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/topology.py +0 -0
  201. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/trace.py +0 -0
  202. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/vo.py +0 -0
  203. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/core/volatile_replica.py +0 -0
  204. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/__init__.py +0 -0
  205. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/abacus/__init__.py +0 -0
  206. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/abacus/collection_replica.py +0 -0
  207. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/abacus/rse.py +0 -0
  208. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/atropos/__init__.py +0 -0
  209. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/atropos/atropos.py +0 -0
  210. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/auditor/__init__.py +0 -0
  211. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/auditor/hdfs.py +0 -0
  212. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/auditor/srmdumps.py +0 -0
  213. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/automatix/__init__.py +0 -0
  214. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/automatix/automatix.py +0 -0
  215. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/badreplicas/__init__.py +0 -0
  216. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/badreplicas/minos.py +0 -0
  217. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +0 -0
  218. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/badreplicas/necromancer.py +0 -0
  219. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/bb8/__init__.py +0 -0
  220. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/bb8/bb8.py +0 -0
  221. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/bb8/common.py +0 -0
  222. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/bb8/nuclei_background_rebalance.py +0 -0
  223. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/bb8/t2_background_rebalance.py +0 -0
  224. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/__init__.py +0 -0
  225. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/algorithms/__init__.py +0 -0
  226. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/algorithms/simple.py +0 -0
  227. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/algorithms/t2_free_space.py +0 -0
  228. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop.py +0 -0
  229. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/algorithms/t2_free_space_only_pop_with_network.py +0 -0
  230. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/c3po.py +0 -0
  231. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/collectors/__init__.py +0 -0
  232. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/collectors/agis.py +0 -0
  233. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/collectors/free_space.py +0 -0
  234. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/collectors/jedi_did.py +0 -0
  235. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/collectors/mock_did.py +0 -0
  236. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/collectors/network_metrics.py +0 -0
  237. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/collectors/workload.py +0 -0
  238. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/utils/__init__.py +0 -0
  239. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/utils/dataset_cache.py +0 -0
  240. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/utils/expiring_dataset_cache.py +0 -0
  241. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/utils/expiring_list.py +0 -0
  242. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/utils/popularity.py +0 -0
  243. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/c3po/utils/timeseries.py +0 -0
  244. {rucio-34.4.1/lib/rucio/daemons/conveyor → rucio-34.4.3/lib/rucio/daemons/cache}/__init__.py +0 -0
  245. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/common.py +0 -0
  246. {rucio-34.4.1/lib/rucio/daemons/follower → rucio-34.4.3/lib/rucio/daemons/conveyor}/__init__.py +0 -0
  247. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/common.py +0 -0
  248. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/finisher.py +0 -0
  249. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/poller.py +0 -0
  250. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/preparer.py +0 -0
  251. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/receiver.py +0 -0
  252. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/stager.py +0 -0
  253. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/submitter.py +0 -0
  254. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/conveyor/throttler.py +0 -0
  255. {rucio-34.4.1/lib/rucio/daemons/hermes → rucio-34.4.3/lib/rucio/daemons/follower}/__init__.py +0 -0
  256. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/follower/follower.py +0 -0
  257. {rucio-34.4.1/lib/rucio/daemons/judge → rucio-34.4.3/lib/rucio/daemons/hermes}/__init__.py +0 -0
  258. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/hermes/hermes.py +0 -0
  259. {rucio-34.4.1/lib/rucio/daemons/oauthmanager → rucio-34.4.3/lib/rucio/daemons/judge}/__init__.py +0 -0
  260. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/judge/cleaner.py +0 -0
  261. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/judge/evaluator.py +0 -0
  262. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/judge/injector.py +0 -0
  263. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/judge/repairer.py +0 -0
  264. {rucio-34.4.1/lib/rucio/daemons/reaper → rucio-34.4.3/lib/rucio/daemons/oauthmanager}/__init__.py +0 -0
  265. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/oauthmanager/oauthmanager.py +0 -0
  266. {rucio-34.4.1/lib/rucio/daemons/replicarecoverer → rucio-34.4.3/lib/rucio/daemons/reaper}/__init__.py +0 -0
  267. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/reaper/dark_reaper.py +0 -0
  268. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/reaper/reaper.py +0 -0
  269. {rucio-34.4.1/lib/rucio/daemons/rsedecommissioner → rucio-34.4.3/lib/rucio/daemons/replicarecoverer}/__init__.py +0 -0
  270. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +0 -0
  271. {rucio-34.4.1/lib/rucio/daemons/storage → rucio-34.4.3/lib/rucio/daemons/rsedecommissioner}/__init__.py +0 -0
  272. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/rsedecommissioner/config.py +0 -0
  273. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/rsedecommissioner/profiles/__init__.py +0 -0
  274. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/rsedecommissioner/profiles/atlas.py +0 -0
  275. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/rsedecommissioner/profiles/generic.py +0 -0
  276. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/rsedecommissioner/profiles/types.py +0 -0
  277. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/rsedecommissioner/rse_decommissioner.py +0 -0
  278. {rucio-34.4.1/lib/rucio/daemons/storage/consistency → rucio-34.4.3/lib/rucio/daemons/storage}/__init__.py +0 -0
  279. {rucio-34.4.1/lib/rucio/daemons/tracer → rucio-34.4.3/lib/rucio/daemons/storage/consistency}/__init__.py +0 -0
  280. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/storage/consistency/actions.py +0 -0
  281. {rucio-34.4.1/lib/rucio/daemons/transmogrifier → rucio-34.4.3/lib/rucio/daemons/tracer}/__init__.py +0 -0
  282. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/tracer/kronos.py +0 -0
  283. {rucio-34.4.1/lib/rucio/daemons/undertaker → rucio-34.4.3/lib/rucio/daemons/transmogrifier}/__init__.py +0 -0
  284. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/transmogrifier/transmogrifier.py +0 -0
  285. {rucio-34.4.1/lib/rucio/db → rucio-34.4.3/lib/rucio/daemons/undertaker}/__init__.py +0 -0
  286. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/daemons/undertaker/undertaker.py +0 -0
  287. {rucio-34.4.1/lib/rucio/db/sqla/migrate_repo → rucio-34.4.3/lib/rucio/db}/__init__.py +0 -0
  288. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/__init__.py +0 -0
  289. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/constants.py +0 -0
  290. {rucio-34.4.1/lib/rucio/rse/protocols → rucio-34.4.3/lib/rucio/db/sqla/migrate_repo}/__init__.py +0 -0
  291. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/env.py +0 -0
  292. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/01eaf73ab656_add_new_rule_notification_state_progress.py +0 -0
  293. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/0437a40dbfd1_add_eol_at_in_rules.py +0 -0
  294. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/0f1adb7a599a_create_transfer_hops_table.py +0 -0
  295. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/102efcf145f4_added_stuck_at_column_to_rules.py +0 -0
  296. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/13d4f70c66a9_introduce_transfer_limits.py +0 -0
  297. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/140fef722e91_cleanup_distances_table.py +0 -0
  298. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/14ec5aeb64cf_add_request_external_host.py +0 -0
  299. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/156fb5b5a14_add_request_type_to_requests_idx.py +0 -0
  300. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1677d4d803c8_split_rse_availability_into_multiple.py +0 -0
  301. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/16a0aca82e12_create_index_on_table_replicas_path.py +0 -0
  302. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1803333ac20f_adding_provenance_and_phys_group.py +0 -0
  303. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1a29d6a9504c_add_didtype_chck_to_requests.py +0 -0
  304. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1a80adff031a_create_index_on_rules_hist_recent.py +0 -0
  305. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1c45d9730ca6_increase_identity_length.py +0 -0
  306. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1d1215494e95_add_quarantined_replicas_table.py +0 -0
  307. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1d96f484df21_asynchronous_rules_and_rule_approval.py +0 -0
  308. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1f46c5f240ac_add_bytes_column_to_bad_replicas.py +0 -0
  309. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/1fc15ab60d43_add_message_history_table.py +0 -0
  310. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2190e703eb6e_move_rse_settings_to_rse_attributes.py +0 -0
  311. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/21d6b9dc9961_add_mismatch_scheme_state_to_requests.py +0 -0
  312. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/22cf51430c78_add_availability_column_to_table_rses.py +0 -0
  313. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/22d887e4ec0a_create_sources_table.py +0 -0
  314. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/25821a8a45a3_remove_unique_constraint_on_requests.py +0 -0
  315. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/25fc855625cf_added_unique_constraint_to_rules.py +0 -0
  316. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/269fee20dee9_add_repair_cnt_to_locks.py +0 -0
  317. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/271a46ea6244_add_ignore_availability_column_to_rules.py +0 -0
  318. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/277b5fbb41d3_switch_heartbeats_executable.py +0 -0
  319. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/27e3a68927fb_remove_replicas_tombstone_and_replicas_.py +0 -0
  320. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2854cd9e168_added_rule_id_column.py +0 -0
  321. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/295289b5a800_processed_by_and__at_in_requests.py +0 -0
  322. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2962ece31cf4_add_nbaccesses_column_in_the_did_table.py +0 -0
  323. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2af3291ec4c_added_replicas_history_table.py +0 -0
  324. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2b69addda658_add_columns_for_third_party_copy_read_.py +0 -0
  325. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2b8e7bcb4783_add_config_table.py +0 -0
  326. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2ba5229cb54c_add_submitted_at_to_requests_table.py +0 -0
  327. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2cbee484dcf9_added_column_volume_to_rse_transfer_.py +0 -0
  328. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2edee4a83846_add_source_to_requests_and_requests_.py +0 -0
  329. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2eef46be23d4_change_tokens_pk.py +0 -0
  330. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/2f648fc909f3_index_in_rule_history_on_scope_name.py +0 -0
  331. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/3082b8cef557_add_naming_convention_table_and_closed_.py +0 -0
  332. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/30fa38b6434e_add_index_on_service_column_in_the_message_table.py +0 -0
  333. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/3152492b110b_added_staging_area_column.py +0 -0
  334. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/32c7d2783f7e_create_bad_replicas_table.py +0 -0
  335. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/3345511706b8_replicas_table_pk_definition_is_in_.py +0 -0
  336. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/35ef10d1e11b_change_index_on_table_requests.py +0 -0
  337. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/379a19b5332d_create_rse_limits_table.py +0 -0
  338. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/384b96aa0f60_created_rule_history_tables.py +0 -0
  339. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/3ac1660a1a72_extend_distance_table.py +0 -0
  340. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/3ad36e2268b0_create_collection_replicas_updates_table.py +0 -0
  341. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/3c9df354071b_extend_waiting_request_state.py +0 -0
  342. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/3d9813fab443_add_a_new_state_lost_in_badfilesstatus.py +0 -0
  343. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/40ad39ce3160_add_transferred_at_to_requests_table.py +0 -0
  344. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4207be2fd914_add_notification_column_to_rules.py +0 -0
  345. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/42db2617c364_create_index_on_requests_external_id.py +0 -0
  346. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/436827b13f82_added_column_activity_to_table_requests.py +0 -0
  347. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/44278720f774_update_requests_typ_sta_upd_idx_index.py +0 -0
  348. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/45378a1e76a8_create_collection_replica_table.py +0 -0
  349. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/469d262be19_removing_created_at_index.py +0 -0
  350. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4783c1f49cb4_create_distance_table.py +0 -0
  351. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/49a21b4d4357_create_index_on_table_tokens.py +0 -0
  352. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4a2cbedda8b9_add_source_replica_expression_column_to_.py +0 -0
  353. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4a7182d9578b_added_bytes_length_accessed_at_columns.py +0 -0
  354. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4bab9edd01fc_create_index_on_requests_rule_id.py +0 -0
  355. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4c3a4acfe006_new_attr_account_table.py +0 -0
  356. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4cf0a2e127d4_adding_transient_metadata.py +0 -0
  357. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/4df2c5ddabc0_remove_temporary_dids.py +0 -0
  358. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/50280c53117c_add_qos_class_to_rse.py +0 -0
  359. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/52153819589c_add_rse_id_to_replicas_table.py +0 -0
  360. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/52fd9f4916fa_added_activity_to_rules.py +0 -0
  361. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/53b479c3cb0f_fix_did_meta_table_missing_updated_at_.py +0 -0
  362. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/5673b4b6e843_add_wfms_metadata_to_rule_tables.py +0 -0
  363. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/575767d9f89_added_source_history_table.py +0 -0
  364. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/58bff7008037_add_started_at_to_requests.py +0 -0
  365. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/58c8b78301ab_rename_callback_to_message.py +0 -0
  366. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/5f139f77382a_added_child_rule_id_column.py +0 -0
  367. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/688ef1840840_adding_did_meta_table.py +0 -0
  368. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/6e572a9bfbf3_add_new_split_container_column_to_rules.py +0 -0
  369. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/70587619328_add_comment_column_for_subscriptions.py +0 -0
  370. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/739064d31565_remove_history_table_pks.py +0 -0
  371. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/7541902bf173_add_didsfollowed_and_followevents_table.py +0 -0
  372. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/7ec22226cdbf_new_replica_state_for_temporary_.py +0 -0
  373. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/810a41685bc1_added_columns_rse_transfer_limits.py +0 -0
  374. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/83f991c63a93_correct_rse_expression_length.py +0 -0
  375. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/8523998e2e76_increase_size_of_extended_attributes_.py +0 -0
  376. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/8ea9122275b1_adding_missing_function_based_indices.py +0 -0
  377. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/90f47792bb76_add_clob_payload_to_messages.py +0 -0
  378. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/914b8f02df38_new_table_for_lifetime_model_exceptions.py +0 -0
  379. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/94a5961ddbf2_add_estimator_columns.py +0 -0
  380. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/9a1b149a2044_add_saml_identity_type.py +0 -0
  381. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/9a45bc4ea66d_add_vp_table.py +0 -0
  382. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/9eb936a81eb1_true_is_true.py +0 -0
  383. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a08fa8de1545_transfer_stats_table.py +0 -0
  384. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a118956323f8_added_vo_table_and_vo_col_to_rse.py +0 -0
  385. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a193a275255c_add_status_column_in_messages.py +0 -0
  386. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a5f6f6e928a7_1_7_0.py +0 -0
  387. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a616581ee47_added_columns_to_table_requests.py +0 -0
  388. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a6eb23955c28_state_idx_non_functional.py +0 -0
  389. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a74275a1ad30_added_global_quota_table.py +0 -0
  390. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/a93e4e47bda_heartbeats.py +0 -0
  391. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/ae2a56fcc89_added_comment_column_to_rules.py +0 -0
  392. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/b4293a99f344_added_column_identity_to_table_tokens.py +0 -0
  393. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/b7d287de34fd_removal_of_replicastate_source.py +0 -0
  394. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/b818052fa670_add_index_to_quarantined_replicas.py +0 -0
  395. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/b8caac94d7f0_add_comments_column_for_subscriptions_.py +0 -0
  396. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/b96a1c7e1cc4_new_bad_pfns_table_and_bad_replicas_.py +0 -0
  397. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/bb695f45c04_extend_request_state.py +0 -0
  398. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/bc68e9946deb_add_staging_timestamps_to_request.py +0 -0
  399. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/bf3baa1c1474_correct_pk_and_idx_for_history_tables.py +0 -0
  400. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/c0937668555f_add_qos_policy_map_table.py +0 -0
  401. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/c129ccdb2d5_add_lumiblocknr_to_dids.py +0 -0
  402. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/ccdbcd48206e_add_did_type_column_index_on_did_meta_.py +0 -0
  403. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/cebad904c4dd_new_payload_column_for_heartbeats.py +0 -0
  404. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/d1189a09c6e0_oauth2_0_and_jwt_feature_support_adding_.py +0 -0
  405. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/d23453595260_extend_request_state_for_preparer.py +0 -0
  406. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/d6dceb1de2d_added_purge_column_to_rules.py +0 -0
  407. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/d6e2c3b2cf26_remove_third_party_copy_column_from_rse.py +0 -0
  408. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/d91002c5841_new_account_limits_table.py +0 -0
  409. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/e138c364ebd0_extending_columns_for_filter_and_.py +0 -0
  410. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/e59300c8b179_support_for_archive.py +0 -0
  411. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/f1b14a8c2ac1_postgres_use_check_constraints.py +0 -0
  412. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/f41ffe206f37_oracle_global_temporary_tables.py +0 -0
  413. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/f85a2962b021_adding_transfertool_column_to_requests_.py +0 -0
  414. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/fa7a7d78b602_increase_refresh_token_size.py +0 -0
  415. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/fb28a95fe288_add_replicas_rse_id_tombstone_idx.py +0 -0
  416. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/fe1a65b176c9_set_third_party_copy_read_and_write_.py +0 -0
  417. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/migrate_repo/versions/fe8ea2fa9788_added_third_party_copy_column_to_rse_.py +0 -0
  418. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/sautils.py +0 -0
  419. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/session.py +0 -0
  420. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/db/sqla/types.py +0 -0
  421. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/__init__.py +0 -0
  422. {rucio-34.4.1/lib/rucio/tests → rucio-34.4.3/lib/rucio/rse/protocols}/__init__.py +0 -0
  423. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/bittorrent.py +0 -0
  424. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/cache.py +0 -0
  425. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/dummy.py +0 -0
  426. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/gfal.py +0 -0
  427. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/globus.py +0 -0
  428. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/gsiftp.py +0 -0
  429. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/http_cache.py +0 -0
  430. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/mock.py +0 -0
  431. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/ngarc.py +0 -0
  432. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/posix.py +0 -0
  433. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/protocol.py +0 -0
  434. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/rclone.py +0 -0
  435. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/rfio.py +0 -0
  436. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/srm.py +0 -0
  437. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/ssh.py +0 -0
  438. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/storm.py +0 -0
  439. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/webdav.py +0 -0
  440. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/protocols/xrootd.py +0 -0
  441. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/rse/rsemanager.py +0 -0
  442. {rucio-34.4.1/lib/rucio/transfertool → rucio-34.4.3/lib/rucio/tests}/__init__.py +0 -0
  443. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/tests/common.py +0 -0
  444. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/tests/common_server.py +0 -0
  445. {rucio-34.4.1/lib/rucio/web → rucio-34.4.3/lib/rucio/transfertool}/__init__.py +0 -0
  446. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/bittorrent.py +0 -0
  447. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/bittorrent_driver.py +0 -0
  448. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/bittorrent_driver_qbittorrent.py +0 -0
  449. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/globus.py +0 -0
  450. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/globus_library.py +0 -0
  451. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/mock.py +0 -0
  452. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/transfertool/transfertool.py +0 -0
  453. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/version.py +0 -0
  454. {rucio-34.4.1/lib/rucio/web/rest/flaskapi/v1 → rucio-34.4.3/lib/rucio/web/rest/flaskapi}/__init__.py +0 -0
  455. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/authenticated_bp.py +0 -0
  456. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/accountlimits.py +0 -0
  457. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/accounts.py +0 -0
  458. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/archives.py +0 -0
  459. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/auth.py +0 -0
  460. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/common.py +0 -0
  461. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/config.py +0 -0
  462. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/credentials.py +0 -0
  463. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/dids.py +0 -0
  464. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/dirac.py +0 -0
  465. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/export.py +0 -0
  466. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/heartbeats.py +0 -0
  467. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/identities.py +0 -0
  468. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/import.py +0 -0
  469. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/lifetime_exceptions.py +0 -0
  470. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/locks.py +0 -0
  471. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/main.py +0 -0
  472. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/meta_conventions.py +0 -0
  473. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/metrics.py +0 -0
  474. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/nongrid_traces.py +0 -0
  475. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/ping.py +0 -0
  476. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/redirect.py +0 -0
  477. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/replicas.py +0 -0
  478. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/requests.py +0 -0
  479. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/rses.py +0 -0
  480. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/rules.py +0 -0
  481. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/scopes.py +0 -0
  482. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/subscriptions.py +0 -0
  483. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/templates/auth_crash.html +0 -0
  484. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/templates/auth_granted.html +0 -0
  485. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/traces.py +0 -0
  486. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/flaskapi/v1/vos.py +0 -0
  487. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/main.py +0 -0
  488. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/metrics.py +0 -0
  489. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio/web/rest/ping.py +0 -0
  490. {rucio-34.4.1 → rucio-34.4.3}/lib/rucio.egg-info/SOURCES.txt +0 -0
  491. {rucio-34.4.1 → rucio-34.4.3}/pylintrc +0 -0
  492. {rucio-34.4.1 → rucio-34.4.3}/requirements.txt +0 -0
  493. {rucio-34.4.1 → rucio-34.4.3}/setup.cfg +0 -0
  494. {rucio-34.4.1 → rucio-34.4.3}/setup.py +0 -0
  495. {rucio-34.4.1 → rucio-34.4.3}/setuputil.py +0 -0
  496. {rucio-34.4.1 → rucio-34.4.3}/tests/test_abacus_account.py +0 -0
  497. {rucio-34.4.1 → rucio-34.4.3}/tests/test_abacus_collection_replica.py +0 -0
  498. {rucio-34.4.1 → rucio-34.4.3}/tests/test_abacus_rse.py +0 -0
  499. {rucio-34.4.1 → rucio-34.4.3}/tests/test_account.py +0 -0
  500. {rucio-34.4.1 → rucio-34.4.3}/tests/test_account_limits.py +0 -0
  501. {rucio-34.4.1 → rucio-34.4.3}/tests/test_api_external_representation.py +0 -0
  502. {rucio-34.4.1 → rucio-34.4.3}/tests/test_archive.py +0 -0
  503. {rucio-34.4.1 → rucio-34.4.3}/tests/test_auditor.py +0 -0
  504. {rucio-34.4.1 → rucio-34.4.3}/tests/test_auditor_hdfs.py +0 -0
  505. {rucio-34.4.1 → rucio-34.4.3}/tests/test_auditor_srmdumps.py +0 -0
  506. {rucio-34.4.1 → rucio-34.4.3}/tests/test_authentication.py +0 -0
  507. {rucio-34.4.1 → rucio-34.4.3}/tests/test_automatix.py +0 -0
  508. {rucio-34.4.1 → rucio-34.4.3}/tests/test_bad_replica.py +0 -0
  509. {rucio-34.4.1 → rucio-34.4.3}/tests/test_bb8.py +0 -0
  510. {rucio-34.4.1 → rucio-34.4.3}/tests/test_belleii.py +0 -0
  511. {rucio-34.4.1 → rucio-34.4.3}/tests/test_bin_rucio.py +0 -0
  512. {rucio-34.4.1 → rucio-34.4.3}/tests/test_boolean.py +0 -0
  513. {rucio-34.4.1 → rucio-34.4.3}/tests/test_clients.py +0 -0
  514. {rucio-34.4.1 → rucio-34.4.3}/tests/test_common_types.py +0 -0
  515. {rucio-34.4.1 → rucio-34.4.3}/tests/test_config.py +0 -0
  516. {rucio-34.4.1 → rucio-34.4.3}/tests/test_conveyor.py +0 -0
  517. {rucio-34.4.1 → rucio-34.4.3}/tests/test_conveyor_submitter.py +0 -0
  518. {rucio-34.4.1 → rucio-34.4.3}/tests/test_counter.py +0 -0
  519. {rucio-34.4.1 → rucio-34.4.3}/tests/test_credential.py +0 -0
  520. {rucio-34.4.1 → rucio-34.4.3}/tests/test_curl.py +0 -0
  521. {rucio-34.4.1 → rucio-34.4.3}/tests/test_daemons.py +0 -0
  522. {rucio-34.4.1 → rucio-34.4.3}/tests/test_dataset_replicas.py +0 -0
  523. {rucio-34.4.1 → rucio-34.4.3}/tests/test_db.py +0 -0
  524. {rucio-34.4.1 → rucio-34.4.3}/tests/test_did.py +0 -0
  525. {rucio-34.4.1 → rucio-34.4.3}/tests/test_did_meta_plugins.py +0 -0
  526. {rucio-34.4.1 → rucio-34.4.3}/tests/test_didtype.py +0 -0
  527. {rucio-34.4.1 → rucio-34.4.3}/tests/test_download.py +0 -0
  528. {rucio-34.4.1 → rucio-34.4.3}/tests/test_dumper.py +0 -0
  529. {rucio-34.4.1 → rucio-34.4.3}/tests/test_dumper_consistency.py +0 -0
  530. {rucio-34.4.1 → rucio-34.4.3}/tests/test_dumper_data_model.py +0 -0
  531. {rucio-34.4.1 → rucio-34.4.3}/tests/test_dumper_path_parsing.py +0 -0
  532. {rucio-34.4.1 → rucio-34.4.3}/tests/test_filter_engine.py +0 -0
  533. {rucio-34.4.1 → rucio-34.4.3}/tests/test_heartbeat.py +0 -0
  534. {rucio-34.4.1 → rucio-34.4.3}/tests/test_hermes.py +0 -0
  535. {rucio-34.4.1 → rucio-34.4.3}/tests/test_identity.py +0 -0
  536. {rucio-34.4.1 → rucio-34.4.3}/tests/test_impl_upload_download.py +0 -0
  537. {rucio-34.4.1 → rucio-34.4.3}/tests/test_import_export.py +0 -0
  538. {rucio-34.4.1 → rucio-34.4.3}/tests/test_judge_cleaner.py +0 -0
  539. {rucio-34.4.1 → rucio-34.4.3}/tests/test_judge_evaluator.py +0 -0
  540. {rucio-34.4.1 → rucio-34.4.3}/tests/test_judge_injector.py +0 -0
  541. {rucio-34.4.1 → rucio-34.4.3}/tests/test_judge_repairer.py +0 -0
  542. {rucio-34.4.1 → rucio-34.4.3}/tests/test_lifetime.py +0 -0
  543. {rucio-34.4.1 → rucio-34.4.3}/tests/test_message.py +0 -0
  544. {rucio-34.4.1 → rucio-34.4.3}/tests/test_meta_conventions.py +0 -0
  545. {rucio-34.4.1 → rucio-34.4.3}/tests/test_meta_did.py +0 -0
  546. {rucio-34.4.1 → rucio-34.4.3}/tests/test_module_import.py +0 -0
  547. {rucio-34.4.1 → rucio-34.4.3}/tests/test_monitor.py +0 -0
  548. {rucio-34.4.1 → rucio-34.4.3}/tests/test_multi_vo.py +0 -0
  549. {rucio-34.4.1 → rucio-34.4.3}/tests/test_naming_convention.py +0 -0
  550. {rucio-34.4.1 → rucio-34.4.3}/tests/test_oauthmanager.py +0 -0
  551. {rucio-34.4.1 → rucio-34.4.3}/tests/test_oidc.py +0 -0
  552. {rucio-34.4.1 → rucio-34.4.3}/tests/test_permission.py +0 -0
  553. {rucio-34.4.1 → rucio-34.4.3}/tests/test_pfns.py +0 -0
  554. {rucio-34.4.1 → rucio-34.4.3}/tests/test_ping.py +0 -0
  555. {rucio-34.4.1 → rucio-34.4.3}/tests/test_preparer.py +0 -0
  556. {rucio-34.4.1 → rucio-34.4.3}/tests/test_qos.py +0 -0
  557. {rucio-34.4.1 → rucio-34.4.3}/tests/test_quarantined_replica.py +0 -0
  558. {rucio-34.4.1 → rucio-34.4.3}/tests/test_reaper.py +0 -0
  559. {rucio-34.4.1 → rucio-34.4.3}/tests/test_redirect.py +0 -0
  560. {rucio-34.4.1 → rucio-34.4.3}/tests/test_replica.py +0 -0
  561. {rucio-34.4.1 → rucio-34.4.3}/tests/test_replica_recoverer.py +0 -0
  562. {rucio-34.4.1 → rucio-34.4.3}/tests/test_replica_sorting.py +0 -0
  563. {rucio-34.4.1 → rucio-34.4.3}/tests/test_request.py +0 -0
  564. {rucio-34.4.1 → rucio-34.4.3}/tests/test_root_proxy.py +0 -0
  565. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse.py +0 -0
  566. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_expression_parser.py +0 -0
  567. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_lfn2path.py +0 -0
  568. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_gfal2.py +0 -0
  569. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  570. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_posix.py +0 -0
  571. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_rclone.py +0 -0
  572. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_rsync.py +0 -0
  573. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_srm.py +0 -0
  574. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_ssh.py +0 -0
  575. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_webdav.py +0 -0
  576. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_protocol_xrootd.py +0 -0
  577. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rse_selector.py +0 -0
  578. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rucio_server.py +0 -0
  579. {rucio-34.4.1 → rucio-34.4.3}/tests/test_rule.py +0 -0
  580. {rucio-34.4.1 → rucio-34.4.3}/tests/test_scope.py +0 -0
  581. {rucio-34.4.1 → rucio-34.4.3}/tests/test_subscription.py +0 -0
  582. {rucio-34.4.1 → rucio-34.4.3}/tests/test_throttler.py +0 -0
  583. {rucio-34.4.1 → rucio-34.4.3}/tests/test_tpc.py +0 -0
  584. {rucio-34.4.1 → rucio-34.4.3}/tests/test_trace.py +0 -0
  585. {rucio-34.4.1 → rucio-34.4.3}/tests/test_transfer.py +0 -0
  586. {rucio-34.4.1 → rucio-34.4.3}/tests/test_undertaker.py +0 -0
  587. {rucio-34.4.1 → rucio-34.4.3}/tests/test_upload.py +0 -0
  588. {rucio-34.4.1 → rucio-34.4.3}/tests/test_utils.py +0 -0
  589. {rucio-34.4.1 → rucio-34.4.3}/tools/bootstrap.py +0 -0
  590. {rucio-34.4.1 → rucio-34.4.3}/tools/merge_rucio_configs.py +0 -0
  591. {rucio-34.4.1 → rucio-34.4.3}/tools/reset_database.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rucio
3
- Version: 34.4.1
3
+ Version: 34.4.3
4
4
  Summary: Rucio Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -12,8 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- from collections.abc import Iterator
16
- from typing import TYPE_CHECKING, Any, Optional
15
+ from typing import TYPE_CHECKING, Any, Literal, Optional
17
16
 
18
17
  from rucio.api.permission import has_permission
19
18
  from rucio.common.config import config_get_bool
@@ -25,11 +24,13 @@ from rucio.core import rule
25
24
  from rucio.db.sqla.session import read_session, stream_session, transactional_session
26
25
 
27
26
  if TYPE_CHECKING:
27
+ from collections.abc import Iterator, Sequence
28
+
28
29
  from sqlalchemy.orm import Session
29
30
 
30
31
 
31
32
  @read_session
32
- def is_multi_vo(*, session: "Session"):
33
+ def is_multi_vo(*, session: "Session") -> bool:
33
34
  """
34
35
  Check whether this instance is configured for multi-VO
35
36
  returns: Boolean True if running in multi-VO
@@ -38,9 +39,33 @@ def is_multi_vo(*, session: "Session"):
38
39
 
39
40
 
40
41
  @transactional_session
41
- def add_replication_rule(dids, copies, rse_expression, weight, lifetime, grouping, account, locked, subscription_id, source_replica_expression,
42
- activity, notify, purge_replicas, ignore_availability, comment, ask_approval, asynchronous, delay_injection, priority,
43
- split_container, meta, issuer, vo='def', *, session: "Session"):
42
+ def add_replication_rule(
43
+ dids: "Sequence[dict[str, str]]",
44
+ copies: int,
45
+ rse_expression: str,
46
+ weight: Optional[str],
47
+ lifetime: Optional[int],
48
+ grouping: Literal['ALL', 'DATASET', 'NONE'],
49
+ account: str,
50
+ locked: bool,
51
+ subscription_id: Optional[str],
52
+ source_replica_expression: Optional[str],
53
+ activity: Optional[str],
54
+ notify: Optional[Literal['Y', 'N', 'C', 'P']],
55
+ purge_replicas: bool,
56
+ ignore_availability: bool,
57
+ comment: Optional[str],
58
+ ask_approval: bool,
59
+ asynchronous: bool,
60
+ delay_injection: Optional[int],
61
+ priority: int,
62
+ split_container: bool,
63
+ meta: Optional[dict[str, Any]],
64
+ issuer: str,
65
+ vo: str = 'def',
66
+ *,
67
+ session: "Session"
68
+ ) -> list[str]:
44
69
  """
45
70
  Adds a replication rule.
46
71
 
@@ -89,12 +114,11 @@ def add_replication_rule(dids, copies, rse_expression, weight, lifetime, groupin
89
114
  if not has_permission(issuer=issuer, vo=vo, action='add_rule', kwargs=kwargs, session=session):
90
115
  raise AccessDenied('Account %s can not add replication rule' % (issuer))
91
116
 
92
- account = InternalAccount(account, vo=vo)
93
- for d in dids:
94
- d['scope'] = InternalScope(d['scope'], vo=vo)
117
+ account_internal = InternalAccount(account, vo=vo)
118
+ dids_with_internal_scope = [{'name': d['name'], 'scope': InternalScope(d['scope'], vo=vo)} for d in dids]
95
119
 
96
- return rule.add_rule(account=account,
97
- dids=dids,
120
+ return rule.add_rule(account=account_internal,
121
+ dids=dids_with_internal_scope,
98
122
  copies=copies,
99
123
  rse_expression=rse_expression,
100
124
  grouping=grouping,
@@ -118,7 +142,7 @@ def add_replication_rule(dids, copies, rse_expression, weight, lifetime, groupin
118
142
 
119
143
 
120
144
  @read_session
121
- def get_replication_rule(rule_id, issuer, vo='def', *, session: "Session"):
145
+ def get_replication_rule(rule_id: str, issuer: str, vo: str = 'def', *, session: "Session") -> dict[str, Any]:
122
146
  """
123
147
  Get replication rule by it's id.
124
148
 
@@ -135,7 +159,12 @@ def get_replication_rule(rule_id, issuer, vo='def', *, session: "Session"):
135
159
 
136
160
 
137
161
  @stream_session
138
- def list_replication_rules(filters: Optional[dict[str, Any]] = None, vo: str = 'def', *, session: "Session") -> Iterator[dict[str, Any]]:
162
+ def list_replication_rules(
163
+ filters: Optional[dict[str, Any]] = None,
164
+ vo: str = 'def',
165
+ *,
166
+ session: "Session"
167
+ ) -> "Iterator[dict[str, Any]]":
139
168
  """
140
169
  Lists replication rules based on a filter.
141
170
 
@@ -164,7 +193,13 @@ def list_replication_rules(filters: Optional[dict[str, Any]] = None, vo: str = '
164
193
 
165
194
 
166
195
  @read_session
167
- def list_replication_rule_history(rule_id, issuer, vo='def', *, session: "Session"):
196
+ def list_replication_rule_history(
197
+ rule_id: str,
198
+ issuer: str,
199
+ vo: str = 'def',
200
+ *,
201
+ session: "Session"
202
+ ) -> "Iterator[dict[str, Any]]":
168
203
  """
169
204
  Lists replication rule history..
170
205
 
@@ -180,7 +215,13 @@ def list_replication_rule_history(rule_id, issuer, vo='def', *, session: "Sessio
180
215
 
181
216
 
182
217
  @stream_session
183
- def list_replication_rule_full_history(scope, name, vo='def', *, session: "Session"):
218
+ def list_replication_rule_full_history(
219
+ scope: str,
220
+ name: str,
221
+ vo: str = 'def',
222
+ *,
223
+ session: "Session"
224
+ ) -> "Iterator[dict[str, Any]]":
184
225
  """
185
226
  List the rule history of a DID.
186
227
 
@@ -189,14 +230,20 @@ def list_replication_rule_full_history(scope, name, vo='def', *, session: "Sessi
189
230
  :param vo: The VO to act on.
190
231
  :param session: The database session in use.
191
232
  """
192
- scope = InternalScope(scope, vo=vo)
193
- rules = rule.list_rule_full_history(scope, name, session=session)
233
+ scope_internal = InternalScope(scope, vo=vo)
234
+ rules = rule.list_rule_full_history(scope_internal, name, session=session)
194
235
  for r in rules:
195
236
  yield api_update_return_dict(r, session=session)
196
237
 
197
238
 
198
239
  @stream_session
199
- def list_associated_replication_rules_for_file(scope, name, vo='def', *, session: "Session"):
240
+ def list_associated_replication_rules_for_file(
241
+ scope: str,
242
+ name: str,
243
+ vo: str = 'def',
244
+ *,
245
+ session: "Session"
246
+ ) -> "Iterator[dict[str, Any]]":
200
247
  """
201
248
  Lists associated replication rules by file.
202
249
 
@@ -205,14 +252,21 @@ def list_associated_replication_rules_for_file(scope, name, vo='def', *, session
205
252
  :param vo: The VO to act on.
206
253
  :param session: The database session in use.
207
254
  """
208
- scope = InternalScope(scope, vo=vo)
209
- rules = rule.list_associated_rules_for_file(scope=scope, name=name, session=session)
255
+ scope_internal = InternalScope(scope, vo=vo)
256
+ rules = rule.list_associated_rules_for_file(scope=scope_internal, name=name, session=session)
210
257
  for r in rules:
211
258
  yield api_update_return_dict(r, session=session)
212
259
 
213
260
 
214
261
  @transactional_session
215
- def delete_replication_rule(rule_id, purge_replicas, issuer, vo='def', *, session: "Session"):
262
+ def delete_replication_rule(
263
+ rule_id: str,
264
+ purge_replicas: Optional[bool],
265
+ issuer: str,
266
+ vo: str = 'def',
267
+ *,
268
+ session: "Session"
269
+ ) -> None:
216
270
  """
217
271
  Deletes a replication rule and all associated locks.
218
272
 
@@ -232,7 +286,14 @@ def delete_replication_rule(rule_id, purge_replicas, issuer, vo='def', *, sessio
232
286
 
233
287
 
234
288
  @transactional_session
235
- def update_replication_rule(rule_id: str, options: dict[str, Any], issuer: str, vo: str = 'def', *, session: "Session"):
289
+ def update_replication_rule(
290
+ rule_id: str,
291
+ options: dict[str, Any],
292
+ issuer: str,
293
+ vo: str = 'def',
294
+ *,
295
+ session: "Session"
296
+ ) -> None:
236
297
  """
237
298
  Update lock state of a replication rule.
238
299
 
@@ -264,7 +325,15 @@ def update_replication_rule(rule_id: str, options: dict[str, Any], issuer: str,
264
325
 
265
326
 
266
327
  @transactional_session
267
- def reduce_replication_rule(rule_id, copies, exclude_expression, issuer, vo='def', *, session: "Session"):
328
+ def reduce_replication_rule(
329
+ rule_id: str,
330
+ copies: int,
331
+ exclude_expression: Optional[str],
332
+ issuer: str,
333
+ vo: str = 'def',
334
+ *,
335
+ session: "Session"
336
+ ) -> str:
268
337
  """
269
338
  Reduce the number of copies for a rule by atomically replacing the rule.
270
339
 
@@ -286,7 +355,13 @@ def reduce_replication_rule(rule_id, copies, exclude_expression, issuer, vo='def
286
355
 
287
356
 
288
357
  @read_session
289
- def examine_replication_rule(rule_id, issuer, vo='def', *, session: "Session"):
358
+ def examine_replication_rule(
359
+ rule_id: str,
360
+ issuer: str,
361
+ vo: str = 'def',
362
+ *,
363
+ session: "Session"
364
+ ) -> dict[str, Any]:
290
365
  """
291
366
  Examine a replication rule.
292
367
 
@@ -306,7 +381,15 @@ def examine_replication_rule(rule_id, issuer, vo='def', *, session: "Session"):
306
381
 
307
382
 
308
383
  @transactional_session
309
- def move_replication_rule(rule_id, rse_expression, override, issuer, vo='def', *, session: "Session"):
384
+ def move_replication_rule(
385
+ rule_id: str,
386
+ rse_expression: str,
387
+ override: dict[str, Any],
388
+ issuer: str,
389
+ vo: str = 'def',
390
+ *,
391
+ session: "Session"
392
+ ) -> str:
310
393
  """
311
394
  Move a replication rule to another RSE and, once done, delete the original one.
312
395
 
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from json import dumps
16
+ from typing import TYPE_CHECKING, Any, Optional
16
17
  from urllib.parse import quote_plus
17
18
 
18
19
  from requests.status_codes import codes
@@ -20,6 +21,9 @@ from requests.status_codes import codes
20
21
  from rucio.client.baseclient import BaseClient, choice
21
22
  from rucio.common.utils import build_url
22
23
 
24
+ if TYPE_CHECKING:
25
+ from collections.abc import Iterator
26
+
23
27
 
24
28
  class AccountClient(BaseClient):
25
29
 
@@ -27,7 +31,7 @@ class AccountClient(BaseClient):
27
31
 
28
32
  ACCOUNTS_BASEURL = 'accounts'
29
33
 
30
- def add_account(self, account, type_, email):
34
+ def add_account(self, account: str, type_: str, email: str) -> bool:
31
35
  """
32
36
  Sends the request to create a new account.
33
37
 
@@ -49,7 +53,7 @@ class AccountClient(BaseClient):
49
53
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
50
54
  raise exc_cls(exc_msg)
51
55
 
52
- def delete_account(self, account):
56
+ def delete_account(self, account: str) -> bool:
53
57
  """
54
58
  Sends the request to disable an account.
55
59
 
@@ -68,7 +72,7 @@ class AccountClient(BaseClient):
68
72
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
69
73
  raise exc_cls(exc_msg)
70
74
 
71
- def get_account(self, account):
75
+ def get_account(self, account: str) -> Optional[dict[str, Any]]:
72
76
  """
73
77
  Sends the request to get information about a given account.
74
78
 
@@ -87,7 +91,7 @@ class AccountClient(BaseClient):
87
91
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
88
92
  raise exc_cls(exc_msg)
89
93
 
90
- def update_account(self, account, key, value):
94
+ def update_account(self, account: str, key: str, value: Any) -> bool:
91
95
  """ Update a property of an account.
92
96
 
93
97
  :param account: Name of the account.
@@ -106,7 +110,12 @@ class AccountClient(BaseClient):
106
110
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
107
111
  raise exc_cls(exc_msg)
108
112
 
109
- def list_accounts(self, account_type=None, identity=None, filters=None):
113
+ def list_accounts(
114
+ self,
115
+ account_type: Optional[str] = None,
116
+ identity: Optional[str] = None,
117
+ filters: Optional[dict[str, Any]] = None
118
+ ) -> "Iterator[dict[str, Any]]":
110
119
  """
111
120
  Sends the request to list all rucio accounts.
112
121
 
@@ -137,7 +146,7 @@ class AccountClient(BaseClient):
137
146
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
138
147
  raise exc_cls(exc_msg)
139
148
 
140
- def whoami(self):
149
+ def whoami(self) -> Optional[dict[str, Any]]:
141
150
  """
142
151
  Get information about account whose token is used
143
152
 
@@ -146,7 +155,15 @@ class AccountClient(BaseClient):
146
155
  """
147
156
  return self.get_account('whoami')
148
157
 
149
- def add_identity(self, account, identity, authtype, email, default=False, password=None):
158
+ def add_identity(
159
+ self,
160
+ account: str,
161
+ identity: str,
162
+ authtype: str,
163
+ email: str,
164
+ default: bool = False,
165
+ password: Optional[str] = None
166
+ ) -> bool:
150
167
  """
151
168
  Adds a membership association between identity and account.
152
169
 
@@ -171,7 +188,12 @@ class AccountClient(BaseClient):
171
188
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
172
189
  raise exc_cls(exc_msg)
173
190
 
174
- def del_identity(self, account, identity, authtype):
191
+ def del_identity(
192
+ self,
193
+ account: str,
194
+ identity: str,
195
+ authtype: str
196
+ ) -> bool:
175
197
  """
176
198
  Delete an identity's membership association with an account.
177
199
 
@@ -194,7 +216,7 @@ class AccountClient(BaseClient):
194
216
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
195
217
  raise exc_cls(exc_msg)
196
218
 
197
- def list_identities(self, account):
219
+ def list_identities(self, account: str) -> "Iterator[dict[str, Any]]":
198
220
  """
199
221
  List all identities on an account.
200
222
 
@@ -210,7 +232,7 @@ class AccountClient(BaseClient):
210
232
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
211
233
  raise exc_cls(exc_msg)
212
234
 
213
- def list_account_rules(self, account):
235
+ def list_account_rules(self, account: str) -> "Iterator[dict[str, Any]]":
214
236
  """
215
237
  List the associated rules of an account.
216
238
 
@@ -226,7 +248,7 @@ class AccountClient(BaseClient):
226
248
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
227
249
  raise exc_cls(exc_msg)
228
250
 
229
- def get_account_limits(self, account, rse_expression, locality):
251
+ def get_account_limits(self, account: str, rse_expression: str, locality: str) -> dict[str, Any]:
230
252
  """
231
253
  Return the correct account limits for the given locality.
232
254
 
@@ -243,7 +265,7 @@ class AccountClient(BaseClient):
243
265
  from rucio.common.exception import UnsupportedOperation
244
266
  raise UnsupportedOperation('The provided locality (%s) for the account limit was invalid' % locality)
245
267
 
246
- def get_global_account_limit(self, account, rse_expression):
268
+ def get_global_account_limit(self, account: str, rse_expression: str) -> dict[str, Any]:
247
269
  """
248
270
  List the account limit for the specific RSE expression.
249
271
 
@@ -259,7 +281,7 @@ class AccountClient(BaseClient):
259
281
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
260
282
  raise exc_cls(exc_msg)
261
283
 
262
- def get_global_account_limits(self, account):
284
+ def get_global_account_limits(self, account: str) -> dict[str, Any]:
263
285
  """
264
286
  List all RSE expression limits of this account.
265
287
 
@@ -274,7 +296,7 @@ class AccountClient(BaseClient):
274
296
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
275
297
  raise exc_cls(exc_msg)
276
298
 
277
- def get_local_account_limits(self, account):
299
+ def get_local_account_limits(self, account: str) -> dict[str, Any]:
278
300
  """
279
301
  List the account rse limits of this account.
280
302
 
@@ -289,7 +311,7 @@ class AccountClient(BaseClient):
289
311
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
290
312
  raise exc_cls(exc_msg)
291
313
 
292
- def get_local_account_limit(self, account, rse):
314
+ def get_local_account_limit(self, account: str, rse: str) -> dict[str, Any]:
293
315
  """
294
316
  List the account rse limits of this account for the specific rse.
295
317
 
@@ -305,7 +327,7 @@ class AccountClient(BaseClient):
305
327
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
306
328
  raise exc_cls(exc_msg)
307
329
 
308
- def get_local_account_usage(self, account, rse=None):
330
+ def get_local_account_usage(self, account: str, rse: Optional[str] = None) -> "Iterator[dict[str, Any]]":
309
331
  """
310
332
  List the account usage for one or all rses of this account.
311
333
 
@@ -324,7 +346,7 @@ class AccountClient(BaseClient):
324
346
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
325
347
  raise exc_cls(exc_msg)
326
348
 
327
- def get_global_account_usage(self, account, rse_expression=None):
349
+ def get_global_account_usage(self, account: str, rse_expression: Optional[str] = None) -> "Iterator[dict[str, Any]]":
328
350
  """
329
351
  List the account usage for one or all RSE expressions of this account.
330
352
 
@@ -343,7 +365,7 @@ class AccountClient(BaseClient):
343
365
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
344
366
  raise exc_cls(exc_msg)
345
367
 
346
- def get_account_usage_history(self, account, rse):
368
+ def get_account_usage_history(self, account: str, rse: str) -> dict[str, Any]:
347
369
  """
348
370
  List the account usage history of this account on rse.
349
371
 
@@ -359,7 +381,7 @@ class AccountClient(BaseClient):
359
381
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
360
382
  raise exc_cls(exc_msg)
361
383
 
362
- def list_account_attributes(self, account):
384
+ def list_account_attributes(self, account: str) -> "Iterator[dict[dict[str, Any], Any]]":
363
385
  """
364
386
  List the attributes for an account.
365
387
 
@@ -374,7 +396,7 @@ class AccountClient(BaseClient):
374
396
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
375
397
  raise exc_cls(exc_msg)
376
398
 
377
- def add_account_attribute(self, account, key, value):
399
+ def add_account_attribute(self, account: str, key: str, value: Any) -> bool:
378
400
  """
379
401
  Adds an attribute to an account.
380
402
 
@@ -393,7 +415,7 @@ class AccountClient(BaseClient):
393
415
  exc_cls, exc_msg = self._get_exception(headers=res.headers, status_code=res.status_code, data=res.content)
394
416
  raise exc_cls(exc_msg)
395
417
 
396
- def delete_account_attribute(self, account, key):
418
+ def delete_account_attribute(self, account: str, key: str) -> bool:
397
419
  """
398
420
  Delete an attribute for an account.
399
421
 
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from json import dumps
16
+ from typing import Literal
16
17
  from urllib.parse import quote_plus
17
18
 
18
19
  from requests.status_codes import codes
@@ -27,7 +28,13 @@ class AccountLimitClient(BaseClient):
27
28
 
28
29
  ACCOUNTLIMIT_BASEURL = 'accountlimits'
29
30
 
30
- def set_account_limit(self, account, rse, bytes_, locality):
31
+ def set_account_limit(
32
+ self,
33
+ account: str,
34
+ rse: str,
35
+ bytes_: int,
36
+ locality: Literal['local', 'global']
37
+ ) -> bool:
31
38
  """
32
39
  Sets an account limit for a given limit scope.
33
40
 
@@ -46,7 +53,12 @@ class AccountLimitClient(BaseClient):
46
53
  from rucio.common.exception import UnsupportedOperation
47
54
  raise UnsupportedOperation('The provided scope (%s) for the account limit was invalid' % locality)
48
55
 
49
- def delete_account_limit(self, account, rse, locality):
56
+ def delete_account_limit(
57
+ self,
58
+ account: str,
59
+ rse: str,
60
+ locality: Literal['local', 'global']
61
+ ) -> bool:
50
62
  """
51
63
  Deletes an account limit for a given limit scope.
52
64
 
@@ -64,7 +76,12 @@ class AccountLimitClient(BaseClient):
64
76
  from rucio.common.exception import UnsupportedOperation
65
77
  raise UnsupportedOperation('The provided scope (%s) for the account limit was invalid' % locality)
66
78
 
67
- def set_local_account_limit(self, account, rse, bytes_):
79
+ def set_local_account_limit(
80
+ self,
81
+ account: str,
82
+ rse: str,
83
+ bytes_: int
84
+ ) -> bool:
68
85
  """
69
86
  Sends the request to set an account limit for an account.
70
87
 
@@ -86,7 +103,11 @@ class AccountLimitClient(BaseClient):
86
103
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
87
104
  raise exc_cls(exc_msg)
88
105
 
89
- def delete_local_account_limit(self, account, rse):
106
+ def delete_local_account_limit(
107
+ self,
108
+ account: str,
109
+ rse: str
110
+ ) -> bool:
90
111
  """
91
112
  Sends the request to remove an account limit.
92
113
 
@@ -108,7 +129,12 @@ class AccountLimitClient(BaseClient):
108
129
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
109
130
  raise exc_cls(exc_msg)
110
131
 
111
- def set_global_account_limit(self, account, rse_expression, bytes_):
132
+ def set_global_account_limit(
133
+ self,
134
+ account: str,
135
+ rse_expression: str,
136
+ bytes_: int
137
+ ) -> bool:
112
138
  """
113
139
  Sends the request to set a global account limit for an account.
114
140
 
@@ -130,7 +156,11 @@ class AccountLimitClient(BaseClient):
130
156
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
131
157
  raise exc_cls(exc_msg)
132
158
 
133
- def delete_global_account_limit(self, account, rse_expression):
159
+ def delete_global_account_limit(
160
+ self,
161
+ account: str,
162
+ rse_expression: str
163
+ ) -> bool:
134
164
  """
135
165
  Sends the request to remove a global account limit.
136
166
 
@@ -107,8 +107,6 @@ class BaseClient:
107
107
  :param logger: Logger object to use. If None, use the default LOG created by the module
108
108
  """
109
109
 
110
- self.host = rucio_host
111
- self.auth_host = auth_host
112
110
  self.logger = logger
113
111
  self.session = Session()
114
112
  self.user_agent = "%s/%s" % (user_agent, version.version_string()) # e.g. "rucio-clients/0.2.13"
@@ -117,9 +115,17 @@ class BaseClient:
117
115
  if self.script_id == '': # Python interpreter used
118
116
  self.script_id = 'python'
119
117
  try:
120
- if self.host is None:
118
+ if rucio_host is not None:
119
+ self.host = rucio_host
120
+ else:
121
121
  self.host = config_get('client', 'rucio_host')
122
- if self.auth_host is None:
122
+ except (NoOptionError, NoSectionError) as error:
123
+ raise MissingClientParameter('Section client and Option \'%s\' cannot be found in config file' % error.args[0])
124
+
125
+ try:
126
+ if auth_host is not None:
127
+ self.auth_host = auth_host
128
+ else:
123
129
  self.auth_host = config_get('client', 'auth_host')
124
130
  except (NoOptionError, NoSectionError) as error:
125
131
  raise MissingClientParameter('Section client and Option \'%s\' cannot be found in config file' % error.args[0])
@@ -318,9 +324,12 @@ class BaseClient:
318
324
 
319
325
  :return: A rucio exception class and an error string.
320
326
  """
321
- try:
322
- data = parse_response(data)
323
- except ValueError:
327
+ if data is not None:
328
+ try:
329
+ data = parse_response(data)
330
+ except ValueError:
331
+ data = {}
332
+ else:
324
333
  data = {}
325
334
 
326
335
  exc_cls = 'RucioException'
@@ -879,8 +888,8 @@ class BaseClient:
879
888
  return False
880
889
 
881
890
  try:
882
- token_file_handler = open(self.token_file, 'r')
883
- self.auth_token = token_file_handler.readline()
891
+ with open(self.token_file, 'r') as token_file_handler:
892
+ self.auth_token = token_file_handler.readline()
884
893
  self.headers['X-Rucio-Auth-Token'] = self.auth_token
885
894
  except OSError as error:
886
895
  print("I/O error({0}): {1}".format(error.errno, error.strerror))
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from json import dumps
16
+ from typing import Any, Optional
16
17
 
17
18
  from requests.status_codes import codes
18
19
 
@@ -26,7 +27,11 @@ class ConfigClient(BaseClient):
26
27
 
27
28
  CONFIG_BASEURL = 'config'
28
29
 
29
- def get_config(self, section=None, option=None):
30
+ def get_config(
31
+ self,
32
+ section: Optional[str] = None,
33
+ option: Optional[str] = None
34
+ ) -> dict[str, Any]:
30
35
  """
31
36
  Sends the request to get the matching configuration.
32
37
 
@@ -53,7 +58,13 @@ class ConfigClient(BaseClient):
53
58
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
54
59
  raise exc_cls(exc_msg)
55
60
 
56
- def set_config_option(self, section, option, value, use_body_for_params=True):
61
+ def set_config_option(
62
+ self,
63
+ section: str,
64
+ option: str,
65
+ value: Any,
66
+ use_body_for_params: bool = True
67
+ ) -> bool:
57
68
  """
58
69
  Sends the request to create or set an option within a section. Missing sections will be created.
59
70
 
@@ -90,7 +101,11 @@ class ConfigClient(BaseClient):
90
101
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
91
102
  raise exc_cls(exc_msg)
92
103
 
93
- def delete_config_option(self, section, option):
104
+ def delete_config_option(
105
+ self,
106
+ section: str,
107
+ option: str
108
+ ) -> bool:
94
109
  """
95
110
  Sends the request to remove an option from a section
96
111
 
@@ -23,7 +23,14 @@ class CredentialClient(BaseClient):
23
23
 
24
24
  CREDENTIAL_BASEURL = 'credentials'
25
25
 
26
- def get_signed_url(self, rse, service, operation, url, lifetime=3600):
26
+ def get_signed_url(
27
+ self,
28
+ rse: str,
29
+ service: str,
30
+ operation: str,
31
+ url: str,
32
+ lifetime: int = 3600
33
+ ) -> str:
27
34
  """
28
35
  Return a signed version of the given URL for the given operation.
29
36
 
@@ -1231,7 +1231,7 @@ class DownloadClient:
1231
1231
  resolve_parents=True,
1232
1232
  nrandom=nrandom,
1233
1233
  metalink=True)
1234
- file_items = parse_replicas_from_string(metalink_str)
1234
+ file_items = parse_replicas_from_string(metalink_str) # type: ignore
1235
1235
  for file in file_items:
1236
1236
  if impl:
1237
1237
  file['impl'] = impl