Misc Helpers

int HPyHelpers_AddType(HPyContext *ctx, HPy obj, const char *name, HPyType_Spec *hpyspec, HPyType_SpecParam *params)
[source]

Create a type and add it as an attribute on the given object. The type is created using HPyType_FromSpec(). The object is often a module that the type is being added to.

Parameters
  • ctx – The execution context.

  • obj – A handle to the object the type is being added to (often a module).

  • name – The name of the attribute on the object to assign the type to.

  • hpyspec – The type spec to use to create the type.

  • params – The type spec parameters to use to create the type.

Returns

0 on failure, 1 on success.

Examples:

Using HPyHelpers_AddType without any HPyType_SpecParam parameters:

if (!HPyHelpers_AddType(ctx, module, "MyType", hpyspec, NULL))
    return HPy_NULL;
...

Using HPyHelpers_AddType with HPyType_SpecParam parameters:

HPyType_SpecParam params[] = {
    { HPyType_SpecParam_Base, ctx->h_LongType },
    { 0 }
};

if (!HPyHelpers_AddType(ctx, module, "MyType", hpyspec, params))
    return HPy_NULL;
...