A drop in to enable local running of the ServiceX codegen and science images. This is mostly geared toward running for debugging and testing.
Install this as a library in your virtual environment with:
pip install servicex-local
for all the Docker based codegen and science container access.pip install servicex-local[xAOD]
to get a local xAOD code generator (and the required dependencies) along with the docker based code.
Some science images requires a x509 certificate to run. You'll need to get the x509up
into your /tmp
area. If you don't have the tools installed locally, do the following:
- Make sure in your
~/.globus
directory (on whatever OS you are no) contains theusercert.pem
anduserkey.pem
files - Use the
voms_proxy_init
to initialize against theatlas
voms.
The science image code will pick up the location of the 509 cert.
This will do its best to track x509
certs. If a file called x509up
is located in your temp directory (including on windows), that will be copied into the docker
image or other places to be used.
This text is a DRAFT
To use this, example code is as follows:
codegen = LocalXAOD()
science_runner = ScienceWSL2("atlas_al9", "22.2.107")
adaptor = SXLocalAdaptor(codegen, science_runner)
# The simple query, take straight from the example in the documentation.
query = q.FuncADL_ATLASr22() # type: ignore
jets_per_event = query.Select(lambda e: e.Jets("AnalysisJets"))
jet_info_per_event = jets_per_event.Select(
lambda jets: {
"pt": jets.Select(lambda j: j.pt()),
"eta": jets.Select(lambda j: j.eta()),
}
)
spec = {
"Sample": [
{
"Name": "func_adl_xAOD_simple",
"Dataset": dataset.FileList(
[
"tests/test.root", # noqa: E501
]
),
"Query": jet_info_per_event,
}
]
}
files = deliver(spec, servicex_name="servicex-uc-af", sx_adaptor=adaptor)
assert files is not None, "No files returned from deliver! Internal error"
If you are on a machine with wsl2
and or docker
you can run the complete set of tests with flags:
pytest --wsl2 --docker
This docker
versions of this code are thanks to @ketan96-m's work on this Service MR.