Other functionality

Metadata (“tags”) for Arrays and Array Axes

class arraycontext.metadata.NameHint(name: str)[source]

A tag acting on arrays or array axes. Express that name is a useful starting point in forming an identifier for the tagged object.

name

A string. Must be a valid Python identifier. Not necessarily unique.

ArrayContext-generating fixture for pytest

class arraycontext.PytestArrayContextFactory[source]
class arraycontext.PytestPyOpenCLArrayContextFactory(device)[source]
__init__(device)[source]
Parameters:

device – a pyopencl.Device.

__call__() ArrayContext[source]

Call self as a function.

arraycontext.pytest_generate_tests_for_array_contexts(factories: Sequence[str | Type[PytestArrayContextFactory]], *, factory_arg_name: str = 'actx_factory') Callable[[Any], None][source]

Parametrize tests for pytest to use an ArrayContext.

Using this function in pytest test scripts allows you to use the argument factory_arg_name, which is a callable that returns a ArrayContext. All test functions will automatically be run once for each implemented array context. To select specific array context implementations explicitly define, for example,

pytest_generate_tests = pytest_generate_tests_for_array_context([
    "pyopencl",
    ])

to use the pyopencl-based array context.

The environment variable ARRAYCONTEXT_TEST can also be used to overwrite any chosen implementations through factories. This is a comma-separated list of known array contexts.

Current supported implementations include:

Parameters:

factories – a list of identifiers or PytestPyOpenCLArrayContextFactory classes (not instances) for which to generate test fixtures.

Program creation for loopy

arraycontext.make_loopy_program(domains, statements, kernel_data=None, name='mm_actx_kernel', tags=None)[source]

Return a loopy.LoopKernel suitable for use with ArrayContext.call_loopy().