rucio-clients 37.4.0__py3-none-any.whl → 37.5.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.

@@ -1323,7 +1323,7 @@ class DownloadClient:
1323
1323
  def _resolve_one_item_dids(self, item: dict[str, Any]) -> "Iterator[dict[str, Any]]":
1324
1324
  """
1325
1325
  Resolve scopes or wildcard DIDs to lists of full did names:
1326
-
1326
+
1327
1327
  Parameters
1328
1328
  ----------
1329
1329
  item :
@@ -19,8 +19,8 @@ from urllib.parse import quote_plus
19
19
  from requests.status_codes import codes
20
20
 
21
21
  from rucio.client.baseclient import BaseClient, choice
22
+ from rucio.common.constants import TransferLimitDirection
22
23
  from rucio.common.utils import build_url
23
- from rucio.db.sqla.constants import TransferLimitDirection
24
24
 
25
25
  if TYPE_CHECKING:
26
26
  from collections.abc import Iterator, Sequence
@@ -192,14 +192,15 @@ class RequestClient(BaseClient):
192
192
  :param strategy: defines how to handle datasets: `fifo` (each file released separately) or `grouped_fifo` (wait for the entire dataset to fit)
193
193
  :param transfers: Current number of active transfers
194
194
  :param waitings: Current number of waiting transfers
195
-
195
+
196
196
  :returns: True if the transfer limit was deleted
197
197
  """
198
198
  path = '/'.join([self.REQUEST_BASEURL, 'transfer_limits'])
199
199
  url = build_url(choice(self.list_hosts), path=path)
200
- data = dumps({'rse_expression': rse_expression, 'activity': activity, 'direction': direction.value,
201
- 'max_transfers': max_transfers, 'volume': volume, 'deadline': deadline, 'strategy': strategy,
202
- 'transfers': transfers, 'waitings': waitings})
200
+ data = dumps({'rse_expression': rse_expression, 'activity': activity,
201
+ 'direction': direction.value, 'max_transfers': max_transfers,
202
+ 'volume': volume, 'deadline': deadline, 'strategy': strategy,
203
+ 'transfers': transfers, 'waitings': waitings})
203
204
  r = self._send_request(url, type_='PUT', data=data)
204
205
 
205
206
  if r.status_code == codes.created:
rucio/common/constants.py CHANGED
@@ -16,8 +16,6 @@ import enum
16
16
  from collections import namedtuple
17
17
  from typing import Literal, get_args
18
18
 
19
- from rucio.common.config import config_get_bool
20
-
21
19
  """
22
20
  Constants.
23
21
 
@@ -32,21 +30,16 @@ RESERVED_KEYS = ['scope', 'name', 'account', 'did_type', 'is_open', 'monotonic',
32
30
  KEY_TYPES = ['ALL', 'COLLECTION', 'FILE', 'DERIVED']
33
31
  # all(container, dataset, file), collection(dataset or container), file, derived(compute from file for collection)
34
32
 
35
- SCHEME_MAP = {'srm': ['srm', 'gsiftp'],
36
- 'gsiftp': ['srm', 'gsiftp'],
37
- 'https': ['https', 'davs', 'srm+https', 'cs3s'],
38
- 'davs': ['https', 'davs', 'srm+https', 'cs3s'],
39
- 'srm+https': ['https', 'davs', 'srm+https', 'cs3s'],
40
- 'cs3s': ['https', 'davs', 'srm+https', 'cs3s'],
41
- 'root': ['root'],
42
- 'scp': ['scp'],
43
- 'rsync': ['rsync'],
44
- 'rclone': ['rclone']}
45
- if config_get_bool('transfers', 'srm_https_compatibility', raise_exception=False, default=False):
46
- SCHEME_MAP['srm'].append('https')
47
- SCHEME_MAP['https'].append('srm')
48
- SCHEME_MAP['srm'].append('davs')
49
- SCHEME_MAP['davs'].append('srm')
33
+ BASE_SCHEME_MAP = {'srm': ['srm', 'gsiftp'],
34
+ 'gsiftp': ['srm', 'gsiftp'],
35
+ 'https': ['https', 'davs', 'srm+https', 'cs3s'],
36
+ 'davs': ['https', 'davs', 'srm+https', 'cs3s'],
37
+ 'srm+https': ['https', 'davs', 'srm+https', 'cs3s'],
38
+ 'cs3s': ['https', 'davs', 'srm+https', 'cs3s'],
39
+ 'root': ['root'],
40
+ 'scp': ['scp'],
41
+ 'rsync': ['rsync'],
42
+ 'rclone': ['rclone']}
50
43
 
51
44
  SORTING_ALGORITHMS_LITERAL = Literal['geoip', 'custom_table', 'random']
52
45
  SORTING_ALGORITHMS = list(get_args(SORTING_ALGORITHMS_LITERAL))
@@ -76,6 +69,10 @@ FTS_JOB_TYPE = namedtuple('FTS_JOB_TYPE', ['MULTIPLE_REPLICA', 'MULTI_HOP', 'SES
76
69
 
77
70
  MAX_MESSAGE_LENGTH = 4000
78
71
 
72
+ @enum.unique
73
+ class TransferLimitDirection(enum.Enum):
74
+ SOURCE = 'S'
75
+ DESTINATION = 'D'
79
76
 
80
77
  @enum.unique
81
78
  class SuspiciousAvailability(enum.Enum):
rucio/common/utils.py CHANGED
@@ -32,7 +32,7 @@ import threading
32
32
  import time
33
33
  from collections import OrderedDict
34
34
  from enum import Enum
35
- from functools import wraps
35
+ from functools import cache, wraps
36
36
  from io import StringIO
37
37
  from itertools import zip_longest
38
38
  from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union
@@ -42,7 +42,8 @@ from xml.etree import ElementTree
42
42
 
43
43
  import requests
44
44
 
45
- from rucio.common.config import config_get
45
+ from rucio.common.config import config_get, config_get_bool
46
+ from rucio.common.constants import BASE_SCHEME_MAP
46
47
  from rucio.common.exception import DIDFilterSyntaxError, DuplicateCriteriaInDIDFilter, InputValidationError, InvalidType, MetalinkJsonParsingError, MissingModuleException, RucioException
47
48
  from rucio.common.extra import import_extras
48
49
  from rucio.common.plugins import PolicyPackageAlgorithms
@@ -1690,3 +1691,18 @@ def is_method_overridden(obj, base_cls, method_name):
1690
1691
  if getattr(type(obj), method_name, None) is getattr(base_cls, method_name, None): # Caring for bound/unbound cases
1691
1692
  return False
1692
1693
  return True
1694
+
1695
+
1696
+ @cache
1697
+ def get_transfer_schemas() -> dict[str, list[str]]:
1698
+ """
1699
+ Extend base schema map based on SRM HTTPS compatibility.
1700
+ """
1701
+ scheme_map = BASE_SCHEME_MAP
1702
+ if config_get_bool('transfers', 'srm_https_compatibility', raise_exception=False, default=False):
1703
+ scheme_map['srm'].append('https')
1704
+ scheme_map['https'].append('srm')
1705
+ scheme_map['srm'].append('davs')
1706
+ scheme_map['davs'].append('srm')
1707
+
1708
+ return scheme_map
rucio/rse/rsemanager.py CHANGED
@@ -24,7 +24,7 @@ from rucio.common.checksum import GLOBALLY_SUPPORTED_CHECKSUMS
24
24
  from rucio.common.config import config_get_int
25
25
  from rucio.common.constraints import STRING_TYPES
26
26
  from rucio.common.logging import formatted_logger
27
- from rucio.common.utils import make_valid_did
27
+ from rucio.common.utils import get_transfer_schemas, make_valid_did
28
28
 
29
29
  if TYPE_CHECKING:
30
30
  from collections.abc import Callable
@@ -875,7 +875,7 @@ def __check_compatible_scheme(
875
875
 
876
876
  if dest_scheme == src_scheme:
877
877
  return True
878
- if src_scheme in constants.SCHEME_MAP.get(dest_scheme, []):
878
+ if src_scheme in get_transfer_schemas().get(dest_scheme, []):
879
879
  return True
880
880
 
881
881
  return False
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': '37.4.0',
7
+ 'version': '37.5.0',
8
8
  'branch_nick': 'release-37',
9
- 'revision_id': '20eed71b1dd6d1d8e550966b7d40ea730a16c7d8',
10
- 'revno': 13754
9
+ 'revision_id': '092cfe864848019a987a3a167120cf5cf7df2f61',
10
+ 'revno': 13761
11
11
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rucio-clients
3
- Version: 37.4.0
3
+ Version: 37.5.0
4
4
  Summary: Rucio Client Lite Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -1,6 +1,6 @@
1
1
  rucio/__init__.py,sha256=Y7cPPlHVQPFyN8bSPFC0W3WViEdONr5g_qwBub5rufE,660
2
2
  rucio/alembicrevision.py,sha256=lNSQZYA4U_fsMW8l0dHpiV243XZhioqvVo9ihmpuQBo,690
3
- rucio/vcsversion.py,sha256=KzL-fCgcmR0Ut9LUIsgwG_O5DxkM-hvyOmUyYl75wsE,244
3
+ rucio/vcsversion.py,sha256=X_dJuTI_9tpj86embCCJV4q7RHDOD7LUcmGHopxwYWU,244
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=7YWLfmiplhCjaaHNSYBzd7d_4yYzxUSRrsT0xGcNr2w,9452
@@ -28,7 +28,7 @@ rucio/client/configclient.py,sha256=pbp_yEem7g8JTVVOMY-ehMyLh6T3Rxf1AxCluLE-JE8,
28
28
  rucio/client/credentialclient.py,sha256=q4i_t-dIiojRmiY70iuJsAgnPqaZVwkJLbThxoc8_9k,2214
29
29
  rucio/client/didclient.py,sha256=AbS_RFD1_jIcr_jm5H6XYn4PVzsq288C79K1-hWa5NQ,34619
30
30
  rucio/client/diracclient.py,sha256=hgF_eF5_NfY0UTedrXMtmuwT4rVgCf3-bdsv7VhObDA,2467
31
- rucio/client/downloadclient.py,sha256=sN33aiGqPVWAufeMs5p2Drj5gPHZVbbVEIkXONHu54s,91645
31
+ rucio/client/downloadclient.py,sha256=lPLU3UN8q1f6YfRqyhoaYzAsEXGjNC71lcsSgKw8kxA,91637
32
32
  rucio/client/exportclient.py,sha256=vxH12KqLjaOQxQRkA95oZnJWjPJgEMBtvmo0NReurug,1713
33
33
  rucio/client/fileclient.py,sha256=akpgLwhbRTWNriyI8yGWTGgXbTu-Ka5jmwwVdJBwmVw,1756
34
34
  rucio/client/importclient.py,sha256=KeEWZhjrsAR5Km_UXwwH7hzgEo9ACJaJXN6de87txe4,1560
@@ -37,7 +37,7 @@ rucio/client/lockclient.py,sha256=LNHjdNRi5ST8KqVBR9SAiaygPF5zmRR7hendaBF21uE,44
37
37
  rucio/client/metaconventionsclient.py,sha256=tYvqXtcByiINcmZe0nT5Id2VuyJ2EDDUP2vfOPO6_yY,5655
38
38
  rucio/client/pingclient.py,sha256=DU3HXbvEYsbo-3V1PypOXcMMfmYeiUHBAf9mdYM7LZM,1418
39
39
  rucio/client/replicaclient.py,sha256=C7t-nw1Ou0W-Ni9PUpdzTDLtIbz0cIgANX387KORUB8,20591
40
- rucio/client/requestclient.py,sha256=veFhd7r2zx5Rg-N8q8keR5qL43F4ec549SigyC5z1Lc,8549
40
+ rucio/client/requestclient.py,sha256=Vr1lAmAbfX2iGzj_aKRmRFPBpMXbVxIw_0LVAZ5Xtq0,8574
41
41
  rucio/client/richclient.py,sha256=kP6cHQsvCtKEl1c2fycqpDjfLrMAzaMxuZA_kWddm08,10111
42
42
  rucio/client/rseclient.py,sha256=4R-WcCROjPRfWjcWuFM7itf4vmRRk0qvOa-itnTlZ8w,31858
43
43
  rucio/client/ruleclient.py,sha256=tlYRFMKVwjCuzketqg2F4XoGydbhNAjkOnm1BGUZEVg,13639
@@ -51,7 +51,7 @@ rucio/common/cache.py,sha256=8jfk6lB_KfwV_ZQBRngTYLwJ4zpDAg1Q70o5LRGR4AU,3420
51
51
  rucio/common/checksum.py,sha256=nSqjY8TdDGohpAzcEM2fjv4FPdOKmKr_3U27HalKkoY,5254
52
52
  rucio/common/client.py,sha256=qhkg0JETEQR0abTQ1m0iYE5wOzfEm-s1AABFgbxqlSA,3957
53
53
  rucio/common/config.py,sha256=VXMnocr6iwSgoSXAFl9r4EmPwMKxQ7DetmT1xzgTfkw,23629
54
- rucio/common/constants.py,sha256=5gLwj_VCDrNegcMrQbt7ozdannSYqP1_gDrEE8YVPmI,7736
54
+ rucio/common/constants.py,sha256=EvShKu_wuKS1cc3ijeTs14nX-YqHPa480b90wdwLkY8,7582
55
55
  rucio/common/constraints.py,sha256=MrdiAwKyoaZGfspUWX_53XS2790nXMSMg1JYmTO_ciQ,726
56
56
  rucio/common/didtype.py,sha256=dYYLIxcOjIHaDBAYSoCpmhZ-O2GTKxIi66jHiXtuVRY,8010
57
57
  rucio/common/exception.py,sha256=U4Jnpv8QTkNmMG2scV4bYNzOqLsMnfrmiGeSH-P_B_g,34555
@@ -64,12 +64,12 @@ rucio/common/stomp_utils.py,sha256=3GTiRTJ0roe5OX_wgkVwOJYAIhGgYbhiROHc2M8LQT8,5
64
64
  rucio/common/stopwatch.py,sha256=_9zxoLjr8A0wUDJsljK4vZNDCI-dIOgpcxXiCNVJcHU,1641
65
65
  rucio/common/test_rucio_server.py,sha256=2teFpN5Pthp-zQt1_aErOURDTgOhFP9GKdEr1NMmc4o,5085
66
66
  rucio/common/types.py,sha256=THfYyGKy7KUEvkBgAXSkdI2SxZBlsSr6E3sF9OkEms4,11764
67
- rucio/common/utils.py,sha256=nvubI6L2MH5aQy-23NmyHUVkmdeeMLbd-RYMiG85pT4,61854
67
+ rucio/common/utils.py,sha256=wiQRieXYLWzpZo5T9s3omMTsP6N1JfJAoig7MwrgmcQ,62391
68
68
  rucio/common/schema/__init__.py,sha256=2nmfxV4ps9J030fUoSiJs4OQCxiEk77rPrNeGk9xgZs,7800
69
69
  rucio/common/schema/generic.py,sha256=NkjdxVutlRm-7AvgQf9bTW0Gb0AomuiV1iwfXOPNmIQ,15811
70
70
  rucio/common/schema/generic_multi_vo.py,sha256=Owk9JMxycAcayTDnx-9kiXZSRBHC_jPaq79jjE1FiB0,15035
71
71
  rucio/rse/__init__.py,sha256=imxCKNQN59aPqPhMd2yKg7mHBMFL00OkQT1Gqb8tF54,3290
72
- rucio/rse/rsemanager.py,sha256=4vYikWrwCw6c3z6N2V2DaAioJPVtp_BBL5b8YLuFWDY,41037
72
+ rucio/rse/rsemanager.py,sha256=6jIkD9XEpMKnlltcALutX6Uox5Kv1wcLnW_-Qlj0GKM,41061
73
73
  rucio/rse/translation.py,sha256=qfqc4jEB1Rq6yj3xjTz3ivxT5Hg2716M8ldO1BleSDg,9013
74
74
  rucio/rse/protocols/__init__.py,sha256=Q91iipvMQ0VzNMuYcYQfDujZ0vL-hrB4Kmd0YrgtHGQ,618
75
75
  rucio/rse/protocols/bittorrent.py,sha256=ZBm_n7vU_NGXQaaZJWKQ-KUp6nYOMdbLqTvGuKN_LKk,7475
@@ -89,16 +89,16 @@ rucio/rse/protocols/ssh.py,sha256=pHPAQx2bPNkMrtqbCqDfq7OXoy7XphQ-i2Stzdvnf1k,17
89
89
  rucio/rse/protocols/storm.py,sha256=Z4fzklxG-x70A0Lugg1jE1RicwCSeF27iz0MXO-4to0,7864
90
90
  rucio/rse/protocols/webdav.py,sha256=nNMWEVqO1nYxJWrCVBoWLhG-XG2-ee5CL5H_MNRwkg0,24513
91
91
  rucio/rse/protocols/xrootd.py,sha256=oJHueVR44dcW5nkg8jCbr9PetV9UIti3C0tka_m7yIk,12604
92
- rucio_clients-37.4.0.data/data/requirements.client.txt,sha256=uGqQvHApEbAsTgkHDqGFTmPmKtd2vL7o4rv4LO8ikjM,1790
93
- rucio_clients-37.4.0.data/data/etc/rse-accounts.cfg.template,sha256=IfDnXVxBPUrMnTMbJnd3P7eYHgY1C4Kfz7xKskJs-FI,543
94
- rucio_clients-37.4.0.data/data/etc/rucio.cfg.atlas.client.template,sha256=aHP1oX9m5yA8xVTTT2Hz6AyOYu92-Bcd5LF0i3AZRQw,1350
95
- rucio_clients-37.4.0.data/data/etc/rucio.cfg.template,sha256=wBFnaJrJmaYw3B6cZbsVzU-16pdyNJ8L86GZNJMp1Ng,8005
96
- rucio_clients-37.4.0.data/data/rucio_client/merge_rucio_configs.py,sha256=u62K1EcCGydM5nZA30zhlqWo4EX5N87b_MDkx5YfzVI,6163
97
- rucio_clients-37.4.0.data/scripts/rucio,sha256=xQRL_0mwut48KxOgWZexsSx9jfnaZHqSTAo7OnCHAgA,5081
98
- rucio_clients-37.4.0.data/scripts/rucio-admin,sha256=AhPO6-fAPviHObhB_Yi7GJXKfjpaH6m0RqxwctBeFlE,4229
99
- rucio_clients-37.4.0.dist-info/licenses/AUTHORS.rst,sha256=c4MEJjLcFZ5euNtPA7jGFL26javbFKpWTvxBoIs_l6w,4726
100
- rucio_clients-37.4.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
101
- rucio_clients-37.4.0.dist-info/METADATA,sha256=0Cxc4hx8WxaiDtsTiKCO2iWXZfDNs6aWeksCoHBIoA0,1747
102
- rucio_clients-37.4.0.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
103
- rucio_clients-37.4.0.dist-info/top_level.txt,sha256=lJM8plwW0ePPICkwFnpYzfdqHnSv6JZr1OD4JEysPgM,6
104
- rucio_clients-37.4.0.dist-info/RECORD,,
92
+ rucio_clients-37.5.0.data/data/requirements.client.txt,sha256=uGqQvHApEbAsTgkHDqGFTmPmKtd2vL7o4rv4LO8ikjM,1790
93
+ rucio_clients-37.5.0.data/data/etc/rse-accounts.cfg.template,sha256=IfDnXVxBPUrMnTMbJnd3P7eYHgY1C4Kfz7xKskJs-FI,543
94
+ rucio_clients-37.5.0.data/data/etc/rucio.cfg.atlas.client.template,sha256=aHP1oX9m5yA8xVTTT2Hz6AyOYu92-Bcd5LF0i3AZRQw,1350
95
+ rucio_clients-37.5.0.data/data/etc/rucio.cfg.template,sha256=wBFnaJrJmaYw3B6cZbsVzU-16pdyNJ8L86GZNJMp1Ng,8005
96
+ rucio_clients-37.5.0.data/data/rucio_client/merge_rucio_configs.py,sha256=u62K1EcCGydM5nZA30zhlqWo4EX5N87b_MDkx5YfzVI,6163
97
+ rucio_clients-37.5.0.data/scripts/rucio,sha256=xQRL_0mwut48KxOgWZexsSx9jfnaZHqSTAo7OnCHAgA,5081
98
+ rucio_clients-37.5.0.data/scripts/rucio-admin,sha256=AhPO6-fAPviHObhB_Yi7GJXKfjpaH6m0RqxwctBeFlE,4229
99
+ rucio_clients-37.5.0.dist-info/licenses/AUTHORS.rst,sha256=c4MEJjLcFZ5euNtPA7jGFL26javbFKpWTvxBoIs_l6w,4726
100
+ rucio_clients-37.5.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
101
+ rucio_clients-37.5.0.dist-info/METADATA,sha256=u-qmrxK6EQQtlLC4RWZ3bUBwKIrdUBoxcGuTejjta24,1747
102
+ rucio_clients-37.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
103
+ rucio_clients-37.5.0.dist-info/top_level.txt,sha256=lJM8plwW0ePPICkwFnpYzfdqHnSv6JZr1OD4JEysPgM,6
104
+ rucio_clients-37.5.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5