Install & Compatibility
Where this runs
tested against v? · pip install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.920 runs
build_error
glibcpy 3.10–3.920 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
LCJob
✓ from ILCDIRAC.Interfaces.API.NewInterface.LCJob import LCJob
Primary class for defining and managing iLC/CLIC/FCC specific jobs within the DIRAC framework.
Marlin
✓ from ILCDIRAC.Interfaces.API.NewInterface.Applications import Marlin
Example application for high-energy physics data processing, commonly used in iLC/CLIC/FCC experiments.
This quickstart demonstrates how to define a basic iLCDirac job using the `LCJob` class and append a `Marlin` application. It covers setting job properties, application details, and output specifications. Note that actual job submission to the grid requires a fully configured DIRAC client environment and a valid VOMS proxy, which are not covered in this minimal code snippet.
from ILCDIRAC.Interfaces.API.NewInterface.LCJob import LCJob
from ILCDIRAC.Interfaces.API.NewInterface.Applications import Marlin
# Note: A full DIRAC environment (with configuration and a valid VOMS proxy)
# is required for actual job submission. This example focuses on API object creation.
# 1. Create an LCJob instance
job = LCJob()
job.setName('MyILCDiracJob')
job.setPlatform('x86_64-slc6-gcc44-opt') # Example platform, choose one appropriate for your grid
job.setCPUTime(3600) # Example: 1 hour CPU time limit
# 2. Define an application, e.g., Marlin
marlin_app = Marlin()
marlin_app.setVersion('v01-08-01') # Specify a valid Marlin version available on the grid
marlin_app.setSteeringFile('my_steering_file.xml') # Path to a steering file
marlin_app.setInputData(['LFN:/ilc/user/exampleuser/input.slcio']) # Logical File Name for input data
# 3. Add the application to the job
job.appendApplication(marlin_app)
# 4. Define output data and where to store it
job.setOutputData(['output.root'], OutputSE='CERN-USER') # Store output.root in CERN-USER Storage Element
job.setOutputSandbox(['stdout.log', 'stderr.log']) # Files to retrieve to local sandbox
# Print job definition summary
print(f"Created ILCDIRAC Job '{job.getName()}'")
print(f" Platform: {job.getPlatform()}")
print(f" CPU Time: {job.getCPUTime()} seconds")
if job.applications:
print(f" Application: {job.applications[0].__class__.__name__} (Version: {job.applications[0].version})")
print(f" Output Data: {job.outputData}")
print(f" Output Sandbox: {job.outputSandbox}")
# To submit this job to the DIRAC grid, you would typically use:
# from DIRAC.Core.Base.Script import parseCommandLine
# parseCommandLine() # This initializes the DIRAC environment
# result = job.submit()
# if result['OK']:
# print(f"Job submitted with ID: {result['Value']}")
# else:
# print(f"Submission failed: {result['Message']}")
Debug
Known issues
breakingMajor version upgrades of ILCDirac (e.g., from 34.x to 35.x) or its underlying DIRAC framework often introduce significant API changes, especially in job definition and application handling interfaces. The `NewInterface` implies older interfaces may be deprecated or removed.fixAlways consult the official DIRAC and ILCDirac release notes and migration guides before upgrading. Update imports and API calls to align with the current `NewInterface` patterns as documented.
affects: All major version transitions (e.g., 34.x to 35.x)
gotchaILCDirac is a client library for the DIRAC grid. Actual job submission and interaction with the grid requires a separate DIRAC client installation and configuration, including a valid VOMS proxy for authentication. `pip install ilcdirac` alone only provides the Python library components.fixFollow the comprehensive DIRAC client installation and configuration guides. Ensure a valid VOMS proxy is available using `voms-proxy-init` before attempting job submission to the grid.
affects: All versions
gotchaIncorrectly specified Logical File Names (LFNs) for input/output data, or non-existent/inaccessible Storage Elements (SEs) for outputs, are common causes of job failures on the grid. Paths must be valid within the distributed file system.fixVerify LFNs using DIRAC tools like `dirac-dms-lfns-info` and ensure specified SEs are valid and accessible for your user role within the DIRAC grid configuration.
affects: All versions
Upgrade
Version history
35.0.11latest on PyPI · released Apr 14, 2026
Audit
Dependencies
DIRACrequirediLCDirac is an extension of the DIRAC framework and requires DIRAC itself to be installed (>=35.0.0).