Skip to content

angee.resources.loader

Import-export resource classes for loading Angee resource rows.

DryRunRollback

python
class DryRunRollback(Exception)

Signal that a successful dry run should roll back its transaction.

AngeeResource

python
class AngeeResource(resources.ModelResource)

Import-export resource with xref identity and ledger persistence.

WIDGETS_MAP

Widget map that accepts native JSON values from structured files.

__init__

python
def __init__(*, entry: ResourceEntry, ledger_model: type[models.Model],
             addon_aliases: Mapping[str, str]) -> None

Bind one resource entry and concrete ledger model.

get_fk_widget

python
@classmethod
def get_fk_widget(cls, field: Any) -> functools.partial[Any]

Return the xref-aware widget factory for a foreign key.

get_m2m_widget

python
@classmethod
def get_m2m_widget(cls, field: Any) -> functools.partial[Any]

Return the xref-aware widget factory for a many-to-many field.

before_import

python
def before_import(dataset: tablib.Dataset, **kwargs: Any) -> None

Validate incoming headers before import-export reads rows.

before_import_row

python
def before_import_row(row: Mapping[str, Any], **kwargs: Any) -> None

Record the source row hash before widgets clean field values.

import_row

python
def import_row(row: Mapping[str, Any], instance_loader: BaseInstanceLoader,
               **kwargs: Any) -> RowResult

Return a row import result after ledger skip/adoption checks.

after_save_instance

python
def after_save_instance(instance: models.Model, row: Mapping[str, Any],
                        **kwargs: Any) -> None

Restore auto-managed source values and upsert the ledger row.

instance_for_xref

python
def instance_for_xref(xref: str) -> models.Model | None

Return an existing or adopted instance for a row xref.

XrefInstanceLoader

python
class XrefInstanceLoader(BaseInstanceLoader)

Resolve existing import rows through the resource ledger.

get_instance

python
def get_instance(row: Mapping[str, Any]) -> models.Model | None

Return the existing target for one dataset row.

build_resource

python
def build_resource(model: type[models.Model], entry: ResourceEntry, *,
                   ledger_model: type[models.Model],
                   addon_aliases: Mapping[str, str]) -> AngeeResource

Return an xref-aware import-export resource for model.

Released under the AGPL-3.0 License.