{"id":22326,"library":"rucio-clients","title":"Rucio Clients","description":"Rucio Client Package: Python client library for Rucio, a distributed data management framework used primarily by high-energy physics experiments (e.g., ATLAS, CMS, SKA). Version 40.1.0, monthly release cadence. Supports Python >=3.9.","status":"active","version":"40.1.0","language":"python","source_language":"en","source_url":"https://github.com/rucio/rucio","tags":["data-management","high-energy-physics","client","distributed-storage"],"install":[{"cmd":"pip install rucio-clients","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core Rucio server package; rucio-clients depends on it for common functionality.","package":"rucio","optional":false},{"reason":"HTTP library for API calls.","package":"requests","optional":false},{"reason":"Used under the hood for connection pooling.","package":"urllib3","optional":false}],"imports":[{"note":"Client lives in rucio.client package; direct import from rucio fails.","wrong":"from rucio import Client","symbol":"Client","correct":"from rucio.client import Client"},{"note":"DownloadClient is in rucio.client.downloadclient; common mistake to import from rucio.downloadclient.","wrong":"from rucio.downloadclient import DownloadClient","symbol":"DownloadClient","correct":"from rucio.client.downloadclient import DownloadClient"},{"note":"Same pattern as DownloadClient.","wrong":"from rucio.uploadclient import UploadClient","symbol":"UploadClient","correct":"from rucio.client.uploadclient import UploadClient"},{"note":"DIDClient is in its own submodule; not directly in rucio.client.","wrong":"from rucio.client import DIDClient","symbol":"DidClient","correct":"from rucio.client.didclient import DIDClient"}],"quickstart":{"code":"from rucio.client import Client\nfrom rucio.client.downloadclient import DownloadClient\n\n# Assumes RUCIO_ACCOUNT, RUCIO_AUTH_TYPE env vars set (e.g., userpass, x509)\nclient = Client()\n# Download a dataset\ndownloader = DownloadClient(client)\ndids = [{'scope': 'mock', 'name': 'test.file', 'type': 'FILE', 'base': '/tmp/'}]\ndownloader.download_dids(dids)","lang":"python","description":"Basic example: initialize Rucio Client with environment-based auth, then download a file."},"warnings":[{"fix":"Upgrade to Python 3.9+ before installing rucio-clients >=40.","message":"Python 3.9 minimum: rucio-clients 40+ drops support for Python 3.8 and earlier.","severity":"breaking","affected_versions":">=40.0.0"},{"fix":"Set RUCIO_ACCOUNT and RUCIO_AUTH_TYPE (e.g., 'userpass', 'x509', 'x509_proxy') before creating Client(). Also set RUCIO_CREDS for password or RUCIO_CLIENT_CERT for x509.","message":"Client authentication requires environment variables (RUCIO_ACCOUNT, RUCIO_AUTH_TYPE, RUCIO_CREDS) or config file; missing them causes silent default fallback to anonymous, often leading to permission errors.","severity":"gotcha","affected_versions":"all"},{"fix":"Set RUCIO_AUTH_TYPE environment variable instead of passing auth_type argument.","message":"The rucio.client.client.Client class init parameter 'auth_type' is deprecated in favor of environment variable RUCIO_AUTH_TYPE.","severity":"deprecated","affected_versions":">=38.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"pip install rucio rucio-clients (or just rucio-clients, which pulls rucio as dependency).","cause":"rucio package (server-side) is not installed; rucio-clients depends on it for library code.","error":"ModuleNotFoundError: No module named 'rucio'"},{"fix":"Use: from rucio.client.downloadclient import DownloadClient","cause":"DownloadClient is in submodule rucio.client.downloadclient, not directly in rucio.client.","error":"ImportError: cannot import name 'DownloadClient' from 'rucio.client'"},{"fix":"Set required environment variables before instantiating Client(): export RUCIO_ACCOUNT=<username>; export RUCIO_AUTH_TYPE=userpass; export RUCIO_CREDS=<password>","cause":"Missing or empty RUCIO_ACCOUNT or RUCIO_AUTH_TYPE environment variables.","error":"FileNotFoundError: [Errno 2] No such file or directory: '\"\"'"},{"fix":"Check RUCIO_ACCOUNT, RUCIO_AUTH_TYPE, and RUCIO_CREDS (or x509 certificate proxy). For x509, ensure RUCIO_CLIENT_CERT points to valid PEM file.","cause":"Invalid credentials or mismatched auth type.","error":"RucioException: Authentication error"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}