archivebox.base_models.models

Base models using UUIDv7 for all id fields.

Module Contents

Classes

AutoDateTimeField

DateTimeField that automatically updates on save (legacy compatibility).

ModelWithUUID

ModelWithNotes

Mixin for models with a notes field.

ModelWithHealthStats

Mixin for models with health tracking fields.

ModelWithConfig

Mixin for models with a JSON config field.

ModelWithDeleteAfter

ModelWithOutputDir

Functions

normalize_config_json_values

get_or_create_system_user_pk

API

archivebox.base_models.models.normalize_config_json_values(config: Any) Any[source]
archivebox.base_models.models.get_or_create_system_user_pk(username='system')[source]
class archivebox.base_models.models.AutoDateTimeField[source]

Bases: django.db.models.DateTimeField

DateTimeField that automatically updates on save (legacy compatibility).

pre_save(model_instance, add)[source]
class archivebox.base_models.models.ModelWithUUID[source]

Bases: django.db.models.Model

id[source]

‘CompactUUIDField(…)’

created_at[source]

‘DateTimeField(…)’

modified_at[source]

‘DateTimeField(…)’

created_by[source]

‘ForeignKey(…)’

class Meta[source]

Bases: django_stubs_ext.db.models.TypedModelMeta

abstract[source]

True

__str__() str[source]
property admin_change_url: str[source]
property api_url: str[source]
property api_docs_url: str[source]
class archivebox.base_models.models.ModelWithNotes[source]

Bases: django.db.models.Model

Mixin for models with a notes field.

notes[source]

‘TextField(…)’

class Meta[source]

Bases: django_stubs_ext.db.models.TypedModelMeta

abstract[source]

True

class archivebox.base_models.models.ModelWithHealthStats[source]

Bases: django.db.models.Model

Mixin for models with health tracking fields.

num_uses_failed[source]

‘PositiveIntegerField(…)’

num_uses_succeeded[source]

‘PositiveIntegerField(…)’

class Meta[source]

Bases: django_stubs_ext.db.models.TypedModelMeta

abstract[source]

True

property admin_change_url: str[source]
property health: int[source]
increment_health_stats(success: bool)[source]

Atomically increment success or failure counter using F() expression.

class archivebox.base_models.models.ModelWithConfig[source]

Bases: django.db.models.Model

Mixin for models with a JSON config field.

config[source]

‘JSONField(…)’

class Meta[source]

Bases: django_stubs_ext.db.models.TypedModelMeta

abstract[source]

True

save(*args, **kwargs)[source]
class archivebox.base_models.models.ModelWithDeleteAfter[source]

Bases: django.db.models.Model

delete_after_final_statuses: tuple[str, ...][source]

()

delete_at[source]

‘DateTimeField(…)’

class Meta[source]

Bases: django_stubs_ext.db.models.TypedModelMeta

abstract[source]

True

save(*args, **kwargs)[source]
get_delete_after_config_value()[source]
set_delete_at_from_config(config_value=None) bool[source]
classmethod missing_delete_at_candidates()[source]
classmethod delete_expired(*, batch_size: int = 100, backfill_missing: bool = True) int[source]
class archivebox.base_models.models.ModelWithOutputDir[source]

Bases: archivebox.base_models.models.ModelWithUUID

class Meta[source]

Bases: archivebox.base_models.models.ModelWithUUID

abstract[source]

True

_delete_signal_registered[source]

False

save(*args, **kwargs)[source]
property output_dir_parent: str[source]
property output_dir_name: str[source]
property output_dir_str: str[source]
abstract property output_dir: pathlib.Path[source]
output_paths_for_delete() tuple[pathlib.Path, ...][source]
classmethod validate_output_paths_for_delete(paths) tuple[pathlib.Path, ...][source]
classmethod delete_output_paths(paths) None[source]
classmethod register_delete_signal() None[source]