rucio-clients 38.3.0__py3-none-any.whl → 38.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (40) hide show
  1. rucio/cli/did.py +1 -1
  2. rucio/cli/opendata.py +19 -2
  3. rucio/client/accountclient.py +20 -19
  4. rucio/client/accountlimitclient.py +5 -4
  5. rucio/client/baseclient.py +25 -25
  6. rucio/client/configclient.py +7 -6
  7. rucio/client/credentialclient.py +2 -1
  8. rucio/client/didclient.py +33 -32
  9. rucio/client/diracclient.py +2 -1
  10. rucio/client/exportclient.py +2 -1
  11. rucio/client/importclient.py +2 -1
  12. rucio/client/lifetimeclient.py +3 -2
  13. rucio/client/lockclient.py +4 -3
  14. rucio/client/metaconventionsclient.py +5 -4
  15. rucio/client/opendataclient.py +8 -7
  16. rucio/client/pingclient.py +2 -1
  17. rucio/client/replicaclient.py +27 -26
  18. rucio/client/requestclient.py +8 -8
  19. rucio/client/rseclient.py +31 -28
  20. rucio/client/ruleclient.py +13 -12
  21. rucio/client/scopeclient.py +4 -3
  22. rucio/client/subscriptionclient.py +6 -5
  23. rucio/common/constants.py +18 -0
  24. rucio/common/exception.py +20 -0
  25. rucio/common/plugins.py +9 -7
  26. rucio/rse/protocols/webdav.py +5 -2
  27. rucio/vcsversion.py +3 -3
  28. {rucio_clients-38.3.0.dist-info → rucio_clients-38.4.0.dist-info}/METADATA +1 -1
  29. {rucio_clients-38.3.0.dist-info → rucio_clients-38.4.0.dist-info}/RECORD +40 -40
  30. {rucio_clients-38.3.0.data → rucio_clients-38.4.0.data}/data/etc/rse-accounts.cfg.template +0 -0
  31. {rucio_clients-38.3.0.data → rucio_clients-38.4.0.data}/data/etc/rucio.cfg.atlas.client.template +0 -0
  32. {rucio_clients-38.3.0.data → rucio_clients-38.4.0.data}/data/etc/rucio.cfg.template +0 -0
  33. {rucio_clients-38.3.0.data → rucio_clients-38.4.0.data}/data/requirements.client.txt +0 -0
  34. {rucio_clients-38.3.0.data → rucio_clients-38.4.0.data}/data/rucio_client/merge_rucio_configs.py +0 -0
  35. {rucio_clients-38.3.0.data → rucio_clients-38.4.0.data}/scripts/rucio +0 -0
  36. {rucio_clients-38.3.0.data → rucio_clients-38.4.0.data}/scripts/rucio-admin +0 -0
  37. {rucio_clients-38.3.0.dist-info → rucio_clients-38.4.0.dist-info}/WHEEL +0 -0
  38. {rucio_clients-38.3.0.dist-info → rucio_clients-38.4.0.dist-info}/licenses/AUTHORS.rst +0 -0
  39. {rucio_clients-38.3.0.dist-info → rucio_clients-38.4.0.dist-info}/licenses/LICENSE +0 -0
  40. {rucio_clients-38.3.0.dist-info → rucio_clients-38.4.0.dist-info}/top_level.txt +0 -0
@@ -18,6 +18,7 @@ from typing import TYPE_CHECKING, Any, Literal, Optional, Union
18
18
  from requests.status_codes import codes
19
19
 
20
20
  from rucio.client.baseclient import BaseClient, choice
21
+ from rucio.common.constants import HTTPMethod
21
22
  from rucio.common.utils import build_url
22
23
 
23
24
  if TYPE_CHECKING:
@@ -78,7 +79,7 @@ class SubscriptionClient(BaseClient):
78
79
  raise TypeError('replication_rules should be a list')
79
80
  data = dumps({'options': {'filter': filter_, 'replication_rules': replication_rules, 'comments': comments,
80
81
  'lifetime': lifetime, 'retroactive': retroactive, 'dry_run': dry_run, 'priority': priority}})
81
- result = self._send_request(url, type_='POST', data=data)
82
+ result = self._send_request(url, method=HTTPMethod.POST, data=data)
82
83
  if result.status_code == codes.created: # pylint: disable=no-member
83
84
  return result.text
84
85
  else:
@@ -120,7 +121,7 @@ class SubscriptionClient(BaseClient):
120
121
  else:
121
122
  path += '/'
122
123
  url = build_url(choice(self.list_hosts), path=path)
123
- result = self._send_request(url, type_='GET')
124
+ result = self._send_request(url, method=HTTPMethod.GET)
124
125
  if result.status_code == codes.ok: # pylint: disable=no-member
125
126
  return self._load_json_data(result)
126
127
  if result.status_code == codes.not_found:
@@ -173,7 +174,7 @@ class SubscriptionClient(BaseClient):
173
174
  raise TypeError('replication_rules should be a list')
174
175
  data = dumps({'options': {'filter': filter_, 'replication_rules': replication_rules, 'comments': comments,
175
176
  'lifetime': lifetime, 'retroactive': retroactive, 'dry_run': dry_run, 'priority': priority}})
176
- result = self._send_request(url, type_='PUT', data=data)
177
+ result = self._send_request(url, method=HTTPMethod.PUT, data=data)
177
178
  if result.status_code == codes.created: # pylint: disable=no-member
178
179
  return True
179
180
  else:
@@ -203,7 +204,7 @@ class SubscriptionClient(BaseClient):
203
204
  path = self.SUB_BASEURL + '/' + account + '/' + name # type: ignore
204
205
  url = build_url(choice(self.list_hosts), path=path)
205
206
  data = dumps({'options': {'state': 'I'}})
206
- result = self._send_request(url, type_='PUT', data=data)
207
+ result = self._send_request(url, method=HTTPMethod.PUT, data=data)
207
208
  if result.status_code == codes.created: # pylint: disable=no-member
208
209
  return True
209
210
  else:
@@ -228,7 +229,7 @@ class SubscriptionClient(BaseClient):
228
229
 
229
230
  path = '/'.join([self.SUB_BASEURL, account, name, 'rules'])
230
231
  url = build_url(choice(self.list_hosts), path=path)
231
- result = self._send_request(url, type_='GET')
232
+ result = self._send_request(url, method=HTTPMethod.GET)
232
233
  if result.status_code == codes.ok: # pylint: disable=no-member
233
234
  return self._load_json_data(result)
234
235
  else:
rucio/common/constants.py CHANGED
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  import enum
16
+ import sys
16
17
  from collections import namedtuple
17
18
  from typing import Literal, get_args
18
19
 
@@ -224,3 +225,20 @@ OPENDATA_DID_STATE_LITERAL_LIST = list(get_args(OPENDATA_DID_STATE_LITERAL))
224
225
 
225
226
  POLICY_ALGORITHM_TYPES_LITERAL = Literal['non_deterministic_pfn', 'scope', 'lfn2pfn', 'pfn2lfn', 'fts3_tape_metadata_plugins', 'fts3_plugins_init', 'auto_approve']
226
227
  POLICY_ALGORITHM_TYPES = list(get_args(POLICY_ALGORITHM_TYPES_LITERAL))
228
+
229
+ # https://github.com/rucio/rucio/issues/7958
230
+ # When Python 3.11 is the minimum supported version, we can use the standard library enum and remove this logic
231
+ if sys.version_info >= (3, 11):
232
+ from http import HTTPMethod
233
+ else:
234
+ @enum.unique
235
+ class HTTPMethod(str, enum.Enum):
236
+ """HTTP verbs used in Rucio requests."""
237
+
238
+ HEAD = "HEAD"
239
+ OPTIONS = "OPTIONS"
240
+ PATCH = "PATCH"
241
+ GET = "GET"
242
+ POST = "POST"
243
+ PUT = "PUT"
244
+ DELETE = "DELETE"
rucio/common/exception.py CHANGED
@@ -1271,3 +1271,23 @@ class InvalidPolicyPackageAlgorithmType(RucioException):
1271
1271
  super(InvalidPolicyPackageAlgorithmType, self).__init__(*args)
1272
1272
  self._message = f"Invalid policy package algorithm type '{param}'."
1273
1273
  self.error_code = 120
1274
+
1275
+
1276
+ class InvalidAccountType(RucioException):
1277
+ """
1278
+ Thrown when an account is created with an invalid type
1279
+ """
1280
+ def __init__(self, *args):
1281
+ super(InvalidAccountType, self).__init__(*args)
1282
+ self._message = "Cannot create an account with an invalid type."
1283
+ self.error_code = 121
1284
+
1285
+ class OpenDataDuplicateDOI(OpenDataError):
1286
+ """
1287
+ Throws when a data identifier with the same DOI already exists in the open data catalog.
1288
+ """
1289
+
1290
+ def __init__(self, doi: str, *args):
1291
+ super(OpenDataDuplicateDOI, self).__init__(*args)
1292
+ self._message = f"Data identifier with the same DOI ({doi}) already exists in the open data catalog."
1293
+ self.error_code = 122
rucio/common/plugins.py CHANGED
@@ -77,7 +77,7 @@ class PolicyPackageAlgorithms:
77
77
  """
78
78
  _ALGORITHMS: dict[POLICY_ALGORITHM_TYPES_LITERAL, dict[str, 'Callable[..., Any]']] = {}
79
79
  _loaded_policy_modules = False
80
- _default_algorithms: dict[str, 'Callable[..., Any]'] = {}
80
+ _default_algorithms: dict[str, Optional['Callable[..., Any]']] = {}
81
81
 
82
82
  def __init__(self) -> None:
83
83
  if not self._loaded_policy_modules:
@@ -105,17 +105,23 @@ class PolicyPackageAlgorithms:
105
105
  vo = ''
106
106
  package = cls._get_policy_package_name(vo)
107
107
  except (NoOptionError, NoSectionError):
108
+ cls._default_algorithms[type_for_vo] = default_algorithm
108
109
  return default_algorithm
109
110
 
110
111
  module_name = package + "." + algorithm_type
112
+ LOGGER.info('Attempting to find algorithm %s in default location %s...' % (algorithm_type, module_name))
111
113
  try:
112
114
  module = importlib.import_module(module_name)
113
115
 
114
116
  if hasattr(module, algorithm_type):
115
117
  default_algorithm = getattr(module, algorithm_type)
116
- cls._default_algorithms[type_for_vo] = default_algorithm
118
+ except ModuleNotFoundError:
119
+ LOGGER.info('Algorithm %s not found in default location %s' % (algorithm_type, module_name))
117
120
  except ImportError:
118
- LOGGER.info('Policy algorithm module %s could not be loaded' % module_name)
121
+ LOGGER.info('Algorithm %s found in default location %s, but could not be loaded' % (algorithm_type, module_name))
122
+ # if the default algorithm is not present, this will store None and we will
123
+ # not attempt to load the same algorithm again
124
+ cls._default_algorithms[type_for_vo] = default_algorithm
119
125
  return default_algorithm
120
126
 
121
127
  @classmethod
@@ -212,10 +218,6 @@ class PolicyPackageAlgorithms:
212
218
  if hasattr(module, 'get_algorithms'):
213
219
  all_algorithms = module.get_algorithms()
214
220
 
215
- # for backward compatibility, rename 'surl' to 'non_deterministic_pfn' here
216
- if 'surl' in all_algorithms:
217
- all_algorithms['non_deterministic_pfn'] = all_algorithms['surl']
218
-
219
221
  # check that the names are correctly prefixed for multi-VO
220
222
  if vo:
221
223
  for _, algorithms in all_algorithms.items():
@@ -25,6 +25,7 @@ from requests.adapters import HTTPAdapter
25
25
  from urllib3.poolmanager import PoolManager
26
26
 
27
27
  from rucio.common import exception
28
+ from rucio.common.constants import HTTPMethod
28
29
  from rucio.rse.protocols import protocol
29
30
 
30
31
 
@@ -259,9 +260,11 @@ class Default(protocol.RSEProtocol):
259
260
  try:
260
261
  # use GET instead of HEAD for presigned urls
261
262
  if not using_presigned_urls:
262
- result = self.session.request('HEAD', path, verify=False, timeout=self.timeout, cert=self.cert)
263
+ result = self.session.request(HTTPMethod.HEAD.value, path, verify=False, timeout=self.timeout,
264
+ cert=self.cert)
263
265
  else:
264
- result = self.session.request('GET', path, verify=False, timeout=self.timeout, cert=self.cert)
266
+ result = self.session.request(HTTPMethod.GET.value, path, verify=False, timeout=self.timeout,
267
+ cert=self.cert)
265
268
  if result.status_code == 200:
266
269
  return True
267
270
  elif result.status_code in [401, ]:
rucio/vcsversion.py CHANGED
@@ -4,8 +4,8 @@ This file is automatically generated; Do not edit it. :)
4
4
  '''
5
5
  VERSION_INFO = {
6
6
  'final': True,
7
- 'version': '38.3.0',
7
+ 'version': '38.4.0',
8
8
  'branch_nick': 'release-38-LTS',
9
- 'revision_id': '5eebc4e67a544dcb2d689bd45260cb73fb10066a',
10
- 'revno': 14003
9
+ 'revision_id': '945ab71be90243fe96148bb3bd13c1c3ae410765',
10
+ 'revno': 14030
11
11
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rucio-clients
3
- Version: 38.3.0
3
+ Version: 38.4.0
4
4
  Summary: Rucio Client Lite Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -1,15 +1,15 @@
1
1
  rucio/__init__.py,sha256=Y7cPPlHVQPFyN8bSPFC0W3WViEdONr5g_qwBub5rufE,660
2
2
  rucio/alembicrevision.py,sha256=9tnjQLFkTpUEcZqcw-ojWpt4Wbg-5OtMJ0CfjPc0wX8,690
3
- rucio/vcsversion.py,sha256=mQsxiR0m-shMbCPg19FH-Ol-CaR3LE4pKaB4sgr3qZI,248
3
+ rucio/vcsversion.py,sha256=XFyyziu8IMzLhF3NNhhe7UylNiUMFAuPa14CzzK-RzI,248
4
4
  rucio/version.py,sha256=IwsNb1QQk0D092QQbR2K9wBPF2Akny1RGs-ZZziUohE,1519
5
5
  rucio/cli/__init__.py,sha256=GIkHmxgE3xdvWSf-7ZnvVaJmbs7NokaSjbFzsrXOG9o,662
6
6
  rucio/cli/account.py,sha256=2Fe-iEaTfLxqlW5mDJsJPwD-Etm4VqaMowTSA67hZIo,9458
7
7
  rucio/cli/command.py,sha256=7jqBakwQOW7gORCLf63wrGOfzsQKdZbsc1TWUMmDH5s,11294
8
8
  rucio/cli/config.py,sha256=chcCxby1ET8YvoMx9IUIty0wVaZghISwEO_Ahe22ReA,3558
9
- rucio/cli/did.py,sha256=OfVO2Egjh-7woiw7xxDKCc_SwzVi1dZN66mS-LZ1Mxc,9026
9
+ rucio/cli/did.py,sha256=viwJC07AvEneC6_E307Q9nybWti-iYalwphNOpfQXLE,9041
10
10
  rucio/cli/download.py,sha256=kIB_n45egqBp4inVFmUXdofFAmlPkdAgxLTpPlG4WLM,6241
11
11
  rucio/cli/lifetime_exception.py,sha256=joi9HdaiYP_g3115IR_ImX7oFlEg1xbSaK-IzmoIVcY,1498
12
- rucio/cli/opendata.py,sha256=gAt6kyTXQUaQ6cv0XcB_9jmkYKavr3s3HCce84ywK7g,6580
12
+ rucio/cli/opendata.py,sha256=UfUGDolu-d7hzlH26uhXk5YcD4HcF-R891GH11mwlLU,7329
13
13
  rucio/cli/replica.py,sha256=ZeknO6aKOambwe7lJGWcI_YAflz1-oMYBSZTYvMVIe0,8657
14
14
  rucio/cli/rse.py,sha256=J2IjCGUzvv9U0swFcU0ykZ1pYweHqTlXwmpGfSI-VgE,11490
15
15
  rucio/cli/rule.py,sha256=H_Yw8hx_DiqX_twEtgEY0x2AkftsRyLboMaXv_Zc6Ac,9090
@@ -21,29 +21,29 @@ rucio/cli/bin_legacy/__init__.py,sha256=Q91iipvMQ0VzNMuYcYQfDujZ0vL-hrB4Kmd0Yrgt
21
21
  rucio/cli/bin_legacy/rucio.py,sha256=EprZpF5A7teDGH6aXIevMMM3vbs4mKE1LaqgcpqsCmg,140816
22
22
  rucio/cli/bin_legacy/rucio_admin.py,sha256=pRpJhEGMr3-xzw3EsGeVayEiu8NI_UxEI2wSIbeulzI,141046
23
23
  rucio/client/__init__.py,sha256=0-jkSlrJf-eqbN4swA5a07eaWd6_6JXPQPLXMs4A3iI,660
24
- rucio/client/accountclient.py,sha256=kScbVL9rR8pyZRmETOyz_gwffc7biaPriMgDnCLxA_0,18864
25
- rucio/client/accountlimitclient.py,sha256=SWYdRMAMibWLZOhFb3HBI9vLvmp2uYjEhtM2ej1iGzQ,6905
26
- rucio/client/baseclient.py,sha256=gXh1RfzpQfvsFFm74F82jareOD8k9IlUOVHwwqsFyxI,50798
24
+ rucio/client/accountclient.py,sha256=yimP_88XbHOpMnyEG6kT2i0x8x4ILpq8EeVs0O_o-as,19148
25
+ rucio/client/accountlimitclient.py,sha256=RwWfyddIT6iZt8PDHRSqrOvgI7-GGZiz1kE4m1zGOtQ,6997
26
+ rucio/client/baseclient.py,sha256=jJ8x-EYTM_zONHGU-B7sg-cJDm1KCd6iVj0lyV2hB_s,51172
27
27
  rucio/client/client.py,sha256=npg0pFWzqnmnObjFO7QDdSkH1O0jrY-HglXEVfDrWNY,4493
28
- rucio/client/configclient.py,sha256=l-0kjkrAQXhzV78CPtqduzp7lgonnAl65wmtUflf9Dc,5493
29
- rucio/client/credentialclient.py,sha256=q4i_t-dIiojRmiY70iuJsAgnPqaZVwkJLbThxoc8_9k,2214
30
- rucio/client/didclient.py,sha256=66ODAQnrtvwwSo0Cu9FpCRo_36N28tHtUjbrz92hu_c,34619
31
- rucio/client/diracclient.py,sha256=MQCY0UxgXXlosL9-dKB469wkZ9XLgPs4dPsuEFfk4Rc,4465
28
+ rucio/client/configclient.py,sha256=cy1yXDmtiNqlZrytF7GK9Pi5DB4-PO9VaiJn7ITLJi4,5595
29
+ rucio/client/credentialclient.py,sha256=9dvF6cAgf9hOTYuX-igzQOPdmMVCbjt97v4f7_yH_nE,2270
30
+ rucio/client/didclient.py,sha256=E9HusPPeQn4nhMrCtm0VsZtYlTAwAf5c9paSYuzPMjU,34969
31
+ rucio/client/diracclient.py,sha256=E5yGTkNdtBT5iYOAm81pT5lHHkEf0VSs40g1TB9VWwE,4521
32
32
  rucio/client/downloadclient.py,sha256=FoNTNNpry_2qo4XLIQXn7_AsnzLt9XllLB_J0UYTI7k,91687
33
- rucio/client/exportclient.py,sha256=xYbDSw5ZQlANjcbs2-CG4jVcyhxNm9GQ827_dokSJes,3310
34
- rucio/client/importclient.py,sha256=KeEWZhjrsAR5Km_UXwwH7hzgEo9ACJaJXN6de87txe4,1560
35
- rucio/client/lifetimeclient.py,sha256=lAtAzia-UWMzzkcFGPQ72kaiSe1iIbIaCBrxK0bD3GQ,5958
36
- rucio/client/lockclient.py,sha256=zQKaGskTeaqH9TBpLQzHe20Qaaor2jZ84LBINElDBAM,4421
37
- rucio/client/metaconventionsclient.py,sha256=tYvqXtcByiINcmZe0nT5Id2VuyJ2EDDUP2vfOPO6_yY,5655
38
- rucio/client/opendataclient.py,sha256=x0ESKis92lwX_lrB0nKukJy0qcvT7cZ5jWccoYxPVGg,9107
39
- rucio/client/pingclient.py,sha256=WU7jwbHoISky-ULw9h1_VqS0opRAM3j3RFnpWC7l48Y,2392
40
- rucio/client/replicaclient.py,sha256=Gi7vg87g4hhrW_UA9MB1FewGh67FW2wAnSWj4H9oMQk,20591
41
- rucio/client/requestclient.py,sha256=Vr1lAmAbfX2iGzj_aKRmRFPBpMXbVxIw_0LVAZ5Xtq0,8574
33
+ rucio/client/exportclient.py,sha256=pCgjm-SbcZk5RZp2iOzAESdMeBeyVNYzQ1oModCvLfk,3366
34
+ rucio/client/importclient.py,sha256=9CHlLmgH59HBfm7zBe1TKiqNTmGar8SeIYiNZdkCFXU,1616
35
+ rucio/client/lifetimeclient.py,sha256=96MLiMv8ff1zMUnNe8OT6a12cUWIouG-dq4wBDUX-Jw,6037
36
+ rucio/client/lockclient.py,sha256=hluIjxQcitcrreZBjDwsYXI96Ceb9PjgAqPa7VP1lag,4523
37
+ rucio/client/metaconventionsclient.py,sha256=tQgFo65Pjxh0MZ4JZxpbwMm4fuzYP3hKVQnEjOtEAtE,5767
38
+ rucio/client/opendataclient.py,sha256=boJLaAySzQR8r13iGjn5ujx0K5VPI3A3e_IOW37JE8A,9249
39
+ rucio/client/pingclient.py,sha256=ZSxloZO6FRU6RkkNqow1tkTOfOzKHOW939LypQFEsE4,2448
40
+ rucio/client/replicaclient.py,sha256=n7m2oCjclF8uHpnYhIqZrGV7nZ-HiiXauygyQNbajDg,20834
41
+ rucio/client/requestclient.py,sha256=7N0RaZfuVegD40oQkekwn_UylVi3GljHAkxDezMMOs4,8659
42
42
  rucio/client/richclient.py,sha256=ArTHvnx0eJxRysfpBxnx0zaDI8ixgnfA_8vAegZQC2Y,10243
43
- rucio/client/rseclient.py,sha256=4R-WcCROjPRfWjcWuFM7itf4vmRRk0qvOa-itnTlZ8w,31858
44
- rucio/client/ruleclient.py,sha256=tlYRFMKVwjCuzketqg2F4XoGydbhNAjkOnm1BGUZEVg,13639
45
- rucio/client/scopeclient.py,sha256=-rXLdXScKeXavOaw9EwBHYo4SXwfcuqsOG6yGMIBWyM,3485
46
- rucio/client/subscriptionclient.py,sha256=gOTC5JfvdHJ6YUQdVWmrA-qgDMi1vnLkLlySiTAk-jw,9417
43
+ rucio/client/rseclient.py,sha256=zrXXMRIIENC6WmMPhNw4_JK_8XqqINt5TdB9ZYOQVus,32242
44
+ rucio/client/ruleclient.py,sha256=nFXZ2wC8UgbSTD0es7XHuY6szIDHCHDdZNAwABmgDts,13808
45
+ rucio/client/scopeclient.py,sha256=JaKqFLkP-SSqun0p7lozPAZSfmkCZJZ0BBxW98x-7eo,3587
46
+ rucio/client/subscriptionclient.py,sha256=B8oEQa_Dwh3gvydEYjEZXmSkjZY2EdbL7VZ0JXEDN1w,9513
47
47
  rucio/client/touchclient.py,sha256=LZXC2xI4QmmTTW4D1339sNXP1VwOKtxS-K7AaQwSlf4,2873
48
48
  rucio/client/uploadclient.py,sha256=pXsgzdQXDC8hcyA2lHvHkyrz1gCNsOADJuqS-gfLTFQ,72217
49
49
  rucio/common/__init__.py,sha256=Q91iipvMQ0VzNMuYcYQfDujZ0vL-hrB4Kmd0YrgtHGQ,618
@@ -52,14 +52,14 @@ rucio/common/cache.py,sha256=oa1WCodXpsmHzM-LJoYL7wQHw7VMU5I0g3TBg-VzEfo,3389
52
52
  rucio/common/checksum.py,sha256=nSqjY8TdDGohpAzcEM2fjv4FPdOKmKr_3U27HalKkoY,5254
53
53
  rucio/common/client.py,sha256=vHJ1gnHRBiXC2ZPfSgYPlsdJi0DbvwWDdHHMEOVgBvU,3129
54
54
  rucio/common/config.py,sha256=69AhxgP9SXXrlaTqlOCQiaiqGqHLhSfhRFasroGfDdc,24402
55
- rucio/common/constants.py,sha256=WhpUEh_L2AF35jL1yDO1yOPgiAWVgJxmYvD_F5Fwh6A,8029
55
+ rucio/common/constants.py,sha256=IdxXRvIltiJWz5qxxqpXZC1xum458-czxuot3PCtRXU,8535
56
56
  rucio/common/constraints.py,sha256=MrdiAwKyoaZGfspUWX_53XS2790nXMSMg1JYmTO_ciQ,726
57
57
  rucio/common/didtype.py,sha256=nXoyK740yrwsiGX9e9vOc8UX0PXRvKry67C0Sd8SpmM,8010
58
- rucio/common/exception.py,sha256=I90THVS-iNKCPl5zuBFGzsGuaQ4D6fx-n3ZevSl8z4U,36546
58
+ rucio/common/exception.py,sha256=kXltk7Zujf55L3h3v6iP0yfHXJIphbS7H67OS610Aig,37248
59
59
  rucio/common/extra.py,sha256=IE01275vTJobyNiYbptU9NmsUl2Ga_92FSoOODV8Qfk,1054
60
60
  rucio/common/logging.py,sha256=_G1QDFpPLghz2VXOjdhC7j-TtZBxmPJsyJtztW7mf68,15874
61
61
  rucio/common/pcache.py,sha256=V2OnO4h4v5yaxWT9T9DMJpm-2rLalBzzaqlUWUq5x4c,47097
62
- rucio/common/plugins.py,sha256=A2koy6tXBPxE3lF89lBpbtg-d5Vn4bgg7osHt3Qd-Io,9664
62
+ rucio/common/plugins.py,sha256=SdPR8b7zpUJN2wMBnigG3_IJ9PgK8cfzkTSmpPnY2n8,9943
63
63
  rucio/common/policy.py,sha256=4i7SHyUpWxagS9nI72nBpWyfvYfz_aH6GH4lFMtDARo,3546
64
64
  rucio/common/stomp_utils.py,sha256=3GTiRTJ0roe5OX_wgkVwOJYAIhGgYbhiROHc2M8LQT8,5414
65
65
  rucio/common/stopwatch.py,sha256=_9zxoLjr8A0wUDJsljK4vZNDCI-dIOgpcxXiCNVJcHU,1641
@@ -88,18 +88,18 @@ rucio/rse/protocols/rfio.py,sha256=8TJ_60pWH7ragdNG9INz_oOK1LXLc-C43iENGAKfOEg,5
88
88
  rucio/rse/protocols/srm.py,sha256=9QFSORsXT-CR_6tDqyXCAQ5BzZifqaDItCYGIlTQGQI,14699
89
89
  rucio/rse/protocols/ssh.py,sha256=pHPAQx2bPNkMrtqbCqDfq7OXoy7XphQ-i2Stzdvnf1k,17506
90
90
  rucio/rse/protocols/storm.py,sha256=Z4fzklxG-x70A0Lugg1jE1RicwCSeF27iz0MXO-4to0,7864
91
- rucio/rse/protocols/webdav.py,sha256=8UzmBA8vF_-exoUvpIHRQLfhvAvExQsfu-P4WbXGOXI,24810
91
+ rucio/rse/protocols/webdav.py,sha256=axO_a4Z4nO6hlSAU1kUICXwUH-D0MrBYvdH3cHlFJuY,24978
92
92
  rucio/rse/protocols/xrootd.py,sha256=oJHueVR44dcW5nkg8jCbr9PetV9UIti3C0tka_m7yIk,12604
93
- rucio_clients-38.3.0.data/data/requirements.client.txt,sha256=ob8DW6vHurtEcXZ2j_u67WO_M2Mf7dzJFROKqIQINTo,1790
94
- rucio_clients-38.3.0.data/data/etc/rse-accounts.cfg.template,sha256=IfDnXVxBPUrMnTMbJnd3P7eYHgY1C4Kfz7xKskJs-FI,543
95
- rucio_clients-38.3.0.data/data/etc/rucio.cfg.atlas.client.template,sha256=aHP1oX9m5yA8xVTTT2Hz6AyOYu92-Bcd5LF0i3AZRQw,1350
96
- rucio_clients-38.3.0.data/data/etc/rucio.cfg.template,sha256=hKnGDIm7oIFWBhj6vr5L6bE4TDRHT-7eZh9IsqOHbpo,8023
97
- rucio_clients-38.3.0.data/data/rucio_client/merge_rucio_configs.py,sha256=u62K1EcCGydM5nZA30zhlqWo4EX5N87b_MDkx5YfzVI,6163
98
- rucio_clients-38.3.0.data/scripts/rucio,sha256=f8f5X6O9W2JfUqWiSdsuDROekGt28p9CBvFZropZ-C0,5260
99
- rucio_clients-38.3.0.data/scripts/rucio-admin,sha256=AhPO6-fAPviHObhB_Yi7GJXKfjpaH6m0RqxwctBeFlE,4229
100
- rucio_clients-38.3.0.dist-info/licenses/AUTHORS.rst,sha256=FQ5q2_bY3dYKDmEw-8YD-SgPJ4fgnM1XI5wRF5ksQPg,4771
101
- rucio_clients-38.3.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
102
- rucio_clients-38.3.0.dist-info/METADATA,sha256=uXRJ4c_TAzifO6vFNdXWtehgoSHuRXpT9kl_W1ZJUoI,1740
103
- rucio_clients-38.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
104
- rucio_clients-38.3.0.dist-info/top_level.txt,sha256=lJM8plwW0ePPICkwFnpYzfdqHnSv6JZr1OD4JEysPgM,6
105
- rucio_clients-38.3.0.dist-info/RECORD,,
93
+ rucio_clients-38.4.0.data/data/requirements.client.txt,sha256=ob8DW6vHurtEcXZ2j_u67WO_M2Mf7dzJFROKqIQINTo,1790
94
+ rucio_clients-38.4.0.data/data/etc/rse-accounts.cfg.template,sha256=IfDnXVxBPUrMnTMbJnd3P7eYHgY1C4Kfz7xKskJs-FI,543
95
+ rucio_clients-38.4.0.data/data/etc/rucio.cfg.atlas.client.template,sha256=aHP1oX9m5yA8xVTTT2Hz6AyOYu92-Bcd5LF0i3AZRQw,1350
96
+ rucio_clients-38.4.0.data/data/etc/rucio.cfg.template,sha256=hKnGDIm7oIFWBhj6vr5L6bE4TDRHT-7eZh9IsqOHbpo,8023
97
+ rucio_clients-38.4.0.data/data/rucio_client/merge_rucio_configs.py,sha256=u62K1EcCGydM5nZA30zhlqWo4EX5N87b_MDkx5YfzVI,6163
98
+ rucio_clients-38.4.0.data/scripts/rucio,sha256=f8f5X6O9W2JfUqWiSdsuDROekGt28p9CBvFZropZ-C0,5260
99
+ rucio_clients-38.4.0.data/scripts/rucio-admin,sha256=AhPO6-fAPviHObhB_Yi7GJXKfjpaH6m0RqxwctBeFlE,4229
100
+ rucio_clients-38.4.0.dist-info/licenses/AUTHORS.rst,sha256=FQ5q2_bY3dYKDmEw-8YD-SgPJ4fgnM1XI5wRF5ksQPg,4771
101
+ rucio_clients-38.4.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
102
+ rucio_clients-38.4.0.dist-info/METADATA,sha256=jWoLTz0LFuhZe2okfeIQIC1-8qJaKj2bOe8z5xDEfOI,1740
103
+ rucio_clients-38.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
104
+ rucio_clients-38.4.0.dist-info/top_level.txt,sha256=lJM8plwW0ePPICkwFnpYzfdqHnSv6JZr1OD4JEysPgM,6
105
+ rucio_clients-38.4.0.dist-info/RECORD,,