fraudtwin.extensions#

Stable extension protocols and local entry-point discovery.

Status: Stable

Classes#

fraudtwin.extensions.BehaviorModel

Port for a deterministic customer-behavior model.

fraudtwin.extensions.DataFaultInjector

Port for deterministic observable-data mutations.

fraudtwin.extensions.ExtensionMetadata

Identity recorded in manifests for one installed extension.

fraudtwin.extensions.ExtensionRegistry

Explicit, deterministic registry of extension implementations.

fraudtwin.extensions.FraudScenario

Port for a deterministic fraud-scenario implementation.

fraudtwin.extensions.OutputSink

Port for a chunk-aware output adapter.

fraudtwin.extensions.PaymentRail

Port for a payment rail that preserves FraudTwin lifecycle semantics.

Functions#

fraudtwin.extensions.discover_extensions

Load installed entry points in stable name order.

Constants and protocols#

Name

Reference

Extension

fraudtwin.extensions.Extension

Detailed API#

Stable extension contracts for FraudTwin.

Extensions are deliberately small ports. They describe the boundary between the deterministic simulator and user-owned behavior; they do not provide a second configuration system or a plugin runtime. Applications may register implementations explicitly, while package distributions can expose the same implementations through the fraudtwin.extensions entry-point group.

class fraudtwin.extensions.BehaviorModel(*args, **kwargs)[source][source]

Bases: Protocol

Port for a deterministic customer-behavior model.

profile(entity, *, seed)[source][source]

Return one behavior profile without mutating the source entity.

Return type:

Mapping[str, Any]

Parameters:
  • entity (Mapping[str, Any])

  • seed (int)

class fraudtwin.extensions.DataFaultInjector(*args, **kwargs)[source][source]

Bases: Protocol

Port for deterministic observable-data mutations.

apply(record, *, seed)[source][source]

Return the mutated record and preserve an audit-friendly identity.

Return type:

Mapping[str, Any]

Parameters:
  • record (Mapping[str, Any])

  • seed (int)

class fraudtwin.extensions.ExtensionMetadata(extension_id, extension_version, distribution='local', distribution_version='local')[source][source]

Bases: object

Identity recorded in manifests for one installed extension.

Parameters:
  • extension_id (str)

  • extension_version (str)

  • distribution (str)

  • distribution_version (str)

class fraudtwin.extensions.ExtensionRegistry(extensions=())[source][source]

Bases: object

Explicit, deterministic registry of extension implementations.

Parameters:

extensions (Iterable[FraudScenario | PaymentRail | BehaviorModel | DataFaultInjector | OutputSink])

class fraudtwin.extensions.FraudScenario(*args, **kwargs)[source][source]

Bases: Protocol

Port for a deterministic fraud-scenario implementation.

generate(context, *, seed)[source][source]

Yield oracle records or mutations for a bounded generation context.

Return type:

Iterable[Mapping[str, Any]]

Parameters:
  • context (Mapping[str, Any])

  • seed (int)

class fraudtwin.extensions.OutputSink(*args, **kwargs)[source][source]

Bases: Protocol

Port for a chunk-aware output adapter.

write(records, *, run_id)[source][source]

Persist a bounded batch and return checkpoint metadata.

Return type:

Mapping[str, Any]

Parameters:
  • records (Iterable[Mapping[str, Any]])

  • run_id (str)

class fraudtwin.extensions.PaymentRail(*args, **kwargs)[source][source]

Bases: Protocol

Port for a payment rail that preserves FraudTwin lifecycle semantics.

lifecycle(payment, *, seed)[source][source]

Yield lifecycle events for one payment.

Return type:

Iterable[Mapping[str, Any]]

Parameters:
  • payment (Mapping[str, Any])

  • seed (int)

fraudtwin.extensions.discover_extensions(*, group='fraudtwin.extensions')[source][source]

Load installed entry points in stable name order.

Entry points are loaded from the local environment only. A package must therefore be installed explicitly; configuration never executes an arbitrary import path or downloads code.

Return type:

ExtensionRegistry

Parameters:

group (str)