docs: regenerate sphinx apidocs to reflect current source tree
Some checks are pending
CodeQL / Analyze (${{ matrix.language }}) (none, python) (push) Waiting to run
Build Debian package / build (amd64) (push) Waiting to run
Build Debian package / build (arm64) (push) Waiting to run
Build Debian package / test (amd64, ubuntu-24.04) (push) Blocked by required conditions
Build Debian package / test (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
Build Debian package / release (push) Blocked by required conditions
Build Docker image / build ${{ matrix.platform }} (digest-linux-amd64, docker-amd64, linux/amd64, ubuntu-24.04) (push) Waiting to run
Build Docker image / build ${{ matrix.platform }} (digest-linux-arm64, docker-arm64, linux/arm64, ubuntu-24.04-arm) (push) Waiting to run
Build Docker image / publish multiarch tags (push) Blocked by required conditions
Run linters / lint (push) Waiting to run
Build Pip package / build (push) Waiting to run
Release State / release-state (push) Waiting to run
Parallel Tests / Discover test files (push) Waiting to run
Parallel Tests / ${{ matrix.test.name }} (push) Blocked by required conditions
Parallel Tests / ${{ matrix.plugin.name }} (push) Blocked by required conditions
Run tests / python_tests (ubuntu-22.04, 3.13) (push) Waiting to run
Run tests / docker_tests (push) Waiting to run

Clean rebuild of docs/apidocs/archivebox/ via autodoc2:
- Removes 19 stale module pages whose source files no longer exist
  (cli_utils, host_utils, schedule_utils — renamed to *_util; actors,
  ideas, debugging, folders, legacy, progress_layout, tests_piping,
  config_tags, personas.runtime/views, orchestrator*, worker, tasks).
- Adds 29 new module pages for code that was added since the previous
  generation but not yet documented.
- Updates 100 existing pages to reflect API surface changes (e.g.
  ENABLED_PLUGINS Field removed, SNAPSHOTS_PER_PAGE clamp removed,
  default bumped to 50, etc.).

156 source modules <-> 156 apidoc files (zero drift). Build clean
under sphinx-build -W --keep-going.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Sweeting 2026-05-31 03:40:25 -07:00
parent 46b547b88d
commit f4932430db
No known key found for this signature in database
148 changed files with 14428 additions and 6375 deletions

View File

@ -17,6 +17,8 @@
* - {py:obj}`APITokenAdmin <archivebox.api.admin.APITokenAdmin>`
-
* - {py:obj}`OutboundWebhookAdminForm <archivebox.api.admin.OutboundWebhookAdminForm>`
-
* - {py:obj}`CustomWebhookAdmin <archivebox.api.admin.CustomWebhookAdmin>`
-
````
@ -27,6 +29,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_webhook_fields <archivebox.api.admin._webhook_fields>`
- ```{autodoc2-docstring} archivebox.api.admin._webhook_fields
:summary:
```
* - {py:obj}`register_admin <archivebox.api.admin.register_admin>`
- ```{autodoc2-docstring} archivebox.api.admin.register_admin
:summary:
@ -35,6 +41,13 @@
### API
````{py:function} _webhook_fields(*names: str) -> tuple[str, ...]
:canonical: archivebox.api.admin._webhook_fields
```{autodoc2-docstring} archivebox.api.admin._webhook_fields
```
````
`````{py:class} APITokenAdmin(model, admin_site)
:canonical: archivebox.api.admin.APITokenAdmin
@ -122,11 +135,28 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
`````
```{py:class} OutboundWebhookAdminForm(*args, **kwargs)
:canonical: archivebox.api.admin.OutboundWebhookAdminForm
Bases: {py:obj}`signal_webhooks.admin.WebhookModelForm`
```
`````{py:class} CustomWebhookAdmin(model, admin_site)
:canonical: archivebox.api.admin.CustomWebhookAdmin
Bases: {py:obj}`signal_webhooks.admin.WebhookAdmin`, {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} form
:canonical: archivebox.api.admin.CustomWebhookAdmin.form
:value: >
None
```{autodoc2-docstring} archivebox.api.admin.CustomWebhookAdmin.form
```
````
````{py:attribute} list_display
:canonical: archivebox.api.admin.CustomWebhookAdmin.list_display
:value: >
@ -140,7 +170,7 @@ Bases: {py:obj}`signal_webhooks.admin.WebhookAdmin`, {py:obj}`archivebox.base_mo
````{py:attribute} sort_fields
:canonical: archivebox.api.admin.CustomWebhookAdmin.sort_fields
:value: >
('created_at', 'created_by', 'id', 'referenced_model', 'endpoint', 'last_success', 'last_error')
'_webhook_fields(...)'
```{autodoc2-docstring} archivebox.api.admin.CustomWebhookAdmin.sort_fields
```
@ -150,7 +180,7 @@ Bases: {py:obj}`signal_webhooks.admin.WebhookAdmin`, {py:obj}`archivebox.base_mo
````{py:attribute} readonly_fields
:canonical: archivebox.api.admin.CustomWebhookAdmin.readonly_fields
:value: >
('created_at', 'modified_at')
'_webhook_fields(...)'
```{autodoc2-docstring} archivebox.api.admin.CustomWebhookAdmin.readonly_fields
```
@ -167,9 +197,17 @@ Bases: {py:obj}`signal_webhooks.admin.WebhookAdmin`, {py:obj}`archivebox.base_mo
````
````{py:method} lookup_allowed(lookup: str, value: str, request: django.http.HttpRequest | None = None) -> bool
:canonical: archivebox.api.admin.CustomWebhookAdmin.lookup_allowed
```{autodoc2-docstring} archivebox.api.admin.CustomWebhookAdmin.lookup_allowed
```
````
`````
````{py:function} register_admin(admin_site)
````{py:function} register_admin(admin_site: django.contrib.admin.AdminSite) -> None
:canonical: archivebox.api.admin.register_admin
```{autodoc2-docstring} archivebox.api.admin.register_admin

View File

@ -15,14 +15,6 @@
:class: autosummary longtable
:align: left
* - {py:obj}`APITokenAuthCheck <archivebox.api.auth.APITokenAuthCheck>`
- ```{autodoc2-docstring} archivebox.api.auth.APITokenAuthCheck
:summary:
```
* - {py:obj}`UserPassAuthCheck <archivebox.api.auth.UserPassAuthCheck>`
- ```{autodoc2-docstring} archivebox.api.auth.UserPassAuthCheck
:summary:
```
* - {py:obj}`HeaderTokenAuth <archivebox.api.auth.HeaderTokenAuth>`
- ```{autodoc2-docstring} archivebox.api.auth.HeaderTokenAuth
:summary:
@ -35,14 +27,6 @@
- ```{autodoc2-docstring} archivebox.api.auth.QueryParamTokenAuth
:summary:
```
* - {py:obj}`UsernameAndPasswordAuth <archivebox.api.auth.UsernameAndPasswordAuth>`
- ```{autodoc2-docstring} archivebox.api.auth.UsernameAndPasswordAuth
:summary:
```
* - {py:obj}`DjangoSessionAuth <archivebox.api.auth.DjangoSessionAuth>`
- ```{autodoc2-docstring} archivebox.api.auth.DjangoSessionAuth
:summary:
```
````
### Functions
@ -63,6 +47,10 @@
- ```{autodoc2-docstring} archivebox.api.auth.auth_using_password
:summary:
```
* - {py:obj}`_require_superuser <archivebox.api.auth._require_superuser>`
- ```{autodoc2-docstring} archivebox.api.auth._require_superuser
:summary:
```
````
### Data
@ -79,63 +67,38 @@
### API
````{py:function} get_or_create_api_token(user)
````{py:function} get_or_create_api_token(user: django.contrib.auth.models.User | None)
:canonical: archivebox.api.auth.get_or_create_api_token
```{autodoc2-docstring} archivebox.api.auth.get_or_create_api_token
```
````
````{py:function} auth_using_token(token, request: typing.Optional[django.http.HttpRequest] = None) -> typing.Optional[django.contrib.auth.models.AbstractBaseUser]
````{py:function} auth_using_token(token: str | None, request: django.http.HttpRequest | None = None) -> django.contrib.auth.models.User | None
:canonical: archivebox.api.auth.auth_using_token
```{autodoc2-docstring} archivebox.api.auth.auth_using_token
```
````
````{py:function} auth_using_password(username, password, request: typing.Optional[django.http.HttpRequest] = None) -> typing.Optional[django.contrib.auth.models.AbstractBaseUser]
````{py:function} auth_using_password(username: str | None, password: str | None, request: django.http.HttpRequest | None = None) -> django.contrib.auth.models.User | None
:canonical: archivebox.api.auth.auth_using_password
```{autodoc2-docstring} archivebox.api.auth.auth_using_password
```
````
`````{py:class} APITokenAuthCheck
:canonical: archivebox.api.auth.APITokenAuthCheck
````{py:function} _require_superuser(user: django.contrib.auth.models.User | None, request: django.http.HttpRequest, auth_method: str) -> django.contrib.auth.models.User | None
:canonical: archivebox.api.auth._require_superuser
```{autodoc2-docstring} archivebox.api.auth.APITokenAuthCheck
```{autodoc2-docstring} archivebox.api.auth._require_superuser
```
````{py:method} authenticate(request: django.http.HttpRequest, key: typing.Optional[str] = None) -> typing.Optional[django.contrib.auth.models.AbstractBaseUser]
:canonical: archivebox.api.auth.APITokenAuthCheck.authenticate
```{autodoc2-docstring} archivebox.api.auth.APITokenAuthCheck.authenticate
```
````
`````
`````{py:class} UserPassAuthCheck
:canonical: archivebox.api.auth.UserPassAuthCheck
```{autodoc2-docstring} archivebox.api.auth.UserPassAuthCheck
```
````{py:method} authenticate(request: django.http.HttpRequest, username: typing.Optional[str] = None, password: typing.Optional[str] = None) -> typing.Optional[django.contrib.auth.models.AbstractBaseUser]
:canonical: archivebox.api.auth.UserPassAuthCheck.authenticate
```{autodoc2-docstring} archivebox.api.auth.UserPassAuthCheck.authenticate
```
````
`````
`````{py:class} HeaderTokenAuth()
:canonical: archivebox.api.auth.HeaderTokenAuth
Bases: {py:obj}`archivebox.api.auth.APITokenAuthCheck`, {py:obj}`ninja.security.APIKeyHeader`
Bases: {py:obj}`ninja.security.APIKeyHeader`
```{autodoc2-docstring} archivebox.api.auth.HeaderTokenAuth
```
@ -156,12 +119,20 @@ Bases: {py:obj}`archivebox.api.auth.APITokenAuthCheck`, {py:obj}`ninja.security.
````
````{py:method} authenticate(request: django.http.HttpRequest, key: str | None) -> django.contrib.auth.models.User | None
:canonical: archivebox.api.auth.HeaderTokenAuth.authenticate
```{autodoc2-docstring} archivebox.api.auth.HeaderTokenAuth.authenticate
```
````
`````
````{py:class} BearerTokenAuth()
`````{py:class} BearerTokenAuth()
:canonical: archivebox.api.auth.BearerTokenAuth
Bases: {py:obj}`archivebox.api.auth.APITokenAuthCheck`, {py:obj}`ninja.security.HttpBearer`
Bases: {py:obj}`ninja.security.HttpBearer`
```{autodoc2-docstring} archivebox.api.auth.BearerTokenAuth
```
@ -172,12 +143,20 @@ Bases: {py:obj}`archivebox.api.auth.APITokenAuthCheck`, {py:obj}`ninja.security.
```{autodoc2-docstring} archivebox.api.auth.BearerTokenAuth.__init__
```
````{py:method} authenticate(request: django.http.HttpRequest, token: str) -> django.contrib.auth.models.User | None
:canonical: archivebox.api.auth.BearerTokenAuth.authenticate
```{autodoc2-docstring} archivebox.api.auth.BearerTokenAuth.authenticate
```
````
`````
`````{py:class} QueryParamTokenAuth()
:canonical: archivebox.api.auth.QueryParamTokenAuth
Bases: {py:obj}`archivebox.api.auth.APITokenAuthCheck`, {py:obj}`ninja.security.APIKeyQuery`
Bases: {py:obj}`ninja.security.APIKeyQuery`
```{autodoc2-docstring} archivebox.api.auth.QueryParamTokenAuth
```
@ -198,42 +177,10 @@ Bases: {py:obj}`archivebox.api.auth.APITokenAuthCheck`, {py:obj}`ninja.security.
````
`````
````{py:method} authenticate(request: django.http.HttpRequest, key: str | None) -> django.contrib.auth.models.User | None
:canonical: archivebox.api.auth.QueryParamTokenAuth.authenticate
````{py:class} UsernameAndPasswordAuth()
:canonical: archivebox.api.auth.UsernameAndPasswordAuth
Bases: {py:obj}`archivebox.api.auth.UserPassAuthCheck`, {py:obj}`ninja.security.HttpBasicAuth`
```{autodoc2-docstring} archivebox.api.auth.UsernameAndPasswordAuth
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.api.auth.UsernameAndPasswordAuth.__init__
```
````
`````{py:class} DjangoSessionAuth
:canonical: archivebox.api.auth.DjangoSessionAuth
```{autodoc2-docstring} archivebox.api.auth.DjangoSessionAuth
```
````{py:method} __call__(request: django.http.HttpRequest) -> typing.Optional[django.contrib.auth.models.AbstractBaseUser]
:canonical: archivebox.api.auth.DjangoSessionAuth.__call__
```{autodoc2-docstring} archivebox.api.auth.DjangoSessionAuth.__call__
```
````
````{py:method} authenticate(request: django.http.HttpRequest, **kwargs) -> typing.Optional[django.contrib.auth.models.AbstractBaseUser]
:canonical: archivebox.api.auth.DjangoSessionAuth.authenticate
```{autodoc2-docstring} archivebox.api.auth.DjangoSessionAuth.authenticate
```{autodoc2-docstring} archivebox.api.auth.QueryParamTokenAuth.authenticate
```
````

View File

@ -21,6 +21,8 @@ archivebox.api.v1_cli
archivebox.api.v1_core
archivebox.api.apps
archivebox.api.admin
archivebox.api.v1_personas
archivebox.api.webhooks
archivebox.api.urls
archivebox.api.v1_machine
archivebox.api.middleware

View File

@ -9,6 +9,18 @@
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`archive_redirect_view <archivebox.api.urls.archive_redirect_view>`
- ```{autodoc2-docstring} archivebox.api.urls.archive_redirect_view
:summary:
```
````
### Data
````{list-table}
@ -23,6 +35,13 @@
### API
````{py:function} archive_redirect_view(request: django.http.HttpRequest, url: str) -> django.http.HttpResponseRedirect
:canonical: archivebox.api.urls.archive_redirect_view
```{autodoc2-docstring} archivebox.api.urls.archive_redirect_view
```
````
````{py:data} urlpatterns
:canonical: archivebox.api.urls.urlpatterns
:value: >

View File

@ -81,7 +81,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} username
:canonical: archivebox.api.v1_auth.PasswordAuthSchema.username
:type: typing.Optional[str]
:type: str | None
:value: >
None
@ -92,7 +92,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} password
:canonical: archivebox.api.v1_auth.PasswordAuthSchema.password
:type: typing.Optional[str]
:type: str | None
:value: >
None
@ -103,7 +103,7 @@ Bases: {py:obj}`ninja.Schema`
`````
````{py:function} get_api_token(request, auth_data: archivebox.api.v1_auth.PasswordAuthSchema)
````{py:function} get_api_token(request: django.http.HttpRequest, auth_data: archivebox.api.v1_auth.PasswordAuthSchema)
:canonical: archivebox.api.v1_auth.get_api_token
```{autodoc2-docstring} archivebox.api.v1_auth.get_api_token
@ -137,7 +137,7 @@ Bases: {py:obj}`ninja.Schema`
`````
````{py:function} check_api_token(request, token_data: archivebox.api.v1_auth.TokenAuthSchema)
````{py:function} check_api_token(request: django.http.HttpRequest, token_data: archivebox.api.v1_auth.TokenAuthSchema)
:canonical: archivebox.api.v1_auth.check_api_token
```{autodoc2-docstring} archivebox.api.v1_auth.check_api_token

View File

@ -117,7 +117,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} errors
:canonical: archivebox.api.v1_cli.CLICommandResponseSchema.errors
:type: typing.List[str]
:type: list[str]
:value: >
None
@ -353,7 +353,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} urls
:canonical: archivebox.api.v1_cli.AddCommandSchema.urls
:type: typing.List[str]
:type: list[str]
:value: >
None
@ -362,6 +362,17 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:attribute} snapshot_ids
:canonical: archivebox.api.v1_cli.AddCommandSchema.snapshot_ids
:type: list[str] | None
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.snapshot_ids
```
````
````{py:attribute} tag
:canonical: archivebox.api.v1_cli.AddCommandSchema.tag
:type: str
@ -383,6 +394,50 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:attribute} max_urls
:canonical: archivebox.api.v1_cli.AddCommandSchema.max_urls
:type: int
:value: >
0
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.max_urls
```
````
````{py:attribute} crawl_max_size
:canonical: archivebox.api.v1_cli.AddCommandSchema.crawl_max_size
:type: int
:value: >
0
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.crawl_max_size
```
````
````{py:attribute} crawl_timeout
:canonical: archivebox.api.v1_cli.AddCommandSchema.crawl_timeout
:type: int
:value: >
0
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.crawl_timeout
```
````
````{py:attribute} snapshot_max_size
:canonical: archivebox.api.v1_cli.AddCommandSchema.snapshot_max_size
:type: int
:value: >
0
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.snapshot_max_size
```
````
````{py:attribute} parser
:canonical: archivebox.api.v1_cli.AddCommandSchema.parser
:type: str
@ -404,24 +459,13 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:attribute} update
:canonical: archivebox.api.v1_cli.AddCommandSchema.update
:type: bool
````{py:attribute} only_new
:canonical: archivebox.api.v1_cli.AddCommandSchema.only_new
:type: bool | None
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.update
```
````
````{py:attribute} overwrite
:canonical: archivebox.api.v1_cli.AddCommandSchema.overwrite
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.overwrite
```{autodoc2-docstring} archivebox.api.v1_cli.AddCommandSchema.only_new
```
````
@ -446,51 +490,18 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} resume
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.resume
:type: typing.Optional[float]
:type: str | None
:value: >
0
None
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.resume
```
````
````{py:attribute} only_new
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.only_new
:type: bool
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.only_new
```
````
````{py:attribute} index_only
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.index_only
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.index_only
```
````
````{py:attribute} overwrite
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.overwrite
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.overwrite
```
````
````{py:attribute} after
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.after
:type: typing.Optional[float]
:type: float | None
:value: >
0
@ -501,7 +512,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} before
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.before
:type: typing.Optional[float]
:type: float | None
:value: >
999999999999999
@ -510,20 +521,9 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:attribute} status
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.status
:type: typing.Optional[archivebox.api.v1_cli.StatusChoices]
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.status
```
````
````{py:attribute} filter_type
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.filter_type
:type: typing.Optional[str]
:type: str | None
:value: >
None
@ -534,7 +534,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} filter_patterns
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.filter_patterns
:type: typing.Optional[typing.List[str]]
:type: list[str] | None
:value: >
['https://example.com']
@ -543,12 +543,24 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:attribute} plugins
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.plugins
:type: typing.Optional[str]
:value: <Multiline-String>
````{py:attribute} batch_size
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.batch_size
:type: int
:value: >
100
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.plugins
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.batch_size
```
````
````{py:attribute} continuous
:canonical: archivebox.api.v1_cli.UpdateCommandSchema.continuous
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.api.v1_cli.UpdateCommandSchema.continuous
```
````
@ -562,7 +574,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} import_path
:canonical: archivebox.api.v1_cli.ScheduleCommandSchema.import_path
:type: typing.Optional[str]
:type: str | None
:value: >
None
@ -628,7 +640,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} every
:canonical: archivebox.api.v1_cli.ScheduleCommandSchema.every
:type: typing.Optional[str]
:type: str | None
:value: >
None
@ -658,24 +670,13 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:attribute} overwrite
:canonical: archivebox.api.v1_cli.ScheduleCommandSchema.overwrite
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.api.v1_cli.ScheduleCommandSchema.overwrite
```
````
````{py:attribute} update
:canonical: archivebox.api.v1_cli.ScheduleCommandSchema.update
:type: bool
````{py:attribute} only_new
:canonical: archivebox.api.v1_cli.ScheduleCommandSchema.only_new
:type: bool | None
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_cli.ScheduleCommandSchema.update
```{autodoc2-docstring} archivebox.api.v1_cli.ScheduleCommandSchema.only_new
```
````
@ -700,7 +701,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} filter_patterns
:canonical: archivebox.api.v1_cli.ListCommandSchema.filter_patterns
:type: typing.Optional[typing.List[str]]
:type: list[str] | None
:value: >
['https://example.com']
@ -733,7 +734,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} after
:canonical: archivebox.api.v1_cli.ListCommandSchema.after
:type: typing.Optional[float]
:type: float | None
:value: >
0
@ -744,7 +745,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} before
:canonical: archivebox.api.v1_cli.ListCommandSchema.before
:type: typing.Optional[float]
:type: float | None
:value: >
999999999999999
@ -815,20 +816,9 @@ Bases: {py:obj}`ninja.Schema`
Bases: {py:obj}`ninja.Schema`
````{py:attribute} delete
:canonical: archivebox.api.v1_cli.RemoveCommandSchema.delete
:type: bool
:value: >
True
```{autodoc2-docstring} archivebox.api.v1_cli.RemoveCommandSchema.delete
```
````
````{py:attribute} after
:canonical: archivebox.api.v1_cli.RemoveCommandSchema.after
:type: typing.Optional[float]
:type: float | None
:value: >
0
@ -839,7 +829,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} before
:canonical: archivebox.api.v1_cli.RemoveCommandSchema.before
:type: typing.Optional[float]
:type: float | None
:value: >
999999999999999
@ -861,7 +851,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} filter_patterns
:canonical: archivebox.api.v1_cli.RemoveCommandSchema.filter_patterns
:type: typing.Optional[typing.List[str]]
:type: list[str] | None
:value: >
['https://example.com']
@ -872,35 +862,35 @@ Bases: {py:obj}`ninja.Schema`
`````
````{py:function} cli_add(request, args: archivebox.api.v1_cli.AddCommandSchema)
````{py:function} cli_add(request: django.http.HttpRequest, args: archivebox.api.v1_cli.AddCommandSchema)
:canonical: archivebox.api.v1_cli.cli_add
```{autodoc2-docstring} archivebox.api.v1_cli.cli_add
```
````
````{py:function} cli_update(request, args: archivebox.api.v1_cli.UpdateCommandSchema)
````{py:function} cli_update(request: django.http.HttpRequest, args: archivebox.api.v1_cli.UpdateCommandSchema)
:canonical: archivebox.api.v1_cli.cli_update
```{autodoc2-docstring} archivebox.api.v1_cli.cli_update
```
````
````{py:function} cli_schedule(request, args: archivebox.api.v1_cli.ScheduleCommandSchema)
````{py:function} cli_schedule(request: django.http.HttpRequest, args: archivebox.api.v1_cli.ScheduleCommandSchema)
:canonical: archivebox.api.v1_cli.cli_schedule
```{autodoc2-docstring} archivebox.api.v1_cli.cli_schedule
```
````
````{py:function} cli_search(request, args: archivebox.api.v1_cli.ListCommandSchema)
````{py:function} cli_search(request: django.http.HttpRequest, args: archivebox.api.v1_cli.ListCommandSchema)
:canonical: archivebox.api.v1_cli.cli_search
```{autodoc2-docstring} archivebox.api.v1_cli.cli_search
```
````
````{py:function} cli_remove(request, args: archivebox.api.v1_cli.RemoveCommandSchema)
````{py:function} cli_remove(request: django.http.HttpRequest, args: archivebox.api.v1_cli.RemoveCommandSchema)
:canonical: archivebox.api.v1_cli.cli_remove
```{autodoc2-docstring} archivebox.api.v1_cli.cli_remove

File diff suppressed because it is too large Load Diff

View File

@ -47,6 +47,22 @@
- ```{autodoc2-docstring} archivebox.api.v1_crawls.get_crawl
:summary:
```
* - {py:obj}`crawl_file <archivebox.api.v1_crawls.crawl_file>`
- ```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file
:summary:
```
* - {py:obj}`crawl_file_root <archivebox.api.v1_crawls.crawl_file_root>`
- ```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file_root
:summary:
```
* - {py:obj}`crawl_file_nested_1 <archivebox.api.v1_crawls.crawl_file_nested_1>`
- ```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file_nested_1
:summary:
```
* - {py:obj}`crawl_file_nested_2 <archivebox.api.v1_crawls.crawl_file_nested_2>`
- ```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file_nested_2
:summary:
```
* - {py:obj}`patch_crawl <archivebox.api.v1_crawls.patch_crawl>`
- ```{autodoc2-docstring} archivebox.api.v1_crawls.patch_crawl
:summary:
@ -174,6 +190,17 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:attribute} is_paused
:canonical: archivebox.api.v1_crawls.CrawlSchema.is_paused
:type: bool
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_crawls.CrawlSchema.is_paused
```
````
````{py:attribute} urls
:canonical: archivebox.api.v1_crawls.CrawlSchema.urls
:type: str
@ -236,6 +263,15 @@ Bases: {py:obj}`ninja.Schema`
````
````{py:method} resolve_config(obj)
:canonical: archivebox.api.v1_crawls.CrawlSchema.resolve_config
:staticmethod:
```{autodoc2-docstring} archivebox.api.v1_crawls.CrawlSchema.resolve_config
```
````
````{py:method} resolve_snapshots(obj, context)
:canonical: archivebox.api.v1_crawls.CrawlSchema.resolve_snapshots
:staticmethod:
@ -252,6 +288,17 @@ Bases: {py:obj}`ninja.Schema`
Bases: {py:obj}`ninja.Schema`
````{py:attribute} action
:canonical: archivebox.api.v1_crawls.CrawlUpdateSchema.action
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_crawls.CrawlUpdateSchema.action
```
````
````{py:attribute} status
:canonical: archivebox.api.v1_crawls.CrawlUpdateSchema.status
:type: str | None
@ -276,7 +323,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} tags
:canonical: archivebox.api.v1_crawls.CrawlUpdateSchema.tags
:type: typing.Optional[typing.List[str]]
:type: list[str] | None
:value: >
None
@ -305,7 +352,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} urls
:canonical: archivebox.api.v1_crawls.CrawlCreateSchema.urls
:type: typing.List[str]
:type: list[str]
:value: >
None
@ -327,7 +374,7 @@ Bases: {py:obj}`ninja.Schema`
````{py:attribute} tags
:canonical: archivebox.api.v1_crawls.CrawlCreateSchema.tags
:type: typing.Optional[typing.List[str]]
:type: list[str] | None
:value: >
None
@ -430,42 +477,70 @@ Bases: {py:obj}`ninja.Schema`
`````
````{py:function} normalize_tag_list(tags: typing.Optional[typing.List[str]] = None, tags_str: str = '') -> typing.List[str]
````{py:function} normalize_tag_list(tags: list[str] | None = None, tags_str: str = '') -> list[str]
:canonical: archivebox.api.v1_crawls.normalize_tag_list
```{autodoc2-docstring} archivebox.api.v1_crawls.normalize_tag_list
```
````
````{py:function} get_crawls(request)
````{py:function} get_crawls(request: django.http.HttpRequest)
:canonical: archivebox.api.v1_crawls.get_crawls
```{autodoc2-docstring} archivebox.api.v1_crawls.get_crawls
```
````
````{py:function} create_crawl(request, data: archivebox.api.v1_crawls.CrawlCreateSchema)
````{py:function} create_crawl(request: django.http.HttpRequest, data: archivebox.api.v1_crawls.CrawlCreateSchema)
:canonical: archivebox.api.v1_crawls.create_crawl
```{autodoc2-docstring} archivebox.api.v1_crawls.create_crawl
```
````
````{py:function} get_crawl(request, crawl_id: str, as_rss: bool = False, with_snapshots: bool = False, with_archiveresults: bool = False)
````{py:function} get_crawl(request: django.http.HttpRequest, crawl_id: str, as_rss: bool = False, with_snapshots: bool = False, with_archiveresults: bool = False)
:canonical: archivebox.api.v1_crawls.get_crawl
```{autodoc2-docstring} archivebox.api.v1_crawls.get_crawl
```
````
````{py:function} patch_crawl(request, crawl_id: str, data: archivebox.api.v1_crawls.CrawlUpdateSchema)
````{py:function} crawl_file(request: django.http.HttpRequest, crawl_id: str, path: str)
:canonical: archivebox.api.v1_crawls.crawl_file
```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file
```
````
````{py:function} crawl_file_root(request: django.http.HttpRequest, crawl_id: str, filename: str)
:canonical: archivebox.api.v1_crawls.crawl_file_root
```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file_root
```
````
````{py:function} crawl_file_nested_1(request: django.http.HttpRequest, crawl_id: str, folder: str, filename: str)
:canonical: archivebox.api.v1_crawls.crawl_file_nested_1
```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file_nested_1
```
````
````{py:function} crawl_file_nested_2(request: django.http.HttpRequest, crawl_id: str, folder: str, subfolder: str, filename: str)
:canonical: archivebox.api.v1_crawls.crawl_file_nested_2
```{autodoc2-docstring} archivebox.api.v1_crawls.crawl_file_nested_2
```
````
````{py:function} patch_crawl(request: django.http.HttpRequest, crawl_id: str, data: archivebox.api.v1_crawls.CrawlUpdateSchema)
:canonical: archivebox.api.v1_crawls.patch_crawl
```{autodoc2-docstring} archivebox.api.v1_crawls.patch_crawl
```
````
````{py:function} delete_crawl(request, crawl_id: str)
````{py:function} delete_crawl(request: django.http.HttpRequest, crawl_id: str)
:canonical: archivebox.api.v1_crawls.delete_crawl
```{autodoc2-docstring} archivebox.api.v1_crawls.delete_crawl

View File

@ -317,9 +317,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} id
:canonical: archivebox.api.v1_machine.MachineFilterSchema.id
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('id__startswith')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.MachineFilterSchema.id
```
@ -328,9 +328,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} hostname
:canonical: archivebox.api.v1_machine.MachineFilterSchema.hostname
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('hostname__icontains')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.MachineFilterSchema.hostname
```
@ -339,9 +339,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} os_platform
:canonical: archivebox.api.v1_machine.MachineFilterSchema.os_platform
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('os_platform__icontains')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.MachineFilterSchema.os_platform
```
@ -350,9 +350,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} os_arch
:canonical: archivebox.api.v1_machine.MachineFilterSchema.os_arch
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('os_arch')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.MachineFilterSchema.os_arch
```
@ -361,9 +361,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} hw_in_docker
:canonical: archivebox.api.v1_machine.MachineFilterSchema.hw_in_docker
:type: typing.Optional[bool]
:type: typing.Annotated[bool | None, FilterLookup('hw_in_docker')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.MachineFilterSchema.hw_in_docker
```
@ -372,9 +372,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} hw_in_vm
:canonical: archivebox.api.v1_machine.MachineFilterSchema.hw_in_vm
:type: typing.Optional[bool]
:type: typing.Annotated[bool | None, FilterLookup('hw_in_vm')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.MachineFilterSchema.hw_in_vm
```
@ -383,9 +383,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} bin_providers
:canonical: archivebox.api.v1_machine.MachineFilterSchema.bin_providers
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('bin_providers__icontains')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.MachineFilterSchema.bin_providers
```
@ -611,9 +611,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} id
:canonical: archivebox.api.v1_machine.BinaryFilterSchema.id
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('id__startswith')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.BinaryFilterSchema.id
```
@ -622,9 +622,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} name
:canonical: archivebox.api.v1_machine.BinaryFilterSchema.name
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('name__icontains')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.BinaryFilterSchema.name
```
@ -633,9 +633,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} binprovider
:canonical: archivebox.api.v1_machine.BinaryFilterSchema.binprovider
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('binprovider')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.BinaryFilterSchema.binprovider
```
@ -644,9 +644,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} status
:canonical: archivebox.api.v1_machine.BinaryFilterSchema.status
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('status')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.BinaryFilterSchema.status
```
@ -655,9 +655,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} machine_id
:canonical: archivebox.api.v1_machine.BinaryFilterSchema.machine_id
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('machine_id__startswith')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.BinaryFilterSchema.machine_id
```
@ -666,9 +666,9 @@ Bases: {py:obj}`ninja.FilterSchema`
````{py:attribute} version
:canonical: archivebox.api.v1_machine.BinaryFilterSchema.version
:type: typing.Optional[str]
:type: typing.Annotated[str | None, FilterLookup('version__icontains')]
:value: >
'Field(...)'
None
```{autodoc2-docstring} archivebox.api.v1_machine.BinaryFilterSchema.version
```
@ -677,42 +677,42 @@ Bases: {py:obj}`ninja.FilterSchema`
`````
````{py:function} get_machines(request, filters: archivebox.api.v1_machine.MachineFilterSchema = Query(...))
````{py:function} get_machines(request: django.http.HttpRequest, filters: ninja.Query[archivebox.api.v1_machine.MachineFilterSchema])
:canonical: archivebox.api.v1_machine.get_machines
```{autodoc2-docstring} archivebox.api.v1_machine.get_machines
```
````
````{py:function} get_current_machine(request)
````{py:function} get_current_machine(request: django.http.HttpRequest)
:canonical: archivebox.api.v1_machine.get_current_machine
```{autodoc2-docstring} archivebox.api.v1_machine.get_current_machine
```
````
````{py:function} get_machine(request, machine_id: str)
````{py:function} get_machine(request: django.http.HttpRequest, machine_id: str)
:canonical: archivebox.api.v1_machine.get_machine
```{autodoc2-docstring} archivebox.api.v1_machine.get_machine
```
````
````{py:function} get_binaries(request, filters: archivebox.api.v1_machine.BinaryFilterSchema = Query(...))
````{py:function} get_binaries(request: django.http.HttpRequest, filters: ninja.Query[archivebox.api.v1_machine.BinaryFilterSchema])
:canonical: archivebox.api.v1_machine.get_binaries
```{autodoc2-docstring} archivebox.api.v1_machine.get_binaries
```
````
````{py:function} get_binary(request, binary_id: str)
````{py:function} get_binary(request: django.http.HttpRequest, binary_id: str)
:canonical: archivebox.api.v1_machine.get_binary
```{autodoc2-docstring} archivebox.api.v1_machine.get_binary
```
````
````{py:function} get_binaries_by_name(request, name: str)
````{py:function} get_binaries_by_name(request: django.http.HttpRequest, name: str)
:canonical: archivebox.api.v1_machine.get_binaries_by_name
```{autodoc2-docstring} archivebox.api.v1_machine.get_binaries_by_name

View File

@ -0,0 +1,405 @@
# {py:mod}`archivebox.api.v1_personas`
```{py:module} archivebox.api.v1_personas
```
```{autodoc2-docstring} archivebox.api.v1_personas
:allowtitles:
```
## Module Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`PersonaBrowserSettingsSchema <archivebox.api.v1_personas.PersonaBrowserSettingsSchema>`
-
* - {py:obj}`PersonaSyncSchema <archivebox.api.v1_personas.PersonaSyncSchema>`
-
* - {py:obj}`PersonaSchema <archivebox.api.v1_personas.PersonaSchema>`
-
* - {py:obj}`PersonaSyncResponseSchema <archivebox.api.v1_personas.PersonaSyncResponseSchema>`
-
````
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`browser_settings_to_config <archivebox.api.v1_personas.browser_settings_to_config>`
- ```{autodoc2-docstring} archivebox.api.v1_personas.browser_settings_to_config
:summary:
```
* - {py:obj}`find_persona <archivebox.api.v1_personas.find_persona>`
- ```{autodoc2-docstring} archivebox.api.v1_personas.find_persona
:summary:
```
* - {py:obj}`get_personas <archivebox.api.v1_personas.get_personas>`
- ```{autodoc2-docstring} archivebox.api.v1_personas.get_personas
:summary:
```
* - {py:obj}`sync_persona <archivebox.api.v1_personas.sync_persona>`
- ```{autodoc2-docstring} archivebox.api.v1_personas.sync_persona
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`router <archivebox.api.v1_personas.router>`
- ```{autodoc2-docstring} archivebox.api.v1_personas.router
:summary:
```
````
### API
````{py:data} router
:canonical: archivebox.api.v1_personas.router
:value: >
'Router(...)'
```{autodoc2-docstring} archivebox.api.v1_personas.router
```
````
`````{py:class} PersonaBrowserSettingsSchema(/, **data: typing.Any)
:canonical: archivebox.api.v1_personas.PersonaBrowserSettingsSchema
Bases: {py:obj}`ninja.Schema`
````{py:attribute} user_agent
:canonical: archivebox.api.v1_personas.PersonaBrowserSettingsSchema.user_agent
:type: str
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaBrowserSettingsSchema.user_agent
```
````
````{py:attribute} viewport_size
:canonical: archivebox.api.v1_personas.PersonaBrowserSettingsSchema.viewport_size
:type: str
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaBrowserSettingsSchema.viewport_size
```
````
````{py:attribute} viewport_device_scale_factor
:canonical: archivebox.api.v1_personas.PersonaBrowserSettingsSchema.viewport_device_scale_factor
:type: float | None
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaBrowserSettingsSchema.viewport_device_scale_factor
```
````
````{py:attribute} language
:canonical: archivebox.api.v1_personas.PersonaBrowserSettingsSchema.language
:type: str
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaBrowserSettingsSchema.language
```
````
````{py:attribute} timezone
:canonical: archivebox.api.v1_personas.PersonaBrowserSettingsSchema.timezone
:type: str
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaBrowserSettingsSchema.timezone
```
````
````{py:attribute} geolocation
:canonical: archivebox.api.v1_personas.PersonaBrowserSettingsSchema.geolocation
:type: dict[str, typing.Any] | None
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaBrowserSettingsSchema.geolocation
```
````
`````
`````{py:class} PersonaSyncSchema(/, **data: typing.Any)
:canonical: archivebox.api.v1_personas.PersonaSyncSchema
Bases: {py:obj}`ninja.Schema`
````{py:attribute} extension_persona_id
:canonical: archivebox.api.v1_personas.PersonaSyncSchema.extension_persona_id
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncSchema.extension_persona_id
```
````
````{py:attribute} name
:canonical: archivebox.api.v1_personas.PersonaSyncSchema.name
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncSchema.name
```
````
````{py:attribute} settings
:canonical: archivebox.api.v1_personas.PersonaSyncSchema.settings
:type: archivebox.api.v1_personas.PersonaBrowserSettingsSchema
:value: >
'Field(...)'
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncSchema.settings
```
````
````{py:attribute} cookies_txt
:canonical: archivebox.api.v1_personas.PersonaSyncSchema.cookies_txt
:type: str
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncSchema.cookies_txt
```
````
````{py:attribute} auth_json
:canonical: archivebox.api.v1_personas.PersonaSyncSchema.auth_json
:type: dict[str, typing.Any]
:value: >
'Field(...)'
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncSchema.auth_json
```
````
`````
`````{py:class} PersonaSchema(/, **data: typing.Any)
:canonical: archivebox.api.v1_personas.PersonaSchema
Bases: {py:obj}`ninja.Schema`
````{py:attribute} TYPE
:canonical: archivebox.api.v1_personas.PersonaSchema.TYPE
:type: str
:value: >
'personas.models.Persona'
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.TYPE
```
````
````{py:attribute} id
:canonical: archivebox.api.v1_personas.PersonaSchema.id
:type: uuid.UUID
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.id
```
````
````{py:attribute} name
:canonical: archivebox.api.v1_personas.PersonaSchema.name
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.name
```
````
````{py:attribute} created_at
:canonical: archivebox.api.v1_personas.PersonaSchema.created_at
:type: datetime.datetime
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.created_at
```
````
````{py:attribute} created_by_id
:canonical: archivebox.api.v1_personas.PersonaSchema.created_by_id
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.created_by_id
```
````
````{py:attribute} created_by_username
:canonical: archivebox.api.v1_personas.PersonaSchema.created_by_username
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.created_by_username
```
````
````{py:attribute} config
:canonical: archivebox.api.v1_personas.PersonaSchema.config
:type: dict[str, typing.Any] | None
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.config
```
````
````{py:method} resolve_created_by_id(obj)
:canonical: archivebox.api.v1_personas.PersonaSchema.resolve_created_by_id
:staticmethod:
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.resolve_created_by_id
```
````
````{py:method} resolve_created_by_username(obj) -> str
:canonical: archivebox.api.v1_personas.PersonaSchema.resolve_created_by_username
:staticmethod:
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.resolve_created_by_username
```
````
````{py:method} resolve_config(obj)
:canonical: archivebox.api.v1_personas.PersonaSchema.resolve_config
:staticmethod:
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSchema.resolve_config
```
````
`````
`````{py:class} PersonaSyncResponseSchema(/, **data: typing.Any)
:canonical: archivebox.api.v1_personas.PersonaSyncResponseSchema
Bases: {py:obj}`ninja.Schema`
````{py:attribute} success
:canonical: archivebox.api.v1_personas.PersonaSyncResponseSchema.success
:type: bool
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncResponseSchema.success
```
````
````{py:attribute} created
:canonical: archivebox.api.v1_personas.PersonaSyncResponseSchema.created
:type: bool
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncResponseSchema.created
```
````
````{py:attribute} persona
:canonical: archivebox.api.v1_personas.PersonaSyncResponseSchema.persona
:type: archivebox.api.v1_personas.PersonaSchema
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncResponseSchema.persona
```
````
````{py:attribute} cookies_file_written
:canonical: archivebox.api.v1_personas.PersonaSyncResponseSchema.cookies_file_written
:type: bool
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncResponseSchema.cookies_file_written
```
````
````{py:attribute} auth_file_written
:canonical: archivebox.api.v1_personas.PersonaSyncResponseSchema.auth_file_written
:type: bool
:value: >
None
```{autodoc2-docstring} archivebox.api.v1_personas.PersonaSyncResponseSchema.auth_file_written
```
````
`````
````{py:function} browser_settings_to_config(extension_persona_id: str, settings: archivebox.api.v1_personas.PersonaBrowserSettingsSchema) -> dict[str, typing.Any]
:canonical: archivebox.api.v1_personas.browser_settings_to_config
```{autodoc2-docstring} archivebox.api.v1_personas.browser_settings_to_config
```
````
````{py:function} find_persona(extension_persona_id: str, name: str) -> archivebox.personas.models.Persona | None
:canonical: archivebox.api.v1_personas.find_persona
```{autodoc2-docstring} archivebox.api.v1_personas.find_persona
```
````
````{py:function} get_personas(request: django.http.HttpRequest)
:canonical: archivebox.api.v1_personas.get_personas
```{autodoc2-docstring} archivebox.api.v1_personas.get_personas
```
````
````{py:function} sync_persona(request: django.http.HttpRequest, payload: archivebox.api.v1_personas.PersonaSyncSchema)
:canonical: archivebox.api.v1_personas.sync_persona
```{autodoc2-docstring} archivebox.api.v1_personas.sync_persona
```
````

View File

@ -0,0 +1,64 @@
# {py:mod}`archivebox.api.webhooks`
```{py:module} archivebox.api.webhooks
```
```{autodoc2-docstring} archivebox.api.webhooks
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`warning_error_handler <archivebox.api.webhooks.warning_error_handler>`
- ```{autodoc2-docstring} archivebox.api.webhooks.warning_error_handler
:summary:
```
* - {py:obj}`transaction_on_commit_task_handler <archivebox.api.webhooks.transaction_on_commit_task_handler>`
- ```{autodoc2-docstring} archivebox.api.webhooks.transaction_on_commit_task_handler
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`logger <archivebox.api.webhooks.logger>`
- ```{autodoc2-docstring} archivebox.api.webhooks.logger
:summary:
```
````
### API
````{py:data} logger
:canonical: archivebox.api.webhooks.logger
:value: >
'getLogger(...)'
```{autodoc2-docstring} archivebox.api.webhooks.logger
```
````
````{py:function} warning_error_handler(hook: typing.Any, error: Exception | None) -> None
:canonical: archivebox.api.webhooks.warning_error_handler
```{autodoc2-docstring} archivebox.api.webhooks.warning_error_handler
```
````
````{py:function} transaction_on_commit_task_handler(hook: collections.abc.Callable[..., None], **kwargs: typing.Any) -> None
:canonical: archivebox.api.webhooks.transaction_on_commit_task_handler
```{autodoc2-docstring} archivebox.api.webhooks.transaction_on_commit_task_handler
```
````

View File

@ -15,6 +15,12 @@
:class: autosummary longtable
:align: left
* - {py:obj}`HexUUIDConverter <archivebox.base_models.admin.HexUUIDConverter>`
- ```{autodoc2-docstring} archivebox.base_models.admin.HexUUIDConverter
:summary:
```
* - {py:obj}`ConfigOption <archivebox.base_models.admin.ConfigOption>`
-
* - {py:obj}`KeyValueWidget <archivebox.base_models.admin.KeyValueWidget>`
- ```{autodoc2-docstring} archivebox.base_models.admin.KeyValueWidget
:summary:
@ -29,6 +35,135 @@
### API
`````{py:class} HexUUIDConverter
:canonical: archivebox.base_models.admin.HexUUIDConverter
```{autodoc2-docstring} archivebox.base_models.admin.HexUUIDConverter
```
````{py:attribute} regex
:canonical: archivebox.base_models.admin.HexUUIDConverter.regex
:value: >
'[0-9a-fA-F]{32}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'
```{autodoc2-docstring} archivebox.base_models.admin.HexUUIDConverter.regex
```
````
````{py:method} to_python(value: str) -> str
:canonical: archivebox.base_models.admin.HexUUIDConverter.to_python
```{autodoc2-docstring} archivebox.base_models.admin.HexUUIDConverter.to_python
```
````
````{py:method} to_url(value) -> str
:canonical: archivebox.base_models.admin.HexUUIDConverter.to_url
```{autodoc2-docstring} archivebox.base_models.admin.HexUUIDConverter.to_url
```
````
`````
`````{py:class} ConfigOption()
:canonical: archivebox.base_models.admin.ConfigOption
Bases: {py:obj}`typing.TypedDict`
````{py:attribute} plugin
:canonical: archivebox.base_models.admin.ConfigOption.plugin
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.plugin
```
````
````{py:attribute} type
:canonical: archivebox.base_models.admin.ConfigOption.type
:type: str | list[str]
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.type
```
````
````{py:attribute} default
:canonical: archivebox.base_models.admin.ConfigOption.default
:type: object
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.default
```
````
````{py:attribute} description
:canonical: archivebox.base_models.admin.ConfigOption.description
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.description
```
````
````{py:attribute} enum
:canonical: archivebox.base_models.admin.ConfigOption.enum
:type: typing.NotRequired[list[object]]
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.enum
```
````
````{py:attribute} pattern
:canonical: archivebox.base_models.admin.ConfigOption.pattern
:type: typing.NotRequired[str]
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.pattern
```
````
````{py:attribute} minimum
:canonical: archivebox.base_models.admin.ConfigOption.minimum
:type: typing.NotRequired[int | float]
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.minimum
```
````
````{py:attribute} maximum
:canonical: archivebox.base_models.admin.ConfigOption.maximum
:type: typing.NotRequired[int | float]
:value: >
None
```{autodoc2-docstring} archivebox.base_models.admin.ConfigOption.maximum
```
````
`````
``````{py:class} KeyValueWidget(attrs=None)
:canonical: archivebox.base_models.admin.KeyValueWidget
@ -45,8 +180,7 @@ Bases: {py:obj}`django.forms.Widget`
````{py:attribute} template_name
:canonical: archivebox.base_models.admin.KeyValueWidget.template_name
:value: >
None
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.base_models.admin.KeyValueWidget.template_name
```
@ -81,7 +215,7 @@ Bases: {py:obj}`django.forms.Widget`
`````
````{py:method} _get_config_options()
````{py:method} _get_config_options() -> dict[str, archivebox.base_models.admin.ConfigOption]
:canonical: archivebox.base_models.admin.KeyValueWidget._get_config_options
```{autodoc2-docstring} archivebox.base_models.admin.KeyValueWidget._get_config_options
@ -89,12 +223,20 @@ Bases: {py:obj}`django.forms.Widget`
````
````{py:method} render(name, value, attrs=None, renderer=None)
````{py:method} _parse_value(value: object) -> dict[str, object]
:canonical: archivebox.base_models.admin.KeyValueWidget._parse_value
```{autodoc2-docstring} archivebox.base_models.admin.KeyValueWidget._parse_value
```
````
````{py:method} render(name: str, value: object, attrs: collections.abc.Mapping[str, str] | None = None, renderer: django.forms.renderers.BaseRenderer | None = None) -> django.utils.safestring.SafeString
:canonical: archivebox.base_models.admin.KeyValueWidget.render
````
````{py:method} _render_row(widget_id, idx, key, value)
````{py:method} _render_row(widget_id: str, key: str, value: str) -> str
:canonical: archivebox.base_models.admin.KeyValueWidget._render_row
```{autodoc2-docstring} archivebox.base_models.admin.KeyValueWidget._render_row
@ -102,7 +244,7 @@ Bases: {py:obj}`django.forms.Widget`
````
````{py:method} _escape(s)
````{py:method} _escape(s: object) -> str
:canonical: archivebox.base_models.admin.KeyValueWidget._escape
```{autodoc2-docstring} archivebox.base_models.admin.KeyValueWidget._escape
@ -110,20 +252,28 @@ Bases: {py:obj}`django.forms.Widget`
````
````{py:method} value_from_datadict(data, files, name)
````{py:method} value_from_datadict(data: django.http.QueryDict | collections.abc.Mapping[str, object], files: object, name: str) -> str
:canonical: archivebox.base_models.admin.KeyValueWidget.value_from_datadict
````
``````
`````{py:class} ConfigEditorMixin
`````{py:class} ConfigEditorMixin(model, admin_site)
:canonical: archivebox.base_models.admin.ConfigEditorMixin
Bases: {py:obj}`django.contrib.admin.ModelAdmin`
```{autodoc2-docstring} archivebox.base_models.admin.ConfigEditorMixin
```
````{py:method} formfield_for_dbfield(db_field, request, **kwargs)
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.base_models.admin.ConfigEditorMixin.__init__
```
````{py:method} formfield_for_dbfield(db_field: django.db.models.Field, request: django.http.HttpRequest, **kwargs: object) -> django.forms.Field | None
:canonical: archivebox.base_models.admin.ConfigEditorMixin.formfield_for_dbfield
```{autodoc2-docstring} archivebox.base_models.admin.ConfigEditorMixin.formfield_for_dbfield
@ -131,6 +281,14 @@ Bases: {py:obj}`django.forms.Widget`
````
````{py:method} save_model(request: django.http.HttpRequest, obj, form, change)
:canonical: archivebox.base_models.admin.ConfigEditorMixin.save_model
```{autodoc2-docstring} archivebox.base_models.admin.ConfigEditorMixin.save_model
```
````
`````
`````{py:class} BaseModelAdmin(model, admin_site)
@ -158,9 +316,35 @@ Bases: {py:obj}`django_object_actions.DjangoObjectActions`, {py:obj}`django.cont
````
````{py:method} get_form(request, obj=None, **kwargs)
````{py:attribute} show_search_mode_selector
:canonical: archivebox.base_models.admin.BaseModelAdmin.show_search_mode_selector
:value: >
False
```{autodoc2-docstring} archivebox.base_models.admin.BaseModelAdmin.show_search_mode_selector
```
````
````{py:method} get_default_search_mode() -> str
:canonical: archivebox.base_models.admin.BaseModelAdmin.get_default_search_mode
```{autodoc2-docstring} archivebox.base_models.admin.BaseModelAdmin.get_default_search_mode
```
````
````{py:method} get_form(request: django.http.HttpRequest, obj: django.db.models.Model | None = None, change: bool = False, **kwargs: object)
:canonical: archivebox.base_models.admin.BaseModelAdmin.get_form
````
````{py:method} get_urls()
:canonical: archivebox.base_models.admin.BaseModelAdmin.get_urls
```{autodoc2-docstring} archivebox.base_models.admin.BaseModelAdmin.get_urls
```
````
`````

View File

@ -33,6 +33,8 @@
- ```{autodoc2-docstring} archivebox.base_models.models.ModelWithConfig
:summary:
```
* - {py:obj}`ModelWithDeleteAfter <archivebox.base_models.models.ModelWithDeleteAfter>`
-
* - {py:obj}`ModelWithOutputDir <archivebox.base_models.models.ModelWithOutputDir>`
-
````
@ -141,7 +143,7 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
`````
````{py:method} __str__()
````{py:method} __str__() -> str
:canonical: archivebox.base_models.models.ModelWithUUID.__str__
````
@ -202,8 +204,7 @@ Bases: {py:obj}`django.db.models.Model`
`````{py:class} Meta
:canonical: archivebox.base_models.models.ModelWithNotes.Meta
```{autodoc2-docstring} archivebox.base_models.models.ModelWithNotes.Meta
```
Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````{py:attribute} abstract
:canonical: archivebox.base_models.models.ModelWithNotes.Meta.abstract
@ -256,8 +257,7 @@ Bases: {py:obj}`django.db.models.Model`
`````{py:class} Meta
:canonical: archivebox.base_models.models.ModelWithHealthStats.Meta
```{autodoc2-docstring} archivebox.base_models.models.ModelWithHealthStats.Meta
```
Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````{py:attribute} abstract
:canonical: archivebox.base_models.models.ModelWithHealthStats.Meta.abstract
@ -317,8 +317,7 @@ Bases: {py:obj}`django.db.models.Model`
`````{py:class} Meta
:canonical: archivebox.base_models.models.ModelWithConfig.Meta
```{autodoc2-docstring} archivebox.base_models.models.ModelWithConfig.Meta
```
Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````{py:attribute} abstract
:canonical: archivebox.base_models.models.ModelWithConfig.Meta.abstract
@ -334,6 +333,90 @@ Bases: {py:obj}`django.db.models.Model`
``````
``````{py:class} ModelWithDeleteAfter(*args, **kwargs)
:canonical: archivebox.base_models.models.ModelWithDeleteAfter
Bases: {py:obj}`django.db.models.Model`
````{py:attribute} delete_after_final_statuses
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.delete_after_final_statuses
:type: tuple[str, ...]
:value: >
()
```{autodoc2-docstring} archivebox.base_models.models.ModelWithDeleteAfter.delete_after_final_statuses
```
````
````{py:attribute} delete_at
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.delete_at
:value: >
'DateTimeField(...)'
```{autodoc2-docstring} archivebox.base_models.models.ModelWithDeleteAfter.delete_at
```
````
`````{py:class} Meta
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.Meta
Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````{py:attribute} abstract
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.Meta.abstract
:value: >
True
```{autodoc2-docstring} archivebox.base_models.models.ModelWithDeleteAfter.Meta.abstract
```
````
`````
````{py:method} save(*args, **kwargs)
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.save
````
````{py:method} get_delete_after_config_value()
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.get_delete_after_config_value
```{autodoc2-docstring} archivebox.base_models.models.ModelWithDeleteAfter.get_delete_after_config_value
```
````
````{py:method} set_delete_at_from_config(config_value=None) -> bool
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.set_delete_at_from_config
```{autodoc2-docstring} archivebox.base_models.models.ModelWithDeleteAfter.set_delete_at_from_config
```
````
````{py:method} missing_delete_at_candidates()
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.missing_delete_at_candidates
:classmethod:
```{autodoc2-docstring} archivebox.base_models.models.ModelWithDeleteAfter.missing_delete_at_candidates
```
````
````{py:method} delete_expired(*, batch_size: int = 100, backfill_missing: bool = True) -> int
:canonical: archivebox.base_models.models.ModelWithDeleteAfter.delete_expired
:classmethod:
```{autodoc2-docstring} archivebox.base_models.models.ModelWithDeleteAfter.delete_expired
```
````
``````
``````{py:class} ModelWithOutputDir(*args, **kwargs)
:canonical: archivebox.base_models.models.ModelWithOutputDir
@ -342,8 +425,7 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithUUID`
`````{py:class} Meta
:canonical: archivebox.base_models.models.ModelWithOutputDir.Meta
```{autodoc2-docstring} archivebox.base_models.models.ModelWithOutputDir.Meta
```
Bases: {py:obj}`archivebox.base_models.models.ModelWithUUID`
````{py:attribute} abstract
:canonical: archivebox.base_models.models.ModelWithOutputDir.Meta.abstract
@ -357,6 +439,16 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithUUID`
`````
````{py:attribute} _delete_signal_registered
:canonical: archivebox.base_models.models.ModelWithOutputDir._delete_signal_registered
:value: >
False
```{autodoc2-docstring} archivebox.base_models.models.ModelWithOutputDir._delete_signal_registered
```
````
````{py:method} save(*args, **kwargs)
:canonical: archivebox.base_models.models.ModelWithOutputDir.save
@ -399,4 +491,39 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithUUID`
````
````{py:method} output_paths_for_delete() -> tuple[pathlib.Path, ...]
:canonical: archivebox.base_models.models.ModelWithOutputDir.output_paths_for_delete
```{autodoc2-docstring} archivebox.base_models.models.ModelWithOutputDir.output_paths_for_delete
```
````
````{py:method} validate_output_paths_for_delete(paths) -> tuple[pathlib.Path, ...]
:canonical: archivebox.base_models.models.ModelWithOutputDir.validate_output_paths_for_delete
:classmethod:
```{autodoc2-docstring} archivebox.base_models.models.ModelWithOutputDir.validate_output_paths_for_delete
```
````
````{py:method} delete_output_paths(paths) -> None
:canonical: archivebox.base_models.models.ModelWithOutputDir.delete_output_paths
:classmethod:
```{autodoc2-docstring} archivebox.base_models.models.ModelWithOutputDir.delete_output_paths
```
````
````{py:method} register_delete_signal() -> None
:canonical: archivebox.base_models.models.ModelWithOutputDir.register_delete_signal
:classmethod:
```{autodoc2-docstring} archivebox.base_models.models.ModelWithOutputDir.register_delete_signal
```
````
``````

View File

@ -15,6 +15,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_collect_input_urls <archivebox.cli.archivebox_add._collect_input_urls>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_add._collect_input_urls
:summary:
```
* - {py:obj}`add <archivebox.cli.archivebox_add.add>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_add.add
:summary:
@ -49,7 +53,14 @@
````
````{py:function} add(urls: str | list[str], depth: int | str = 0, tag: str = '', parser: str = 'auto', plugins: str = '', persona: str = 'Default', overwrite: bool = False, update: bool = not ARCHIVING_CONFIG.ONLY_NEW, index_only: bool = False, bg: bool = False, created_by_id: int | None = None) -> django.db.models.QuerySet[archivebox.core.models.Snapshot]
````{py:function} _collect_input_urls(args: tuple[str, ...]) -> list[str]
:canonical: archivebox.cli.archivebox_add._collect_input_urls
```{autodoc2-docstring} archivebox.cli.archivebox_add._collect_input_urls
```
````
````{py:function} add(urls: str | list[str], snapshot_ids: list[str] | None = None, depth: int | str = 0, max_urls: int = 0, crawl_max_size: int | str = 0, crawl_timeout: int = 0, snapshot_max_size: int | str = 0, crawl_max_concurrent_snapshots: int | None = None, tag: str = '', url_allowlist: str = '', url_denylist: str = '', parser: str = 'auto', plugins: str = '', persona: str = 'Default', index_only: bool = False, bg: bool = False, created_by_id: int | None = None, config: dict[str, typing.Any] | None = None) -> tuple[archivebox.crawls.models.Crawl, django.db.models.QuerySet[archivebox.core.models.Snapshot]]
:canonical: archivebox.cli.archivebox_add.add
```{autodoc2-docstring} archivebox.cli.archivebox_add.add

View File

@ -15,6 +15,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`build_archiveresult_request <archivebox.cli.archivebox_archiveresult.build_archiveresult_request>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.build_archiveresult_request
:summary:
```
* - {py:obj}`create_archiveresults <archivebox.cli.archivebox_archiveresult.create_archiveresults>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.create_archiveresults
:summary:
@ -77,21 +81,28 @@
````
````{py:function} create_archiveresults(snapshot_id: typing.Optional[str] = None, plugin: typing.Optional[str] = None, status: str = 'queued') -> int
````{py:function} build_archiveresult_request(snapshot_id: str, plugin: str, hook_name: str = '', status: str = 'queued') -> dict
:canonical: archivebox.cli.archivebox_archiveresult.build_archiveresult_request
```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.build_archiveresult_request
```
````
````{py:function} create_archiveresults(snapshot_id: str | None = None, plugin: str | None = None, status: str = 'queued') -> int
:canonical: archivebox.cli.archivebox_archiveresult.create_archiveresults
```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.create_archiveresults
```
````
````{py:function} list_archiveresults(status: typing.Optional[str] = None, plugin: typing.Optional[str] = None, snapshot_id: typing.Optional[str] = None, limit: typing.Optional[int] = None) -> int
````{py:function} list_archiveresults(status: str | None = None, plugin: str | None = None, snapshot_id: str | None = None, limit: int | None = None) -> int
:canonical: archivebox.cli.archivebox_archiveresult.list_archiveresults
```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.list_archiveresults
```
````
````{py:function} update_archiveresults(status: typing.Optional[str] = None) -> int
````{py:function} update_archiveresults(status: str | None = None) -> int
:canonical: archivebox.cli.archivebox_archiveresult.update_archiveresults
```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.update_archiveresults
@ -112,21 +123,21 @@
```
````
````{py:function} create_cmd(snapshot_id: typing.Optional[str], plugin: typing.Optional[str], status: str)
````{py:function} create_cmd(snapshot_id: str | None, plugin: str | None, status: str)
:canonical: archivebox.cli.archivebox_archiveresult.create_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.create_cmd
```
````
````{py:function} list_cmd(status: typing.Optional[str], plugin: typing.Optional[str], snapshot_id: typing.Optional[str], limit: typing.Optional[int])
````{py:function} list_cmd(status: str | None, plugin: str | None, snapshot_id: str | None, limit: int | None)
:canonical: archivebox.cli.archivebox_archiveresult.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.list_cmd
```
````
````{py:function} update_cmd(status: typing.Optional[str])
````{py:function} update_cmd(status: str | None)
:canonical: archivebox.cli.archivebox_archiveresult.update_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_archiveresult.update_cmd

View File

@ -84,14 +84,14 @@
```
````
````{py:function} list_binaries(name: typing.Optional[str] = None, abspath__icontains: typing.Optional[str] = None, version__icontains: typing.Optional[str] = None, limit: typing.Optional[int] = None) -> int
````{py:function} list_binaries(name: str | None = None, abspath__icontains: str | None = None, version__icontains: str | None = None, limit: int | None = None) -> int
:canonical: archivebox.cli.archivebox_binary.list_binaries
```{autodoc2-docstring} archivebox.cli.archivebox_binary.list_binaries
```
````
````{py:function} update_binaries(version: typing.Optional[str] = None, abspath: typing.Optional[str] = None) -> int
````{py:function} update_binaries(version: str | None = None, abspath: str | None = None) -> int
:canonical: archivebox.cli.archivebox_binary.update_binaries
```{autodoc2-docstring} archivebox.cli.archivebox_binary.update_binaries
@ -119,14 +119,14 @@
```
````
````{py:function} list_cmd(name: typing.Optional[str], abspath__icontains: typing.Optional[str], version__icontains: typing.Optional[str], limit: typing.Optional[int])
````{py:function} list_cmd(name: str | None, abspath__icontains: str | None, version__icontains: str | None, limit: int | None)
:canonical: archivebox.cli.archivebox_binary.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_binary.list_cmd
```
````
````{py:function} update_cmd(version: typing.Optional[str], abspath: typing.Optional[str])
````{py:function} update_cmd(version: str | None, abspath: str | None)
:canonical: archivebox.cli.archivebox_binary.update_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_binary.update_cmd

View File

@ -15,6 +15,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_format_toml <archivebox.cli.archivebox_config._format_toml>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_config._format_toml
:summary:
```
* - {py:obj}`config <archivebox.cli.archivebox_config.config>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_config.config
:summary:
@ -27,6 +31,13 @@
### API
````{py:function} _format_toml(config: dict) -> str
:canonical: archivebox.cli.archivebox_config._format_toml
```{autodoc2-docstring} archivebox.cli.archivebox_config._format_toml
```
````
````{py:function} config(*keys, get: bool = False, set: bool = False, search: bool = False, reset: bool = False, **kwargs) -> None
:canonical: archivebox.cli.archivebox_config.config

View File

@ -77,21 +77,21 @@
````
````{py:function} create_crawl(urls: typing.Iterable[str], depth: int = 0, tag: str = '', status: str = 'queued', created_by_id: typing.Optional[int] = None) -> int
````{py:function} create_crawl(urls: collections.abc.Iterable[str], depth: int = 0, tag: str = '', status: str = 'queued', created_by_id: int | None = None) -> int
:canonical: archivebox.cli.archivebox_crawl.create_crawl
```{autodoc2-docstring} archivebox.cli.archivebox_crawl.create_crawl
```
````
````{py:function} list_crawls(status: typing.Optional[str] = None, urls__icontains: typing.Optional[str] = None, max_depth: typing.Optional[int] = None, limit: typing.Optional[int] = None) -> int
````{py:function} list_crawls(status: str | None = None, urls__icontains: str | None = None, max_depth: int | None = None, limit: int | None = None) -> int
:canonical: archivebox.cli.archivebox_crawl.list_crawls
```{autodoc2-docstring} archivebox.cli.archivebox_crawl.list_crawls
```
````
````{py:function} update_crawls(status: typing.Optional[str] = None, max_depth: typing.Optional[int] = None) -> int
````{py:function} update_crawls(status: str | None = None, max_depth: int | None = None) -> int
:canonical: archivebox.cli.archivebox_crawl.update_crawls
```{autodoc2-docstring} archivebox.cli.archivebox_crawl.update_crawls
@ -119,14 +119,14 @@
```
````
````{py:function} list_cmd(status: typing.Optional[str], urls__icontains: typing.Optional[str], max_depth: typing.Optional[int], limit: typing.Optional[int])
````{py:function} list_cmd(status: str | None, urls__icontains: str | None, max_depth: int | None, limit: int | None)
:canonical: archivebox.cli.archivebox_crawl.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_crawl.list_cmd
```
````
````{py:function} update_cmd(status: typing.Optional[str], max_depth: typing.Optional[int])
````{py:function} update_cmd(status: str | None, max_depth: int | None)
:canonical: archivebox.cli.archivebox_crawl.update_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_crawl.update_cmd

View File

@ -64,7 +64,7 @@
```
````
````{py:function} run_plugins(args: tuple, plugins: str = '', wait: bool = True) -> int
````{py:function} run_plugins(args: tuple, records: list[dict] | None = None, plugins: str = '', wait: bool = True, emit_results: bool = True, show_progress: bool = True) -> int
:canonical: archivebox.cli.archivebox_extract.run_plugins
```{autodoc2-docstring} archivebox.cli.archivebox_extract.run_plugins

View File

@ -15,6 +15,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_command_doc <archivebox.cli.archivebox_help._command_doc>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_help._command_doc
:summary:
```
* - {py:obj}`help <archivebox.cli.archivebox_help.help>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_help.help
:summary:
@ -49,6 +53,13 @@
````
````{py:function} _command_doc(cmd: str, import_path: str) -> str
:canonical: archivebox.cli.archivebox_help._command_doc
```{autodoc2-docstring} archivebox.cli.archivebox_help._command_doc
```
````
````{py:function} help() -> None
:canonical: archivebox.cli.archivebox_help.help

View File

@ -15,6 +15,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_display_data_path <archivebox.cli.archivebox_init._display_data_path>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_init._display_data_path
:summary:
```
* - {py:obj}`init <archivebox.cli.archivebox_init.init>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_init.init
:summary:
@ -27,6 +31,13 @@
### API
````{py:function} _display_data_path(path: pathlib.Path, data_dir: pathlib.Path) -> str
:canonical: archivebox.cli.archivebox_init._display_data_path
```{autodoc2-docstring} archivebox.cli.archivebox_init._display_data_path
```
````
````{py:function} init(force: bool = False, quick: bool = False, install: bool = False) -> None
:canonical: archivebox.cli.archivebox_init.init

View File

@ -45,7 +45,7 @@
````
````{py:function} main(status: typing.Optional[str], url__icontains: typing.Optional[str], url__istartswith: typing.Optional[str], tag: typing.Optional[str], crawl_id: typing.Optional[str], limit: typing.Optional[int]) -> None
````{py:function} main(status: str | None, url__icontains: str | None, url__istartswith: str | None, tag: str | None, crawl_id: str | None, limit: int | None, sort: str | None, csv: str | None, with_headers: bool, search: str | None, query: tuple[str, ...]) -> None
:canonical: archivebox.cli.archivebox_list.main
```{autodoc2-docstring} archivebox.cli.archivebox_list.main

View File

@ -53,7 +53,7 @@
````
````{py:function} list_machines(hostname__icontains: typing.Optional[str] = None, os_platform: typing.Optional[str] = None, limit: typing.Optional[int] = None) -> int
````{py:function} list_machines(hostname__icontains: str | None = None, os_platform: str | None = None, limit: int | None = None) -> int
:canonical: archivebox.cli.archivebox_machine.list_machines
```{autodoc2-docstring} archivebox.cli.archivebox_machine.list_machines
@ -67,7 +67,7 @@
```
````
````{py:function} list_cmd(hostname__icontains: typing.Optional[str], os_platform: typing.Optional[str], limit: typing.Optional[int])
````{py:function} list_cmd(hostname__icontains: str | None, os_platform: str | None, limit: int | None)
:canonical: archivebox.cli.archivebox_machine.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_machine.list_cmd

View File

@ -31,22 +31,6 @@
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona.get_browser_binary
:summary:
```
* - {py:obj}`_parse_netscape_cookies <archivebox.cli.archivebox_persona._parse_netscape_cookies>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona._parse_netscape_cookies
:summary:
```
* - {py:obj}`_write_netscape_cookies <archivebox.cli.archivebox_persona._write_netscape_cookies>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona._write_netscape_cookies
:summary:
```
* - {py:obj}`_merge_netscape_cookies <archivebox.cli.archivebox_persona._merge_netscape_cookies>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona._merge_netscape_cookies
:summary:
```
* - {py:obj}`extract_cookies_via_cdp <archivebox.cli.archivebox_persona.extract_cookies_via_cdp>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona.extract_cookies_via_cdp
:summary:
```
* - {py:obj}`validate_persona_name <archivebox.cli.archivebox_persona.validate_persona_name>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona.validate_persona_name
:summary:
@ -111,10 +95,6 @@
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona.CHROMIUM_BROWSERS
:summary:
```
* - {py:obj}`NETSCAPE_COOKIE_HEADER <archivebox.cli.archivebox_persona.NETSCAPE_COOKIE_HEADER>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_persona.NETSCAPE_COOKIE_HEADER
:summary:
```
````
### API
@ -129,28 +109,28 @@
````
````{py:function} get_chrome_user_data_dir() -> typing.Optional[pathlib.Path]
````{py:function} get_chrome_user_data_dir() -> pathlib.Path | None
:canonical: archivebox.cli.archivebox_persona.get_chrome_user_data_dir
```{autodoc2-docstring} archivebox.cli.archivebox_persona.get_chrome_user_data_dir
```
````
````{py:function} get_brave_user_data_dir() -> typing.Optional[pathlib.Path]
````{py:function} get_brave_user_data_dir() -> pathlib.Path | None
:canonical: archivebox.cli.archivebox_persona.get_brave_user_data_dir
```{autodoc2-docstring} archivebox.cli.archivebox_persona.get_brave_user_data_dir
```
````
````{py:function} get_edge_user_data_dir() -> typing.Optional[pathlib.Path]
````{py:function} get_edge_user_data_dir() -> pathlib.Path | None
:canonical: archivebox.cli.archivebox_persona.get_edge_user_data_dir
```{autodoc2-docstring} archivebox.cli.archivebox_persona.get_edge_user_data_dir
```
````
````{py:function} get_browser_binary(browser: str) -> typing.Optional[str]
````{py:function} get_browser_binary(browser: str) -> str | None
:canonical: archivebox.cli.archivebox_persona.get_browser_binary
```{autodoc2-docstring} archivebox.cli.archivebox_persona.get_browser_binary
@ -177,44 +157,6 @@
````
````{py:data} NETSCAPE_COOKIE_HEADER
:canonical: archivebox.cli.archivebox_persona.NETSCAPE_COOKIE_HEADER
:value: >
['# Netscape HTTP Cookie File', '# https://curl.se/docs/http-cookies.html', '# This file was generat...
```{autodoc2-docstring} archivebox.cli.archivebox_persona.NETSCAPE_COOKIE_HEADER
```
````
````{py:function} _parse_netscape_cookies(path: pathlib.Path) -> OrderedDict[tuple[str, str, str], tuple[str, str, str, str, str, str, str]]
:canonical: archivebox.cli.archivebox_persona._parse_netscape_cookies
```{autodoc2-docstring} archivebox.cli.archivebox_persona._parse_netscape_cookies
```
````
````{py:function} _write_netscape_cookies(path: pathlib.Path, cookies: OrderedDict[tuple[str, str, str], tuple[str, str, str, str, str, str, str]]) -> None
:canonical: archivebox.cli.archivebox_persona._write_netscape_cookies
```{autodoc2-docstring} archivebox.cli.archivebox_persona._write_netscape_cookies
```
````
````{py:function} _merge_netscape_cookies(existing_file: pathlib.Path, new_file: pathlib.Path) -> None
:canonical: archivebox.cli.archivebox_persona._merge_netscape_cookies
```{autodoc2-docstring} archivebox.cli.archivebox_persona._merge_netscape_cookies
```
````
````{py:function} extract_cookies_via_cdp(user_data_dir: pathlib.Path, output_file: pathlib.Path, profile_dir: str | None = None, chrome_binary: str | None = None) -> bool
:canonical: archivebox.cli.archivebox_persona.extract_cookies_via_cdp
```{autodoc2-docstring} archivebox.cli.archivebox_persona.extract_cookies_via_cdp
```
````
````{py:function} validate_persona_name(name: str) -> tuple[bool, str]
:canonical: archivebox.cli.archivebox_persona.validate_persona_name
@ -229,21 +171,21 @@
```
````
````{py:function} create_personas(names: typing.Iterable[str], import_from: typing.Optional[str] = None, profile: typing.Optional[str] = None) -> int
````{py:function} create_personas(names: collections.abc.Iterable[str], import_from: str | None = None, profile: str | None = None) -> int
:canonical: archivebox.cli.archivebox_persona.create_personas
```{autodoc2-docstring} archivebox.cli.archivebox_persona.create_personas
```
````
````{py:function} list_personas(name: typing.Optional[str] = None, name__icontains: typing.Optional[str] = None, limit: typing.Optional[int] = None) -> int
````{py:function} list_personas(name: str | None = None, name__icontains: str | None = None, limit: int | None = None) -> int
:canonical: archivebox.cli.archivebox_persona.list_personas
```{autodoc2-docstring} archivebox.cli.archivebox_persona.list_personas
```
````
````{py:function} update_personas(name: typing.Optional[str] = None) -> int
````{py:function} update_personas(name: str | None = None) -> int
:canonical: archivebox.cli.archivebox_persona.update_personas
```{autodoc2-docstring} archivebox.cli.archivebox_persona.update_personas
@ -264,21 +206,21 @@
```
````
````{py:function} create_cmd(names: tuple, import_from: typing.Optional[str], profile: typing.Optional[str])
````{py:function} create_cmd(names: tuple, import_from: str | None, profile: str | None)
:canonical: archivebox.cli.archivebox_persona.create_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_persona.create_cmd
```
````
````{py:function} list_cmd(name: typing.Optional[str], name__icontains: typing.Optional[str], limit: typing.Optional[int])
````{py:function} list_cmd(name: str | None, name__icontains: str | None, limit: int | None)
:canonical: archivebox.cli.archivebox_persona.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_persona.list_cmd
```
````
````{py:function} update_cmd(name: typing.Optional[str])
````{py:function} update_cmd(name: str | None)
:canonical: archivebox.cli.archivebox_persona.update_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_persona.update_cmd

View File

@ -31,63 +31,24 @@
:class: autosummary longtable
:align: left
* - {py:obj}`CRAWL_MACHINE_DIAGRAM <archivebox.cli.archivebox_pluginmap.CRAWL_MACHINE_DIAGRAM>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.CRAWL_MACHINE_DIAGRAM
:summary:
```
* - {py:obj}`SNAPSHOT_MACHINE_DIAGRAM <archivebox.cli.archivebox_pluginmap.SNAPSHOT_MACHINE_DIAGRAM>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.SNAPSHOT_MACHINE_DIAGRAM
:summary:
```
* - {py:obj}`ARCHIVERESULT_MACHINE_DIAGRAM <archivebox.cli.archivebox_pluginmap.ARCHIVERESULT_MACHINE_DIAGRAM>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.ARCHIVERESULT_MACHINE_DIAGRAM
:summary:
```
* - {py:obj}`BINARY_MACHINE_DIAGRAM <archivebox.cli.archivebox_pluginmap.BINARY_MACHINE_DIAGRAM>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.BINARY_MACHINE_DIAGRAM
* - {py:obj}`EVENT_FLOW_DIAGRAM <archivebox.cli.archivebox_pluginmap.EVENT_FLOW_DIAGRAM>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.EVENT_FLOW_DIAGRAM
:summary:
```
````
### API
````{py:data} CRAWL_MACHINE_DIAGRAM
:canonical: archivebox.cli.archivebox_pluginmap.CRAWL_MACHINE_DIAGRAM
````{py:data} EVENT_FLOW_DIAGRAM
:canonical: archivebox.cli.archivebox_pluginmap.EVENT_FLOW_DIAGRAM
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.CRAWL_MACHINE_DIAGRAM
```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.EVENT_FLOW_DIAGRAM
```
````
````{py:data} SNAPSHOT_MACHINE_DIAGRAM
:canonical: archivebox.cli.archivebox_pluginmap.SNAPSHOT_MACHINE_DIAGRAM
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.SNAPSHOT_MACHINE_DIAGRAM
```
````
````{py:data} ARCHIVERESULT_MACHINE_DIAGRAM
:canonical: archivebox.cli.archivebox_pluginmap.ARCHIVERESULT_MACHINE_DIAGRAM
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.ARCHIVERESULT_MACHINE_DIAGRAM
```
````
````{py:data} BINARY_MACHINE_DIAGRAM
:canonical: archivebox.cli.archivebox_pluginmap.BINARY_MACHINE_DIAGRAM
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.BINARY_MACHINE_DIAGRAM
```
````
````{py:function} pluginmap(show_disabled: bool = False, model: typing.Optional[str] = None, quiet: bool = False) -> dict
````{py:function} pluginmap(show_disabled: bool = False, event: str | None = None, quiet: bool = False) -> dict
:canonical: archivebox.cli.archivebox_pluginmap.pluginmap
```{autodoc2-docstring} archivebox.cli.archivebox_pluginmap.pluginmap

View File

@ -53,7 +53,7 @@
````
````{py:function} list_processes(binary_name: typing.Optional[str] = None, machine_id: typing.Optional[str] = None, limit: typing.Optional[int] = None) -> int
````{py:function} list_processes(binary_name: str | None = None, machine_id: str | None = None, limit: int | None = None) -> int
:canonical: archivebox.cli.archivebox_process.list_processes
```{autodoc2-docstring} archivebox.cli.archivebox_process.list_processes
@ -67,7 +67,7 @@
```
````
````{py:function} list_cmd(binary_name: typing.Optional[str], machine_id: typing.Optional[str], limit: typing.Optional[int])
````{py:function} list_cmd(binary_name: str | None, machine_id: str | None, limit: int | None)
:canonical: archivebox.cli.archivebox_process.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_process.list_cmd

View File

@ -49,7 +49,7 @@
````
````{py:function} remove(filter_patterns: typing.Iterable[str] = (), filter_type: str = 'exact', snapshots: django.db.models.QuerySet | None = None, after: float | None = None, before: float | None = None, yes: bool = False, delete: bool = False, out_dir: pathlib.Path = DATA_DIR) -> django.db.models.QuerySet
````{py:function} remove(filter_patterns: collections.abc.Iterable[str] = (), filter_type: str = 'exact', snapshots: django.db.models.QuerySet | None = None, after: float | None = None, before: float | None = None, yes: bool = False, out_dir: pathlib.Path = DATA_DIR) -> django.db.models.QuerySet
:canonical: archivebox.cli.archivebox_remove.remove
```{autodoc2-docstring} archivebox.cli.archivebox_remove.remove

View File

@ -19,18 +19,18 @@
- ```{autodoc2-docstring} archivebox.cli.archivebox_run.process_stdin_records
:summary:
```
* - {py:obj}`run_orchestrator <archivebox.cli.archivebox_run.run_orchestrator>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_run.run_orchestrator
:summary:
```
* - {py:obj}`run_snapshot_worker <archivebox.cli.archivebox_run.run_snapshot_worker>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_run.run_snapshot_worker
* - {py:obj}`run_runner <archivebox.cli.archivebox_run.run_runner>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_run.run_runner
:summary:
```
* - {py:obj}`main <archivebox.cli.archivebox_run.main>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_run.main
:summary:
```
* - {py:obj}`run_snapshot_worker <archivebox.cli.archivebox_run.run_snapshot_worker>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_run.run_snapshot_worker
:summary:
```
````
### Data
@ -64,10 +64,17 @@
```
````
````{py:function} run_orchestrator(daemon: bool = False) -> int
:canonical: archivebox.cli.archivebox_run.run_orchestrator
````{py:function} run_runner(daemon: bool = False, crawl_id: str | None = None, maintenance_only: bool = False) -> int
:canonical: archivebox.cli.archivebox_run.run_runner
```{autodoc2-docstring} archivebox.cli.archivebox_run.run_orchestrator
```{autodoc2-docstring} archivebox.cli.archivebox_run.run_runner
```
````
````{py:function} main(daemon: bool, crawl_id: str, snapshot_id: str, binary_id: str, maintenance_only: bool)
:canonical: archivebox.cli.archivebox_run.main
```{autodoc2-docstring} archivebox.cli.archivebox_run.main
```
````
@ -77,10 +84,3 @@
```{autodoc2-docstring} archivebox.cli.archivebox_run.run_snapshot_worker
```
````
````{py:function} main(daemon: bool, crawl_id: str, snapshot_id: str, binary_id: str, worker_type: str)
:canonical: archivebox.cli.archivebox_run.main
```{autodoc2-docstring} archivebox.cli.archivebox_run.main
```
````

View File

@ -27,7 +27,7 @@
### API
````{py:function} schedule(add: bool = False, show: bool = False, clear: bool = False, foreground: bool = False, run_all: bool = False, quiet: bool = False, every: str | None = None, tag: str = '', depth: int | str = 0, overwrite: bool = False, update: bool = not ARCHIVING_CONFIG.ONLY_NEW, import_path: str | None = None)
````{py:function} schedule(add: bool = False, show: bool = False, clear: bool = False, foreground: bool = False, run_all: bool = False, quiet: bool = False, every: str | None = None, tag: str = '', depth: int | str = 0, import_path: str | None = None, config: dict[str, object] | None = None)
:canonical: archivebox.cli.archivebox_schedule.schedule
```{autodoc2-docstring} archivebox.cli.archivebox_schedule.schedule

View File

@ -15,6 +15,22 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_apply_pattern_filters <archivebox.cli.archivebox_search._apply_pattern_filters>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_search._apply_pattern_filters
:summary:
```
* - {py:obj}`_snapshots_to_json <archivebox.cli.archivebox_search._snapshots_to_json>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_search._snapshots_to_json
:summary:
```
* - {py:obj}`_snapshots_to_csv <archivebox.cli.archivebox_search._snapshots_to_csv>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_search._snapshots_to_csv
:summary:
```
* - {py:obj}`_snapshots_to_html <archivebox.cli.archivebox_search._snapshots_to_html>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_search._snapshots_to_html
:summary:
```
* - {py:obj}`get_snapshots <archivebox.cli.archivebox_search.get_snapshots>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_search.get_snapshots
:summary:
@ -63,6 +79,7 @@
````{py:data} LINK_FILTERS
:canonical: archivebox.cli.archivebox_search.LINK_FILTERS
:type: dict[str, collections.abc.Callable[[str], django.db.models.Q]]
:value: >
None
@ -81,7 +98,35 @@
````
````{py:function} get_snapshots(snapshots: typing.Optional[django.db.models.QuerySet] = None, filter_patterns: typing.Optional[typing.List[str]] = None, filter_type: str = 'substring', after: typing.Optional[float] = None, before: typing.Optional[float] = None, out_dir: pathlib.Path = DATA_DIR) -> django.db.models.QuerySet
````{py:function} _apply_pattern_filters(snapshots: django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot], filter_patterns: list[str], filter_type: str) -> django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot]
:canonical: archivebox.cli.archivebox_search._apply_pattern_filters
```{autodoc2-docstring} archivebox.cli.archivebox_search._apply_pattern_filters
```
````
````{py:function} _snapshots_to_json(snapshots: django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot], *, with_headers: bool) -> str
:canonical: archivebox.cli.archivebox_search._snapshots_to_json
```{autodoc2-docstring} archivebox.cli.archivebox_search._snapshots_to_json
```
````
````{py:function} _snapshots_to_csv(snapshots: django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot], *, cols: list[str], with_headers: bool) -> str
:canonical: archivebox.cli.archivebox_search._snapshots_to_csv
```{autodoc2-docstring} archivebox.cli.archivebox_search._snapshots_to_csv
```
````
````{py:function} _snapshots_to_html(snapshots: django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot], *, with_headers: bool) -> str
:canonical: archivebox.cli.archivebox_search._snapshots_to_html
```{autodoc2-docstring} archivebox.cli.archivebox_search._snapshots_to_html
```
````
````{py:function} get_snapshots(snapshots: django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot] | None = None, filter_patterns: list[str] | None = None, filter_type: str = 'substring', after: float | None = None, before: float | None = None, out_dir: pathlib.Path = DATA_DIR) -> django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot]
:canonical: archivebox.cli.archivebox_search.get_snapshots
```{autodoc2-docstring} archivebox.cli.archivebox_search.get_snapshots

View File

@ -15,6 +15,30 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_is_ipv4_literal <archivebox.cli.archivebox_server._is_ipv4_literal>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._is_ipv4_literal
:summary:
```
* - {py:obj}`_is_ipv6_literal <archivebox.cli.archivebox_server._is_ipv6_literal>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._is_ipv6_literal
:summary:
```
* - {py:obj}`_bind_host_looks_like_ip <archivebox.cli.archivebox_server._bind_host_looks_like_ip>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._bind_host_looks_like_ip
:summary:
```
* - {py:obj}`_split_bind_spec <archivebox.cli.archivebox_server._split_bind_spec>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._split_bind_spec
:summary:
```
* - {py:obj}`_parse_and_validate_bind_spec <archivebox.cli.archivebox_server._parse_and_validate_bind_spec>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._parse_and_validate_bind_spec
:summary:
```
* - {py:obj}`_print_server_startup_warnings <archivebox.cli.archivebox_server._print_server_startup_warnings>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._print_server_startup_warnings
:summary:
```
* - {py:obj}`server <archivebox.cli.archivebox_server.server>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server.server
:summary:
@ -25,9 +49,101 @@
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_IPV4_RE <archivebox.cli.archivebox_server._IPV4_RE>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._IPV4_RE
:summary:
```
* - {py:obj}`_IPV6_CHARS_RE <archivebox.cli.archivebox_server._IPV6_CHARS_RE>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._IPV6_CHARS_RE
:summary:
```
* - {py:obj}`_LOCAL_BIND_HOSTS <archivebox.cli.archivebox_server._LOCAL_BIND_HOSTS>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_server._LOCAL_BIND_HOSTS
:summary:
```
````
### API
````{py:function} server(runserver_args: typing.Iterable[str] = (SERVER_CONFIG.BIND_ADDR, ), reload: bool = False, init: bool = False, debug: bool = False, daemonize: bool = False, nothreading: bool = False) -> None
````{py:data} _IPV4_RE
:canonical: archivebox.cli.archivebox_server._IPV4_RE
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.cli.archivebox_server._IPV4_RE
```
````
````{py:data} _IPV6_CHARS_RE
:canonical: archivebox.cli.archivebox_server._IPV6_CHARS_RE
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.cli.archivebox_server._IPV6_CHARS_RE
```
````
````{py:data} _LOCAL_BIND_HOSTS
:canonical: archivebox.cli.archivebox_server._LOCAL_BIND_HOSTS
:value: >
'frozenset(...)'
```{autodoc2-docstring} archivebox.cli.archivebox_server._LOCAL_BIND_HOSTS
```
````
````{py:function} _is_ipv4_literal(host: str) -> bool
:canonical: archivebox.cli.archivebox_server._is_ipv4_literal
```{autodoc2-docstring} archivebox.cli.archivebox_server._is_ipv4_literal
```
````
````{py:function} _is_ipv6_literal(host: str) -> bool
:canonical: archivebox.cli.archivebox_server._is_ipv6_literal
```{autodoc2-docstring} archivebox.cli.archivebox_server._is_ipv6_literal
```
````
````{py:function} _bind_host_looks_like_ip(host: str) -> bool
:canonical: archivebox.cli.archivebox_server._bind_host_looks_like_ip
```{autodoc2-docstring} archivebox.cli.archivebox_server._bind_host_looks_like_ip
```
````
````{py:function} _split_bind_spec(spec: str) -> tuple[str, str]
:canonical: archivebox.cli.archivebox_server._split_bind_spec
```{autodoc2-docstring} archivebox.cli.archivebox_server._split_bind_spec
```
````
````{py:function} _parse_and_validate_bind_spec(spec: str) -> tuple[str, str]
:canonical: archivebox.cli.archivebox_server._parse_and_validate_bind_spec
```{autodoc2-docstring} archivebox.cli.archivebox_server._parse_and_validate_bind_spec
```
````
````{py:function} _print_server_startup_warnings(config, host: str, port: str) -> None
:canonical: archivebox.cli.archivebox_server._print_server_startup_warnings
```{autodoc2-docstring} archivebox.cli.archivebox_server._print_server_startup_warnings
```
````
````{py:function} server(runserver_args: collections.abc.Iterable[str] | None = None, reload: bool = False, debug: bool = False, daemonize: bool = False, nothreading: bool = False) -> None
:canonical: archivebox.cli.archivebox_server.server
```{autodoc2-docstring} archivebox.cli.archivebox_server.server

View File

@ -27,14 +27,14 @@
### API
````{py:function} shell(args: typing.Iterable[str] = ()) -> None
````{py:function} shell(args: collections.abc.Iterable[str] = ()) -> None
:canonical: archivebox.cli.archivebox_shell.shell
```{autodoc2-docstring} archivebox.cli.archivebox_shell.shell
```
````
````{py:function} main(args: typing.Iterable[str] = ()) -> None
````{py:function} main(args: collections.abc.Iterable[str] = ()) -> None
:canonical: archivebox.cli.archivebox_shell.main
```{autodoc2-docstring} archivebox.cli.archivebox_shell.main

View File

@ -19,6 +19,10 @@
- ```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.create_snapshots
:summary:
```
* - {py:obj}`build_snapshot_queryset <archivebox.cli.archivebox_snapshot.build_snapshot_queryset>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.build_snapshot_queryset
:summary:
```
* - {py:obj}`list_snapshots <archivebox.cli.archivebox_snapshot.list_snapshots>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.list_snapshots
:summary:
@ -77,21 +81,28 @@
````
````{py:function} create_snapshots(urls: typing.Iterable[str], tag: str = '', status: str = 'queued', depth: int = 0, created_by_id: typing.Optional[int] = None) -> int
````{py:function} create_snapshots(urls: collections.abc.Iterable[str], tag: str = '', status: str = 'queued', depth: int = 0, created_by_id: int | None = None) -> int
:canonical: archivebox.cli.archivebox_snapshot.create_snapshots
```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.create_snapshots
```
````
````{py:function} list_snapshots(status: typing.Optional[str] = None, url__icontains: typing.Optional[str] = None, url__istartswith: typing.Optional[str] = None, tag: typing.Optional[str] = None, crawl_id: typing.Optional[str] = None, limit: typing.Optional[int] = None) -> int
````{py:function} build_snapshot_queryset(*, status: str | None = None, url__icontains: str | None = None, url__istartswith: str | None = None, tag: str | None = None, crawl_id: str | None = None, sort: str | None = None, search: str | None = None, query: str | None = None, limit: int | None = None) -> django.db.models.QuerySet
:canonical: archivebox.cli.archivebox_snapshot.build_snapshot_queryset
```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.build_snapshot_queryset
```
````
````{py:function} list_snapshots(status: str | None = None, url__icontains: str | None = None, url__istartswith: str | None = None, tag: str | None = None, crawl_id: str | None = None, limit: int | None = None, sort: str | None = None, csv: str | None = None, with_headers: bool = False, search: str | None = None, query: str | None = None) -> int
:canonical: archivebox.cli.archivebox_snapshot.list_snapshots
```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.list_snapshots
```
````
````{py:function} update_snapshots(status: typing.Optional[str] = None, tag: typing.Optional[str] = None) -> int
````{py:function} update_snapshots(status: str | None = None, tag: str | None = None) -> int
:canonical: archivebox.cli.archivebox_snapshot.update_snapshots
```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.update_snapshots
@ -119,14 +130,14 @@
```
````
````{py:function} list_cmd(status: typing.Optional[str], url__icontains: typing.Optional[str], url__istartswith: typing.Optional[str], tag: typing.Optional[str], crawl_id: typing.Optional[str], limit: typing.Optional[int])
````{py:function} list_cmd(status: str | None, url__icontains: str | None, url__istartswith: str | None, tag: str | None, crawl_id: str | None, limit: int | None, sort: str | None, csv: str | None, with_headers: bool, search: str | None, query: tuple[str, ...])
:canonical: archivebox.cli.archivebox_snapshot.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.list_cmd
```
````
````{py:function} update_cmd(status: typing.Optional[str], tag: typing.Optional[str])
````{py:function} update_cmd(status: str | None, tag: str | None)
:canonical: archivebox.cli.archivebox_snapshot.update_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_snapshot.update_cmd

View File

@ -25,8 +25,30 @@
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`MAX_STATUS_FS_DIR_SCAN <archivebox.cli.archivebox_status.MAX_STATUS_FS_DIR_SCAN>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_status.MAX_STATUS_FS_DIR_SCAN
:summary:
```
````
### API
````{py:data} MAX_STATUS_FS_DIR_SCAN
:canonical: archivebox.cli.archivebox_status.MAX_STATUS_FS_DIR_SCAN
:value: >
5000
```{autodoc2-docstring} archivebox.cli.archivebox_status.MAX_STATUS_FS_DIR_SCAN
```
````
````{py:function} status(out_dir: pathlib.Path = DATA_DIR) -> None
:canonical: archivebox.cli.archivebox_status.status

View File

@ -77,21 +77,21 @@
````
````{py:function} create_tags(names: typing.Iterable[str]) -> int
````{py:function} create_tags(names: collections.abc.Iterable[str]) -> int
:canonical: archivebox.cli.archivebox_tag.create_tags
```{autodoc2-docstring} archivebox.cli.archivebox_tag.create_tags
```
````
````{py:function} list_tags(name: typing.Optional[str] = None, name__icontains: typing.Optional[str] = None, limit: typing.Optional[int] = None) -> int
````{py:function} list_tags(name: str | None = None, name__icontains: str | None = None, limit: int | None = None) -> int
:canonical: archivebox.cli.archivebox_tag.list_tags
```{autodoc2-docstring} archivebox.cli.archivebox_tag.list_tags
```
````
````{py:function} update_tags(name: typing.Optional[str] = None) -> int
````{py:function} update_tags(name: str | None = None) -> int
:canonical: archivebox.cli.archivebox_tag.update_tags
```{autodoc2-docstring} archivebox.cli.archivebox_tag.update_tags
@ -119,14 +119,14 @@
```
````
````{py:function} list_cmd(name: typing.Optional[str], name__icontains: typing.Optional[str], limit: typing.Optional[int])
````{py:function} list_cmd(name: str | None, name__icontains: str | None, limit: int | None)
:canonical: archivebox.cli.archivebox_tag.list_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_tag.list_cmd
```
````
````{py:function} update_cmd(name: typing.Optional[str])
````{py:function} update_cmd(name: str | None)
:canonical: archivebox.cli.archivebox_tag.update_cmd
```{autodoc2-docstring} archivebox.cli.archivebox_tag.update_cmd

View File

@ -15,6 +15,22 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_get_snapshot_crawl <archivebox.cli.archivebox_update._get_snapshot_crawl>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_update._get_snapshot_crawl
:summary:
```
* - {py:obj}`_get_search_indexing_plugins <archivebox.cli.archivebox_update._get_search_indexing_plugins>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_update._get_search_indexing_plugins
:summary:
```
* - {py:obj}`_build_filtered_snapshots_queryset <archivebox.cli.archivebox_update._build_filtered_snapshots_queryset>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_update._build_filtered_snapshots_queryset
:summary:
```
* - {py:obj}`reindex_snapshots <archivebox.cli.archivebox_update.reindex_snapshots>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_update.reindex_snapshots
:summary:
```
* - {py:obj}`update <archivebox.cli.archivebox_update.update>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_update.update
:summary:
@ -39,6 +55,10 @@
- ```{autodoc2-docstring} archivebox.cli.archivebox_update.print_combined_stats
:summary:
```
* - {py:obj}`print_index_stats <archivebox.cli.archivebox_update.print_index_stats>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_update.print_index_stats
:summary:
```
* - {py:obj}`main <archivebox.cli.archivebox_update.main>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_update.main
:summary:
@ -47,28 +67,56 @@
### API
````{py:function} update(filter_patterns: typing.Iterable[str] = (), filter_type: str = 'exact', before: float | None = None, after: float | None = None, resume: str | None = None, batch_size: int = 100, continuous: bool = False) -> None
````{py:function} _get_snapshot_crawl(snapshot: archivebox.core.models.Snapshot) -> archivebox.crawls.models.Crawl | None
:canonical: archivebox.cli.archivebox_update._get_snapshot_crawl
```{autodoc2-docstring} archivebox.cli.archivebox_update._get_snapshot_crawl
```
````
````{py:function} _get_search_indexing_plugins() -> list[str]
:canonical: archivebox.cli.archivebox_update._get_search_indexing_plugins
```{autodoc2-docstring} archivebox.cli.archivebox_update._get_search_indexing_plugins
```
````
````{py:function} _build_filtered_snapshots_queryset(*, filter_patterns: collections.abc.Iterable[str], filter_type: str, status: str | None = None, url__icontains: str | None = None, url__istartswith: str | None = None, tag: str | None = None, crawl_id: str | None = None, limit: int | None = None, sort: str | None = None, search: str | None = None, before: float | None = None, after: float | None = None, resume: str | None = None)
:canonical: archivebox.cli.archivebox_update._build_filtered_snapshots_queryset
```{autodoc2-docstring} archivebox.cli.archivebox_update._build_filtered_snapshots_queryset
```
````
````{py:function} reindex_snapshots(snapshots: django.db.models.QuerySet[archivebox.core.models.Snapshot, archivebox.core.models.Snapshot], *, search_plugins: list[str], batch_size: int, collect_ids: bool = False, wait_for_turn=None) -> dict[str, typing.Any]
:canonical: archivebox.cli.archivebox_update.reindex_snapshots
```{autodoc2-docstring} archivebox.cli.archivebox_update.reindex_snapshots
```
````
````{py:function} update(filter_patterns: collections.abc.Iterable[str] = (), filter_type: str = 'exact', status: str | None = None, url__icontains: str | None = None, url__istartswith: str | None = None, tag: str | None = None, crawl_id: str | None = None, limit: int | None = None, sort: str | None = None, search: str | None = None, before: float | None = None, after: float | None = None, resume: str | None = None, batch_size: int = 500, continuous: bool = False, index_only: bool = False, migrate_only: bool = False, stop_daemon_stack: bool = True) -> None
:canonical: archivebox.cli.archivebox_update.update
```{autodoc2-docstring} archivebox.cli.archivebox_update.update
```
````
````{py:function} drain_old_archive_dirs(resume_from: str = None, batch_size: int = 100) -> dict
````{py:function} drain_old_archive_dirs(resume_from: str | None = None, batch_size: int = 500) -> dict[str, int]
:canonical: archivebox.cli.archivebox_update.drain_old_archive_dirs
```{autodoc2-docstring} archivebox.cli.archivebox_update.drain_old_archive_dirs
```
````
````{py:function} process_all_db_snapshots(batch_size: int = 100) -> dict
````{py:function} process_all_db_snapshots(batch_size: int = 500, resume: str | None = None, wait_for_turn=None) -> dict[str, int]
:canonical: archivebox.cli.archivebox_update.process_all_db_snapshots
```{autodoc2-docstring} archivebox.cli.archivebox_update.process_all_db_snapshots
```
````
````{py:function} process_filtered_snapshots(filter_patterns: typing.Iterable[str], filter_type: str, before: float | None, after: float | None, batch_size: int) -> dict
````{py:function} process_filtered_snapshots(filter_patterns: collections.abc.Iterable[str], filter_type: str, status: str | None, url__icontains: str | None, url__istartswith: str | None, tag: str | None, crawl_id: str | None, limit: int | None, sort: str | None, search: str | None, before: float | None, after: float | None, resume: str | None, batch_size: int, queue_for_archiving: bool = True, wait_for_turn=None) -> dict[str, typing.Any]
:canonical: archivebox.cli.archivebox_update.process_filtered_snapshots
```{autodoc2-docstring} archivebox.cli.archivebox_update.process_filtered_snapshots
@ -89,6 +137,13 @@
```
````
````{py:function} print_index_stats(stats: dict[str, typing.Any]) -> None
:canonical: archivebox.cli.archivebox_update.print_index_stats
```{autodoc2-docstring} archivebox.cli.archivebox_update.print_index_stats
```
````
````{py:function} main(**kwargs)
:canonical: archivebox.cli.archivebox_update.main

View File

@ -15,6 +15,14 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_format_binary_abspath <archivebox.cli.archivebox_version._format_binary_abspath>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_version._format_binary_abspath
:summary:
```
* - {py:obj}`_render_binary_abspath <archivebox.cli.archivebox_version._render_binary_abspath>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_version._render_binary_abspath
:summary:
```
* - {py:obj}`version <archivebox.cli.archivebox_version.version>`
- ```{autodoc2-docstring} archivebox.cli.archivebox_version.version
:summary:
@ -27,7 +35,21 @@
### API
````{py:function} version(quiet: bool = False, binaries: typing.Iterable[str] = ()) -> list[str]
````{py:function} _format_binary_abspath(abspath: str, *, pwd: pathlib.Path, lib_dir: pathlib.Path, personas_dir: pathlib.Path, home: pathlib.Path) -> str
:canonical: archivebox.cli.archivebox_version._format_binary_abspath
```{autodoc2-docstring} archivebox.cli.archivebox_version._format_binary_abspath
```
````
````{py:function} _render_binary_abspath(abspath: str)
:canonical: archivebox.cli.archivebox_version._render_binary_abspath
```{autodoc2-docstring} archivebox.cli.archivebox_version._render_binary_abspath
```
````
````{py:function} version(quiet: bool = False, binaries: collections.abc.Iterable[str] = ()) -> list[str]
:canonical: archivebox.cli.archivebox_version.version
```{autodoc2-docstring} archivebox.cli.archivebox_version.version

View File

@ -0,0 +1,31 @@
# {py:mod}`archivebox.cli.cli_util`
```{py:module} archivebox.cli.cli_util
```
```{autodoc2-docstring} archivebox.cli.cli_util
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`apply_filters <archivebox.cli.cli_util.apply_filters>`
- ```{autodoc2-docstring} archivebox.cli.cli_util.apply_filters
:summary:
```
````
### API
````{py:function} apply_filters(queryset, filter_kwargs: dict, limit: int | None = None)
:canonical: archivebox.cli.cli_util.apply_filters
```{autodoc2-docstring} archivebox.cli.cli_util.apply_filters
```
````

View File

@ -1,31 +0,0 @@
# {py:mod}`archivebox.cli.cli_utils`
```{py:module} archivebox.cli.cli_utils
```
```{autodoc2-docstring} archivebox.cli.cli_utils
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`apply_filters <archivebox.cli.cli_utils.apply_filters>`
- ```{autodoc2-docstring} archivebox.cli.cli_utils.apply_filters
:summary:
```
````
### API
````{py:function} apply_filters(queryset, filter_kwargs: dict, limit: typing.Optional[int] = None)
:canonical: archivebox.cli.cli_utils.apply_filters
```{autodoc2-docstring} archivebox.cli.cli_utils.apply_filters
```
````

View File

@ -20,9 +20,7 @@ archivebox.cli.archivebox_archiveresult
archivebox.cli.archivebox_process
archivebox.cli.archivebox_tag
archivebox.cli.archivebox_config
archivebox.cli.cli_utils
archivebox.cli.archivebox_server
archivebox.cli.tests_piping
archivebox.cli.archivebox_binary
archivebox.cli.archivebox_snapshot
archivebox.cli.archivebox_pluginmap
@ -40,6 +38,7 @@ archivebox.cli.archivebox_persona
archivebox.cli.archivebox_snapshot_compat
archivebox.cli.archivebox_add
archivebox.cli.archivebox_status
archivebox.cli.cli_util
archivebox.cli.archivebox_run
archivebox.cli.archivebox_init
archivebox.cli.archivebox_help
@ -86,6 +85,10 @@ archivebox.cli.archivebox_manage
- ```{autodoc2-docstring} archivebox.cli.__command__
:summary:
```
* - {py:obj}`STDERR <archivebox.cli.STDERR>`
- ```{autodoc2-docstring} archivebox.cli.STDERR
:summary:
```
````
### API
@ -100,6 +103,16 @@ archivebox.cli.archivebox_manage
````
````{py:data} STDERR
:canonical: archivebox.cli.STDERR
:value: >
'Console(...)'
```{autodoc2-docstring} archivebox.cli.STDERR
```
````
`````{py:class} ArchiveBoxGroup(name: str | None = None, commands: collections.abc.MutableMapping[str, click.core.Command] | collections.abc.Sequence[click.core.Command] | None = None, invoke_without_command: bool = False, no_args_is_help: bool | None = None, subcommand_metavar: str | None = None, chain: bool = False, result_callback: typing.Callable[..., typing.Any] | None = None, **kwargs: typing.Any)
:canonical: archivebox.cli.ArchiveBoxGroup

View File

@ -1,768 +0,0 @@
# {py:mod}`archivebox.cli.tests_piping`
```{py:module} archivebox.cli.tests_piping
```
```{autodoc2-docstring} archivebox.cli.tests_piping
:allowtitles:
```
## Module Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`TestJSONLParsing <archivebox.cli.tests_piping.TestJSONLParsing>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing
:summary:
```
* - {py:obj}`TestReadArgsOrStdin <archivebox.cli.tests_piping.TestReadArgsOrStdin>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin
:summary:
```
* - {py:obj}`TestCrawlCommand <archivebox.cli.tests_piping.TestCrawlCommand>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestCrawlCommand
:summary:
```
* - {py:obj}`TestSnapshotCommand <archivebox.cli.tests_piping.TestSnapshotCommand>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand
:summary:
```
* - {py:obj}`TestArchiveResultCommand <archivebox.cli.tests_piping.TestArchiveResultCommand>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand
:summary:
```
* - {py:obj}`TestURLCollection <archivebox.cli.tests_piping.TestURLCollection>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection
:summary:
```
* - {py:obj}`TestPipingWorkflowIntegration <archivebox.cli.tests_piping.TestPipingWorkflowIntegration>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration
:summary:
```
* - {py:obj}`TestDepthWorkflows <archivebox.cli.tests_piping.TestDepthWorkflows>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestDepthWorkflows
:summary:
```
* - {py:obj}`TestParserPluginWorkflows <archivebox.cli.tests_piping.TestParserPluginWorkflows>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows
:summary:
```
* - {py:obj}`TestEdgeCases <archivebox.cli.tests_piping.TestEdgeCases>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestEdgeCases
:summary:
```
* - {py:obj}`TestPassThroughBehavior <archivebox.cli.tests_piping.TestPassThroughBehavior>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestPassThroughBehavior
:summary:
```
* - {py:obj}`TestPipelineAccumulation <archivebox.cli.tests_piping.TestPipelineAccumulation>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipelineAccumulation
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`TEST_CONFIG <archivebox.cli.tests_piping.TEST_CONFIG>`
- ```{autodoc2-docstring} archivebox.cli.tests_piping.TEST_CONFIG
:summary:
```
````
### API
````{py:data} TEST_CONFIG
:canonical: archivebox.cli.tests_piping.TEST_CONFIG
:value: >
None
```{autodoc2-docstring} archivebox.cli.tests_piping.TEST_CONFIG
```
````
`````{py:class} TestJSONLParsing(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestJSONLParsing
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.__init__
```
````{py:method} test_parse_plain_url()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_plain_url
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_plain_url
```
````
````{py:method} test_parse_jsonl_snapshot()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_jsonl_snapshot
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_jsonl_snapshot
```
````
````{py:method} test_parse_jsonl_crawl()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_jsonl_crawl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_jsonl_crawl
```
````
````{py:method} test_parse_jsonl_with_id()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_jsonl_with_id
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_jsonl_with_id
```
````
````{py:method} test_parse_uuid_as_snapshot_id()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_uuid_as_snapshot_id
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_uuid_as_snapshot_id
```
````
````{py:method} test_parse_empty_line()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_empty_line
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_empty_line
```
````
````{py:method} test_parse_comment_line()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_comment_line
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_comment_line
```
````
````{py:method} test_parse_invalid_url()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_invalid_url
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_invalid_url
```
````
````{py:method} test_parse_file_url()
:canonical: archivebox.cli.tests_piping.TestJSONLParsing.test_parse_file_url
```{autodoc2-docstring} archivebox.cli.tests_piping.TestJSONLParsing.test_parse_file_url
```
````
`````
`````{py:class} TestReadArgsOrStdin(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestReadArgsOrStdin
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin.__init__
```
````{py:method} test_read_from_args()
:canonical: archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_from_args
```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_from_args
```
````
````{py:method} test_read_from_stdin()
:canonical: archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_from_stdin
```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_from_stdin
```
````
````{py:method} test_read_jsonl_from_stdin()
:canonical: archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_jsonl_from_stdin
```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_jsonl_from_stdin
```
````
````{py:method} test_read_crawl_jsonl_from_stdin()
:canonical: archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_crawl_jsonl_from_stdin
```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin.test_read_crawl_jsonl_from_stdin
```
````
````{py:method} test_skip_tty_stdin()
:canonical: archivebox.cli.tests_piping.TestReadArgsOrStdin.test_skip_tty_stdin
```{autodoc2-docstring} archivebox.cli.tests_piping.TestReadArgsOrStdin.test_skip_tty_stdin
```
````
`````
`````{py:class} TestCrawlCommand(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestCrawlCommand
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestCrawlCommand
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestCrawlCommand.__init__
```
````{py:method} setUp()
:canonical: archivebox.cli.tests_piping.TestCrawlCommand.setUp
```{autodoc2-docstring} archivebox.cli.tests_piping.TestCrawlCommand.setUp
```
````
````{py:method} tearDown()
:canonical: archivebox.cli.tests_piping.TestCrawlCommand.tearDown
```{autodoc2-docstring} archivebox.cli.tests_piping.TestCrawlCommand.tearDown
```
````
````{py:method} test_crawl_accepts_url()
:canonical: archivebox.cli.tests_piping.TestCrawlCommand.test_crawl_accepts_url
```{autodoc2-docstring} archivebox.cli.tests_piping.TestCrawlCommand.test_crawl_accepts_url
```
````
````{py:method} test_crawl_output_format()
:canonical: archivebox.cli.tests_piping.TestCrawlCommand.test_crawl_output_format
```{autodoc2-docstring} archivebox.cli.tests_piping.TestCrawlCommand.test_crawl_output_format
```
````
`````
`````{py:class} TestSnapshotCommand(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestSnapshotCommand
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand.__init__
```
````{py:method} setUp()
:canonical: archivebox.cli.tests_piping.TestSnapshotCommand.setUp
```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand.setUp
```
````
````{py:method} tearDown()
:canonical: archivebox.cli.tests_piping.TestSnapshotCommand.tearDown
```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand.tearDown
```
````
````{py:method} test_snapshot_accepts_url()
:canonical: archivebox.cli.tests_piping.TestSnapshotCommand.test_snapshot_accepts_url
```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand.test_snapshot_accepts_url
```
````
````{py:method} test_snapshot_accepts_crawl_jsonl()
:canonical: archivebox.cli.tests_piping.TestSnapshotCommand.test_snapshot_accepts_crawl_jsonl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand.test_snapshot_accepts_crawl_jsonl
```
````
````{py:method} test_snapshot_accepts_jsonl_with_metadata()
:canonical: archivebox.cli.tests_piping.TestSnapshotCommand.test_snapshot_accepts_jsonl_with_metadata
```{autodoc2-docstring} archivebox.cli.tests_piping.TestSnapshotCommand.test_snapshot_accepts_jsonl_with_metadata
```
````
`````
`````{py:class} TestArchiveResultCommand(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestArchiveResultCommand
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand.__init__
```
````{py:method} setUp()
:canonical: archivebox.cli.tests_piping.TestArchiveResultCommand.setUp
```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand.setUp
```
````
````{py:method} tearDown()
:canonical: archivebox.cli.tests_piping.TestArchiveResultCommand.tearDown
```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand.tearDown
```
````
````{py:method} test_archiveresult_accepts_snapshot_id()
:canonical: archivebox.cli.tests_piping.TestArchiveResultCommand.test_archiveresult_accepts_snapshot_id
```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand.test_archiveresult_accepts_snapshot_id
```
````
````{py:method} test_archiveresult_accepts_jsonl_snapshot()
:canonical: archivebox.cli.tests_piping.TestArchiveResultCommand.test_archiveresult_accepts_jsonl_snapshot
```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand.test_archiveresult_accepts_jsonl_snapshot
```
````
````{py:method} test_archiveresult_gathers_snapshot_ids()
:canonical: archivebox.cli.tests_piping.TestArchiveResultCommand.test_archiveresult_gathers_snapshot_ids
```{autodoc2-docstring} archivebox.cli.tests_piping.TestArchiveResultCommand.test_archiveresult_gathers_snapshot_ids
```
````
`````
`````{py:class} TestURLCollection(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestURLCollection
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection.__init__
```
````{py:method} setUp()
:canonical: archivebox.cli.tests_piping.TestURLCollection.setUp
```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection.setUp
```
````
````{py:method} tearDown()
:canonical: archivebox.cli.tests_piping.TestURLCollection.tearDown
```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection.tearDown
```
````
````{py:method} test_collect_urls_from_plugins()
:canonical: archivebox.cli.tests_piping.TestURLCollection.test_collect_urls_from_plugins
```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection.test_collect_urls_from_plugins
```
````
````{py:method} test_collect_urls_preserves_metadata()
:canonical: archivebox.cli.tests_piping.TestURLCollection.test_collect_urls_preserves_metadata
```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection.test_collect_urls_preserves_metadata
```
````
````{py:method} test_collect_urls_empty_dir()
:canonical: archivebox.cli.tests_piping.TestURLCollection.test_collect_urls_empty_dir
```{autodoc2-docstring} archivebox.cli.tests_piping.TestURLCollection.test_collect_urls_empty_dir
```
````
`````
`````{py:class} TestPipingWorkflowIntegration(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.__init__
```
````{py:method} setUpClass()
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration.setUpClass
:classmethod:
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.setUpClass
```
````
````{py:method} tearDownClass()
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration.tearDownClass
:classmethod:
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.tearDownClass
```
````
````{py:method} test_crawl_creates_and_outputs_jsonl()
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_crawl_creates_and_outputs_jsonl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_crawl_creates_and_outputs_jsonl
```
````
````{py:method} test_snapshot_accepts_crawl_jsonl()
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_snapshot_accepts_crawl_jsonl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_snapshot_accepts_crawl_jsonl
```
````
````{py:method} test_snapshot_creates_and_outputs_jsonl()
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_snapshot_creates_and_outputs_jsonl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_snapshot_creates_and_outputs_jsonl
```
````
````{py:method} test_extract_accepts_snapshot_from_previous_command()
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_extract_accepts_snapshot_from_previous_command
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_extract_accepts_snapshot_from_previous_command
```
````
````{py:method} test_full_pipeline_crawl_snapshot_extract()
:canonical: archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_full_pipeline_crawl_snapshot_extract
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipingWorkflowIntegration.test_full_pipeline_crawl_snapshot_extract
```
````
`````
`````{py:class} TestDepthWorkflows(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestDepthWorkflows
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestDepthWorkflows
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestDepthWorkflows.__init__
```
````{py:method} setUpClass()
:canonical: archivebox.cli.tests_piping.TestDepthWorkflows.setUpClass
:classmethod:
```{autodoc2-docstring} archivebox.cli.tests_piping.TestDepthWorkflows.setUpClass
```
````
````{py:method} tearDownClass()
:canonical: archivebox.cli.tests_piping.TestDepthWorkflows.tearDownClass
:classmethod:
```{autodoc2-docstring} archivebox.cli.tests_piping.TestDepthWorkflows.tearDownClass
```
````
````{py:method} test_depth_0_workflow()
:canonical: archivebox.cli.tests_piping.TestDepthWorkflows.test_depth_0_workflow
```{autodoc2-docstring} archivebox.cli.tests_piping.TestDepthWorkflows.test_depth_0_workflow
```
````
````{py:method} test_depth_metadata_in_crawl()
:canonical: archivebox.cli.tests_piping.TestDepthWorkflows.test_depth_metadata_in_crawl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestDepthWorkflows.test_depth_metadata_in_crawl
```
````
`````
`````{py:class} TestParserPluginWorkflows(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestParserPluginWorkflows
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows.__init__
```
````{py:method} setUpClass()
:canonical: archivebox.cli.tests_piping.TestParserPluginWorkflows.setUpClass
:classmethod:
```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows.setUpClass
```
````
````{py:method} tearDownClass()
:canonical: archivebox.cli.tests_piping.TestParserPluginWorkflows.tearDownClass
:classmethod:
```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows.tearDownClass
```
````
````{py:method} test_html_parser_workflow()
:canonical: archivebox.cli.tests_piping.TestParserPluginWorkflows.test_html_parser_workflow
```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows.test_html_parser_workflow
```
````
````{py:method} test_rss_parser_workflow()
:canonical: archivebox.cli.tests_piping.TestParserPluginWorkflows.test_rss_parser_workflow
```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows.test_rss_parser_workflow
```
````
````{py:method} test_multiple_parsers_dedupe()
:canonical: archivebox.cli.tests_piping.TestParserPluginWorkflows.test_multiple_parsers_dedupe
```{autodoc2-docstring} archivebox.cli.tests_piping.TestParserPluginWorkflows.test_multiple_parsers_dedupe
```
````
`````
`````{py:class} TestEdgeCases(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestEdgeCases
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestEdgeCases
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestEdgeCases.__init__
```
````{py:method} test_empty_input()
:canonical: archivebox.cli.tests_piping.TestEdgeCases.test_empty_input
```{autodoc2-docstring} archivebox.cli.tests_piping.TestEdgeCases.test_empty_input
```
````
````{py:method} test_malformed_jsonl()
:canonical: archivebox.cli.tests_piping.TestEdgeCases.test_malformed_jsonl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestEdgeCases.test_malformed_jsonl
```
````
````{py:method} test_mixed_input_formats()
:canonical: archivebox.cli.tests_piping.TestEdgeCases.test_mixed_input_formats
```{autodoc2-docstring} archivebox.cli.tests_piping.TestEdgeCases.test_mixed_input_formats
```
````
````{py:method} test_crawl_with_multiple_urls()
:canonical: archivebox.cli.tests_piping.TestEdgeCases.test_crawl_with_multiple_urls
```{autodoc2-docstring} archivebox.cli.tests_piping.TestEdgeCases.test_crawl_with_multiple_urls
```
````
`````
`````{py:class} TestPassThroughBehavior(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestPassThroughBehavior
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPassThroughBehavior
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPassThroughBehavior.__init__
```
````{py:method} test_crawl_passes_through_other_types()
:canonical: archivebox.cli.tests_piping.TestPassThroughBehavior.test_crawl_passes_through_other_types
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPassThroughBehavior.test_crawl_passes_through_other_types
```
````
````{py:method} test_snapshot_passes_through_crawl()
:canonical: archivebox.cli.tests_piping.TestPassThroughBehavior.test_snapshot_passes_through_crawl
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPassThroughBehavior.test_snapshot_passes_through_crawl
```
````
````{py:method} test_archiveresult_passes_through_snapshot()
:canonical: archivebox.cli.tests_piping.TestPassThroughBehavior.test_archiveresult_passes_through_snapshot
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPassThroughBehavior.test_archiveresult_passes_through_snapshot
```
````
````{py:method} test_run_passes_through_unknown_types()
:canonical: archivebox.cli.tests_piping.TestPassThroughBehavior.test_run_passes_through_unknown_types
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPassThroughBehavior.test_run_passes_through_unknown_types
```
````
`````
`````{py:class} TestPipelineAccumulation(methodName='runTest')
:canonical: archivebox.cli.tests_piping.TestPipelineAccumulation
Bases: {py:obj}`unittest.TestCase`
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipelineAccumulation
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipelineAccumulation.__init__
```
````{py:method} test_full_pipeline_output_types()
:canonical: archivebox.cli.tests_piping.TestPipelineAccumulation.test_full_pipeline_output_types
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipelineAccumulation.test_full_pipeline_output_types
```
````
````{py:method} test_pipeline_preserves_ids()
:canonical: archivebox.cli.tests_piping.TestPipelineAccumulation.test_pipeline_preserves_ids
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipelineAccumulation.test_pipeline_preserves_ids
```
````
````{py:method} test_jq_transform_pattern()
:canonical: archivebox.cli.tests_piping.TestPipelineAccumulation.test_jq_transform_pattern
```{autodoc2-docstring} archivebox.cli.tests_piping.TestPipelineAccumulation.test_jq_transform_pattern
```
````
`````

View File

@ -9,141 +9,173 @@
## Module Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`PluginConfigSection <archivebox.config.collection.PluginConfigSection>`
- ```{autodoc2-docstring} archivebox.config.collection.PluginConfigSection
:summary:
```
````
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`get_real_name <archivebox.config.collection.get_real_name>`
- ```{autodoc2-docstring} archivebox.config.collection.get_real_name
* - {py:obj}`_coerce_to_str_dict <archivebox.config.collection._coerce_to_str_dict>`
- ```{autodoc2-docstring} archivebox.config.collection._coerce_to_str_dict
:summary:
```
* - {py:obj}`load_config_val <archivebox.config.collection.load_config_val>`
- ```{autodoc2-docstring} archivebox.config.collection.load_config_val
* - {py:obj}`_load_file_config_dict <archivebox.config.collection._load_file_config_dict>`
- ```{autodoc2-docstring} archivebox.config.collection._load_file_config_dict
:summary:
```
* - {py:obj}`load_config_file <archivebox.config.collection.load_config_file>`
- ```{autodoc2-docstring} archivebox.config.collection.load_config_file
* - {py:obj}`_resolve_section_for_key <archivebox.config.collection._resolve_section_for_key>`
- ```{autodoc2-docstring} archivebox.config.collection._resolve_section_for_key
:summary:
```
* - {py:obj}`section_for_key <archivebox.config.collection.section_for_key>`
- ```{autodoc2-docstring} archivebox.config.collection.section_for_key
* - {py:obj}`_render_config_file_content <archivebox.config.collection._render_config_file_content>`
- ```{autodoc2-docstring} archivebox.config.collection._render_config_file_content
:summary:
```
* - {py:obj}`_write_file_if_changed <archivebox.config.collection._write_file_if_changed>`
- ```{autodoc2-docstring} archivebox.config.collection._write_file_if_changed
:summary:
```
* - {py:obj}`mirror_machine_config_to_file <archivebox.config.collection.mirror_machine_config_to_file>`
- ```{autodoc2-docstring} archivebox.config.collection.mirror_machine_config_to_file
:summary:
```
* - {py:obj}`_coerce_from_str_dict <archivebox.config.collection._coerce_from_str_dict>`
- ```{autodoc2-docstring} archivebox.config.collection._coerce_from_str_dict
:summary:
```
* - {py:obj}`_mirror_file_to_machine_config <archivebox.config.collection._mirror_file_to_machine_config>`
- ```{autodoc2-docstring} archivebox.config.collection._mirror_file_to_machine_config
:summary:
```
* - {py:obj}`sync_machine_and_file <archivebox.config.collection.sync_machine_and_file>`
- ```{autodoc2-docstring} archivebox.config.collection.sync_machine_and_file
:summary:
```
* - {py:obj}`write_config_file <archivebox.config.collection.write_config_file>`
- ```{autodoc2-docstring} archivebox.config.collection.write_config_file
:summary:
```
* - {py:obj}`load_config <archivebox.config.collection.load_config>`
- ```{autodoc2-docstring} archivebox.config.collection.load_config
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`CONFIG_FILE_HEADER <archivebox.config.collection.CONFIG_FILE_HEADER>`
- ```{autodoc2-docstring} archivebox.config.collection.CONFIG_FILE_HEADER
:summary:
```
* - {py:obj}`load_all_config <archivebox.config.collection.load_all_config>`
- ```{autodoc2-docstring} archivebox.config.collection.load_all_config
* - {py:obj}`_MIRROR_IN_PROGRESS <archivebox.config.collection._MIRROR_IN_PROGRESS>`
- ```{autodoc2-docstring} archivebox.config.collection._MIRROR_IN_PROGRESS
:summary:
```
* - {py:obj}`_INITIAL_SYNC_DONE <archivebox.config.collection._INITIAL_SYNC_DONE>`
- ```{autodoc2-docstring} archivebox.config.collection._INITIAL_SYNC_DONE
:summary:
```
````
### API
````{py:function} get_real_name(key: str) -> str
:canonical: archivebox.config.collection.get_real_name
````{py:data} CONFIG_FILE_HEADER
:canonical: archivebox.config.collection.CONFIG_FILE_HEADER
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.config.collection.get_real_name
```{autodoc2-docstring} archivebox.config.collection.CONFIG_FILE_HEADER
```
````
````{py:function} load_config_val(key: str, default: typing.Any = None, type: typing.Optional[typing.Type] = None, aliases: typing.Optional[typing.Tuple[str, ...]] = None, config: typing.Optional[benedict.benedict] = None, env_vars: typing.Optional[os._Environ] = None, config_file_vars: typing.Optional[typing.Dict[str, str]] = None) -> typing.Any
:canonical: archivebox.config.collection.load_config_val
```{autodoc2-docstring} archivebox.config.collection.load_config_val
```
````
````{py:function} load_config_file() -> typing.Optional[benedict.benedict]
:canonical: archivebox.config.collection.load_config_file
```{autodoc2-docstring} archivebox.config.collection.load_config_file
```
````
`````{py:class} PluginConfigSection(key: str)
:canonical: archivebox.config.collection.PluginConfigSection
```{autodoc2-docstring} archivebox.config.collection.PluginConfigSection
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.config.collection.PluginConfigSection.__init__
```
````{py:attribute} toml_section_header
:canonical: archivebox.config.collection.PluginConfigSection.toml_section_header
````{py:data} _MIRROR_IN_PROGRESS
:canonical: archivebox.config.collection._MIRROR_IN_PROGRESS
:type: bool
:value: >
'PLUGINS'
False
```{autodoc2-docstring} archivebox.config.collection.PluginConfigSection.toml_section_header
```{autodoc2-docstring} archivebox.config.collection._MIRROR_IN_PROGRESS
```
````
````{py:method} __getattr__(name: str) -> typing.Any
:canonical: archivebox.config.collection.PluginConfigSection.__getattr__
````{py:data} _INITIAL_SYNC_DONE
:canonical: archivebox.config.collection._INITIAL_SYNC_DONE
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.config.collection.PluginConfigSection.__getattr__
```{autodoc2-docstring} archivebox.config.collection._INITIAL_SYNC_DONE
```
````
````{py:method} update_in_place(warn: bool = True, persist: bool = False, **kwargs)
:canonical: archivebox.config.collection.PluginConfigSection.update_in_place
````{py:function} _coerce_to_str_dict(config: typing.Any) -> dict[str, str]
:canonical: archivebox.config.collection._coerce_to_str_dict
```{autodoc2-docstring} archivebox.config.collection.PluginConfigSection.update_in_place
```
````
`````
````{py:function} section_for_key(key: str) -> typing.Any
:canonical: archivebox.config.collection.section_for_key
```{autodoc2-docstring} archivebox.config.collection.section_for_key
```{autodoc2-docstring} archivebox.config.collection._coerce_to_str_dict
```
````
````{py:function} write_config_file(config: typing.Dict[str, str]) -> benedict.benedict
````{py:function} _load_file_config_dict() -> tuple[dict[str, str], float | None]
:canonical: archivebox.config.collection._load_file_config_dict
```{autodoc2-docstring} archivebox.config.collection._load_file_config_dict
```
````
````{py:function} _resolve_section_for_key(key: str, config_sections, plugin_configs) -> str
:canonical: archivebox.config.collection._resolve_section_for_key
```{autodoc2-docstring} archivebox.config.collection._resolve_section_for_key
```
````
````{py:function} _render_config_file_content(config: dict[str, str]) -> str
:canonical: archivebox.config.collection._render_config_file_content
```{autodoc2-docstring} archivebox.config.collection._render_config_file_content
```
````
````{py:function} _write_file_if_changed(content: str) -> bool
:canonical: archivebox.config.collection._write_file_if_changed
```{autodoc2-docstring} archivebox.config.collection._write_file_if_changed
```
````
````{py:function} mirror_machine_config_to_file(config: typing.Any) -> None
:canonical: archivebox.config.collection.mirror_machine_config_to_file
```{autodoc2-docstring} archivebox.config.collection.mirror_machine_config_to_file
```
````
````{py:function} _coerce_from_str_dict(file_config: dict[str, str]) -> dict[str, typing.Any]
:canonical: archivebox.config.collection._coerce_from_str_dict
```{autodoc2-docstring} archivebox.config.collection._coerce_from_str_dict
```
````
````{py:function} _mirror_file_to_machine_config(file_config: dict[str, str]) -> None
:canonical: archivebox.config.collection._mirror_file_to_machine_config
```{autodoc2-docstring} archivebox.config.collection._mirror_file_to_machine_config
```
````
````{py:function} sync_machine_and_file(machine: typing.Any = None) -> None
:canonical: archivebox.config.collection.sync_machine_and_file
```{autodoc2-docstring} archivebox.config.collection.sync_machine_and_file
```
````
````{py:function} write_config_file(config: dict[str, str]) -> archivebox.misc.logging.AttrDict
:canonical: archivebox.config.collection.write_config_file
```{autodoc2-docstring} archivebox.config.collection.write_config_file
```
````
````{py:function} load_config(defaults: typing.Dict[str, typing.Any], config: typing.Optional[benedict.benedict] = None, out_dir: typing.Optional[str] = None, env_vars: typing.Optional[os._Environ] = None, config_file_vars: typing.Optional[typing.Dict[str, str]] = None) -> benedict.benedict
:canonical: archivebox.config.collection.load_config
```{autodoc2-docstring} archivebox.config.collection.load_config
```
````
````{py:function} load_all_config()
:canonical: archivebox.config.collection.load_all_config
```{autodoc2-docstring} archivebox.config.collection.load_all_config
```
````

File diff suppressed because it is too large Load Diff

View File

@ -15,6 +15,8 @@
:class: autosummary longtable
:align: left
* - {py:obj}`CaseConfigParser <archivebox.config.configset.CaseConfigParser>`
-
* - {py:obj}`IniConfigSettingsSource <archivebox.config.configset.IniConfigSettingsSource>`
- ```{autodoc2-docstring} archivebox.config.configset.IniConfigSettingsSource
:summary:
@ -31,24 +33,8 @@
:class: autosummary longtable
:align: left
* - {py:obj}`get_config <archivebox.config.configset.get_config>`
- ```{autodoc2-docstring} archivebox.config.configset.get_config
:summary:
```
* - {py:obj}`get_flat_config <archivebox.config.configset.get_flat_config>`
- ```{autodoc2-docstring} archivebox.config.configset.get_flat_config
:summary:
```
* - {py:obj}`get_all_configs <archivebox.config.configset.get_all_configs>`
- ```{autodoc2-docstring} archivebox.config.configset.get_all_configs
:summary:
```
* - {py:obj}`_parse_env_value <archivebox.config.configset._parse_env_value>`
- ```{autodoc2-docstring} archivebox.config.configset._parse_env_value
:summary:
```
* - {py:obj}`get_worker_concurrency <archivebox.config.configset.get_worker_concurrency>`
- ```{autodoc2-docstring} archivebox.config.configset.get_worker_concurrency
* - {py:obj}`_read_ini_config_cached <archivebox.config.configset._read_ini_config_cached>`
- ```{autodoc2-docstring} archivebox.config.configset._read_ini_config_cached
:summary:
```
````
@ -59,14 +45,61 @@
:class: autosummary longtable
:align: left
* - {py:obj}`DEFAULT_WORKER_CONCURRENCY <archivebox.config.configset.DEFAULT_WORKER_CONCURRENCY>`
- ```{autodoc2-docstring} archivebox.config.configset.DEFAULT_WORKER_CONCURRENCY
* - {py:obj}`COMPUTED_CONFIG_KEYS <archivebox.config.configset.COMPUTED_CONFIG_KEYS>`
- ```{autodoc2-docstring} archivebox.config.configset.COMPUTED_CONFIG_KEYS
:summary:
```
* - {py:obj}`_INI_CACHE <archivebox.config.configset._INI_CACHE>`
- ```{autodoc2-docstring} archivebox.config.configset._INI_CACHE
:summary:
```
````
### API
````{py:data} COMPUTED_CONFIG_KEYS
:canonical: archivebox.config.configset.COMPUTED_CONFIG_KEYS
:value: >
('TERM_WIDTH', 'COMMIT_HASH', 'BUILD_TIME', 'USES_SUBDOMAIN_ROUTING', 'ENABLES_FULL_JS_REPLAY', 'CON...
```{autodoc2-docstring} archivebox.config.configset.COMPUTED_CONFIG_KEYS
```
````
`````{py:class} CaseConfigParser(defaults=None, dict_type=_default_dict, allow_no_value=False, *, delimiters=('=', ':'), comment_prefixes=('#', ';'), inline_comment_prefixes=None, strict=True, empty_lines_in_values=True, default_section=DEFAULTSECT, interpolation=_UNSET, converters=_UNSET, allow_unnamed_section=False)
:canonical: archivebox.config.configset.CaseConfigParser
Bases: {py:obj}`configparser.ConfigParser`
````{py:method} optionxform(optionstr: str) -> str
:canonical: archivebox.config.configset.CaseConfigParser.optionxform
```{autodoc2-docstring} archivebox.config.configset.CaseConfigParser.optionxform
```
````
`````
````{py:data} _INI_CACHE
:canonical: archivebox.config.configset._INI_CACHE
:type: dict[tuple[str, float], dict[str, typing.Any]]
:value: >
None
```{autodoc2-docstring} archivebox.config.configset._INI_CACHE
```
````
````{py:function} _read_ini_config_cached(config_path_str: str) -> dict[str, typing.Any]
:canonical: archivebox.config.configset._read_ini_config_cached
```{autodoc2-docstring} archivebox.config.configset._read_ini_config_cached
```
````
`````{py:class} IniConfigSettingsSource(settings_cls: type[pydantic_settings.main.BaseSettings])
:canonical: archivebox.config.configset.IniConfigSettingsSource
@ -81,12 +114,12 @@ Bases: {py:obj}`pydantic_settings.PydanticBaseSettingsSource`
```{autodoc2-docstring} archivebox.config.configset.IniConfigSettingsSource.__init__
```
````{py:method} get_field_value(field: typing.Any, field_name: str) -> typing.Tuple[typing.Any, str, bool]
````{py:method} get_field_value(field: typing.Any, field_name: str) -> tuple[typing.Any, str, bool]
:canonical: archivebox.config.configset.IniConfigSettingsSource.get_field_value
````
````{py:method} __call__() -> typing.Dict[str, typing.Any]
````{py:method} __call__() -> dict[str, typing.Any]
:canonical: archivebox.config.configset.IniConfigSettingsSource.__call__
```{autodoc2-docstring} archivebox.config.configset.IniConfigSettingsSource.__call__
@ -94,7 +127,7 @@ Bases: {py:obj}`pydantic_settings.PydanticBaseSettingsSource`
````
````{py:method} _load_config_file() -> typing.Dict[str, typing.Any]
````{py:method} _load_config_file() -> dict[str, typing.Any]
:canonical: archivebox.config.configset.IniConfigSettingsSource._load_config_file
```{autodoc2-docstring} archivebox.config.configset.IniConfigSettingsSource._load_config_file
@ -121,14 +154,25 @@ Bases: {py:obj}`pydantic_settings.BaseSettings`
````{py:attribute} model_config
:canonical: archivebox.config.configset.BaseConfigSet.model_config
:value: >
'ConfigDict(...)'
'SettingsConfigDict(...)'
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.model_config
```
````
````{py:method} settings_customise_sources(settings_cls: typing.Type[pydantic_settings.BaseSettings], init_settings: pydantic_settings.PydanticBaseSettingsSource, env_settings: pydantic_settings.PydanticBaseSettingsSource, dotenv_settings: pydantic_settings.PydanticBaseSettingsSource, file_secret_settings: pydantic_settings.PydanticBaseSettingsSource) -> typing.Tuple[pydantic_settings.PydanticBaseSettingsSource, ...]
````{py:attribute} computed_config_keys
:canonical: archivebox.config.configset.BaseConfigSet.computed_config_keys
:type: typing.ClassVar[tuple[str, ...]]
:value: >
()
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.computed_config_keys
```
````
````{py:method} settings_customise_sources(settings_cls: type[pydantic_settings.BaseSettings], init_settings: pydantic_settings.PydanticBaseSettingsSource, env_settings: pydantic_settings.PydanticBaseSettingsSource, dotenv_settings: pydantic_settings.PydanticBaseSettingsSource, file_secret_settings: pydantic_settings.PydanticBaseSettingsSource) -> tuple[pydantic_settings.PydanticBaseSettingsSource, ...]
:canonical: archivebox.config.configset.BaseConfigSet.settings_customise_sources
:classmethod:
@ -137,7 +181,7 @@ Bases: {py:obj}`pydantic_settings.BaseSettings`
````
````{py:method} load_from_file(config_path: pathlib.Path) -> typing.Dict[str, str]
````{py:method} load_from_file(config_path: pathlib.Path) -> dict[str, str]
:canonical: archivebox.config.configset.BaseConfigSet.load_from_file
:classmethod:
@ -146,57 +190,76 @@ Bases: {py:obj}`pydantic_settings.BaseSettings`
````
````{py:method} update_in_place(warn: bool = True, persist: bool = False, **kwargs) -> None
:canonical: archivebox.config.configset.BaseConfigSet.update_in_place
````{py:method} __getitem__(key: str) -> typing.Any
:canonical: archivebox.config.configset.BaseConfigSet.__getitem__
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.update_in_place
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.__getitem__
```
````
````{py:method} __setitem__(key: str, value: typing.Any) -> None
:canonical: archivebox.config.configset.BaseConfigSet.__setitem__
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.__setitem__
```
````
````{py:method} update(*args, **kwargs) -> None
:canonical: archivebox.config.configset.BaseConfigSet.update
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.update
```
````
````{py:method} __contains__(key: str) -> bool
:canonical: archivebox.config.configset.BaseConfigSet.__contains__
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.__contains__
```
````
````{py:method} get(key: str, default: typing.Any = None) -> typing.Any
:canonical: archivebox.config.configset.BaseConfigSet.get
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.get
```
````
````{py:method} as_dict() -> dict[str, typing.Any]
:canonical: archivebox.config.configset.BaseConfigSet.as_dict
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.as_dict
```
````
````{py:method} items()
:canonical: archivebox.config.configset.BaseConfigSet.items
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.items
```
````
````{py:method} keys()
:canonical: archivebox.config.configset.BaseConfigSet.keys
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.keys
```
````
````{py:method} values()
:canonical: archivebox.config.configset.BaseConfigSet.values
```{autodoc2-docstring} archivebox.config.configset.BaseConfigSet.values
```
````
`````
````{py:function} get_config(defaults: typing.Optional[typing.Dict] = None, persona: typing.Any = None, user: typing.Any = None, crawl: typing.Any = None, snapshot: typing.Any = None, archiveresult: typing.Any = None, machine: typing.Any = None) -> typing.Dict[str, typing.Any]
:canonical: archivebox.config.configset.get_config
```{autodoc2-docstring} archivebox.config.configset.get_config
```
````
````{py:function} get_flat_config() -> typing.Dict[str, typing.Any]
:canonical: archivebox.config.configset.get_flat_config
```{autodoc2-docstring} archivebox.config.configset.get_flat_config
```
````
````{py:function} get_all_configs() -> typing.Dict[str, archivebox.config.configset.BaseConfigSet]
:canonical: archivebox.config.configset.get_all_configs
```{autodoc2-docstring} archivebox.config.configset.get_all_configs
```
````
````{py:function} _parse_env_value(value: str, default: typing.Any = None) -> typing.Any
:canonical: archivebox.config.configset._parse_env_value
```{autodoc2-docstring} archivebox.config.configset._parse_env_value
```
````
````{py:data} DEFAULT_WORKER_CONCURRENCY
:canonical: archivebox.config.configset.DEFAULT_WORKER_CONCURRENCY
:value: >
None
```{autodoc2-docstring} archivebox.config.configset.DEFAULT_WORKER_CONCURRENCY
```
````
````{py:function} get_worker_concurrency() -> typing.Dict[str, int]
:canonical: archivebox.config.configset.get_worker_concurrency
```{autodoc2-docstring} archivebox.config.configset.get_worker_concurrency
```
````

View File

@ -16,7 +16,9 @@
:align: left
* - {py:obj}`ConstantsDict <archivebox.config.constants.ConstantsDict>`
-
- ```{autodoc2-docstring} archivebox.config.constants.ConstantsDict
:summary:
```
````
### Data
@ -40,7 +42,8 @@
`````{py:class} ConstantsDict
:canonical: archivebox.config.constants.ConstantsDict
Bases: {py:obj}`collections.abc.Mapping`
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict
```
````{py:attribute} PACKAGE_DIR
:canonical: archivebox.config.constants.ConstantsDict.PACKAGE_DIR
@ -75,6 +78,17 @@ Bases: {py:obj}`collections.abc.Mapping`
````
````{py:attribute} USERS_DIR
:canonical: archivebox.config.constants.ConstantsDict.USERS_DIR
:type: pathlib.Path
:value: >
None
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.USERS_DIR
```
````
````{py:attribute} MACHINE_TYPE
:canonical: archivebox.config.constants.ConstantsDict.MACHINE_TYPE
:type: str
@ -284,6 +298,39 @@ Bases: {py:obj}`collections.abc.Mapping`
````
````{py:attribute} USERS_DIR_NAME
:canonical: archivebox.config.constants.ConstantsDict.USERS_DIR_NAME
:type: str
:value: >
'users'
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.USERS_DIR_NAME
```
````
````{py:attribute} SNAPSHOTS_DIR_NAME
:canonical: archivebox.config.constants.ConstantsDict.SNAPSHOTS_DIR_NAME
:type: str
:value: >
'snapshots'
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.SNAPSHOTS_DIR_NAME
```
````
````{py:attribute} CRAWLS_DIR_NAME
:canonical: archivebox.config.constants.ConstantsDict.CRAWLS_DIR_NAME
:type: str
:value: >
'crawls'
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.CRAWLS_DIR_NAME
```
````
````{py:attribute} SOURCES_DIR_NAME
:canonical: archivebox.config.constants.ConstantsDict.SOURCES_DIR_NAME
:type: str
@ -552,7 +599,7 @@ Bases: {py:obj}`collections.abc.Mapping`
:canonical: archivebox.config.constants.ConstantsDict.DEFAULT_LIB_DIR
:type: pathlib.Path
:value: >
None
'_env_path(...)'
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.DEFAULT_LIB_DIR
```
@ -563,13 +610,24 @@ Bases: {py:obj}`collections.abc.Mapping`
:canonical: archivebox.config.constants.ConstantsDict.DEFAULT_LIB_BIN_DIR
:type: pathlib.Path
:value: >
None
'_env_path(...)'
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.DEFAULT_LIB_BIN_DIR
```
````
````{py:attribute} RESERVED_ARCHIVE_DIR_NAMES
:canonical: archivebox.config.constants.ConstantsDict.RESERVED_ARCHIVE_DIR_NAMES
:type: frozenset[str]
:value: >
'frozenset(...)'
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.RESERVED_ARCHIVE_DIR_NAMES
```
````
````{py:attribute} TIMEZONE
:canonical: archivebox.config.constants.ConstantsDict.TIMEZONE
:type: str
@ -583,7 +641,7 @@ Bases: {py:obj}`collections.abc.Mapping`
````{py:attribute} DEFAULT_CLI_COLORS
:canonical: archivebox.config.constants.ConstantsDict.DEFAULT_CLI_COLORS
:type: typing.Dict[str, str]
:type: dict[str, str]
:value: >
None
@ -594,9 +652,9 @@ Bases: {py:obj}`collections.abc.Mapping`
````{py:attribute} DISABLED_CLI_COLORS
:canonical: archivebox.config.constants.ConstantsDict.DISABLED_CLI_COLORS
:type: typing.Dict[str, str]
:type: dict[str, str]
:value: >
'benedict(...)'
'AttrDict(...)'
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.DISABLED_CLI_COLORS
```
@ -689,39 +747,12 @@ Bases: {py:obj}`collections.abc.Mapping`
````
````{py:method} __benedict__()
:canonical: archivebox.config.constants.ConstantsDict.__benedict__
:classmethod:
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.__benedict__
```
````
````{py:method} __len__()
:canonical: archivebox.config.constants.ConstantsDict.__len__
:classmethod:
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.__len__
```
````
````{py:method} __iter__()
:canonical: archivebox.config.constants.ConstantsDict.__iter__
:classmethod:
```{autodoc2-docstring} archivebox.config.constants.ConstantsDict.__iter__
```
````
`````
````{py:data} CONSTANTS
:canonical: archivebox.config.constants.CONSTANTS
:value: >
'ConstantsDict(...)'
None
```{autodoc2-docstring} archivebox.config.constants.CONSTANTS
```
@ -731,7 +762,7 @@ Bases: {py:obj}`collections.abc.Mapping`
````{py:data} CONSTANTS_CONFIG
:canonical: archivebox.config.constants.CONSTANTS_CONFIG
:value: >
'__benedict__(...)'
'AttrDict(...)'
```{autodoc2-docstring} archivebox.config.constants.CONSTANTS_CONFIG
```

View File

@ -15,10 +15,6 @@
:class: autosummary longtable
:align: left
* - {py:obj}`setup_django_minimal <archivebox.config.django.setup_django_minimal>`
- ```{autodoc2-docstring} archivebox.config.django.setup_django_minimal
:summary:
```
* - {py:obj}`setup_django <archivebox.config.django.setup_django>`
- ```{autodoc2-docstring} archivebox.config.django.setup_django
:summary:
@ -31,6 +27,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`CONFIG <archivebox.config.django.CONFIG>`
- ```{autodoc2-docstring} archivebox.config.django.CONFIG
:summary:
```
* - {py:obj}`STDERR <archivebox.config.django.STDERR>`
- ```{autodoc2-docstring} archivebox.config.django.STDERR
:summary:
@ -43,6 +43,16 @@
### API
````{py:data} CONFIG
:canonical: archivebox.config.django.CONFIG
:value: >
'get_config(...)'
```{autodoc2-docstring} archivebox.config.django.CONFIG
```
````
````{py:data} STDERR
:canonical: archivebox.config.django.STDERR
:value: >
@ -53,13 +63,6 @@
````
````{py:function} setup_django_minimal()
:canonical: archivebox.config.django.setup_django_minimal
```{autodoc2-docstring} archivebox.config.django.setup_django_minimal
```
````
````{py:data} DJANGO_SET_UP
:canonical: archivebox.config.django.DJANGO_SET_UP
:value: >

View File

@ -21,18 +21,6 @@
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`LDAP_CONFIG <archivebox.config.ldap.LDAP_CONFIG>`
- ```{autodoc2-docstring} archivebox.config.ldap.LDAP_CONFIG
:summary:
```
````
### API
`````{py:class} LDAPConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[typing.Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | typing.Literal[dual, toggle] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | typing.Literal[all, no_enums] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, typing.Any]] | None = None, **values: typing.Any)
@ -73,7 +61,7 @@ Bases: {py:obj}`archivebox.config.configset.BaseConfigSet`
````{py:attribute} LDAP_SERVER_URI
:canonical: archivebox.config.ldap.LDAPConfig.LDAP_SERVER_URI
:type: typing.Optional[str]
:type: str | None
:value: >
'Field(...)'
@ -84,7 +72,7 @@ Bases: {py:obj}`archivebox.config.configset.BaseConfigSet`
````{py:attribute} LDAP_BIND_DN
:canonical: archivebox.config.ldap.LDAPConfig.LDAP_BIND_DN
:type: typing.Optional[str]
:type: str | None
:value: >
'Field(...)'
@ -95,7 +83,7 @@ Bases: {py:obj}`archivebox.config.configset.BaseConfigSet`
````{py:attribute} LDAP_BIND_PASSWORD
:canonical: archivebox.config.ldap.LDAPConfig.LDAP_BIND_PASSWORD
:type: typing.Optional[str]
:type: str | None
:value: >
'Field(...)'
@ -106,7 +94,7 @@ Bases: {py:obj}`archivebox.config.configset.BaseConfigSet`
````{py:attribute} LDAP_USER_BASE
:canonical: archivebox.config.ldap.LDAPConfig.LDAP_USER_BASE
:type: typing.Optional[str]
:type: str | None
:value: >
'Field(...)'
@ -190,13 +178,3 @@ Bases: {py:obj}`archivebox.config.configset.BaseConfigSet`
````
`````
````{py:data} LDAP_CONFIG
:canonical: archivebox.config.ldap.LDAP_CONFIG
:value: >
'LDAPConfig(...)'
```{autodoc2-docstring} archivebox.config.ldap.LDAP_CONFIG
```
````

View File

@ -33,18 +33,10 @@ archivebox.config.views
:class: autosummary longtable
:align: left
* - {py:obj}`_get_config <archivebox.config._get_config>`
- ```{autodoc2-docstring} archivebox.config._get_config
:summary:
```
* - {py:obj}`__getattr__ <archivebox.config.__getattr__>`
- ```{autodoc2-docstring} archivebox.config.__getattr__
:summary:
```
* - {py:obj}`get_CONFIG <archivebox.config.get_CONFIG>`
- ```{autodoc2-docstring} archivebox.config.get_CONFIG
:summary:
```
````
### Data
@ -57,6 +49,10 @@ archivebox.config.views
- ```{autodoc2-docstring} archivebox.config.__order__
:summary:
```
* - {py:obj}`__all__ <archivebox.config.__all__>`
- ```{autodoc2-docstring} archivebox.config.__all__
:summary:
```
````
### API
@ -71,13 +67,6 @@ archivebox.config.views
````
````{py:function} _get_config()
:canonical: archivebox.config._get_config
```{autodoc2-docstring} archivebox.config._get_config
```
````
````{py:function} __getattr__(name: str)
:canonical: archivebox.config.__getattr__
@ -85,9 +74,12 @@ archivebox.config.views
```
````
````{py:function} get_CONFIG()
:canonical: archivebox.config.get_CONFIG
````{py:data} __all__
:canonical: archivebox.config.__all__
:value: >
('CONSTANTS', 'CONSTANTS_CONFIG', 'PACKAGE_DIR', 'DATA_DIR', 'VERSION')
```{autodoc2-docstring} archivebox.config.get_CONFIG
```{autodoc2-docstring} archivebox.config.__all__
```
````

View File

@ -15,6 +15,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_env_path <archivebox.config.paths._env_path>`
- ```{autodoc2-docstring} archivebox.config.paths._env_path
:summary:
```
* - {py:obj}`_get_collection_id <archivebox.config.paths._get_collection_id>`
- ```{autodoc2-docstring} archivebox.config.paths._get_collection_id
:summary:
@ -83,6 +87,10 @@
- ```{autodoc2-docstring} archivebox.config.paths.ARCHIVE_DIR
:summary:
```
* - {py:obj}`USERS_DIR <archivebox.config.paths.USERS_DIR>`
- ```{autodoc2-docstring} archivebox.config.paths.USERS_DIR
:summary:
```
* - {py:obj}`IN_DOCKER <archivebox.config.paths.IN_DOCKER>`
- ```{autodoc2-docstring} archivebox.config.paths.IN_DOCKER
:summary:
@ -117,17 +125,35 @@
````
````{py:function} _env_path(key: str, default: pathlib.Path) -> pathlib.Path
:canonical: archivebox.config.paths._env_path
```{autodoc2-docstring} archivebox.config.paths._env_path
```
````
````{py:data} ARCHIVE_DIR
:canonical: archivebox.config.paths.ARCHIVE_DIR
:type: pathlib.Path
:value: >
None
'_env_path(...)'
```{autodoc2-docstring} archivebox.config.paths.ARCHIVE_DIR
```
````
````{py:data} USERS_DIR
:canonical: archivebox.config.paths.USERS_DIR
:type: pathlib.Path
:value: >
'_env_path(...)'
```{autodoc2-docstring} archivebox.config.paths.USERS_DIR
```
````
````{py:data} IN_DOCKER
:canonical: archivebox.config.paths.IN_DOCKER
:value: >
@ -204,28 +230,28 @@
```
````
````{py:function} get_or_create_working_tmp_dir(autofix=True, quiet=True)
````{py:function} get_or_create_working_tmp_dir(autofix=True, quiet=True, config: ArchiveBoxConfig | None = None, **config_kwargs)
:canonical: archivebox.config.paths.get_or_create_working_tmp_dir
```{autodoc2-docstring} archivebox.config.paths.get_or_create_working_tmp_dir
```
````
````{py:function} get_or_create_working_lib_dir(autofix=True, quiet=False)
````{py:function} get_or_create_working_lib_dir(autofix=True, quiet=False, config: ArchiveBoxConfig | None = None, **config_kwargs)
:canonical: archivebox.config.paths.get_or_create_working_lib_dir
```{autodoc2-docstring} archivebox.config.paths.get_or_create_working_lib_dir
```
````
````{py:function} get_data_locations()
````{py:function} get_data_locations(config: ArchiveBoxConfig | None = None, **config_kwargs)
:canonical: archivebox.config.paths.get_data_locations
```{autodoc2-docstring} archivebox.config.paths.get_data_locations
```
````
````{py:function} get_code_locations()
````{py:function} get_code_locations(config: ArchiveBoxConfig | None = None, **config_kwargs)
:canonical: archivebox.config.paths.get_code_locations
```{autodoc2-docstring} archivebox.config.paths.get_code_locations

View File

@ -212,7 +212,7 @@
:canonical: archivebox.config.permissions.HOSTNAME
:type: str
:value: >
'max(...)'
'cast(...)'
```{autodoc2-docstring} archivebox.config.permissions.HOSTNAME
```

View File

@ -43,14 +43,6 @@
- ```{autodoc2-docstring} archivebox.config.version.PACKAGE_DIR
:summary:
```
* - {py:obj}`DATA_DIR <archivebox.config.version.DATA_DIR>`
- ```{autodoc2-docstring} archivebox.config.version.DATA_DIR
:summary:
```
* - {py:obj}`ARCHIVE_DIR <archivebox.config.version.ARCHIVE_DIR>`
- ```{autodoc2-docstring} archivebox.config.version.ARCHIVE_DIR
:summary:
```
* - {py:obj}`VERSION <archivebox.config.version.VERSION>`
- ```{autodoc2-docstring} archivebox.config.version.VERSION
:summary:
@ -80,28 +72,6 @@
````
````{py:data} DATA_DIR
:canonical: archivebox.config.version.DATA_DIR
:type: pathlib.Path
:value: >
'resolve(...)'
```{autodoc2-docstring} archivebox.config.version.DATA_DIR
```
````
````{py:data} ARCHIVE_DIR
:canonical: archivebox.config.version.ARCHIVE_DIR
:type: pathlib.Path
:value: >
None
```{autodoc2-docstring} archivebox.config.version.ARCHIVE_DIR
```
````
````{py:function} detect_installed_version(PACKAGE_DIR: pathlib.Path = PACKAGE_DIR)
:canonical: archivebox.config.version.detect_installed_version
@ -109,7 +79,7 @@
```
````
````{py:function} get_COMMIT_HASH() -> typing.Optional[str]
````{py:function} get_COMMIT_HASH() -> str | None
:canonical: archivebox.config.version.get_COMMIT_HASH
```{autodoc2-docstring} archivebox.config.version.get_COMMIT_HASH

View File

@ -15,12 +15,84 @@
:class: autosummary longtable
:align: left
* - {py:obj}`is_superuser <archivebox.config.views.is_superuser>`
- ```{autodoc2-docstring} archivebox.config.views.is_superuser
:summary:
```
* - {py:obj}`format_parsed_datetime <archivebox.config.views.format_parsed_datetime>`
- ```{autodoc2-docstring} archivebox.config.views.format_parsed_datetime
:summary:
```
* - {py:obj}`render_code_block <archivebox.config.views.render_code_block>`
- ```{autodoc2-docstring} archivebox.config.views.render_code_block
:summary:
```
* - {py:obj}`render_highlighted_json_block <archivebox.config.views.render_highlighted_json_block>`
- ```{autodoc2-docstring} archivebox.config.views.render_highlighted_json_block
:summary:
```
* - {py:obj}`get_plugin_docs_url <archivebox.config.views.get_plugin_docs_url>`
- ```{autodoc2-docstring} archivebox.config.views.get_plugin_docs_url
:summary:
```
* - {py:obj}`get_plugin_hook_source_url <archivebox.config.views.get_plugin_hook_source_url>`
- ```{autodoc2-docstring} archivebox.config.views.get_plugin_hook_source_url
:summary:
```
* - {py:obj}`get_live_config_url <archivebox.config.views.get_live_config_url>`
- ```{autodoc2-docstring} archivebox.config.views.get_live_config_url
:summary:
```
* - {py:obj}`get_environment_binary_url <archivebox.config.views.get_environment_binary_url>`
- ```{autodoc2-docstring} archivebox.config.views.get_environment_binary_url
:summary:
```
* - {py:obj}`get_installed_binary_change_url <archivebox.config.views.get_installed_binary_change_url>`
- ```{autodoc2-docstring} archivebox.config.views.get_installed_binary_change_url
:summary:
```
* - {py:obj}`get_machine_admin_url <archivebox.config.views.get_machine_admin_url>`
- ```{autodoc2-docstring} archivebox.config.views.get_machine_admin_url
:summary:
```
* - {py:obj}`render_code_tag_list <archivebox.config.views.render_code_tag_list>`
- ```{autodoc2-docstring} archivebox.config.views.render_code_tag_list
:summary:
```
* - {py:obj}`render_plugin_metadata_html <archivebox.config.views.render_plugin_metadata_html>`
- ```{autodoc2-docstring} archivebox.config.views.render_plugin_metadata_html
:summary:
```
* - {py:obj}`render_link_tag_list <archivebox.config.views.render_link_tag_list>`
- ```{autodoc2-docstring} archivebox.config.views.render_link_tag_list
:summary:
```
* - {py:obj}`render_property_links <archivebox.config.views.render_property_links>`
- ```{autodoc2-docstring} archivebox.config.views.render_property_links
:summary:
```
* - {py:obj}`render_config_properties_html <archivebox.config.views.render_config_properties_html>`
- ```{autodoc2-docstring} archivebox.config.views.render_config_properties_html
:summary:
```
* - {py:obj}`render_hook_links_html <archivebox.config.views.render_hook_links_html>`
- ```{autodoc2-docstring} archivebox.config.views.render_hook_links_html
:summary:
```
* - {py:obj}`render_binary_detail_description <archivebox.config.views.render_binary_detail_description>`
- ```{autodoc2-docstring} archivebox.config.views.render_binary_detail_description
:summary:
```
* - {py:obj}`obj_to_yaml <archivebox.config.views.obj_to_yaml>`
- ```{autodoc2-docstring} archivebox.config.views.obj_to_yaml
:summary:
```
* - {py:obj}`get_detected_binaries <archivebox.config.views.get_detected_binaries>`
- ```{autodoc2-docstring} archivebox.config.views.get_detected_binaries
* - {py:obj}`_binary_sort_key <archivebox.config.views._binary_sort_key>`
- ```{autodoc2-docstring} archivebox.config.views._binary_sort_key
:summary:
```
* - {py:obj}`get_db_binaries_by_name <archivebox.config.views.get_db_binaries_by_name>`
- ```{autodoc2-docstring} archivebox.config.views.get_db_binaries_by_name
:summary:
```
* - {py:obj}`get_filesystem_plugins <archivebox.config.views.get_filesystem_plugins>`
@ -67,24 +139,213 @@
:class: autosummary longtable
:align: left
* - {py:obj}`KNOWN_BINARIES <archivebox.config.views.KNOWN_BINARIES>`
- ```{autodoc2-docstring} archivebox.config.views.KNOWN_BINARIES
* - {py:obj}`ABX_PLUGINS_DOCS_BASE_URL <archivebox.config.views.ABX_PLUGINS_DOCS_BASE_URL>`
- ```{autodoc2-docstring} archivebox.config.views.ABX_PLUGINS_DOCS_BASE_URL
:summary:
```
* - {py:obj}`ABX_PLUGINS_GITHUB_BASE_URL <archivebox.config.views.ABX_PLUGINS_GITHUB_BASE_URL>`
- ```{autodoc2-docstring} archivebox.config.views.ABX_PLUGINS_GITHUB_BASE_URL
:summary:
```
* - {py:obj}`LIVE_CONFIG_BASE_URL <archivebox.config.views.LIVE_CONFIG_BASE_URL>`
- ```{autodoc2-docstring} archivebox.config.views.LIVE_CONFIG_BASE_URL
:summary:
```
* - {py:obj}`ENVIRONMENT_BINARIES_BASE_URL <archivebox.config.views.ENVIRONMENT_BINARIES_BASE_URL>`
- ```{autodoc2-docstring} archivebox.config.views.ENVIRONMENT_BINARIES_BASE_URL
:summary:
```
* - {py:obj}`INSTALLED_BINARIES_BASE_URL <archivebox.config.views.INSTALLED_BINARIES_BASE_URL>`
- ```{autodoc2-docstring} archivebox.config.views.INSTALLED_BINARIES_BASE_URL
:summary:
```
* - {py:obj}`JSON_TOKEN_RE <archivebox.config.views.JSON_TOKEN_RE>`
- ```{autodoc2-docstring} archivebox.config.views.JSON_TOKEN_RE
:summary:
```
````
### API
````{py:data} KNOWN_BINARIES
:canonical: archivebox.config.views.KNOWN_BINARIES
````{py:data} ABX_PLUGINS_DOCS_BASE_URL
:canonical: archivebox.config.views.ABX_PLUGINS_DOCS_BASE_URL
:value: >
['wget', 'curl', 'chromium', 'chrome', 'google-chrome', 'google-chrome-stable', 'node', 'npm', 'npx'...
'https://archivebox.github.io/abx-plugins/'
```{autodoc2-docstring} archivebox.config.views.KNOWN_BINARIES
```{autodoc2-docstring} archivebox.config.views.ABX_PLUGINS_DOCS_BASE_URL
```
````
````{py:data} ABX_PLUGINS_GITHUB_BASE_URL
:canonical: archivebox.config.views.ABX_PLUGINS_GITHUB_BASE_URL
:value: >
'https://github.com/ArchiveBox/abx-plugins/tree/main/abx_plugins/plugins/'
```{autodoc2-docstring} archivebox.config.views.ABX_PLUGINS_GITHUB_BASE_URL
```
````
````{py:data} LIVE_CONFIG_BASE_URL
:canonical: archivebox.config.views.LIVE_CONFIG_BASE_URL
:value: >
'/admin/environment/config/'
```{autodoc2-docstring} archivebox.config.views.LIVE_CONFIG_BASE_URL
```
````
````{py:data} ENVIRONMENT_BINARIES_BASE_URL
:canonical: archivebox.config.views.ENVIRONMENT_BINARIES_BASE_URL
:value: >
'/admin/environment/binaries/'
```{autodoc2-docstring} archivebox.config.views.ENVIRONMENT_BINARIES_BASE_URL
```
````
````{py:data} INSTALLED_BINARIES_BASE_URL
:canonical: archivebox.config.views.INSTALLED_BINARIES_BASE_URL
:value: >
'/admin/machine/binary/'
```{autodoc2-docstring} archivebox.config.views.INSTALLED_BINARIES_BASE_URL
```
````
````{py:function} is_superuser(request: django.http.HttpRequest) -> bool
:canonical: archivebox.config.views.is_superuser
```{autodoc2-docstring} archivebox.config.views.is_superuser
```
````
````{py:function} format_parsed_datetime(value: object) -> str
:canonical: archivebox.config.views.format_parsed_datetime
```{autodoc2-docstring} archivebox.config.views.format_parsed_datetime
```
````
````{py:data} JSON_TOKEN_RE
:canonical: archivebox.config.views.JSON_TOKEN_RE
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.config.views.JSON_TOKEN_RE
```
````
````{py:function} render_code_block(text: str, *, highlighted: bool = False) -> str
:canonical: archivebox.config.views.render_code_block
```{autodoc2-docstring} archivebox.config.views.render_code_block
```
````
````{py:function} render_highlighted_json_block(value: typing.Any) -> str
:canonical: archivebox.config.views.render_highlighted_json_block
```{autodoc2-docstring} archivebox.config.views.render_highlighted_json_block
```
````
````{py:function} get_plugin_docs_url(plugin_name: str) -> str
:canonical: archivebox.config.views.get_plugin_docs_url
```{autodoc2-docstring} archivebox.config.views.get_plugin_docs_url
```
````
````{py:function} get_plugin_hook_source_url(plugin_name: str, hook_name: str) -> str
:canonical: archivebox.config.views.get_plugin_hook_source_url
```{autodoc2-docstring} archivebox.config.views.get_plugin_hook_source_url
```
````
````{py:function} get_live_config_url(key: str) -> str
:canonical: archivebox.config.views.get_live_config_url
```{autodoc2-docstring} archivebox.config.views.get_live_config_url
```
````
````{py:function} get_environment_binary_url(name: str) -> str
:canonical: archivebox.config.views.get_environment_binary_url
```{autodoc2-docstring} archivebox.config.views.get_environment_binary_url
```
````
````{py:function} get_installed_binary_change_url(name: str, binary: archivebox.machine.models.Binary | None) -> str | None
:canonical: archivebox.config.views.get_installed_binary_change_url
```{autodoc2-docstring} archivebox.config.views.get_installed_binary_change_url
```
````
````{py:function} get_machine_admin_url() -> str | None
:canonical: archivebox.config.views.get_machine_admin_url
```{autodoc2-docstring} archivebox.config.views.get_machine_admin_url
```
````
````{py:function} render_code_tag_list(values: list[str]) -> str
:canonical: archivebox.config.views.render_code_tag_list
```{autodoc2-docstring} archivebox.config.views.render_code_tag_list
```
````
````{py:function} render_plugin_metadata_html(config: dict[str, typing.Any]) -> str
:canonical: archivebox.config.views.render_plugin_metadata_html
```{autodoc2-docstring} archivebox.config.views.render_plugin_metadata_html
```
````
````{py:function} render_link_tag_list(values: list[str], url_resolver: collections.abc.Callable[[str], str] | None = None) -> str
:canonical: archivebox.config.views.render_link_tag_list
```{autodoc2-docstring} archivebox.config.views.render_link_tag_list
```
````
````{py:function} render_property_links(prop_name: str, prop_info: dict[str, typing.Any], machine_admin_url: str | None) -> str
:canonical: archivebox.config.views.render_property_links
```{autodoc2-docstring} archivebox.config.views.render_property_links
```
````
````{py:function} render_config_properties_html(properties: dict[str, typing.Any], machine_admin_url: str | None) -> str
:canonical: archivebox.config.views.render_config_properties_html
```{autodoc2-docstring} archivebox.config.views.render_config_properties_html
```
````
````{py:function} render_hook_links_html(plugin_name: str, hooks: list[str], source: str) -> str
:canonical: archivebox.config.views.render_hook_links_html
```{autodoc2-docstring} archivebox.config.views.render_hook_links_html
```
````
````{py:function} render_binary_detail_description(name: str, merged: dict[str, typing.Any], db_binary: typing.Any) -> str
:canonical: archivebox.config.views.render_binary_detail_description
```{autodoc2-docstring} archivebox.config.views.render_binary_detail_description
```
````
````{py:function} obj_to_yaml(obj: typing.Any, indent: int = 0) -> str
:canonical: archivebox.config.views.obj_to_yaml
@ -92,14 +353,21 @@
```
````
````{py:function} get_detected_binaries() -> typing.Dict[str, typing.Dict[str, typing.Any]]
:canonical: archivebox.config.views.get_detected_binaries
````{py:function} _binary_sort_key(binary: archivebox.machine.models.Binary) -> tuple[int, int, int, typing.Any]
:canonical: archivebox.config.views._binary_sort_key
```{autodoc2-docstring} archivebox.config.views.get_detected_binaries
```{autodoc2-docstring} archivebox.config.views._binary_sort_key
```
````
````{py:function} get_filesystem_plugins() -> typing.Dict[str, typing.Dict[str, typing.Any]]
````{py:function} get_db_binaries_by_name() -> dict[str, archivebox.machine.models.Binary]
:canonical: archivebox.config.views.get_db_binaries_by_name
```{autodoc2-docstring} archivebox.config.views.get_db_binaries_by_name
```
````
````{py:function} get_filesystem_plugins() -> dict[str, dict[str, typing.Any]]
:canonical: archivebox.config.views.get_filesystem_plugins
```{autodoc2-docstring} archivebox.config.views.get_filesystem_plugins

View File

@ -1,8 +0,0 @@
# {py:mod}`archivebox.core.actors`
```{py:module} archivebox.core.actors
```
```{autodoc2-docstring} archivebox.core.actors
:allowtitles:
```

View File

@ -27,6 +27,22 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_get_replay_source_url <archivebox.core.admin_archiveresults._get_replay_source_url>`
- ```{autodoc2-docstring} archivebox.core.admin_archiveresults._get_replay_source_url
:summary:
```
* - {py:obj}`build_abx_dl_display_command <archivebox.core.admin_archiveresults.build_abx_dl_display_command>`
- ```{autodoc2-docstring} archivebox.core.admin_archiveresults.build_abx_dl_display_command
:summary:
```
* - {py:obj}`build_abx_dl_replay_command <archivebox.core.admin_archiveresults.build_abx_dl_replay_command>`
- ```{autodoc2-docstring} archivebox.core.admin_archiveresults.build_abx_dl_replay_command
:summary:
```
* - {py:obj}`get_plugin_admin_url <archivebox.core.admin_archiveresults.get_plugin_admin_url>`
- ```{autodoc2-docstring} archivebox.core.admin_archiveresults.get_plugin_admin_url
:summary:
```
* - {py:obj}`render_archiveresults_list <archivebox.core.admin_archiveresults.render_archiveresults_list>`
- ```{autodoc2-docstring} archivebox.core.admin_archiveresults.render_archiveresults_list
:summary:
@ -39,7 +55,35 @@
### API
````{py:function} render_archiveresults_list(archiveresults_qs, limit=50)
````{py:function} _get_replay_source_url(result: archivebox.core.models.ArchiveResult) -> str
:canonical: archivebox.core.admin_archiveresults._get_replay_source_url
```{autodoc2-docstring} archivebox.core.admin_archiveresults._get_replay_source_url
```
````
````{py:function} build_abx_dl_display_command(result: archivebox.core.models.ArchiveResult) -> str
:canonical: archivebox.core.admin_archiveresults.build_abx_dl_display_command
```{autodoc2-docstring} archivebox.core.admin_archiveresults.build_abx_dl_display_command
```
````
````{py:function} build_abx_dl_replay_command(result: archivebox.core.models.ArchiveResult, config=None) -> str
:canonical: archivebox.core.admin_archiveresults.build_abx_dl_replay_command
```{autodoc2-docstring} archivebox.core.admin_archiveresults.build_abx_dl_replay_command
```
````
````{py:function} get_plugin_admin_url(plugin_name: str) -> str
:canonical: archivebox.core.admin_archiveresults.get_plugin_admin_url
```{autodoc2-docstring} archivebox.core.admin_archiveresults.get_plugin_admin_url
```
````
````{py:function} render_archiveresults_list(archiveresults_qs, limit=50, config=None)
:canonical: archivebox.core.admin_archiveresults.render_archiveresults_list
```{autodoc2-docstring} archivebox.core.admin_archiveresults.render_archiveresults_list
@ -198,16 +242,36 @@ Bases: {py:obj}`django.contrib.admin.TabularInline`
Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} list_select_related
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_select_related
:value: >
()
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_select_related
```
````
````{py:attribute} list_display
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_display
:value: >
('id', 'created_at', 'snapshot_info', 'tags_str', 'status', 'plugin_with_icon', 'cmd_str', 'output_s...
('details_link', 'zip_link', 'created_at', 'snapshot_info', 'tags_inline', 'status_badge', 'plugin_w...
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_display
```
````
````{py:attribute} list_display_links
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_display_links
:value: >
None
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_display_links
```
````
````{py:attribute} sort_fields
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.sort_fields
:value: >
@ -221,7 +285,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} readonly_fields
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.readonly_fields
:value: >
('cmd', 'cmd_version', 'pwd', 'cmd_str', 'snapshot_info', 'tags_str', 'created_at', 'modified_at', '...
('admin_actions', 'cmd', 'cmd_version', 'pwd', 'cmd_str', 'snapshot_info', 'tags_str', 'created_at',...
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.readonly_fields
```
@ -231,7 +295,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} search_fields
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.search_fields
:value: >
('id', 'snapshot__url', 'plugin', 'output_str', 'cmd_version', 'cmd', 'snapshot__timestamp')
('snapshot__id', 'snapshot__url', 'snapshot__tags__name', 'snapshot__crawl_id', 'plugin', 'hook_name...
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.search_fields
```
@ -251,7 +315,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} fieldsets
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.fieldsets
:value: >
(('Snapshot',), ('Plugin',), ('Timing',), ('Command',), ('Output',))
(('Actions',), ('Snapshot',), ('Plugin',), ('Timing',), ('Command',), ('Output',))
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.fieldsets
```
@ -281,7 +345,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} list_per_page
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_per_page
:value: >
None
50
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.list_per_page
```
@ -308,6 +372,16 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:attribute} show_full_result_count
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.show_full_result_count
:value: >
False
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.show_full_result_count
```
````
````{py:attribute} actions
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.actions
:value: >
@ -354,6 +428,69 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} changelist_view(request, extra_context=None)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.changelist_view
````
````{py:method} get_queryset(request)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_queryset
````
````{py:method} get_search_results(request, queryset, search_term)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_search_results
````
````{py:method} get_snapshot_view_url(result: archivebox.core.models.ArchiveResult) -> str
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_snapshot_view_url
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_snapshot_view_url
```
````
````{py:method} get_output_view_url(result: archivebox.core.models.ArchiveResult) -> str
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_output_view_url
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_output_view_url
```
````
````{py:method} get_output_files_url(result: archivebox.core.models.ArchiveResult) -> str
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_output_files_url
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_output_files_url
```
````
````{py:method} get_output_zip_url(result: archivebox.core.models.ArchiveResult) -> str
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_output_zip_url
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.get_output_zip_url
```
````
````{py:method} details_link(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.details_link
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.details_link
```
````
````{py:method} zip_link(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.zip_link
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.zip_link
```
````
````{py:method} snapshot_info(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.snapshot_info
@ -370,6 +507,22 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} tags_inline(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.tags_inline
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.tags_inline
```
````
````{py:method} status_badge(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.status_badge
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.status_badge
```
````
````{py:method} plugin_with_icon(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.plugin_with_icon
@ -378,6 +531,22 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} process_link(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.process_link
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.process_link
```
````
````{py:method} machine_link(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.machine_link
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.machine_link
```
````
````{py:method} cmd_str(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.cmd_str
@ -394,6 +563,22 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} output_str_display(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.output_str_display
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.output_str_display
```
````
````{py:method} admin_actions(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.admin_actions
```{autodoc2-docstring} archivebox.core.admin_archiveresults.ArchiveResultAdmin.admin_actions
```
````
````{py:method} output_summary(result)
:canonical: archivebox.core.admin_archiveresults.ArchiveResultAdmin.output_summary

View File

@ -90,6 +90,62 @@ Bases: {py:obj}`django.contrib.admin.AdminSite`
````
````{py:method} each_context(request: django.http.HttpRequest) -> dict[str, typing.Any]
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin.each_context
````
````{py:method} _format_object_count(count: int) -> tuple[int, str, str]
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin._format_object_count
:staticmethod:
```{autodoc2-docstring} archivebox.core.admin_site.ArchiveBoxAdmin._format_object_count
```
````
````{py:method} _set_model_object_count(models_by_table: dict[str, list[dict[str, typing.Any]]], table: str, count: int, title: str | None = None) -> None
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin._set_model_object_count
```{autodoc2-docstring} archivebox.core.admin_site.ArchiveBoxAdmin._set_model_object_count
```
````
````{py:method} get_app_list(request: django.http.HttpRequest, app_label: str | None = None) -> list[admin_data_views.typing.AppDict]
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin.get_app_list
````
````{py:method} admin_data_index_view(request: django.http.HttpRequest, **kwargs: typing.Any) -> django.template.response.TemplateResponse
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin.admin_data_index_view
```{autodoc2-docstring} archivebox.core.admin_site.ArchiveBoxAdmin.admin_data_index_view
```
````
````{py:method} index(request: django.http.HttpRequest, extra_context: dict[str, typing.Any] | None = None) -> django.template.response.TemplateResponse
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin.index
````
````{py:method} get_admin_data_urls() -> list[URLResolver | URLPattern]
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin.get_admin_data_urls
```{autodoc2-docstring} archivebox.core.admin_site.ArchiveBoxAdmin.get_admin_data_urls
```
````
````{py:method} get_urls() -> list[URLResolver | URLPattern]
:canonical: archivebox.core.admin_site.ArchiveBoxAdmin.get_urls
```{autodoc2-docstring} archivebox.core.admin_site.ArchiveBoxAdmin.get_urls
```
````
`````
````{py:data} archivebox_admin

View File

@ -21,6 +21,42 @@
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.TagNameListFilter
:summary:
```
* - {py:obj}`SnapshotPermissionsListFilter <archivebox.core.admin_snapshots.SnapshotPermissionsListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotPermissionsListFilter
:summary:
```
* - {py:obj}`SnapshotStatusListFilter <archivebox.core.admin_snapshots.SnapshotStatusListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotStatusListFilter
:summary:
```
* - {py:obj}`SnapshotDepthListFilter <archivebox.core.admin_snapshots.SnapshotDepthListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotDepthListFilter
:summary:
```
* - {py:obj}`SnapshotRelationListFilter <archivebox.core.admin_snapshots.SnapshotRelationListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRelationListFilter
:summary:
```
* - {py:obj}`SnapshotArchiveStateListFilter <archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter
:summary:
```
* - {py:obj}`SnapshotSizeListFilter <archivebox.core.admin_snapshots.SnapshotSizeListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotSizeListFilter
:summary:
```
* - {py:obj}`SnapshotRetryListFilter <archivebox.core.admin_snapshots.SnapshotRetryListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRetryListFilter
:summary:
```
* - {py:obj}`SnapshotResultHealthListFilter <archivebox.core.admin_snapshots.SnapshotResultHealthListFilter>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotResultHealthListFilter
:summary:
```
* - {py:obj}`SnapshotChangeList <archivebox.core.admin_snapshots.SnapshotChangeList>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotChangeList
:summary:
```
* - {py:obj}`SnapshotAdminForm <archivebox.core.admin_snapshots.SnapshotAdminForm>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdminForm
:summary:
@ -29,6 +65,18 @@
-
````
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_plugin_sort_order <archivebox.core.admin_snapshots._plugin_sort_order>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots._plugin_sort_order
:summary:
```
````
### Data
````{list-table}
@ -39,6 +87,10 @@
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.GLOBAL_CONTEXT
:summary:
```
* - {py:obj}`SNAPSHOT_PERMISSION_META <archivebox.core.admin_snapshots.SNAPSHOT_PERMISSION_META>`
- ```{autodoc2-docstring} archivebox.core.admin_snapshots.SNAPSHOT_PERMISSION_META
:summary:
```
````
### API
@ -53,6 +105,23 @@
````
````{py:data} SNAPSHOT_PERMISSION_META
:canonical: archivebox.core.admin_snapshots.SNAPSHOT_PERMISSION_META
:value: >
None
```{autodoc2-docstring} archivebox.core.admin_snapshots.SNAPSHOT_PERMISSION_META
```
````
````{py:function} _plugin_sort_order() -> dict[str, int]
:canonical: archivebox.core.admin_snapshots._plugin_sort_order
```{autodoc2-docstring} archivebox.core.admin_snapshots._plugin_sort_order
```
````
`````{py:class} SnapshotActionForm(*args, **kwargs)
:canonical: archivebox.core.admin_snapshots.SnapshotActionForm
@ -114,6 +183,398 @@ Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
`````
`````{py:class} SnapshotPermissionsListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotPermissionsListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotPermissionsListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotPermissionsListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotPermissionsListFilter.title
:value: >
'permission'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotPermissionsListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotPermissionsListFilter.parameter_name
:value: >
'permissions'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotPermissionsListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotPermissionsListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotPermissionsListFilter.queryset
````
`````
`````{py:class} SnapshotStatusListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotStatusListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotStatusListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotStatusListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotStatusListFilter.title
:value: >
'snapshot status'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotStatusListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotStatusListFilter.parameter_name
:value: >
'snapshot_status'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotStatusListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotStatusListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotStatusListFilter.queryset
````
`````
`````{py:class} SnapshotDepthListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotDepthListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotDepthListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotDepthListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotDepthListFilter.title
:value: >
'depth'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotDepthListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotDepthListFilter.parameter_name
:value: >
'depth_bucket'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotDepthListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotDepthListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotDepthListFilter.queryset
````
`````
`````{py:class} SnapshotRelationListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotRelationListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRelationListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRelationListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotRelationListFilter.title
:value: >
'crawl position'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRelationListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotRelationListFilter.parameter_name
:value: >
'position'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRelationListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotRelationListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotRelationListFilter.queryset
````
`````
`````{py:class} SnapshotArchiveStateListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter.title
:value: >
'archive state'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter.parameter_name
:value: >
'archive_state'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotArchiveStateListFilter.queryset
````
`````
`````{py:class} SnapshotSizeListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotSizeListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotSizeListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotSizeListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotSizeListFilter.title
:value: >
'size'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotSizeListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotSizeListFilter.parameter_name
:value: >
'size'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotSizeListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotSizeListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotSizeListFilter.queryset
````
`````
`````{py:class} SnapshotRetryListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotRetryListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRetryListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRetryListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotRetryListFilter.title
:value: >
'retry'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRetryListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotRetryListFilter.parameter_name
:value: >
'retry'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotRetryListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotRetryListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotRetryListFilter.queryset
````
`````
`````{py:class} SnapshotResultHealthListFilter(request, params, model, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotResultHealthListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotResultHealthListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotResultHealthListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.core.admin_snapshots.SnapshotResultHealthListFilter.title
:value: >
'ArchiveResult status'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotResultHealthListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.core.admin_snapshots.SnapshotResultHealthListFilter.parameter_name
:value: >
'archiveresult_status'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotResultHealthListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.core.admin_snapshots.SnapshotResultHealthListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotResultHealthListFilter.queryset
````
`````
`````{py:class} SnapshotChangeList(request, *args, **kwargs)
:canonical: archivebox.core.admin_snapshots.SnapshotChangeList
Bases: {py:obj}`archivebox.search.admin.SearchResultsChangeList`
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotChangeList
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotChangeList.__init__
```
````{py:method} get_results(request)
:canonical: archivebox.core.admin_snapshots.SnapshotChangeList.get_results
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotChangeList.get_results
```
````
`````
``````{py:class} SnapshotAdminForm(*args, **kwargs)
:canonical: archivebox.core.admin_snapshots.SnapshotAdminForm
@ -138,6 +599,16 @@ Bases: {py:obj}`django.forms.ModelForm`
````
````{py:attribute} permissions_config
:canonical: archivebox.core.admin_snapshots.SnapshotAdminForm.permissions_config
:value: >
'ChoiceField(...)'
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdminForm.permissions_config
```
````
`````{py:class} Meta
:canonical: archivebox.core.admin_snapshots.SnapshotAdminForm.Meta
@ -188,16 +659,46 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````
````{py:attribute} raw_id_fields
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.raw_id_fields
:value: >
('crawl', 'parent_snapshot')
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.raw_id_fields
```
````
````{py:attribute} list_select_related
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.list_select_related
:value: >
()
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.list_select_related
```
````
````{py:attribute} list_display
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.list_display
:value: >
('created_at', 'preview_icon', 'title_str', 'tags_inline', 'status_with_progress', 'files', 'size_wi...
('permissions_badge', 'created_at', 'preview_icon', 'title_str', 'tags_inline', 'status_with_progres...
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.list_display
```
````
````{py:attribute} list_display_links
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.list_display_links
:value: >
('created_at',)
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.list_display_links
```
````
````{py:attribute} sort_fields
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.sort_fields
:value: >
@ -211,7 +712,7 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````{py:attribute} readonly_fields
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.readonly_fields
:value: >
('admin_actions', 'status_info', 'imported_timestamp', 'created_at', 'modified_at', 'downloaded_at',...
('admin_actions', 'snapshot_summary', 'url_favicon', 'tags_badges', 'imported_timestamp', 'created_a...
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.readonly_fields
```
@ -231,7 +732,7 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````{py:attribute} list_filter
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.list_filter
:value: >
('created_at', 'downloaded_at', 'archiveresult__status', 'crawl__created_by')
()
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.list_filter
```
@ -241,7 +742,7 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````{py:attribute} fieldsets
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.fieldsets
:value: >
(('Actions',), ('URL',), ('Tags',), ('Status',), ('Timestamps',), ('Relations',), ('Config',), ('Fil...
(('Actions',), ('Snapshot',), ('URL',), ('Tags',), ('Status',), ('Timestamps',), ('Relations',), ('C...
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.fieldsets
```
@ -251,7 +752,7 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````{py:attribute} ordering
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.ordering
:value: >
['-created_at']
['-timestamp']
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.ordering
```
@ -281,7 +782,7 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````{py:attribute} list_per_page
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.list_per_page
:value: >
'min(...)'
50
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.list_per_page
```
@ -328,6 +829,24 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````
````{py:method} get_changelist(request, **kwargs)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.get_changelist
````
````{py:method} get_ordering(request)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.get_ordering
````
````{py:method} change_view(request, object_id, form_url='', extra_context=None)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.change_view
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.change_view
```
````
````{py:method} changelist_view(request, extra_context=None)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.changelist_view
@ -338,16 +857,96 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````
````{py:method} lookup_allowed(lookup, value, request=None)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.lookup_allowed
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.lookup_allowed
```
````
````{py:method} get_snapshot_view_url(obj: archivebox.core.models.Snapshot) -> str
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.get_snapshot_view_url
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.get_snapshot_view_url
```
````
````{py:method} get_snapshot_files_url(obj: archivebox.core.models.Snapshot) -> str
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.get_snapshot_files_url
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.get_snapshot_files_url
```
````
````{py:method} get_snapshot_zip_url(obj: archivebox.core.models.Snapshot) -> str
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.get_snapshot_zip_url
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.get_snapshot_zip_url
```
````
````{py:method} get_urls()
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.get_urls
````
````{py:method} search_stream_view(request)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.search_stream_view
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.search_stream_view
```
````
````{py:method} iter_meta_search_ids(query, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.iter_meta_search_ids
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.iter_meta_search_ids
```
````
````{py:method} iter_backend_search_ids(iterator, queryset)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.iter_backend_search_ids
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.iter_backend_search_ids
```
````
````{py:method} set_permissions_view(request, object_id)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.set_permissions_view
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.set_permissions_view
```
````
````{py:method} redo_failed_view(request, object_id)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.redo_failed_view
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.redo_failed_view
```
````
````{py:method} get_queryset(request)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.get_queryset
````
````{py:method} permissions_badge(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.permissions_badge
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.permissions_badge
```
````
````{py:method} imported_timestamp(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.imported_timestamp
@ -396,6 +995,30 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````
````{py:method} tags_badges(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.tags_badges
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.tags_badges
```
````
````{py:method} _get_preview_data(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin._get_preview_data
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin._get_preview_data
```
````
````{py:method} url_favicon(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.url_favicon
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.url_favicon
```
````
````{py:method} preview_icon(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.preview_icon
@ -404,6 +1027,14 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````
````{py:method} snapshot_summary(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.snapshot_summary
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin.snapshot_summary
```
````
````{py:method} files(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin.files
@ -452,6 +1083,22 @@ Bases: {py:obj}`archivebox.search.admin.SearchResultsAdminMixin`, {py:obj}`archi
````
````{py:method} _get_expected_hook_total(obj) -> int
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin._get_expected_hook_total
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin._get_expected_hook_total
```
````
````{py:method} _get_prefetched_tags(obj)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin._get_prefetched_tags
```{autodoc2-docstring} archivebox.core.admin_snapshots.SnapshotAdmin._get_prefetched_tags
```
````
````{py:method} _get_ordering_fields(request)
:canonical: archivebox.core.admin_snapshots.SnapshotAdmin._get_ordering_fields

View File

@ -17,6 +17,8 @@
* - {py:obj}`TagInline <archivebox.core.admin_tags.TagInline>`
-
* - {py:obj}`TagAdminForm <archivebox.core.admin_tags.TagAdminForm>`
-
* - {py:obj}`TagAdmin <archivebox.core.admin_tags.TagAdmin>`
-
````
@ -92,15 +94,98 @@ Bases: {py:obj}`django.contrib.admin.TabularInline`
`````
``````{py:class} TagAdminForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)
:canonical: archivebox.core.admin_tags.TagAdminForm
Bases: {py:obj}`django.forms.ModelForm`
`````{py:class} Meta
:canonical: archivebox.core.admin_tags.TagAdminForm.Meta
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdminForm.Meta
```
````{py:attribute} model
:canonical: archivebox.core.admin_tags.TagAdminForm.Meta.model
:value: >
None
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdminForm.Meta.model
```
````
````{py:attribute} fields
:canonical: archivebox.core.admin_tags.TagAdminForm.Meta.fields
:value: >
'__all__'
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdminForm.Meta.fields
```
````
````{py:attribute} widgets
:canonical: archivebox.core.admin_tags.TagAdminForm.Meta.widgets
:value: >
None
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdminForm.Meta.widgets
```
````
`````
````{py:method} clean_name()
:canonical: archivebox.core.admin_tags.TagAdminForm.clean_name
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdminForm.clean_name
```
````
``````
`````{py:class} TagAdmin(model, admin_site)
:canonical: archivebox.core.admin_tags.TagAdmin
Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} form
:canonical: archivebox.core.admin_tags.TagAdmin.form
:value: >
None
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.form
```
````
````{py:attribute} change_list_template
:canonical: archivebox.core.admin_tags.TagAdmin.change_list_template
:value: >
'admin/core/tag/change_list.html'
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.change_list_template
```
````
````{py:attribute} change_form_template
:canonical: archivebox.core.admin_tags.TagAdmin.change_form_template
:value: >
'admin/core/tag/change_form.html'
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.change_form_template
```
````
````{py:attribute} list_display
:canonical: archivebox.core.admin_tags.TagAdmin.list_display
:value: >
('created_at', 'created_by', 'id', 'name', 'num_snapshots', 'snapshots')
('name', 'num_snapshots', 'created_at', 'created_by')
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.list_display
```
@ -117,12 +202,12 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:attribute} sort_fields
:canonical: archivebox.core.admin_tags.TagAdmin.sort_fields
````{py:attribute} search_fields
:canonical: archivebox.core.admin_tags.TagAdmin.search_fields
:value: >
('name', 'slug', 'id', 'created_by', 'created_at')
('id', 'name')
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.sort_fields
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.search_fields
```
````
@ -130,27 +215,17 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} readonly_fields
:canonical: archivebox.core.admin_tags.TagAdmin.readonly_fields
:value: >
('slug', 'id', 'created_at', 'modified_at', 'snapshots')
('id', 'created_at', 'modified_at', 'snapshots')
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.readonly_fields
```
````
````{py:attribute} search_fields
:canonical: archivebox.core.admin_tags.TagAdmin.search_fields
:value: >
('id', 'name', 'slug')
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.search_fields
```
````
````{py:attribute} actions
:canonical: archivebox.core.admin_tags.TagAdmin.actions
:value: >
['delete_selected', 'merge_tags']
['delete_selected']
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.actions
```
@ -160,7 +235,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} ordering
:canonical: archivebox.core.admin_tags.TagAdmin.ordering
:value: >
['-created_at']
['name', 'id']
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.ordering
```
@ -170,32 +245,60 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} fieldsets
:canonical: archivebox.core.admin_tags.TagAdmin.fieldsets
:value: >
(('Tag Info',), ('Metadata',), ('Snapshots',))
(('Tag',), ('Metadata',), ('Recent Snapshots',))
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.fieldsets
```
````
````{py:attribute} paginator
:canonical: archivebox.core.admin_tags.TagAdmin.paginator
````{py:attribute} add_fieldsets
:canonical: archivebox.core.admin_tags.TagAdmin.add_fieldsets
:value: >
None
(('Tag',), ('Metadata',))
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.paginator
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.add_fieldsets
```
````
````{py:method} num_snapshots(tag)
:canonical: archivebox.core.admin_tags.TagAdmin.num_snapshots
````{py:method} get_fieldsets(request: django.http.HttpRequest, obj: archivebox.core.models.Tag | None = None)
:canonical: archivebox.core.admin_tags.TagAdmin.get_fieldsets
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.num_snapshots
````
````{py:method} changelist_view(request: django.http.HttpRequest, extra_context=None)
:canonical: archivebox.core.admin_tags.TagAdmin.changelist_view
````
````{py:method} render_change_form(request, context, add=False, change=False, form_url='', obj=None)
:canonical: archivebox.core.admin_tags.TagAdmin.render_change_form
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.render_change_form
```
````
````{py:method} snapshots(tag)
````{py:method} response_add(request: django.http.HttpRequest, obj: archivebox.core.models.Tag, post_url_continue=None)
:canonical: archivebox.core.admin_tags.TagAdmin.response_add
````
````{py:method} response_change(request: django.http.HttpRequest, obj: archivebox.core.models.Tag)
:canonical: archivebox.core.admin_tags.TagAdmin.response_change
````
````{py:method} _redirect_to_changelist(query: str = '') -> django.http.HttpResponseRedirect
:canonical: archivebox.core.admin_tags.TagAdmin._redirect_to_changelist
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin._redirect_to_changelist
```
````
````{py:method} snapshots(tag: archivebox.core.models.Tag)
:canonical: archivebox.core.admin_tags.TagAdmin.snapshots
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.snapshots
@ -203,6 +306,14 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} num_snapshots(tag: archivebox.core.models.Tag)
:canonical: archivebox.core.admin_tags.TagAdmin.num_snapshots
```{autodoc2-docstring} archivebox.core.admin_tags.TagAdmin.num_snapshots
```
````
`````
````{py:function} register_admin(admin_site)

View File

@ -68,6 +68,16 @@ Bases: {py:obj}`django.contrib.auth.admin.UserAdmin`
````
````{py:attribute} change_form_template
:canonical: archivebox.core.admin_users.CustomUserAdmin.change_form_template
:value: >
'admin/auth/user/change_form.html'
```{autodoc2-docstring} archivebox.core.admin_users.CustomUserAdmin.change_form_template
```
````
````{py:attribute} add_fieldsets
:canonical: archivebox.core.admin_users.CustomUserAdmin.add_fieldsets
:value: >
@ -88,6 +98,40 @@ Bases: {py:obj}`django.contrib.auth.admin.UserAdmin`
````
````{py:method} get_queryset(request)
:canonical: archivebox.core.admin_users.CustomUserAdmin.get_queryset
````
````{py:method} snapshot_rss_badge(obj, api_token: str = '')
:canonical: archivebox.core.admin_users.CustomUserAdmin.snapshot_rss_badge
```{autodoc2-docstring} archivebox.core.admin_users.CustomUserAdmin.snapshot_rss_badge
```
````
````{py:method} snapshot_count_badge(obj)
:canonical: archivebox.core.admin_users.CustomUserAdmin.snapshot_count_badge
```{autodoc2-docstring} archivebox.core.admin_users.CustomUserAdmin.snapshot_count_badge
```
````
````{py:method} snapshot_count_column(obj)
:canonical: archivebox.core.admin_users.CustomUserAdmin.snapshot_count_column
```{autodoc2-docstring} archivebox.core.admin_users.CustomUserAdmin.snapshot_count_column
```
````
````{py:method} get_list_display(request)
:canonical: archivebox.core.admin_users.CustomUserAdmin.get_list_display
````
````{py:method} snapshot_set(obj)
:canonical: archivebox.core.admin_users.CustomUserAdmin.snapshot_set

View File

@ -19,30 +19,8 @@
-
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_ORCHESTRATOR_BOOTSTRAPPED <archivebox.core.apps._ORCHESTRATOR_BOOTSTRAPPED>`
- ```{autodoc2-docstring} archivebox.core.apps._ORCHESTRATOR_BOOTSTRAPPED
:summary:
```
````
### API
````{py:data} _ORCHESTRATOR_BOOTSTRAPPED
:canonical: archivebox.core.apps._ORCHESTRATOR_BOOTSTRAPPED
:value: >
False
```{autodoc2-docstring} archivebox.core.apps._ORCHESTRATOR_BOOTSTRAPPED
```
````
`````{py:class} CoreConfig(app_name, app_module)
:canonical: archivebox.core.apps.CoreConfig

View File

@ -9,6 +9,18 @@
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_patch_thread_sensitive_context_shutdown <archivebox.core.asgi._patch_thread_sensitive_context_shutdown>`
- ```{autodoc2-docstring} archivebox.core.asgi._patch_thread_sensitive_context_shutdown
:summary:
```
````
### Data
````{list-table}
@ -23,6 +35,13 @@
### API
````{py:function} _patch_thread_sensitive_context_shutdown() -> None
:canonical: archivebox.core.asgi._patch_thread_sensitive_context_shutdown
```{autodoc2-docstring} archivebox.core.asgi._patch_thread_sensitive_context_shutdown
```
````
````{py:data} application
:canonical: archivebox.core.asgi.application
:value: >

View File

@ -0,0 +1,31 @@
# {py:mod}`archivebox.core.context_processors`
```{py:module} archivebox.core.context_processors
```
```{autodoc2-docstring} archivebox.core.context_processors
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`archivebox_globals <archivebox.core.context_processors.archivebox_globals>`
- ```{autodoc2-docstring} archivebox.core.context_processors.archivebox_globals
:summary:
```
````
### API
````{py:function} archivebox_globals(request)
:canonical: archivebox.core.context_processors.archivebox_globals
```{autodoc2-docstring} archivebox.core.context_processors.archivebox_globals
```
````

View File

@ -15,12 +15,12 @@
:class: autosummary longtable
:align: left
* - {py:obj}`AddLinkForm <archivebox.core.forms.AddLinkForm>`
-
* - {py:obj}`TagWidgetMixin <archivebox.core.forms.TagWidgetMixin>`
- ```{autodoc2-docstring} archivebox.core.forms.TagWidgetMixin
* - {py:obj}`PluginConfigFormMixin <archivebox.core.forms.PluginConfigFormMixin>`
- ```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin
:summary:
```
* - {py:obj}`AddLinkForm <archivebox.core.forms.AddLinkForm>`
-
* - {py:obj}`TagWidget <archivebox.core.forms.TagWidget>`
-
* - {py:obj}`TagField <archivebox.core.forms.TagField>`
@ -39,6 +39,54 @@
- ```{autodoc2-docstring} archivebox.core.forms.get_plugin_choices
:summary:
```
* - {py:obj}`get_plugin_choice_label <archivebox.core.forms.get_plugin_choice_label>`
- ```{autodoc2-docstring} archivebox.core.forms.get_plugin_choice_label
:summary:
```
* - {py:obj}`get_choice_field <archivebox.core.forms.get_choice_field>`
- ```{autodoc2-docstring} archivebox.core.forms.get_choice_field
:summary:
```
* - {py:obj}`_plugin_config_input_name <archivebox.core.forms._plugin_config_input_name>`
- ```{autodoc2-docstring} archivebox.core.forms._plugin_config_input_name
:summary:
```
* - {py:obj}`_schema_types <archivebox.core.forms._schema_types>`
- ```{autodoc2-docstring} archivebox.core.forms._schema_types
:summary:
```
* - {py:obj}`_jsonish <archivebox.core.forms._jsonish>`
- ```{autodoc2-docstring} archivebox.core.forms._jsonish
:summary:
```
* - {py:obj}`_same_config_value <archivebox.core.forms._same_config_value>`
- ```{autodoc2-docstring} archivebox.core.forms._same_config_value
:summary:
```
* - {py:obj}`_coerce_plugin_config_value <archivebox.core.forms._coerce_plugin_config_value>`
- ```{autodoc2-docstring} archivebox.core.forms._coerce_plugin_config_value
:summary:
```
* - {py:obj}`_resolve_required_binary_name <archivebox.core.forms._resolve_required_binary_name>`
- ```{autodoc2-docstring} archivebox.core.forms._resolve_required_binary_name
:summary:
```
* - {py:obj}`_iter_required_binary_names <archivebox.core.forms._iter_required_binary_names>`
- ```{autodoc2-docstring} archivebox.core.forms._iter_required_binary_names
:summary:
```
* - {py:obj}`_build_required_binary_url_lookup <archivebox.core.forms._build_required_binary_url_lookup>`
- ```{autodoc2-docstring} archivebox.core.forms._build_required_binary_url_lookup
:summary:
```
* - {py:obj}`_build_required_binary_links <archivebox.core.forms._build_required_binary_links>`
- ```{autodoc2-docstring} archivebox.core.forms._build_required_binary_links
:summary:
```
* - {py:obj}`get_plugin_config_binary_urls <archivebox.core.forms.get_plugin_config_binary_urls>`
- ```{autodoc2-docstring} archivebox.core.forms.get_plugin_config_binary_urls
:summary:
```
````
### Data
@ -51,6 +99,26 @@
- ```{autodoc2-docstring} archivebox.core.forms.DEPTH_CHOICES
:summary:
```
* - {py:obj}`PLUGIN_CONFIG_FIELD_PREFIX <archivebox.core.forms.PLUGIN_CONFIG_FIELD_PREFIX>`
- ```{autodoc2-docstring} archivebox.core.forms.PLUGIN_CONFIG_FIELD_PREFIX
:summary:
```
* - {py:obj}`PLUGIN_GROUP_DEFINITIONS <archivebox.core.forms.PLUGIN_GROUP_DEFINITIONS>`
- ```{autodoc2-docstring} archivebox.core.forms.PLUGIN_GROUP_DEFINITIONS
:summary:
```
* - {py:obj}`HIDDEN_PLUGIN_CONFIG_UI_PLUGINS <archivebox.core.forms.HIDDEN_PLUGIN_CONFIG_UI_PLUGINS>`
- ```{autodoc2-docstring} archivebox.core.forms.HIDDEN_PLUGIN_CONFIG_UI_PLUGINS
:summary:
```
* - {py:obj}`TIMEOUT_INPUT_PATTERN <archivebox.core.forms.TIMEOUT_INPUT_PATTERN>`
- ```{autodoc2-docstring} archivebox.core.forms.TIMEOUT_INPUT_PATTERN
:summary:
```
* - {py:obj}`_BINARY_TEMPLATE_PATTERN <archivebox.core.forms._BINARY_TEMPLATE_PATTERN>`
- ```{autodoc2-docstring} archivebox.core.forms._BINARY_TEMPLATE_PATTERN
:summary:
```
````
### API
@ -65,6 +133,46 @@
````
````{py:data} PLUGIN_CONFIG_FIELD_PREFIX
:canonical: archivebox.core.forms.PLUGIN_CONFIG_FIELD_PREFIX
:value: >
'plugin_config__'
```{autodoc2-docstring} archivebox.core.forms.PLUGIN_CONFIG_FIELD_PREFIX
```
````
````{py:data} PLUGIN_GROUP_DEFINITIONS
:canonical: archivebox.core.forms.PLUGIN_GROUP_DEFINITIONS
:value: >
(('main_plugins', 'Main', '', '', '', ('dom', 'screenshot', 'pdf', 'singlefile', 'wget', 'archivedot...
```{autodoc2-docstring} archivebox.core.forms.PLUGIN_GROUP_DEFINITIONS
```
````
````{py:data} HIDDEN_PLUGIN_CONFIG_UI_PLUGINS
:canonical: archivebox.core.forms.HIDDEN_PLUGIN_CONFIG_UI_PLUGINS
:value: >
None
```{autodoc2-docstring} archivebox.core.forms.HIDDEN_PLUGIN_CONFIG_UI_PLUGINS
```
````
````{py:data} TIMEOUT_INPUT_PATTERN
:canonical: archivebox.core.forms.TIMEOUT_INPUT_PATTERN
:value: >
'(0|[1-9][0-9]*|[0-9]+(?:\\.[0-9]+)?\\s*(?:s|sec|secs|second|seconds|m|min|mins|minute|minutes|h|hr|hrs...'
```{autodoc2-docstring} archivebox.core.forms.TIMEOUT_INPUT_PATTERN
```
````
````{py:function} get_plugin_choices()
:canonical: archivebox.core.forms.get_plugin_choices
@ -72,15 +180,168 @@
```
````
````{py:function} get_plugin_choice_label(plugin_name: str, plugin_configs: dict[str, dict]) -> str
:canonical: archivebox.core.forms.get_plugin_choice_label
```{autodoc2-docstring} archivebox.core.forms.get_plugin_choice_label
```
````
````{py:function} get_choice_field(form: django.forms.Form, name: str) -> django.forms.ChoiceField
:canonical: archivebox.core.forms.get_choice_field
```{autodoc2-docstring} archivebox.core.forms.get_choice_field
```
````
````{py:function} _plugin_config_input_name(plugin_name: str, config_key: str) -> str
:canonical: archivebox.core.forms._plugin_config_input_name
```{autodoc2-docstring} archivebox.core.forms._plugin_config_input_name
```
````
````{py:function} _schema_types(schema: collections.abc.Mapping[str, typing.Any]) -> list[str]
:canonical: archivebox.core.forms._schema_types
```{autodoc2-docstring} archivebox.core.forms._schema_types
```
````
````{py:function} _jsonish(value: typing.Any) -> str
:canonical: archivebox.core.forms._jsonish
```{autodoc2-docstring} archivebox.core.forms._jsonish
```
````
````{py:function} _same_config_value(left: typing.Any, right: typing.Any) -> bool
:canonical: archivebox.core.forms._same_config_value
```{autodoc2-docstring} archivebox.core.forms._same_config_value
```
````
````{py:function} _coerce_plugin_config_value(raw_value: typing.Any, schema: collections.abc.Mapping[str, typing.Any]) -> typing.Any
:canonical: archivebox.core.forms._coerce_plugin_config_value
```{autodoc2-docstring} archivebox.core.forms._coerce_plugin_config_value
```
````
`````{py:class} PluginConfigFormMixin
:canonical: archivebox.core.forms.PluginConfigFormMixin
```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin
```
````{py:attribute} plugin_groups
:canonical: archivebox.core.forms.PluginConfigFormMixin.plugin_groups
:type: list[dict[str, typing.Any]]
:value: >
None
```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin.plugin_groups
```
````
````{py:method} build_plugin_groups(runtime_config: collections.abc.Mapping[str, typing.Any] | None = None) -> None
:canonical: archivebox.core.forms.PluginConfigFormMixin.build_plugin_groups
```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin.build_plugin_groups
```
````
````{py:method} _build_plugin_cards(field_name: str, plugin_names: collections.abc.Iterable[str], plugin_configs: dict[str, dict[str, typing.Any]], runtime_config: collections.abc.Mapping[str, typing.Any], binary_url_lookup: collections.abc.Mapping[str, str] | None = None) -> list[dict[str, typing.Any]]
:canonical: archivebox.core.forms.PluginConfigFormMixin._build_plugin_cards
```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin._build_plugin_cards
```
````
````{py:method} _build_plugin_config_field(plugin_name: str, config_key: str, prop_schema: collections.abc.Mapping[str, typing.Any], runtime_config: collections.abc.Mapping[str, typing.Any]) -> dict[str, typing.Any]
:canonical: archivebox.core.forms.PluginConfigFormMixin._build_plugin_config_field
```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin._build_plugin_config_field
```
````
````{py:method} clean_plugin_config_overrides(effective_config: collections.abc.Mapping[str, typing.Any] | None = None) -> dict[str, typing.Any]
:canonical: archivebox.core.forms.PluginConfigFormMixin.clean_plugin_config_overrides
```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin.clean_plugin_config_overrides
```
````
````{py:method} plugin_config_keys() -> set[str]
:canonical: archivebox.core.forms.PluginConfigFormMixin.plugin_config_keys
```{autodoc2-docstring} archivebox.core.forms.PluginConfigFormMixin.plugin_config_keys
```
````
`````
````{py:data} _BINARY_TEMPLATE_PATTERN
:canonical: archivebox.core.forms._BINARY_TEMPLATE_PATTERN
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.core.forms._BINARY_TEMPLATE_PATTERN
```
````
````{py:function} _resolve_required_binary_name(template_name: str, runtime_config: collections.abc.Mapping[str, typing.Any]) -> str
:canonical: archivebox.core.forms._resolve_required_binary_name
```{autodoc2-docstring} archivebox.core.forms._resolve_required_binary_name
```
````
````{py:function} _iter_required_binary_names(required_binaries: collections.abc.Iterable[typing.Any], runtime_config: collections.abc.Mapping[str, typing.Any]) -> collections.abc.Iterable[str]
:canonical: archivebox.core.forms._iter_required_binary_names
```{autodoc2-docstring} archivebox.core.forms._iter_required_binary_names
```
````
````{py:function} _build_required_binary_url_lookup(plugin_configs: collections.abc.Mapping[str, dict[str, typing.Any]], runtime_config: collections.abc.Mapping[str, typing.Any]) -> dict[str, str]
:canonical: archivebox.core.forms._build_required_binary_url_lookup
```{autodoc2-docstring} archivebox.core.forms._build_required_binary_url_lookup
```
````
````{py:function} _build_required_binary_links(required_binaries: list[dict[str, typing.Any]], runtime_config: collections.abc.Mapping[str, typing.Any], binary_url_lookup: collections.abc.Mapping[str, str] | None = None) -> list[dict[str, str]]
:canonical: archivebox.core.forms._build_required_binary_links
```{autodoc2-docstring} archivebox.core.forms._build_required_binary_links
```
````
````{py:function} get_plugin_config_binary_urls(runtime_config: collections.abc.Mapping[str, typing.Any]) -> dict[str, str]
:canonical: archivebox.core.forms.get_plugin_config_binary_urls
```{autodoc2-docstring} archivebox.core.forms.get_plugin_config_binary_urls
```
````
`````{py:class} AddLinkForm(*args, **kwargs)
:canonical: archivebox.core.forms.AddLinkForm
Bases: {py:obj}`django.forms.Form`
Bases: {py:obj}`archivebox.core.forms.PluginConfigFormMixin`, {py:obj}`django.forms.Form`
````{py:attribute} url
:canonical: archivebox.core.forms.AddLinkForm.url
:value: >
'RegexField(...)'
'CharField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.url
```
@ -107,6 +368,76 @@ Bases: {py:obj}`django.forms.Form`
````
````{py:attribute} max_urls
:canonical: archivebox.core.forms.AddLinkForm.max_urls
:value: >
'IntegerField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.max_urls
```
````
````{py:attribute} crawl_max_size
:canonical: archivebox.core.forms.AddLinkForm.crawl_max_size
:value: >
'CharField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.crawl_max_size
```
````
````{py:attribute} crawl_timeout
:canonical: archivebox.core.forms.AddLinkForm.crawl_timeout
:value: >
'CharField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.crawl_timeout
```
````
````{py:attribute} timeout
:canonical: archivebox.core.forms.AddLinkForm.timeout
:value: >
'CharField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.timeout
```
````
````{py:attribute} snapshot_max_size
:canonical: archivebox.core.forms.AddLinkForm.snapshot_max_size
:value: >
'CharField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.snapshot_max_size
```
````
````{py:attribute} delete_after
:canonical: archivebox.core.forms.AddLinkForm.delete_after
:value: >
'CharField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.delete_after
```
````
````{py:attribute} crawl_max_concurrent_snapshots
:canonical: archivebox.core.forms.AddLinkForm.crawl_max_concurrent_snapshots
:value: >
'IntegerField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.crawl_max_concurrent_snapshots
```
````
````{py:attribute} notes
:canonical: archivebox.core.forms.AddLinkForm.notes
:value: >
@ -117,62 +448,82 @@ Bases: {py:obj}`django.forms.Form`
````
````{py:attribute} chrome_plugins
:canonical: archivebox.core.forms.AddLinkForm.chrome_plugins
````{py:attribute} url_filters
:canonical: archivebox.core.forms.AddLinkForm.url_filters
:value: >
'MultipleChoiceField(...)'
'Field(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.chrome_plugins
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.url_filters
```
````
````{py:attribute} archiving_plugins
:canonical: archivebox.core.forms.AddLinkForm.archiving_plugins
````{py:attribute} main_plugins
:canonical: archivebox.core.forms.AddLinkForm.main_plugins
:value: >
'MultipleChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.archiving_plugins
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.main_plugins
```
````
````{py:attribute} parsing_plugins
:canonical: archivebox.core.forms.AddLinkForm.parsing_plugins
````{py:attribute} page_setup_plugins
:canonical: archivebox.core.forms.AddLinkForm.page_setup_plugins
:value: >
'MultipleChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.parsing_plugins
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.page_setup_plugins
```
````
````{py:attribute} search_plugins
:canonical: archivebox.core.forms.AddLinkForm.search_plugins
````{py:attribute} media_plugins
:canonical: archivebox.core.forms.AddLinkForm.media_plugins
:value: >
'MultipleChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.search_plugins
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.media_plugins
```
````
````{py:attribute} binary_plugins
:canonical: archivebox.core.forms.AddLinkForm.binary_plugins
````{py:attribute} text_plugins
:canonical: archivebox.core.forms.AddLinkForm.text_plugins
:value: >
'MultipleChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.binary_plugins
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.text_plugins
```
````
````{py:attribute} extension_plugins
:canonical: archivebox.core.forms.AddLinkForm.extension_plugins
````{py:attribute} metadata_plugins
:canonical: archivebox.core.forms.AddLinkForm.metadata_plugins
:value: >
'MultipleChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.extension_plugins
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.metadata_plugins
```
````
````{py:attribute} postprocessing_plugins
:canonical: archivebox.core.forms.AddLinkForm.postprocessing_plugins
:value: >
'MultipleChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.postprocessing_plugins
```
````
````{py:attribute} other_plugins
:canonical: archivebox.core.forms.AddLinkForm.other_plugins
:value: >
'MultipleChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.other_plugins
```
````
@ -190,39 +541,29 @@ Bases: {py:obj}`django.forms.Form`
````{py:attribute} persona
:canonical: archivebox.core.forms.AddLinkForm.persona
:value: >
'CharField(...)'
'ModelChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.persona
```
````
````{py:attribute} overwrite
:canonical: archivebox.core.forms.AddLinkForm.overwrite
````{py:attribute} permissions
:canonical: archivebox.core.forms.AddLinkForm.permissions
:value: >
'BooleanField(...)'
'ChoiceField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.overwrite
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.permissions
```
````
````{py:attribute} update
:canonical: archivebox.core.forms.AddLinkForm.update
````{py:attribute} start_paused
:canonical: archivebox.core.forms.AddLinkForm.start_paused
:value: >
'BooleanField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.update
```
````
````{py:attribute} index_only
:canonical: archivebox.core.forms.AddLinkForm.index_only
:value: >
'BooleanField(...)'
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.index_only
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.start_paused
```
````
@ -242,6 +583,86 @@ Bases: {py:obj}`django.forms.Form`
````
````{py:method} clean_url()
:canonical: archivebox.core.forms.AddLinkForm.clean_url
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_url
```
````
````{py:method} clean_url_filters()
:canonical: archivebox.core.forms.AddLinkForm.clean_url_filters
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_url_filters
```
````
````{py:method} clean_max_urls()
:canonical: archivebox.core.forms.AddLinkForm.clean_max_urls
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_max_urls
```
````
````{py:method} clean_crawl_max_size()
:canonical: archivebox.core.forms.AddLinkForm.clean_crawl_max_size
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_crawl_max_size
```
````
````{py:method} clean_crawl_timeout()
:canonical: archivebox.core.forms.AddLinkForm.clean_crawl_timeout
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_crawl_timeout
```
````
````{py:method} clean_timeout()
:canonical: archivebox.core.forms.AddLinkForm.clean_timeout
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_timeout
```
````
````{py:method} _clean_timeout_seconds(raw_value, field_label: str, *, blank_value)
:canonical: archivebox.core.forms.AddLinkForm._clean_timeout_seconds
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm._clean_timeout_seconds
```
````
````{py:method} clean_snapshot_max_size()
:canonical: archivebox.core.forms.AddLinkForm.clean_snapshot_max_size
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_snapshot_max_size
```
````
````{py:method} clean_delete_after()
:canonical: archivebox.core.forms.AddLinkForm.clean_delete_after
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_delete_after
```
````
````{py:method} clean_crawl_max_concurrent_snapshots()
:canonical: archivebox.core.forms.AddLinkForm.clean_crawl_max_concurrent_snapshots
```{autodoc2-docstring} archivebox.core.forms.AddLinkForm.clean_crawl_max_concurrent_snapshots
```
````
````{py:method} clean_schedule()
:canonical: archivebox.core.forms.AddLinkForm.clean_schedule
@ -252,29 +673,18 @@ Bases: {py:obj}`django.forms.Form`
`````
`````{py:class} TagWidgetMixin
:canonical: archivebox.core.forms.TagWidgetMixin
`````{py:class} TagWidget(attrs=None)
:canonical: archivebox.core.forms.TagWidget
```{autodoc2-docstring} archivebox.core.forms.TagWidgetMixin
```
Bases: {py:obj}`django.forms.TextInput`
````{py:method} format_value(value)
:canonical: archivebox.core.forms.TagWidgetMixin.format_value
```{autodoc2-docstring} archivebox.core.forms.TagWidgetMixin.format_value
```
:canonical: archivebox.core.forms.TagWidget.format_value
````
`````
```{py:class} TagWidget(attrs=None)
:canonical: archivebox.core.forms.TagWidget
Bases: {py:obj}`archivebox.core.forms.TagWidgetMixin`, {py:obj}`django.forms.TextInput`
```
`````{py:class} TagField(*, max_length=None, min_length=None, strip=True, empty_value='', **kwargs)
:canonical: archivebox.core.forms.TagField
@ -304,7 +714,7 @@ Bases: {py:obj}`django.forms.CharField`
````
````{py:method} has_changed(initial_value, data_value)
````{py:method} has_changed(initial, data)
:canonical: archivebox.core.forms.TagField.has_changed
````

View File

@ -0,0 +1,510 @@
# {py:mod}`archivebox.core.host_util`
```{py:module} archivebox.core.host_util
```
```{autodoc2-docstring} archivebox.core.host_util
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`split_host_port <archivebox.core.host_util.split_host_port>`
- ```{autodoc2-docstring} archivebox.core.host_util.split_host_port
:summary:
```
* - {py:obj}`_normalize_base_url <archivebox.core.host_util._normalize_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util._normalize_base_url
:summary:
```
* - {py:obj}`normalize_base_url <archivebox.core.host_util.normalize_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.normalize_base_url
:summary:
```
* - {py:obj}`_csrf_trusted_origins <archivebox.core.host_util._csrf_trusted_origins>`
- ```{autodoc2-docstring} archivebox.core.host_util._csrf_trusted_origins
:summary:
```
* - {py:obj}`_allowed_hosts <archivebox.core.host_util._allowed_hosts>`
- ```{autodoc2-docstring} archivebox.core.host_util._allowed_hosts
:summary:
```
* - {py:obj}`derive_base_url_from_csrf <archivebox.core.host_util.derive_base_url_from_csrf>`
- ```{autodoc2-docstring} archivebox.core.host_util.derive_base_url_from_csrf
:summary:
```
* - {py:obj}`get_listen_host <archivebox.core.host_util.get_listen_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_listen_host
:summary:
```
* - {py:obj}`get_listen_parts <archivebox.core.host_util.get_listen_parts>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_listen_parts
:summary:
```
* - {py:obj}`_with_port <archivebox.core.host_util._with_port>`
- ```{autodoc2-docstring} archivebox.core.host_util._with_port
:summary:
```
* - {py:obj}`strip_role_subdomain <archivebox.core.host_util.strip_role_subdomain>`
- ```{autodoc2-docstring} archivebox.core.host_util.strip_role_subdomain
:summary:
```
* - {py:obj}`_is_local_bind_host <archivebox.core.host_util._is_local_bind_host>`
- ```{autodoc2-docstring} archivebox.core.host_util._is_local_bind_host
:summary:
```
* - {py:obj}`canonical_base_host_for_request <archivebox.core.host_util.canonical_base_host_for_request>`
- ```{autodoc2-docstring} archivebox.core.host_util.canonical_base_host_for_request
:summary:
```
* - {py:obj}`_root_host_from_listen <archivebox.core.host_util._root_host_from_listen>`
- ```{autodoc2-docstring} archivebox.core.host_util._root_host_from_listen
:summary:
```
* - {py:obj}`get_base_url <archivebox.core.host_util.get_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_base_url
:summary:
```
* - {py:obj}`get_base_host <archivebox.core.host_util.get_base_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_base_host
:summary:
```
* - {py:obj}`_build_base_host <archivebox.core.host_util._build_base_host>`
- ```{autodoc2-docstring} archivebox.core.host_util._build_base_host
:summary:
```
* - {py:obj}`get_admin_host <archivebox.core.host_util.get_admin_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_admin_host
:summary:
```
* - {py:obj}`get_web_host <archivebox.core.host_util.get_web_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_web_host
:summary:
```
* - {py:obj}`get_api_host <archivebox.core.host_util.get_api_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_api_host
:summary:
```
* - {py:obj}`get_public_host <archivebox.core.host_util.get_public_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_public_host
:summary:
```
* - {py:obj}`get_snapshot_subdomain <archivebox.core.host_util.get_snapshot_subdomain>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_subdomain
:summary:
```
* - {py:obj}`get_snapshot_host <archivebox.core.host_util.get_snapshot_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_host
:summary:
```
* - {py:obj}`get_original_host <archivebox.core.host_util.get_original_host>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_original_host
:summary:
```
* - {py:obj}`is_snapshot_subdomain <archivebox.core.host_util.is_snapshot_subdomain>`
- ```{autodoc2-docstring} archivebox.core.host_util.is_snapshot_subdomain
:summary:
```
* - {py:obj}`get_snapshot_lookup_key <archivebox.core.host_util.get_snapshot_lookup_key>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_lookup_key
:summary:
```
* - {py:obj}`get_listen_subdomain <archivebox.core.host_util.get_listen_subdomain>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_listen_subdomain
:summary:
```
* - {py:obj}`host_matches <archivebox.core.host_util.host_matches>`
- ```{autodoc2-docstring} archivebox.core.host_util.host_matches
:summary:
```
* - {py:obj}`_scheme_from_request <archivebox.core.host_util._scheme_from_request>`
- ```{autodoc2-docstring} archivebox.core.host_util._scheme_from_request
:summary:
```
* - {py:obj}`_build_base_url_for_host <archivebox.core.host_util._build_base_url_for_host>`
- ```{autodoc2-docstring} archivebox.core.host_util._build_base_url_for_host
:summary:
```
* - {py:obj}`get_admin_base_url <archivebox.core.host_util.get_admin_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_admin_base_url
:summary:
```
* - {py:obj}`get_web_base_url <archivebox.core.host_util.get_web_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_web_base_url
:summary:
```
* - {py:obj}`get_api_base_url <archivebox.core.host_util.get_api_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_api_base_url
:summary:
```
* - {py:obj}`get_public_base_url <archivebox.core.host_util.get_public_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_public_base_url
:summary:
```
* - {py:obj}`get_snapshot_base_url <archivebox.core.host_util.get_snapshot_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_base_url
:summary:
```
* - {py:obj}`get_original_base_url <archivebox.core.host_util.get_original_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.get_original_base_url
:summary:
```
* - {py:obj}`build_admin_url <archivebox.core.host_util.build_admin_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.build_admin_url
:summary:
```
* - {py:obj}`build_web_url <archivebox.core.host_util.build_web_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.build_web_url
:summary:
```
* - {py:obj}`build_snapshot_url <archivebox.core.host_util.build_snapshot_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.build_snapshot_url
:summary:
```
* - {py:obj}`build_original_url <archivebox.core.host_util.build_original_url>`
- ```{autodoc2-docstring} archivebox.core.host_util.build_original_url
:summary:
```
* - {py:obj}`_build_url <archivebox.core.host_util._build_url>`
- ```{autodoc2-docstring} archivebox.core.host_util._build_url
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_SNAPSHOT_ID_RE <archivebox.core.host_util._SNAPSHOT_ID_RE>`
- ```{autodoc2-docstring} archivebox.core.host_util._SNAPSHOT_ID_RE
:summary:
```
* - {py:obj}`_SNAPSHOT_SUBDOMAIN_RE <archivebox.core.host_util._SNAPSHOT_SUBDOMAIN_RE>`
- ```{autodoc2-docstring} archivebox.core.host_util._SNAPSHOT_SUBDOMAIN_RE
:summary:
```
* - {py:obj}`_ROLE_SUBDOMAIN_LABELS <archivebox.core.host_util._ROLE_SUBDOMAIN_LABELS>`
- ```{autodoc2-docstring} archivebox.core.host_util._ROLE_SUBDOMAIN_LABELS
:summary:
```
````
### API
````{py:data} _SNAPSHOT_ID_RE
:canonical: archivebox.core.host_util._SNAPSHOT_ID_RE
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.core.host_util._SNAPSHOT_ID_RE
```
````
````{py:data} _SNAPSHOT_SUBDOMAIN_RE
:canonical: archivebox.core.host_util._SNAPSHOT_SUBDOMAIN_RE
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.core.host_util._SNAPSHOT_SUBDOMAIN_RE
```
````
````{py:data} _ROLE_SUBDOMAIN_LABELS
:canonical: archivebox.core.host_util._ROLE_SUBDOMAIN_LABELS
:value: >
('admin', 'web', 'api', 'public')
```{autodoc2-docstring} archivebox.core.host_util._ROLE_SUBDOMAIN_LABELS
```
````
````{py:function} split_host_port(host: str) -> tuple[str, str | None]
:canonical: archivebox.core.host_util.split_host_port
```{autodoc2-docstring} archivebox.core.host_util.split_host_port
```
````
````{py:function} _normalize_base_url(value: str | None) -> str
:canonical: archivebox.core.host_util._normalize_base_url
```{autodoc2-docstring} archivebox.core.host_util._normalize_base_url
```
````
````{py:function} normalize_base_url(value: str | None) -> str
:canonical: archivebox.core.host_util.normalize_base_url
```{autodoc2-docstring} archivebox.core.host_util.normalize_base_url
```
````
````{py:function} _csrf_trusted_origins(config) -> list[str]
:canonical: archivebox.core.host_util._csrf_trusted_origins
```{autodoc2-docstring} archivebox.core.host_util._csrf_trusted_origins
```
````
````{py:function} _allowed_hosts(config) -> set[str]
:canonical: archivebox.core.host_util._allowed_hosts
```{autodoc2-docstring} archivebox.core.host_util._allowed_hosts
```
````
````{py:function} derive_base_url_from_csrf(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.derive_base_url_from_csrf
```{autodoc2-docstring} archivebox.core.host_util.derive_base_url_from_csrf
```
````
````{py:function} get_listen_host(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_listen_host
```{autodoc2-docstring} archivebox.core.host_util.get_listen_host
```
````
````{py:function} get_listen_parts(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> tuple[str, str | None]
:canonical: archivebox.core.host_util.get_listen_parts
```{autodoc2-docstring} archivebox.core.host_util.get_listen_parts
```
````
````{py:function} _with_port(host: str, port: str | None) -> str
:canonical: archivebox.core.host_util._with_port
```{autodoc2-docstring} archivebox.core.host_util._with_port
```
````
````{py:function} strip_role_subdomain(host: str) -> str
:canonical: archivebox.core.host_util.strip_role_subdomain
```{autodoc2-docstring} archivebox.core.host_util.strip_role_subdomain
```
````
````{py:function} _is_local_bind_host(host: str) -> bool
:canonical: archivebox.core.host_util._is_local_bind_host
```{autodoc2-docstring} archivebox.core.host_util._is_local_bind_host
```
````
````{py:function} canonical_base_host_for_request(request_host: str) -> str
:canonical: archivebox.core.host_util.canonical_base_host_for_request
```{autodoc2-docstring} archivebox.core.host_util.canonical_base_host_for_request
```
````
````{py:function} _root_host_from_listen(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util._root_host_from_listen
```{autodoc2-docstring} archivebox.core.host_util._root_host_from_listen
```
````
````{py:function} get_base_url(request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_base_url
```{autodoc2-docstring} archivebox.core.host_util.get_base_url
```
````
````{py:function} get_base_host(request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_base_host
```{autodoc2-docstring} archivebox.core.host_util.get_base_host
```
````
````{py:function} _build_base_host(subdomain: str | None, request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util._build_base_host
```{autodoc2-docstring} archivebox.core.host_util._build_base_host
```
````
````{py:function} get_admin_host(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_admin_host
```{autodoc2-docstring} archivebox.core.host_util.get_admin_host
```
````
````{py:function} get_web_host(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_web_host
```{autodoc2-docstring} archivebox.core.host_util.get_web_host
```
````
````{py:function} get_api_host(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_api_host
```{autodoc2-docstring} archivebox.core.host_util.get_api_host
```
````
````{py:function} get_public_host(config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_public_host
```{autodoc2-docstring} archivebox.core.host_util.get_public_host
```
````
````{py:function} get_snapshot_subdomain(snapshot_id: str) -> str
:canonical: archivebox.core.host_util.get_snapshot_subdomain
```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_subdomain
```
````
````{py:function} get_snapshot_host(snapshot_id: str, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_snapshot_host
```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_host
```
````
````{py:function} get_original_host(domain: str, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_original_host
```{autodoc2-docstring} archivebox.core.host_util.get_original_host
```
````
````{py:function} is_snapshot_subdomain(subdomain: str) -> bool
:canonical: archivebox.core.host_util.is_snapshot_subdomain
```{autodoc2-docstring} archivebox.core.host_util.is_snapshot_subdomain
```
````
````{py:function} get_snapshot_lookup_key(snapshot_ref: str) -> str
:canonical: archivebox.core.host_util.get_snapshot_lookup_key
```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_lookup_key
```
````
````{py:function} get_listen_subdomain(request_host: str, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_listen_subdomain
```{autodoc2-docstring} archivebox.core.host_util.get_listen_subdomain
```
````
````{py:function} host_matches(request_host: str, target_host: str) -> bool
:canonical: archivebox.core.host_util.host_matches
```{autodoc2-docstring} archivebox.core.host_util.host_matches
```
````
````{py:function} _scheme_from_request(request=None, config: dict[str, typing.Any] | None = None) -> str
:canonical: archivebox.core.host_util._scheme_from_request
```{autodoc2-docstring} archivebox.core.host_util._scheme_from_request
```
````
````{py:function} _build_base_url_for_host(host: str, request=None, config: dict[str, typing.Any] | None = None) -> str
:canonical: archivebox.core.host_util._build_base_url_for_host
```{autodoc2-docstring} archivebox.core.host_util._build_base_url_for_host
```
````
````{py:function} get_admin_base_url(request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_admin_base_url
```{autodoc2-docstring} archivebox.core.host_util.get_admin_base_url
```
````
````{py:function} get_web_base_url(request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_web_base_url
```{autodoc2-docstring} archivebox.core.host_util.get_web_base_url
```
````
````{py:function} get_api_base_url(request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_api_base_url
```{autodoc2-docstring} archivebox.core.host_util.get_api_base_url
```
````
````{py:function} get_public_base_url(request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_public_base_url
```{autodoc2-docstring} archivebox.core.host_util.get_public_base_url
```
````
````{py:function} get_snapshot_base_url(snapshot_id: str, request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_snapshot_base_url
```{autodoc2-docstring} archivebox.core.host_util.get_snapshot_base_url
```
````
````{py:function} get_original_base_url(domain: str, request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.get_original_base_url
```{autodoc2-docstring} archivebox.core.host_util.get_original_base_url
```
````
````{py:function} build_admin_url(path: str = '', request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.build_admin_url
```{autodoc2-docstring} archivebox.core.host_util.build_admin_url
```
````
````{py:function} build_web_url(path: str = '', request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.build_web_url
```{autodoc2-docstring} archivebox.core.host_util.build_web_url
```
````
````{py:function} build_snapshot_url(snapshot_id: str, path: str = '', request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.build_snapshot_url
```{autodoc2-docstring} archivebox.core.host_util.build_snapshot_url
```
````
````{py:function} build_original_url(domain: str, path: str = '', request=None, config: dict[str, typing.Any] | None = None, **config_kwargs: typing.Any) -> str
:canonical: archivebox.core.host_util.build_original_url
```{autodoc2-docstring} archivebox.core.host_util.build_original_url
```
````
````{py:function} _build_url(base_url: str, path: str) -> str
:canonical: archivebox.core.host_util._build_url
```{autodoc2-docstring} archivebox.core.host_util._build_url
```
````

View File

@ -1,372 +0,0 @@
# {py:mod}`archivebox.core.host_utils`
```{py:module} archivebox.core.host_utils
```
```{autodoc2-docstring} archivebox.core.host_utils
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`split_host_port <archivebox.core.host_utils.split_host_port>`
- ```{autodoc2-docstring} archivebox.core.host_utils.split_host_port
:summary:
```
* - {py:obj}`_normalize_base_url <archivebox.core.host_utils._normalize_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils._normalize_base_url
:summary:
```
* - {py:obj}`normalize_base_url <archivebox.core.host_utils.normalize_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.normalize_base_url
:summary:
```
* - {py:obj}`get_listen_host <archivebox.core.host_utils.get_listen_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_listen_host
:summary:
```
* - {py:obj}`get_listen_parts <archivebox.core.host_utils.get_listen_parts>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_listen_parts
:summary:
```
* - {py:obj}`_build_listen_host <archivebox.core.host_utils._build_listen_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils._build_listen_host
:summary:
```
* - {py:obj}`get_admin_host <archivebox.core.host_utils.get_admin_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_admin_host
:summary:
```
* - {py:obj}`get_web_host <archivebox.core.host_utils.get_web_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_web_host
:summary:
```
* - {py:obj}`get_api_host <archivebox.core.host_utils.get_api_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_api_host
:summary:
```
* - {py:obj}`get_public_host <archivebox.core.host_utils.get_public_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_public_host
:summary:
```
* - {py:obj}`get_snapshot_host <archivebox.core.host_utils.get_snapshot_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_snapshot_host
:summary:
```
* - {py:obj}`get_original_host <archivebox.core.host_utils.get_original_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_original_host
:summary:
```
* - {py:obj}`is_snapshot_subdomain <archivebox.core.host_utils.is_snapshot_subdomain>`
- ```{autodoc2-docstring} archivebox.core.host_utils.is_snapshot_subdomain
:summary:
```
* - {py:obj}`get_listen_subdomain <archivebox.core.host_utils.get_listen_subdomain>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_listen_subdomain
:summary:
```
* - {py:obj}`host_matches <archivebox.core.host_utils.host_matches>`
- ```{autodoc2-docstring} archivebox.core.host_utils.host_matches
:summary:
```
* - {py:obj}`_scheme_from_request <archivebox.core.host_utils._scheme_from_request>`
- ```{autodoc2-docstring} archivebox.core.host_utils._scheme_from_request
:summary:
```
* - {py:obj}`_build_base_url_for_host <archivebox.core.host_utils._build_base_url_for_host>`
- ```{autodoc2-docstring} archivebox.core.host_utils._build_base_url_for_host
:summary:
```
* - {py:obj}`get_admin_base_url <archivebox.core.host_utils.get_admin_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_admin_base_url
:summary:
```
* - {py:obj}`get_web_base_url <archivebox.core.host_utils.get_web_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_web_base_url
:summary:
```
* - {py:obj}`get_api_base_url <archivebox.core.host_utils.get_api_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_api_base_url
:summary:
```
* - {py:obj}`get_archive_base_url <archivebox.core.host_utils.get_archive_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_archive_base_url
:summary:
```
* - {py:obj}`get_snapshot_base_url <archivebox.core.host_utils.get_snapshot_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_snapshot_base_url
:summary:
```
* - {py:obj}`get_original_base_url <archivebox.core.host_utils.get_original_base_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.get_original_base_url
:summary:
```
* - {py:obj}`build_admin_url <archivebox.core.host_utils.build_admin_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.build_admin_url
:summary:
```
* - {py:obj}`build_web_url <archivebox.core.host_utils.build_web_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.build_web_url
:summary:
```
* - {py:obj}`build_api_url <archivebox.core.host_utils.build_api_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.build_api_url
:summary:
```
* - {py:obj}`build_archive_url <archivebox.core.host_utils.build_archive_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.build_archive_url
:summary:
```
* - {py:obj}`build_snapshot_url <archivebox.core.host_utils.build_snapshot_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.build_snapshot_url
:summary:
```
* - {py:obj}`build_original_url <archivebox.core.host_utils.build_original_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils.build_original_url
:summary:
```
* - {py:obj}`_build_url <archivebox.core.host_utils._build_url>`
- ```{autodoc2-docstring} archivebox.core.host_utils._build_url
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_SNAPSHOT_ID_RE <archivebox.core.host_utils._SNAPSHOT_ID_RE>`
- ```{autodoc2-docstring} archivebox.core.host_utils._SNAPSHOT_ID_RE
:summary:
```
````
### API
````{py:data} _SNAPSHOT_ID_RE
:canonical: archivebox.core.host_utils._SNAPSHOT_ID_RE
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.core.host_utils._SNAPSHOT_ID_RE
```
````
````{py:function} split_host_port(host: str) -> tuple[str, str | None]
:canonical: archivebox.core.host_utils.split_host_port
```{autodoc2-docstring} archivebox.core.host_utils.split_host_port
```
````
````{py:function} _normalize_base_url(value: str | None) -> str
:canonical: archivebox.core.host_utils._normalize_base_url
```{autodoc2-docstring} archivebox.core.host_utils._normalize_base_url
```
````
````{py:function} normalize_base_url(value: str | None) -> str
:canonical: archivebox.core.host_utils.normalize_base_url
```{autodoc2-docstring} archivebox.core.host_utils.normalize_base_url
```
````
````{py:function} get_listen_host() -> str
:canonical: archivebox.core.host_utils.get_listen_host
```{autodoc2-docstring} archivebox.core.host_utils.get_listen_host
```
````
````{py:function} get_listen_parts() -> tuple[str, str | None]
:canonical: archivebox.core.host_utils.get_listen_parts
```{autodoc2-docstring} archivebox.core.host_utils.get_listen_parts
```
````
````{py:function} _build_listen_host(subdomain: str | None) -> str
:canonical: archivebox.core.host_utils._build_listen_host
```{autodoc2-docstring} archivebox.core.host_utils._build_listen_host
```
````
````{py:function} get_admin_host() -> str
:canonical: archivebox.core.host_utils.get_admin_host
```{autodoc2-docstring} archivebox.core.host_utils.get_admin_host
```
````
````{py:function} get_web_host() -> str
:canonical: archivebox.core.host_utils.get_web_host
```{autodoc2-docstring} archivebox.core.host_utils.get_web_host
```
````
````{py:function} get_api_host() -> str
:canonical: archivebox.core.host_utils.get_api_host
```{autodoc2-docstring} archivebox.core.host_utils.get_api_host
```
````
````{py:function} get_public_host() -> str
:canonical: archivebox.core.host_utils.get_public_host
```{autodoc2-docstring} archivebox.core.host_utils.get_public_host
```
````
````{py:function} get_snapshot_host(snapshot_id: str) -> str
:canonical: archivebox.core.host_utils.get_snapshot_host
```{autodoc2-docstring} archivebox.core.host_utils.get_snapshot_host
```
````
````{py:function} get_original_host(domain: str) -> str
:canonical: archivebox.core.host_utils.get_original_host
```{autodoc2-docstring} archivebox.core.host_utils.get_original_host
```
````
````{py:function} is_snapshot_subdomain(subdomain: str) -> bool
:canonical: archivebox.core.host_utils.is_snapshot_subdomain
```{autodoc2-docstring} archivebox.core.host_utils.is_snapshot_subdomain
```
````
````{py:function} get_listen_subdomain(request_host: str) -> str
:canonical: archivebox.core.host_utils.get_listen_subdomain
```{autodoc2-docstring} archivebox.core.host_utils.get_listen_subdomain
```
````
````{py:function} host_matches(request_host: str, target_host: str) -> bool
:canonical: archivebox.core.host_utils.host_matches
```{autodoc2-docstring} archivebox.core.host_utils.host_matches
```
````
````{py:function} _scheme_from_request(request=None) -> str
:canonical: archivebox.core.host_utils._scheme_from_request
```{autodoc2-docstring} archivebox.core.host_utils._scheme_from_request
```
````
````{py:function} _build_base_url_for_host(host: str, request=None) -> str
:canonical: archivebox.core.host_utils._build_base_url_for_host
```{autodoc2-docstring} archivebox.core.host_utils._build_base_url_for_host
```
````
````{py:function} get_admin_base_url(request=None) -> str
:canonical: archivebox.core.host_utils.get_admin_base_url
```{autodoc2-docstring} archivebox.core.host_utils.get_admin_base_url
```
````
````{py:function} get_web_base_url(request=None) -> str
:canonical: archivebox.core.host_utils.get_web_base_url
```{autodoc2-docstring} archivebox.core.host_utils.get_web_base_url
```
````
````{py:function} get_api_base_url(request=None) -> str
:canonical: archivebox.core.host_utils.get_api_base_url
```{autodoc2-docstring} archivebox.core.host_utils.get_api_base_url
```
````
````{py:function} get_archive_base_url(request=None) -> str
:canonical: archivebox.core.host_utils.get_archive_base_url
```{autodoc2-docstring} archivebox.core.host_utils.get_archive_base_url
```
````
````{py:function} get_snapshot_base_url(snapshot_id: str, request=None) -> str
:canonical: archivebox.core.host_utils.get_snapshot_base_url
```{autodoc2-docstring} archivebox.core.host_utils.get_snapshot_base_url
```
````
````{py:function} get_original_base_url(domain: str, request=None) -> str
:canonical: archivebox.core.host_utils.get_original_base_url
```{autodoc2-docstring} archivebox.core.host_utils.get_original_base_url
```
````
````{py:function} build_admin_url(path: str = '', request=None) -> str
:canonical: archivebox.core.host_utils.build_admin_url
```{autodoc2-docstring} archivebox.core.host_utils.build_admin_url
```
````
````{py:function} build_web_url(path: str = '', request=None) -> str
:canonical: archivebox.core.host_utils.build_web_url
```{autodoc2-docstring} archivebox.core.host_utils.build_web_url
```
````
````{py:function} build_api_url(path: str = '', request=None) -> str
:canonical: archivebox.core.host_utils.build_api_url
```{autodoc2-docstring} archivebox.core.host_utils.build_api_url
```
````
````{py:function} build_archive_url(path: str = '', request=None) -> str
:canonical: archivebox.core.host_utils.build_archive_url
```{autodoc2-docstring} archivebox.core.host_utils.build_archive_url
```
````
````{py:function} build_snapshot_url(snapshot_id: str, path: str = '', request=None) -> str
:canonical: archivebox.core.host_utils.build_snapshot_url
```{autodoc2-docstring} archivebox.core.host_utils.build_snapshot_url
```
````
````{py:function} build_original_url(domain: str, path: str = '', request=None) -> str
:canonical: archivebox.core.host_utils.build_original_url
```{autodoc2-docstring} archivebox.core.host_utils.build_original_url
```
````
````{py:function} _build_url(base_url: str, path: str) -> str
:canonical: archivebox.core.host_utils._build_url
```{autodoc2-docstring} archivebox.core.host_utils._build_url
```
````

View File

@ -0,0 +1,49 @@
# {py:mod}`archivebox.core.management.commands.archivebox`
```{py:module} archivebox.core.management.commands.archivebox
```
```{autodoc2-docstring} archivebox.core.management.commands.archivebox
:allowtitles:
```
## Module Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`Command <archivebox.core.management.commands.archivebox.Command>`
-
````
### API
`````{py:class} Command(stdout=None, stderr=None, no_color=False, force_color=False)
:canonical: archivebox.core.management.commands.archivebox.Command
Bases: {py:obj}`django.core.management.base.BaseCommand`
````{py:attribute} help
:canonical: archivebox.core.management.commands.archivebox.Command.help
:value: >
'Run an ArchiveBox CLI subcommand (e.g. add, remove, list, etc)'
```{autodoc2-docstring} archivebox.core.management.commands.archivebox.Command.help
```
````
````{py:method} add_arguments(parser)
:canonical: archivebox.core.management.commands.archivebox.Command.add_arguments
````
````{py:method} handle(*args, **kwargs)
:canonical: archivebox.core.management.commands.archivebox.Command.handle
````
`````

View File

@ -0,0 +1,17 @@
# {py:mod}`archivebox.core.management.commands`
```{py:module} archivebox.core.management.commands
```
```{autodoc2-docstring} archivebox.core.management.commands
:allowtitles:
```
## Submodules
```{toctree}
:titlesonly:
:maxdepth: 1
archivebox.core.management.commands.archivebox
```

View File

@ -0,0 +1,17 @@
# {py:mod}`archivebox.core.management`
```{py:module} archivebox.core.management
```
```{autodoc2-docstring} archivebox.core.management
:allowtitles:
```
## Subpackages
```{toctree}
:titlesonly:
:maxdepth: 3
archivebox.core.management.commands
```

View File

@ -14,6 +14,8 @@
:maxdepth: 3
archivebox.core.templatetags
archivebox.core.management
archivebox.core.sqlite_backend
```
## Submodules
@ -22,21 +24,26 @@ archivebox.core.templatetags
:titlesonly:
:maxdepth: 1
archivebox.core.host_utils
archivebox.core.admin_archiveresults
archivebox.core.admin_tags
archivebox.core.models
archivebox.core.admin_users
archivebox.core.host_util
archivebox.core.asgi
archivebox.core.settings_logging
archivebox.core.apps
archivebox.core.widgets
archivebox.core.admin_snapshots
archivebox.core.forms
archivebox.core.context_processors
archivebox.core.tag_util
archivebox.core.shutdown_util
archivebox.core.admin
archivebox.core.admin_site
archivebox.core.settings
archivebox.core.actors
archivebox.core.permissions
archivebox.core.recovery_util
archivebox.core.takeover_util
archivebox.core.urls
archivebox.core.middleware
archivebox.core.views
@ -55,10 +62,6 @@ archivebox.core.wsgi
- ```{autodoc2-docstring} archivebox.core.register_admin
:summary:
```
* - {py:obj}`get_CONFIG <archivebox.core.get_CONFIG>`
- ```{autodoc2-docstring} archivebox.core.get_CONFIG
:summary:
```
````
### Data
@ -91,10 +94,3 @@ archivebox.core.wsgi
```{autodoc2-docstring} archivebox.core.register_admin
```
````
````{py:function} get_CONFIG()
:canonical: archivebox.core.get_CONFIG
```{autodoc2-docstring} archivebox.core.get_CONFIG
```
````

View File

@ -25,6 +25,10 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_admin_login_hint_cookie_domain <archivebox.core.middleware._admin_login_hint_cookie_domain>`
- ```{autodoc2-docstring} archivebox.core.middleware._admin_login_hint_cookie_domain
:summary:
```
* - {py:obj}`detect_timezone <archivebox.core.middleware.detect_timezone>`
- ```{autodoc2-docstring} archivebox.core.middleware.detect_timezone
:summary:
@ -37,14 +41,47 @@
- ```{autodoc2-docstring} archivebox.core.middleware.CacheControlMiddleware
:summary:
```
* - {py:obj}`ServerSecurityModeMiddleware <archivebox.core.middleware.ServerSecurityModeMiddleware>`
- ```{autodoc2-docstring} archivebox.core.middleware.ServerSecurityModeMiddleware
:summary:
```
* - {py:obj}`HostRoutingMiddleware <archivebox.core.middleware.HostRoutingMiddleware>`
- ```{autodoc2-docstring} archivebox.core.middleware.HostRoutingMiddleware
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`ADMIN_LOGIN_HINT_COOKIE <archivebox.core.middleware.ADMIN_LOGIN_HINT_COOKIE>`
- ```{autodoc2-docstring} archivebox.core.middleware.ADMIN_LOGIN_HINT_COOKIE
:summary:
```
````
### API
````{py:data} ADMIN_LOGIN_HINT_COOKIE
:canonical: archivebox.core.middleware.ADMIN_LOGIN_HINT_COOKIE
:value: >
'archivebox_admin_logged_in'
```{autodoc2-docstring} archivebox.core.middleware.ADMIN_LOGIN_HINT_COOKIE
```
````
````{py:function} _admin_login_hint_cookie_domain(config) -> str | None
:canonical: archivebox.core.middleware._admin_login_hint_cookie_domain
```{autodoc2-docstring} archivebox.core.middleware._admin_login_hint_cookie_domain
```
````
````{py:function} detect_timezone(request, activate: bool = True)
:canonical: archivebox.core.middleware.detect_timezone
@ -66,6 +103,13 @@
```
````
````{py:function} ServerSecurityModeMiddleware(get_response)
:canonical: archivebox.core.middleware.ServerSecurityModeMiddleware
```{autodoc2-docstring} archivebox.core.middleware.ServerSecurityModeMiddleware
```
````
````{py:function} HostRoutingMiddleware(get_response)
:canonical: archivebox.core.middleware.HostRoutingMiddleware
@ -81,7 +125,7 @@ Bases: {py:obj}`django.contrib.auth.middleware.RemoteUserMiddleware`
````{py:attribute} header
:canonical: archivebox.core.middleware.ReverseProxyAuthMiddleware.header
:value: >
'format(...)'
'HTTP_REMOTE_USER'
```{autodoc2-docstring} archivebox.core.middleware.ReverseProxyAuthMiddleware.header
```

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,211 @@
# {py:mod}`archivebox.core.permissions`
```{py:module} archivebox.core.permissions
```
```{autodoc2-docstring} archivebox.core.permissions
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`normalize_permissions <archivebox.core.permissions.normalize_permissions>`
- ```{autodoc2-docstring} archivebox.core.permissions.normalize_permissions
:summary:
```
* - {py:obj}`is_admin_user <archivebox.core.permissions.is_admin_user>`
- ```{autodoc2-docstring} archivebox.core.permissions.is_admin_user
:summary:
```
* - {py:obj}`get_snapshot_permissions <archivebox.core.permissions.get_snapshot_permissions>`
- ```{autodoc2-docstring} archivebox.core.permissions.get_snapshot_permissions
:summary:
```
* - {py:obj}`can_view_snapshot <archivebox.core.permissions.can_view_snapshot>`
- ```{autodoc2-docstring} archivebox.core.permissions.can_view_snapshot
:summary:
```
* - {py:obj}`_persona_ids_for_permissions <archivebox.core.permissions._persona_ids_for_permissions>`
- ```{autodoc2-docstring} archivebox.core.permissions._persona_ids_for_permissions
:summary:
```
* - {py:obj}`filter_personas_by_permissions <archivebox.core.permissions.filter_personas_by_permissions>`
- ```{autodoc2-docstring} archivebox.core.permissions.filter_personas_by_permissions
:summary:
```
* - {py:obj}`filter_snapshots_by_permissions <archivebox.core.permissions.filter_snapshots_by_permissions>`
- ```{autodoc2-docstring} archivebox.core.permissions.filter_snapshots_by_permissions
:summary:
```
* - {py:obj}`public_snapshots_queryset <archivebox.core.permissions.public_snapshots_queryset>`
- ```{autodoc2-docstring} archivebox.core.permissions.public_snapshots_queryset
:summary:
```
* - {py:obj}`direct_snapshots_queryset <archivebox.core.permissions.direct_snapshots_queryset>`
- ```{autodoc2-docstring} archivebox.core.permissions.direct_snapshots_queryset
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`PERMISSIONS_PUBLIC <archivebox.core.permissions.PERMISSIONS_PUBLIC>`
- ```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_PUBLIC
:summary:
```
* - {py:obj}`PERMISSIONS_UNLISTED <archivebox.core.permissions.PERMISSIONS_UNLISTED>`
- ```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_UNLISTED
:summary:
```
* - {py:obj}`PERMISSIONS_PRIVATE <archivebox.core.permissions.PERMISSIONS_PRIVATE>`
- ```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_PRIVATE
:summary:
```
* - {py:obj}`PERMISSIONS_CHOICES <archivebox.core.permissions.PERMISSIONS_CHOICES>`
- ```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_CHOICES
:summary:
```
* - {py:obj}`PERMISSIONS_VALUES <archivebox.core.permissions.PERMISSIONS_VALUES>`
- ```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_VALUES
:summary:
```
* - {py:obj}`PERMISSIONS_META <archivebox.core.permissions.PERMISSIONS_META>`
- ```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_META
:summary:
```
````
### API
````{py:data} PERMISSIONS_PUBLIC
:canonical: archivebox.core.permissions.PERMISSIONS_PUBLIC
:value: >
'public'
```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_PUBLIC
```
````
````{py:data} PERMISSIONS_UNLISTED
:canonical: archivebox.core.permissions.PERMISSIONS_UNLISTED
:value: >
'unlisted'
```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_UNLISTED
```
````
````{py:data} PERMISSIONS_PRIVATE
:canonical: archivebox.core.permissions.PERMISSIONS_PRIVATE
:value: >
'private'
```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_PRIVATE
```
````
````{py:data} PERMISSIONS_CHOICES
:canonical: archivebox.core.permissions.PERMISSIONS_CHOICES
:value: >
((), (), ())
```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_CHOICES
```
````
````{py:data} PERMISSIONS_VALUES
:canonical: archivebox.core.permissions.PERMISSIONS_VALUES
:value: >
None
```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_VALUES
```
````
````{py:data} PERMISSIONS_META
:canonical: archivebox.core.permissions.PERMISSIONS_META
:value: >
None
```{autodoc2-docstring} archivebox.core.permissions.PERMISSIONS_META
```
````
````{py:function} normalize_permissions(permissions: object, *, default: str = PERMISSIONS_PRIVATE) -> str
:canonical: archivebox.core.permissions.normalize_permissions
```{autodoc2-docstring} archivebox.core.permissions.normalize_permissions
```
````
````{py:function} is_admin_user(request: django.http.HttpRequest) -> bool
:canonical: archivebox.core.permissions.is_admin_user
```{autodoc2-docstring} archivebox.core.permissions.is_admin_user
```
````
````{py:function} get_snapshot_permissions(snapshot) -> str
:canonical: archivebox.core.permissions.get_snapshot_permissions
```{autodoc2-docstring} archivebox.core.permissions.get_snapshot_permissions
```
````
````{py:function} can_view_snapshot(request: django.http.HttpRequest, snapshot) -> bool
:canonical: archivebox.core.permissions.can_view_snapshot
```{autodoc2-docstring} archivebox.core.permissions.can_view_snapshot
```
````
````{py:function} _persona_ids_for_permissions(allowed_permissions: set[str]) -> list[str]
:canonical: archivebox.core.permissions._persona_ids_for_permissions
```{autodoc2-docstring} archivebox.core.permissions._persona_ids_for_permissions
```
````
````{py:function} filter_personas_by_permissions(queryset: django.db.models.QuerySet, allowed_permissions: set[str]) -> django.db.models.QuerySet
:canonical: archivebox.core.permissions.filter_personas_by_permissions
```{autodoc2-docstring} archivebox.core.permissions.filter_personas_by_permissions
```
````
````{py:function} filter_snapshots_by_permissions(queryset: django.db.models.QuerySet, *, direct: bool = False, allowed_permissions: set[str] | None = None) -> django.db.models.QuerySet
:canonical: archivebox.core.permissions.filter_snapshots_by_permissions
```{autodoc2-docstring} archivebox.core.permissions.filter_snapshots_by_permissions
```
````
````{py:function} public_snapshots_queryset(queryset: django.db.models.QuerySet) -> django.db.models.QuerySet
:canonical: archivebox.core.permissions.public_snapshots_queryset
```{autodoc2-docstring} archivebox.core.permissions.public_snapshots_queryset
```
````
````{py:function} direct_snapshots_queryset(request: django.http.HttpRequest, queryset: django.db.models.QuerySet) -> django.db.models.QuerySet
:canonical: archivebox.core.permissions.direct_snapshots_queryset
```{autodoc2-docstring} archivebox.core.permissions.direct_snapshots_queryset
```
````

View File

@ -0,0 +1,31 @@
# {py:mod}`archivebox.core.recovery_util`
```{py:module} archivebox.core.recovery_util
```
```{autodoc2-docstring} archivebox.core.recovery_util
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`recover_orchestrator_state <archivebox.core.recovery_util.recover_orchestrator_state>`
- ```{autodoc2-docstring} archivebox.core.recovery_util.recover_orchestrator_state
:summary:
```
````
### API
````{py:function} recover_orchestrator_state(*, include_chrome: bool = False) -> dict[str, int]
:canonical: archivebox.core.recovery_util.recover_orchestrator_state
```{autodoc2-docstring} archivebox.core.recovery_util.recover_orchestrator_state
```
````

View File

@ -31,6 +31,14 @@
- ```{autodoc2-docstring} archivebox.core.settings.IS_GETTING_VERSION_OR_HELP
:summary:
```
* - {py:obj}`CONFIG <archivebox.core.settings.CONFIG>`
- ```{autodoc2-docstring} archivebox.core.settings.CONFIG
:summary:
```
* - {py:obj}`PACKAGE_DIR <archivebox.core.settings.PACKAGE_DIR>`
- ```{autodoc2-docstring} archivebox.core.settings.PACKAGE_DIR
:summary:
```
* - {py:obj}`ALL_PLUGINS <archivebox.core.settings.ALL_PLUGINS>`
- ```{autodoc2-docstring} archivebox.core.settings.ALL_PLUGINS
:summary:
@ -111,6 +119,14 @@
- ```{autodoc2-docstring} archivebox.core.settings.DATABASE_NAME
:summary:
```
* - {py:obj}`SQLITE_JOURNAL_MODE <archivebox.core.settings.SQLITE_JOURNAL_MODE>`
- ```{autodoc2-docstring} archivebox.core.settings.SQLITE_JOURNAL_MODE
:summary:
```
* - {py:obj}`SQLITE_MMAP_SIZE <archivebox.core.settings.SQLITE_MMAP_SIZE>`
- ```{autodoc2-docstring} archivebox.core.settings.SQLITE_MMAP_SIZE
:summary:
```
* - {py:obj}`SQLITE_CONNECTION_OPTIONS <archivebox.core.settings.SQLITE_CONNECTION_OPTIONS>`
- ```{autodoc2-docstring} archivebox.core.settings.SQLITE_CONNECTION_OPTIONS
:summary:
@ -335,6 +351,26 @@
````
````{py:data} CONFIG
:canonical: archivebox.core.settings.CONFIG
:value: >
'get_config(...)'
```{autodoc2-docstring} archivebox.core.settings.CONFIG
```
````
````{py:data} PACKAGE_DIR
:canonical: archivebox.core.settings.PACKAGE_DIR
:value: >
None
```{autodoc2-docstring} archivebox.core.settings.PACKAGE_DIR
```
````
````{py:data} ALL_PLUGINS
:canonical: archivebox.core.settings.ALL_PLUGINS
:value: >
@ -398,7 +434,7 @@
````{py:data} LOGOUT_REDIRECT_URL
:canonical: archivebox.core.settings.LOGOUT_REDIRECT_URL
:value: >
'get(...)'
None
```{autodoc2-docstring} archivebox.core.settings.LOGOUT_REDIRECT_URL
```
@ -528,13 +564,33 @@
````{py:data} DATABASE_NAME
:canonical: archivebox.core.settings.DATABASE_NAME
:value: >
'get(...)'
None
```{autodoc2-docstring} archivebox.core.settings.DATABASE_NAME
```
````
````{py:data} SQLITE_JOURNAL_MODE
:canonical: archivebox.core.settings.SQLITE_JOURNAL_MODE
:value: >
None
```{autodoc2-docstring} archivebox.core.settings.SQLITE_JOURNAL_MODE
```
````
````{py:data} SQLITE_MMAP_SIZE
:canonical: archivebox.core.settings.SQLITE_MMAP_SIZE
:value: >
None
```{autodoc2-docstring} archivebox.core.settings.SQLITE_MMAP_SIZE
```
````
````{py:data} SQLITE_CONNECTION_OPTIONS
:canonical: archivebox.core.settings.SQLITE_CONNECTION_OPTIONS
:value: >
@ -638,7 +694,7 @@
````{py:data} ALLOWED_HOSTS
:canonical: archivebox.core.settings.ALLOWED_HOSTS
:value: >
'split(...)'
None
```{autodoc2-docstring} archivebox.core.settings.ALLOWED_HOSTS
```
@ -947,6 +1003,7 @@
````{py:data} SIGNAL_WEBHOOKS
:canonical: archivebox.core.settings.SIGNAL_WEBHOOKS
:type: dict[str, object]
:value: >
None

View File

@ -17,6 +17,14 @@
* - {py:obj}`NoisyRequestsFilter <archivebox.core.settings_logging.NoisyRequestsFilter>`
-
* - {py:obj}`DaphneCloseTimeoutFilter <archivebox.core.settings_logging.DaphneCloseTimeoutFilter>`
- ```{autodoc2-docstring} archivebox.core.settings_logging.DaphneCloseTimeoutFilter
:summary:
```
* - {py:obj}`AsyncioCancelledShieldFilter <archivebox.core.settings_logging.AsyncioCancelledShieldFilter>`
- ```{autodoc2-docstring} archivebox.core.settings_logging.AsyncioCancelledShieldFilter
:summary:
```
* - {py:obj}`CustomOutboundWebhookLogFormatter <archivebox.core.settings_logging.CustomOutboundWebhookLogFormatter>`
-
* - {py:obj}`StripANSIColorCodesFilter <archivebox.core.settings_logging.StripANSIColorCodesFilter>`
@ -79,6 +87,48 @@ Bases: {py:obj}`logging.Filter`
`````
`````{py:class} DaphneCloseTimeoutFilter(name='')
:canonical: archivebox.core.settings_logging.DaphneCloseTimeoutFilter
Bases: {py:obj}`logging.Filter`
```{autodoc2-docstring} archivebox.core.settings_logging.DaphneCloseTimeoutFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.settings_logging.DaphneCloseTimeoutFilter.__init__
```
````{py:method} filter(record) -> bool
:canonical: archivebox.core.settings_logging.DaphneCloseTimeoutFilter.filter
````
`````
`````{py:class} AsyncioCancelledShieldFilter(name='')
:canonical: archivebox.core.settings_logging.AsyncioCancelledShieldFilter
Bases: {py:obj}`logging.Filter`
```{autodoc2-docstring} archivebox.core.settings_logging.AsyncioCancelledShieldFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.settings_logging.AsyncioCancelledShieldFilter.__init__
```
````{py:method} filter(record) -> bool
:canonical: archivebox.core.settings_logging.AsyncioCancelledShieldFilter.filter
````
`````
`````{py:class} CustomOutboundWebhookLogFormatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None)
:canonical: archivebox.core.settings_logging.CustomOutboundWebhookLogFormatter

View File

@ -0,0 +1,151 @@
# {py:mod}`archivebox.core.shutdown_util`
```{py:module} archivebox.core.shutdown_util
```
```{autodoc2-docstring} archivebox.core.shutdown_util
:allowtitles:
```
## Module Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`ShutdownSignalState <archivebox.core.shutdown_util.ShutdownSignalState>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.ShutdownSignalState
:summary:
```
````
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`raise_if_shutdown_requested <archivebox.core.shutdown_util.raise_if_shutdown_requested>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.raise_if_shutdown_requested
:summary:
```
* - {py:obj}`configured_stopwaitsecs <archivebox.core.shutdown_util.configured_stopwaitsecs>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.configured_stopwaitsecs
:summary:
```
* - {py:obj}`wait_popen_and_kill_children <archivebox.core.shutdown_util.wait_popen_and_kill_children>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.wait_popen_and_kill_children
:summary:
```
* - {py:obj}`wait_psutil_and_kill_children <archivebox.core.shutdown_util.wait_psutil_and_kill_children>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.wait_psutil_and_kill_children
:summary:
```
* - {py:obj}`kill_remaining_processes <archivebox.core.shutdown_util.kill_remaining_processes>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.kill_remaining_processes
:summary:
```
* - {py:obj}`foreground_shutdown_signals <archivebox.core.shutdown_util.foreground_shutdown_signals>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.foreground_shutdown_signals
:summary:
```
* - {py:obj}`foreground_parent_watchdog <archivebox.core.shutdown_util.foreground_parent_watchdog>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util.foreground_parent_watchdog
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_active_shutdown_state <archivebox.core.shutdown_util._active_shutdown_state>`
- ```{autodoc2-docstring} archivebox.core.shutdown_util._active_shutdown_state
:summary:
```
````
### API
`````{py:class} ShutdownSignalState
:canonical: archivebox.core.shutdown_util.ShutdownSignalState
```{autodoc2-docstring} archivebox.core.shutdown_util.ShutdownSignalState
```
````{py:attribute} signal_name
:canonical: archivebox.core.shutdown_util.ShutdownSignalState.signal_name
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.core.shutdown_util.ShutdownSignalState.signal_name
```
````
`````
````{py:data} _active_shutdown_state
:canonical: archivebox.core.shutdown_util._active_shutdown_state
:type: archivebox.core.shutdown_util.ShutdownSignalState | None
:value: >
None
```{autodoc2-docstring} archivebox.core.shutdown_util._active_shutdown_state
```
````
````{py:function} raise_if_shutdown_requested() -> None
:canonical: archivebox.core.shutdown_util.raise_if_shutdown_requested
```{autodoc2-docstring} archivebox.core.shutdown_util.raise_if_shutdown_requested
```
````
````{py:function} configured_stopwaitsecs(workers: list[dict[str, str]] | tuple[dict[str, str], ...], *, default: int = 5, buffer: int = 5) -> int
:canonical: archivebox.core.shutdown_util.configured_stopwaitsecs
```{autodoc2-docstring} archivebox.core.shutdown_util.configured_stopwaitsecs
```
````
````{py:function} wait_popen_and_kill_children(proc: subprocess.Popen, children: list[psutil.Process], *, timeout: float, kill_timeout: float = 2.0) -> None
:canonical: archivebox.core.shutdown_util.wait_popen_and_kill_children
```{autodoc2-docstring} archivebox.core.shutdown_util.wait_popen_and_kill_children
```
````
````{py:function} wait_psutil_and_kill_children(proc: psutil.Process, children: list[psutil.Process], *, timeout: float, kill_timeout: float = 2.0) -> None
:canonical: archivebox.core.shutdown_util.wait_psutil_and_kill_children
```{autodoc2-docstring} archivebox.core.shutdown_util.wait_psutil_and_kill_children
```
````
````{py:function} kill_remaining_processes(processes: list[psutil.Process], *, timeout: float = 2.0) -> None
:canonical: archivebox.core.shutdown_util.kill_remaining_processes
```{autodoc2-docstring} archivebox.core.shutdown_util.kill_remaining_processes
```
````
````{py:function} foreground_shutdown_signals(handled_signals: tuple[signal.Signals, ...] = (signal.SIGHUP, signal.SIGINT, signal.SIGTERM), *, first_signal_message: str | None = '\n[🛑] Got {signal_name}, stopping gracefully...\n', on_signal: collections.abc.Callable[[signal.Signals], None] | None = None, raise_on_first_signal: bool = True) -> collections.abc.Iterator[archivebox.core.shutdown_util.ShutdownSignalState]
:canonical: archivebox.core.shutdown_util.foreground_shutdown_signals
```{autodoc2-docstring} archivebox.core.shutdown_util.foreground_shutdown_signals
```
````
````{py:function} foreground_parent_watchdog(*, enabled: bool = True, check_interval: float = 2.0, shutdown_signal: signal.Signals = signal.SIGTERM) -> collections.abc.Iterator[None]
:canonical: archivebox.core.shutdown_util.foreground_parent_watchdog
```{autodoc2-docstring} archivebox.core.shutdown_util.foreground_parent_watchdog
```
````

View File

@ -0,0 +1,290 @@
# {py:mod}`archivebox.core.tag_util`
```{py:module} archivebox.core.tag_util
```
```{autodoc2-docstring} archivebox.core.tag_util
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`normalize_tag_name <archivebox.core.tag_util.normalize_tag_name>`
- ```{autodoc2-docstring} archivebox.core.tag_util.normalize_tag_name
:summary:
```
* - {py:obj}`normalize_tag_sort <archivebox.core.tag_util.normalize_tag_sort>`
- ```{autodoc2-docstring} archivebox.core.tag_util.normalize_tag_sort
:summary:
```
* - {py:obj}`normalize_has_snapshots_filter <archivebox.core.tag_util.normalize_has_snapshots_filter>`
- ```{autodoc2-docstring} archivebox.core.tag_util.normalize_has_snapshots_filter
:summary:
```
* - {py:obj}`normalize_created_by_filter <archivebox.core.tag_util.normalize_created_by_filter>`
- ```{autodoc2-docstring} archivebox.core.tag_util.normalize_created_by_filter
:summary:
```
* - {py:obj}`normalize_created_year_filter <archivebox.core.tag_util.normalize_created_year_filter>`
- ```{autodoc2-docstring} archivebox.core.tag_util.normalize_created_year_filter
:summary:
```
* - {py:obj}`get_matching_tags <archivebox.core.tag_util.get_matching_tags>`
- ```{autodoc2-docstring} archivebox.core.tag_util.get_matching_tags
:summary:
```
* - {py:obj}`add_snapshot_counts <archivebox.core.tag_util.add_snapshot_counts>`
- ```{autodoc2-docstring} archivebox.core.tag_util.add_snapshot_counts
:summary:
```
* - {py:obj}`get_tag_creator_choices <archivebox.core.tag_util.get_tag_creator_choices>`
- ```{autodoc2-docstring} archivebox.core.tag_util.get_tag_creator_choices
:summary:
```
* - {py:obj}`get_tag_year_choices <archivebox.core.tag_util.get_tag_year_choices>`
- ```{autodoc2-docstring} archivebox.core.tag_util.get_tag_year_choices
:summary:
```
* - {py:obj}`get_tag_by_ref <archivebox.core.tag_util.get_tag_by_ref>`
- ```{autodoc2-docstring} archivebox.core.tag_util.get_tag_by_ref
:summary:
```
* - {py:obj}`get_or_create_tag <archivebox.core.tag_util.get_or_create_tag>`
- ```{autodoc2-docstring} archivebox.core.tag_util.get_or_create_tag
:summary:
```
* - {py:obj}`rename_tag <archivebox.core.tag_util.rename_tag>`
- ```{autodoc2-docstring} archivebox.core.tag_util.rename_tag
:summary:
```
* - {py:obj}`delete_tag <archivebox.core.tag_util.delete_tag>`
- ```{autodoc2-docstring} archivebox.core.tag_util.delete_tag
:summary:
```
* - {py:obj}`export_tag_urls <archivebox.core.tag_util.export_tag_urls>`
- ```{autodoc2-docstring} archivebox.core.tag_util.export_tag_urls
:summary:
```
* - {py:obj}`export_tag_snapshots_jsonl <archivebox.core.tag_util.export_tag_snapshots_jsonl>`
- ```{autodoc2-docstring} archivebox.core.tag_util.export_tag_snapshots_jsonl
:summary:
```
* - {py:obj}`_display_snapshot_title <archivebox.core.tag_util._display_snapshot_title>`
- ```{autodoc2-docstring} archivebox.core.tag_util._display_snapshot_title
:summary:
```
* - {py:obj}`_build_snapshot_preview <archivebox.core.tag_util._build_snapshot_preview>`
- ```{autodoc2-docstring} archivebox.core.tag_util._build_snapshot_preview
:summary:
```
* - {py:obj}`_build_snapshot_preview_map <archivebox.core.tag_util._build_snapshot_preview_map>`
- ```{autodoc2-docstring} archivebox.core.tag_util._build_snapshot_preview_map
:summary:
```
* - {py:obj}`build_tag_card <archivebox.core.tag_util.build_tag_card>`
- ```{autodoc2-docstring} archivebox.core.tag_util.build_tag_card
:summary:
```
* - {py:obj}`build_tag_cards <archivebox.core.tag_util.build_tag_cards>`
- ```{autodoc2-docstring} archivebox.core.tag_util.build_tag_cards
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`TAG_SNAPSHOT_PREVIEW_LIMIT <archivebox.core.tag_util.TAG_SNAPSHOT_PREVIEW_LIMIT>`
- ```{autodoc2-docstring} archivebox.core.tag_util.TAG_SNAPSHOT_PREVIEW_LIMIT
:summary:
```
* - {py:obj}`TAG_SORT_CHOICES <archivebox.core.tag_util.TAG_SORT_CHOICES>`
- ```{autodoc2-docstring} archivebox.core.tag_util.TAG_SORT_CHOICES
:summary:
```
* - {py:obj}`TAG_HAS_SNAPSHOTS_CHOICES <archivebox.core.tag_util.TAG_HAS_SNAPSHOTS_CHOICES>`
- ```{autodoc2-docstring} archivebox.core.tag_util.TAG_HAS_SNAPSHOTS_CHOICES
:summary:
```
````
### API
````{py:data} TAG_SNAPSHOT_PREVIEW_LIMIT
:canonical: archivebox.core.tag_util.TAG_SNAPSHOT_PREVIEW_LIMIT
:value: >
10
```{autodoc2-docstring} archivebox.core.tag_util.TAG_SNAPSHOT_PREVIEW_LIMIT
```
````
````{py:data} TAG_SORT_CHOICES
:canonical: archivebox.core.tag_util.TAG_SORT_CHOICES
:value: >
(('name_asc', 'Name A-Z'), ('name_desc', 'Name Z-A'), ('created_desc', 'Created newest'), ('created_...
```{autodoc2-docstring} archivebox.core.tag_util.TAG_SORT_CHOICES
```
````
````{py:data} TAG_HAS_SNAPSHOTS_CHOICES
:canonical: archivebox.core.tag_util.TAG_HAS_SNAPSHOTS_CHOICES
:value: >
(('all', 'All'), ('yes', 'Has snapshots'), ('no', 'No snapshots'))
```{autodoc2-docstring} archivebox.core.tag_util.TAG_HAS_SNAPSHOTS_CHOICES
```
````
````{py:function} normalize_tag_name(name: str) -> str
:canonical: archivebox.core.tag_util.normalize_tag_name
```{autodoc2-docstring} archivebox.core.tag_util.normalize_tag_name
```
````
````{py:function} normalize_tag_sort(sort: str = 'created_desc') -> str
:canonical: archivebox.core.tag_util.normalize_tag_sort
```{autodoc2-docstring} archivebox.core.tag_util.normalize_tag_sort
```
````
````{py:function} normalize_has_snapshots_filter(value: str = 'all') -> str
:canonical: archivebox.core.tag_util.normalize_has_snapshots_filter
```{autodoc2-docstring} archivebox.core.tag_util.normalize_has_snapshots_filter
```
````
````{py:function} normalize_created_by_filter(created_by: str = '') -> str
:canonical: archivebox.core.tag_util.normalize_created_by_filter
```{autodoc2-docstring} archivebox.core.tag_util.normalize_created_by_filter
```
````
````{py:function} normalize_created_year_filter(year: str = '') -> str
:canonical: archivebox.core.tag_util.normalize_created_year_filter
```{autodoc2-docstring} archivebox.core.tag_util.normalize_created_year_filter
```
````
````{py:function} get_matching_tags(query: str = '', sort: str = 'created_desc', created_by: str = '', year: str = '', has_snapshots: str = 'all', with_snapshot_counts: bool = True) -> django.db.models.QuerySet[archivebox.core.models.Tag]
:canonical: archivebox.core.tag_util.get_matching_tags
```{autodoc2-docstring} archivebox.core.tag_util.get_matching_tags
```
````
````{py:function} add_snapshot_counts(tags: list[archivebox.core.models.Tag], snapshot_queryset: django.db.models.QuerySet[archivebox.core.models.Snapshot] | None = None) -> None
:canonical: archivebox.core.tag_util.add_snapshot_counts
```{autodoc2-docstring} archivebox.core.tag_util.add_snapshot_counts
```
````
````{py:function} get_tag_creator_choices() -> list[tuple[str, str]]
:canonical: archivebox.core.tag_util.get_tag_creator_choices
```{autodoc2-docstring} archivebox.core.tag_util.get_tag_creator_choices
```
````
````{py:function} get_tag_year_choices() -> list[str]
:canonical: archivebox.core.tag_util.get_tag_year_choices
```{autodoc2-docstring} archivebox.core.tag_util.get_tag_year_choices
```
````
````{py:function} get_tag_by_ref(tag_ref: str | int) -> archivebox.core.models.Tag
:canonical: archivebox.core.tag_util.get_tag_by_ref
```{autodoc2-docstring} archivebox.core.tag_util.get_tag_by_ref
```
````
````{py:function} get_or_create_tag(name: str, created_by: django.contrib.auth.models.User | None = None) -> tuple[archivebox.core.models.Tag, bool]
:canonical: archivebox.core.tag_util.get_or_create_tag
```{autodoc2-docstring} archivebox.core.tag_util.get_or_create_tag
```
````
````{py:function} rename_tag(tag: archivebox.core.models.Tag, name: str) -> archivebox.core.models.Tag
:canonical: archivebox.core.tag_util.rename_tag
```{autodoc2-docstring} archivebox.core.tag_util.rename_tag
```
````
````{py:function} delete_tag(tag: archivebox.core.models.Tag) -> tuple[int, dict[str, int]]
:canonical: archivebox.core.tag_util.delete_tag
```{autodoc2-docstring} archivebox.core.tag_util.delete_tag
```
````
````{py:function} export_tag_urls(tag: archivebox.core.models.Tag) -> str
:canonical: archivebox.core.tag_util.export_tag_urls
```{autodoc2-docstring} archivebox.core.tag_util.export_tag_urls
```
````
````{py:function} export_tag_snapshots_jsonl(tag: archivebox.core.models.Tag) -> str
:canonical: archivebox.core.tag_util.export_tag_snapshots_jsonl
```{autodoc2-docstring} archivebox.core.tag_util.export_tag_snapshots_jsonl
```
````
````{py:function} _display_snapshot_title(snapshot: archivebox.core.models.Snapshot) -> str
:canonical: archivebox.core.tag_util._display_snapshot_title
```{autodoc2-docstring} archivebox.core.tag_util._display_snapshot_title
```
````
````{py:function} _build_snapshot_preview(snapshot: archivebox.core.models.Snapshot, request: django.http.HttpRequest | None = None, config: typing.Any | None = None) -> dict[str, typing.Any]
:canonical: archivebox.core.tag_util._build_snapshot_preview
```{autodoc2-docstring} archivebox.core.tag_util._build_snapshot_preview
```
````
````{py:function} _build_snapshot_preview_map(tags: list[archivebox.core.models.Tag], request: django.http.HttpRequest | None = None, preview_limit: int = TAG_SNAPSHOT_PREVIEW_LIMIT) -> dict[int, list[dict[str, typing.Any]]]
:canonical: archivebox.core.tag_util._build_snapshot_preview_map
```{autodoc2-docstring} archivebox.core.tag_util._build_snapshot_preview_map
```
````
````{py:function} build_tag_card(tag: archivebox.core.models.Tag, snapshot_previews: list[dict[str, typing.Any]] | None = None) -> dict[str, typing.Any]
:canonical: archivebox.core.tag_util.build_tag_card
```{autodoc2-docstring} archivebox.core.tag_util.build_tag_card
```
````
````{py:function} build_tag_cards(query: str = '', request: django.http.HttpRequest | None = None, limit: int | None = None, preview_limit: int = TAG_SNAPSHOT_PREVIEW_LIMIT, sort: str = 'created_desc', created_by: str = '', year: str = '', has_snapshots: str = 'all') -> list[dict[str, typing.Any]]
:canonical: archivebox.core.tag_util.build_tag_cards
```{autodoc2-docstring} archivebox.core.tag_util.build_tag_cards
```
````

View File

@ -0,0 +1,235 @@
# {py:mod}`archivebox.core.takeover_util`
```{py:module} archivebox.core.takeover_util
```
```{autodoc2-docstring} archivebox.core.takeover_util
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`runtime_stack_owner_types <archivebox.core.takeover_util.runtime_stack_owner_types>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.runtime_stack_owner_types
:summary:
```
* - {py:obj}`current_command <archivebox.core.takeover_util.current_command>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.current_command
:summary:
```
* - {py:obj}`live_processes <archivebox.core.takeover_util.live_processes>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.live_processes
:summary:
```
* - {py:obj}`newest_live_process <archivebox.core.takeover_util.newest_live_process>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.newest_live_process
:summary:
```
* - {py:obj}`command_is_newest <archivebox.core.takeover_util.command_is_newest>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.command_is_newest
:summary:
```
* - {py:obj}`runtime_stack_owner <archivebox.core.takeover_util.runtime_stack_owner>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.runtime_stack_owner
:summary:
```
* - {py:obj}`command_owns_runtime_stack <archivebox.core.takeover_util.command_owns_runtime_stack>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.command_owns_runtime_stack
:summary:
```
* - {py:obj}`runtime_stack_component_label <archivebox.core.takeover_util.runtime_stack_component_label>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.runtime_stack_component_label
:summary:
```
* - {py:obj}`ensure_daemon_stack <archivebox.core.takeover_util.ensure_daemon_stack>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.ensure_daemon_stack
:summary:
```
* - {py:obj}`healthy_orchestrator <archivebox.core.takeover_util.healthy_orchestrator>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.healthy_orchestrator
:summary:
```
* - {py:obj}`_runner_sort_key <archivebox.core.takeover_util._runner_sort_key>`
- ```{autodoc2-docstring} archivebox.core.takeover_util._runner_sort_key
:summary:
```
* - {py:obj}`live_runner_processes <archivebox.core.takeover_util.live_runner_processes>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.live_runner_processes
:summary:
```
* - {py:obj}`enter_single_runner_gate <archivebox.core.takeover_util.enter_single_runner_gate>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.enter_single_runner_gate
:summary:
```
* - {py:obj}`standby_until_leader_needed <archivebox.core.takeover_util.standby_until_leader_needed>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.standby_until_leader_needed
:summary:
```
* - {py:obj}`standby_until_runtime_stack_needed <archivebox.core.takeover_util.standby_until_runtime_stack_needed>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.standby_until_runtime_stack_needed
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`RUNNER_ACTIVE_WORKER_TYPE <archivebox.core.takeover_util.RUNNER_ACTIVE_WORKER_TYPE>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.RUNNER_ACTIVE_WORKER_TYPE
:summary:
```
* - {py:obj}`RUNNER_WAITING_WORKER_TYPE <archivebox.core.takeover_util.RUNNER_WAITING_WORKER_TYPE>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.RUNNER_WAITING_WORKER_TYPE
:summary:
```
* - {py:obj}`RUNNER_GATE_WORKER_TYPES <archivebox.core.takeover_util.RUNNER_GATE_WORKER_TYPES>`
- ```{autodoc2-docstring} archivebox.core.takeover_util.RUNNER_GATE_WORKER_TYPES
:summary:
```
````
### API
````{py:data} RUNNER_ACTIVE_WORKER_TYPE
:canonical: archivebox.core.takeover_util.RUNNER_ACTIVE_WORKER_TYPE
:value: >
'worker_runner'
```{autodoc2-docstring} archivebox.core.takeover_util.RUNNER_ACTIVE_WORKER_TYPE
```
````
````{py:data} RUNNER_WAITING_WORKER_TYPE
:canonical: archivebox.core.takeover_util.RUNNER_WAITING_WORKER_TYPE
:value: >
'runner_waiting'
```{autodoc2-docstring} archivebox.core.takeover_util.RUNNER_WAITING_WORKER_TYPE
```
````
````{py:data} RUNNER_GATE_WORKER_TYPES
:canonical: archivebox.core.takeover_util.RUNNER_GATE_WORKER_TYPES
:value: >
()
```{autodoc2-docstring} archivebox.core.takeover_util.RUNNER_GATE_WORKER_TYPES
```
````
````{py:function} runtime_stack_owner_types()
:canonical: archivebox.core.takeover_util.runtime_stack_owner_types
```{autodoc2-docstring} archivebox.core.takeover_util.runtime_stack_owner_types
```
````
````{py:function} current_command(process_type: str, *, data_dir: str | pathlib.Path, url: str | None = None)
:canonical: archivebox.core.takeover_util.current_command
```{autodoc2-docstring} archivebox.core.takeover_util.current_command
```
````
````{py:function} live_processes(*, process_type: str, data_dir: str | pathlib.Path, url: str | None = None)
:canonical: archivebox.core.takeover_util.live_processes
```{autodoc2-docstring} archivebox.core.takeover_util.live_processes
```
````
````{py:function} newest_live_process(*, process_type: str, data_dir: str | pathlib.Path, url: str | None = None)
:canonical: archivebox.core.takeover_util.newest_live_process
```{autodoc2-docstring} archivebox.core.takeover_util.newest_live_process
```
````
````{py:function} command_is_newest(command, *, process_type: str, data_dir: str | pathlib.Path, url: str | None = None) -> bool
:canonical: archivebox.core.takeover_util.command_is_newest
```{autodoc2-docstring} archivebox.core.takeover_util.command_is_newest
```
````
````{py:function} runtime_stack_owner(*, data_dir: str | pathlib.Path, exclude_id=None)
:canonical: archivebox.core.takeover_util.runtime_stack_owner
```{autodoc2-docstring} archivebox.core.takeover_util.runtime_stack_owner
```
````
````{py:function} command_owns_runtime_stack(command, *, data_dir: str | pathlib.Path) -> bool
:canonical: archivebox.core.takeover_util.command_owns_runtime_stack
```{autodoc2-docstring} archivebox.core.takeover_util.command_owns_runtime_stack
```
````
````{py:function} runtime_stack_component_label(*, owner=None, data_dir: str | pathlib.Path) -> str
:canonical: archivebox.core.takeover_util.runtime_stack_component_label
```{autodoc2-docstring} archivebox.core.takeover_util.runtime_stack_component_label
```
````
````{py:function} ensure_daemon_stack(*, reason: str = '')
:canonical: archivebox.core.takeover_util.ensure_daemon_stack
```{autodoc2-docstring} archivebox.core.takeover_util.ensure_daemon_stack
```
````
````{py:function} healthy_orchestrator(*, data_dir: str | pathlib.Path)
:canonical: archivebox.core.takeover_util.healthy_orchestrator
```{autodoc2-docstring} archivebox.core.takeover_util.healthy_orchestrator
```
````
````{py:function} _runner_sort_key(process)
:canonical: archivebox.core.takeover_util._runner_sort_key
```{autodoc2-docstring} archivebox.core.takeover_util._runner_sort_key
```
````
````{py:function} live_runner_processes(*, data_dir: str | pathlib.Path, exclude_id=None)
:canonical: archivebox.core.takeover_util.live_runner_processes
```{autodoc2-docstring} archivebox.core.takeover_util.live_runner_processes
```
````
````{py:function} enter_single_runner_gate(command, *, data_dir: str | pathlib.Path, graceful_timeout: float = 5.0) -> bool
:canonical: archivebox.core.takeover_util.enter_single_runner_gate
```{autodoc2-docstring} archivebox.core.takeover_util.enter_single_runner_gate
```
````
````{py:function} standby_until_leader_needed(command, *, process_type: str, data_dir: str | pathlib.Path, url: str | None = None, interval: float = 2.0) -> None
:canonical: archivebox.core.takeover_util.standby_until_leader_needed
```{autodoc2-docstring} archivebox.core.takeover_util.standby_until_leader_needed
```
````
````{py:function} standby_until_runtime_stack_needed(command, *, data_dir: str | pathlib.Path, interval: float = 2.0) -> dict[str, object]
:canonical: archivebox.core.takeover_util.standby_until_runtime_stack_needed
```{autodoc2-docstring} archivebox.core.takeover_util.standby_until_runtime_stack_needed
```
````

View File

@ -1,53 +0,0 @@
# {py:mod}`archivebox.core.templatetags.config_tags`
```{py:module} archivebox.core.templatetags.config_tags
```
```{autodoc2-docstring} archivebox.core.templatetags.config_tags
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`get_config <archivebox.core.templatetags.config_tags.get_config>`
- ```{autodoc2-docstring} archivebox.core.templatetags.config_tags.get_config
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`register <archivebox.core.templatetags.config_tags.register>`
- ```{autodoc2-docstring} archivebox.core.templatetags.config_tags.register
:summary:
```
````
### API
````{py:data} register
:canonical: archivebox.core.templatetags.config_tags.register
:value: >
'Library(...)'
```{autodoc2-docstring} archivebox.core.templatetags.config_tags.register
```
````
````{py:function} get_config(key: str) -> any
:canonical: archivebox.core.templatetags.config_tags.get_config
```{autodoc2-docstring} archivebox.core.templatetags.config_tags.get_config
```
````

View File

@ -15,6 +15,14 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_normalize_output_files <archivebox.core.templatetags.core_tags._normalize_output_files>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._normalize_output_files
:summary:
```
* - {py:obj}`_coerce_output_file_size <archivebox.core.templatetags.core_tags._coerce_output_file_size>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._coerce_output_file_size
:summary:
```
* - {py:obj}`_count_media_files <archivebox.core.templatetags.core_tags._count_media_files>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._count_media_files
:summary:
@ -23,14 +31,58 @@
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._list_media_files
:summary:
```
* - {py:obj}`_resolve_snapshot_output_file <archivebox.core.templatetags.core_tags._resolve_snapshot_output_file>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._resolve_snapshot_output_file
:summary:
```
* - {py:obj}`_is_text_preview_path <archivebox.core.templatetags.core_tags._is_text_preview_path>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._is_text_preview_path
:summary:
```
* - {py:obj}`_is_image_preview_path <archivebox.core.templatetags.core_tags._is_image_preview_path>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._is_image_preview_path
:summary:
```
* - {py:obj}`_is_root_snapshot_output_path <archivebox.core.templatetags.core_tags._is_root_snapshot_output_path>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._is_root_snapshot_output_path
:summary:
```
* - {py:obj}`_build_snapshot_files_url <archivebox.core.templatetags.core_tags._build_snapshot_files_url>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._build_snapshot_files_url
:summary:
```
* - {py:obj}`_build_snapshot_preview_url <archivebox.core.templatetags.core_tags._build_snapshot_preview_url>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._build_snapshot_preview_url
:summary:
```
* - {py:obj}`_render_text_preview <archivebox.core.templatetags.core_tags._render_text_preview>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._render_text_preview
:summary:
```
* - {py:obj}`_render_fallback_card <archivebox.core.templatetags.core_tags._render_fallback_card>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._render_fallback_card
:summary:
```
* - {py:obj}`_render_text_file_preview <archivebox.core.templatetags.core_tags._render_text_file_preview>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._render_text_file_preview
:summary:
```
* - {py:obj}`split <archivebox.core.templatetags.core_tags.split>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.split
:summary:
```
* - {py:obj}`index <archivebox.core.templatetags.core_tags.index>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.index
:summary:
```
* - {py:obj}`file_size <archivebox.core.templatetags.core_tags.file_size>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.file_size
:summary:
```
* - {py:obj}`intcomma <archivebox.core.templatetags.core_tags.intcomma>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.intcomma
:summary:
```
* - {py:obj}`result_list <archivebox.core.templatetags.core_tags.result_list>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.result_list
:summary:
@ -39,10 +91,26 @@
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.result_list_tag
:summary:
```
* - {py:obj}`_machine_health_stats <archivebox.core.templatetags.core_tags._machine_health_stats>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._machine_health_stats
:summary:
```
* - {py:obj}`system_warnings_banner <archivebox.core.templatetags.core_tags.system_warnings_banner>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.system_warnings_banner
:summary:
```
* - {py:obj}`_unconfigured_banner_context <archivebox.core.templatetags.core_tags._unconfigured_banner_context>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._unconfigured_banner_context
:summary:
```
* - {py:obj}`url_replace <archivebox.core.templatetags.core_tags.url_replace>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.url_replace
:summary:
```
* - {py:obj}`has_real_admin_users <archivebox.core.templatetags.core_tags.has_real_admin_users>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.has_real_admin_users
:summary:
```
* - {py:obj}`admin_base_url <archivebox.core.templatetags.core_tags.admin_base_url>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.admin_base_url
:summary:
@ -51,6 +119,10 @@
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.web_base_url
:summary:
```
* - {py:obj}`public_base_url <archivebox.core.templatetags.core_tags.public_base_url>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.public_base_url
:summary:
```
* - {py:obj}`snapshot_base_url <archivebox.core.templatetags.core_tags.snapshot_base_url>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.snapshot_base_url
:summary:
@ -59,6 +131,10 @@
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.snapshot_url
:summary:
```
* - {py:obj}`snapshot_preview_url <archivebox.core.templatetags.core_tags.snapshot_preview_url>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.snapshot_preview_url
:summary:
```
* - {py:obj}`plugin_icon <archivebox.core.templatetags.core_tags.plugin_icon>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.plugin_icon
:summary:
@ -67,6 +143,10 @@
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.plugin_card
:summary:
```
* - {py:obj}`output_card <archivebox.core.templatetags.core_tags.output_card>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.output_card
:summary:
```
* - {py:obj}`plugin_full <archivebox.core.templatetags.core_tags.plugin_full>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.plugin_full
:summary:
@ -91,10 +171,46 @@
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags.register
:summary:
```
* - {py:obj}`_TEXT_PREVIEW_EXTS <archivebox.core.templatetags.core_tags._TEXT_PREVIEW_EXTS>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._TEXT_PREVIEW_EXTS
:summary:
```
* - {py:obj}`_IMAGE_PREVIEW_EXTS <archivebox.core.templatetags.core_tags._IMAGE_PREVIEW_EXTS>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._IMAGE_PREVIEW_EXTS
:summary:
```
* - {py:obj}`_MHTML_PREVIEW_EXTS <archivebox.core.templatetags.core_tags._MHTML_PREVIEW_EXTS>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._MHTML_PREVIEW_EXTS
:summary:
```
* - {py:obj}`_WACZ_PREVIEW_EXTS <archivebox.core.templatetags.core_tags._WACZ_PREVIEW_EXTS>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._WACZ_PREVIEW_EXTS
:summary:
```
* - {py:obj}`_MEDIA_FILE_EXTS <archivebox.core.templatetags.core_tags._MEDIA_FILE_EXTS>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._MEDIA_FILE_EXTS
:summary:
```
* - {py:obj}`_LOW_DISK_THRESHOLD_GB <archivebox.core.templatetags.core_tags._LOW_DISK_THRESHOLD_GB>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._LOW_DISK_THRESHOLD_GB
:summary:
```
* - {py:obj}`_HIGH_MEMORY_THRESHOLD_PCT <archivebox.core.templatetags.core_tags._HIGH_MEMORY_THRESHOLD_PCT>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._HIGH_MEMORY_THRESHOLD_PCT
:summary:
```
* - {py:obj}`_HIGH_LOAD_MULTIPLE <archivebox.core.templatetags.core_tags._HIGH_LOAD_MULTIPLE>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._HIGH_LOAD_MULTIPLE
:summary:
```
* - {py:obj}`_HEALTH_CHECK_INTERVAL_SECONDS <archivebox.core.templatetags.core_tags._HEALTH_CHECK_INTERVAL_SECONDS>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._HEALTH_CHECK_INTERVAL_SECONDS
:summary:
```
* - {py:obj}`_health_cache <archivebox.core.templatetags.core_tags._health_cache>`
- ```{autodoc2-docstring} archivebox.core.templatetags.core_tags._health_cache
:summary:
```
````
### API
@ -109,6 +225,46 @@
````
````{py:data} _TEXT_PREVIEW_EXTS
:canonical: archivebox.core.templatetags.core_tags._TEXT_PREVIEW_EXTS
:value: >
('.json', '.jsonl', '.txt', '.csv', '.tsv', '.xml', '.yml', '.yaml', '.md', '.log')
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._TEXT_PREVIEW_EXTS
```
````
````{py:data} _IMAGE_PREVIEW_EXTS
:canonical: archivebox.core.templatetags.core_tags._IMAGE_PREVIEW_EXTS
:value: >
('.png', '.jpg', '.jpeg', '.gif', '.webp', '.bmp', '.ico', '.avif')
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._IMAGE_PREVIEW_EXTS
```
````
````{py:data} _MHTML_PREVIEW_EXTS
:canonical: archivebox.core.templatetags.core_tags._MHTML_PREVIEW_EXTS
:value: >
('.mhtml', '.mht')
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._MHTML_PREVIEW_EXTS
```
````
````{py:data} _WACZ_PREVIEW_EXTS
:canonical: archivebox.core.templatetags.core_tags._WACZ_PREVIEW_EXTS
:value: >
('.wacz', '.warc', '.warc.gz')
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._WACZ_PREVIEW_EXTS
```
````
````{py:data} _MEDIA_FILE_EXTS
:canonical: archivebox.core.templatetags.core_tags._MEDIA_FILE_EXTS
:value: >
@ -119,6 +275,20 @@
````
````{py:function} _normalize_output_files(output_files: typing.Any) -> dict[str, dict[str, typing.Any]]
:canonical: archivebox.core.templatetags.core_tags._normalize_output_files
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._normalize_output_files
```
````
````{py:function} _coerce_output_file_size(value: typing.Any) -> int | None
:canonical: archivebox.core.templatetags.core_tags._coerce_output_file_size
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._coerce_output_file_size
```
````
````{py:function} _count_media_files(result) -> int
:canonical: archivebox.core.templatetags.core_tags._count_media_files
@ -133,6 +303,69 @@
```
````
````{py:function} _resolve_snapshot_output_file(snapshot_dir: str | pathlib.Path | None, raw_output_path: str | None) -> pathlib.Path | None
:canonical: archivebox.core.templatetags.core_tags._resolve_snapshot_output_file
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._resolve_snapshot_output_file
```
````
````{py:function} _is_text_preview_path(raw_output_path: str | None) -> bool
:canonical: archivebox.core.templatetags.core_tags._is_text_preview_path
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._is_text_preview_path
```
````
````{py:function} _is_image_preview_path(raw_output_path: str | None) -> bool
:canonical: archivebox.core.templatetags.core_tags._is_image_preview_path
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._is_image_preview_path
```
````
````{py:function} _is_root_snapshot_output_path(raw_output_path: str | None) -> bool
:canonical: archivebox.core.templatetags.core_tags._is_root_snapshot_output_path
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._is_root_snapshot_output_path
```
````
````{py:function} _build_snapshot_files_url(snapshot_id: str, request=None, config=None) -> str
:canonical: archivebox.core.templatetags.core_tags._build_snapshot_files_url
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._build_snapshot_files_url
```
````
````{py:function} _build_snapshot_preview_url(snapshot_id: str, path: str = '', request=None, config=None) -> str
:canonical: archivebox.core.templatetags.core_tags._build_snapshot_preview_url
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._build_snapshot_preview_url
```
````
````{py:function} _render_text_preview(plugin: str, icon_html: str, snippet: str) -> str
:canonical: archivebox.core.templatetags.core_tags._render_text_preview
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._render_text_preview
```
````
````{py:function} _render_fallback_card(plugin: str, icon_html: str, fallback_label: str) -> str
:canonical: archivebox.core.templatetags.core_tags._render_fallback_card
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._render_fallback_card
```
````
````{py:function} _render_text_file_preview(snapshot_dir: str | pathlib.Path | None, raw_output_path: str | None, plugin: str, icon_html: str) -> str | None
:canonical: archivebox.core.templatetags.core_tags._render_text_file_preview
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._render_text_file_preview
```
````
````{py:function} split(value, separator: str = ',')
:canonical: archivebox.core.templatetags.core_tags.split
@ -140,14 +373,28 @@
```
````
````{py:function} file_size(num_bytes: typing.Union[int, float]) -> str
````{py:function} index(value, position)
:canonical: archivebox.core.templatetags.core_tags.index
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.index
```
````
````{py:function} file_size(num_bytes: int | float) -> str
:canonical: archivebox.core.templatetags.core_tags.file_size
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.file_size
```
````
````{py:function} result_list(cl)
````{py:function} intcomma(value: int | str | None) -> str
:canonical: archivebox.core.templatetags.core_tags.intcomma
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.intcomma
```
````
````{py:function} result_list(context, cl)
:canonical: archivebox.core.templatetags.core_tags.result_list
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.result_list
@ -161,6 +408,78 @@
```
````
````{py:data} _LOW_DISK_THRESHOLD_GB
:canonical: archivebox.core.templatetags.core_tags._LOW_DISK_THRESHOLD_GB
:value: >
1.0
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._LOW_DISK_THRESHOLD_GB
```
````
````{py:data} _HIGH_MEMORY_THRESHOLD_PCT
:canonical: archivebox.core.templatetags.core_tags._HIGH_MEMORY_THRESHOLD_PCT
:value: >
95.0
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._HIGH_MEMORY_THRESHOLD_PCT
```
````
````{py:data} _HIGH_LOAD_MULTIPLE
:canonical: archivebox.core.templatetags.core_tags._HIGH_LOAD_MULTIPLE
:value: >
3
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._HIGH_LOAD_MULTIPLE
```
````
````{py:data} _HEALTH_CHECK_INTERVAL_SECONDS
:canonical: archivebox.core.templatetags.core_tags._HEALTH_CHECK_INTERVAL_SECONDS
:value: >
30
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._HEALTH_CHECK_INTERVAL_SECONDS
```
````
````{py:data} _health_cache
:canonical: archivebox.core.templatetags.core_tags._health_cache
:type: dict
:value: >
None
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._health_cache
```
````
````{py:function} _machine_health_stats() -> dict
:canonical: archivebox.core.templatetags.core_tags._machine_health_stats
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._machine_health_stats
```
````
````{py:function} system_warnings_banner(context)
:canonical: archivebox.core.templatetags.core_tags.system_warnings_banner
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.system_warnings_banner
```
````
````{py:function} _unconfigured_banner_context(request) -> dict
:canonical: archivebox.core.templatetags.core_tags._unconfigured_banner_context
```{autodoc2-docstring} archivebox.core.templatetags.core_tags._unconfigured_banner_context
```
````
````{py:function} url_replace(context, **kwargs)
:canonical: archivebox.core.templatetags.core_tags.url_replace
@ -168,6 +487,13 @@
```
````
````{py:function} has_real_admin_users() -> bool
:canonical: archivebox.core.templatetags.core_tags.has_real_admin_users
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.has_real_admin_users
```
````
````{py:function} admin_base_url(context) -> str
:canonical: archivebox.core.templatetags.core_tags.admin_base_url
@ -182,6 +508,13 @@
```
````
````{py:function} public_base_url(context) -> str
:canonical: archivebox.core.templatetags.core_tags.public_base_url
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.public_base_url
```
````
````{py:function} snapshot_base_url(context, snapshot) -> str
:canonical: archivebox.core.templatetags.core_tags.snapshot_base_url
@ -196,6 +529,13 @@
```
````
````{py:function} snapshot_preview_url(context, snapshot, path: str = '') -> str
:canonical: archivebox.core.templatetags.core_tags.snapshot_preview_url
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.snapshot_preview_url
```
````
````{py:function} plugin_icon(plugin: str) -> str
:canonical: archivebox.core.templatetags.core_tags.plugin_icon
@ -210,6 +550,13 @@
```
````
````{py:function} output_card(snapshot, output_path: str, plugin: str) -> str
:canonical: archivebox.core.templatetags.core_tags.output_card
```{autodoc2-docstring} archivebox.core.templatetags.core_tags.output_card
```
````
````{py:function} plugin_full(context, result) -> str
:canonical: archivebox.core.templatetags.core_tags.plugin_full

View File

@ -14,5 +14,4 @@
:maxdepth: 1
archivebox.core.templatetags.core_tags
archivebox.core.templatetags.config_tags
```

View File

@ -9,12 +9,32 @@
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_raise_test_error <archivebox.core.urls._raise_test_error>`
- ```{autodoc2-docstring} archivebox.core.urls._raise_test_error
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`CONFIG <archivebox.core.urls.CONFIG>`
- ```{autodoc2-docstring} archivebox.core.urls.CONFIG
:summary:
```
* - {py:obj}`DEBUG <archivebox.core.urls.DEBUG>`
- ```{autodoc2-docstring} archivebox.core.urls.DEBUG
:summary:
```
* - {py:obj}`urlpatterns <archivebox.core.urls.urlpatterns>`
- ```{autodoc2-docstring} archivebox.core.urls.urlpatterns
:summary:
@ -23,6 +43,26 @@
### API
````{py:data} CONFIG
:canonical: archivebox.core.urls.CONFIG
:value: >
'get_config(...)'
```{autodoc2-docstring} archivebox.core.urls.CONFIG
```
````
````{py:data} DEBUG
:canonical: archivebox.core.urls.DEBUG
:value: >
None
```{autodoc2-docstring} archivebox.core.urls.DEBUG
```
````
````{py:data} urlpatterns
:canonical: archivebox.core.urls.urlpatterns
:value: >
@ -32,3 +72,10 @@
```
````
````{py:function} _raise_test_error(_request: django.http.HttpRequest)
:canonical: archivebox.core.urls._raise_test_error
```{autodoc2-docstring} archivebox.core.urls._raise_test_error
```
````

View File

@ -27,10 +27,18 @@
- ```{autodoc2-docstring} archivebox.core.views.SnapshotHostView
:summary:
```
* - {py:obj}`SnapshotReplayView <archivebox.core.views.SnapshotReplayView>`
- ```{autodoc2-docstring} archivebox.core.views.SnapshotReplayView
:summary:
```
* - {py:obj}`OriginalDomainHostView <archivebox.core.views.OriginalDomainHostView>`
- ```{autodoc2-docstring} archivebox.core.views.OriginalDomainHostView
:summary:
```
* - {py:obj}`OriginalDomainReplayView <archivebox.core.views.OriginalDomainReplayView>`
- ```{autodoc2-docstring} archivebox.core.views.OriginalDomainReplayView
:summary:
```
* - {py:obj}`PublicIndexView <archivebox.core.views.PublicIndexView>`
-
* - {py:obj}`AddView <archivebox.core.views.AddView>`
@ -49,14 +57,46 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_live_progress_plugin_names <archivebox.core.views._live_progress_plugin_names>`
- ```{autodoc2-docstring} archivebox.core.views._live_progress_plugin_names
:summary:
```
* - {py:obj}`_get_request_config <archivebox.core.views._get_request_config>`
- ```{autodoc2-docstring} archivebox.core.views._get_request_config
:summary:
```
* - {py:obj}`_files_index_target <archivebox.core.views._files_index_target>`
- ```{autodoc2-docstring} archivebox.core.views._files_index_target
:summary:
```
* - {py:obj}`_find_snapshot_by_ref <archivebox.core.views._find_snapshot_by_ref>`
- ```{autodoc2-docstring} archivebox.core.views._find_snapshot_by_ref
:summary:
```
* - {py:obj}`_admin_login_redirect_or_forbidden <archivebox.core.views._admin_login_redirect_or_forbidden>`
- ```{autodoc2-docstring} archivebox.core.views._admin_login_redirect_or_forbidden
:summary:
```
* - {py:obj}`_safe_archive_relpath <archivebox.core.views._safe_archive_relpath>`
- ```{autodoc2-docstring} archivebox.core.views._safe_archive_relpath
:summary:
```
* - {py:obj}`_coerce_sort_timestamp <archivebox.core.views._coerce_sort_timestamp>`
- ```{autodoc2-docstring} archivebox.core.views._coerce_sort_timestamp
:summary:
```
* - {py:obj}`_snapshot_sort_key <archivebox.core.views._snapshot_sort_key>`
- ```{autodoc2-docstring} archivebox.core.views._snapshot_sort_key
:summary:
```
* - {py:obj}`_snapshot_id_from_replay_path <archivebox.core.views._snapshot_id_from_replay_path>`
- ```{autodoc2-docstring} archivebox.core.views._snapshot_id_from_replay_path
:summary:
```
* - {py:obj}`_replay_path_visible <archivebox.core.views._replay_path_visible>`
- ```{autodoc2-docstring} archivebox.core.views._replay_path_visible
:summary:
```
* - {py:obj}`_latest_response_match <archivebox.core.views._latest_response_match>`
- ```{autodoc2-docstring} archivebox.core.views._latest_response_match
:summary:
@ -65,10 +105,26 @@
- ```{autodoc2-docstring} archivebox.core.views._latest_responses_root
:summary:
```
* - {py:obj}`_latest_snapshot_for_domain <archivebox.core.views._latest_snapshot_for_domain>`
- ```{autodoc2-docstring} archivebox.core.views._latest_snapshot_for_domain
:summary:
```
* - {py:obj}`_original_request_url <archivebox.core.views._original_request_url>`
- ```{autodoc2-docstring} archivebox.core.views._original_request_url
:summary:
```
* - {py:obj}`_serve_responses_path <archivebox.core.views._serve_responses_path>`
- ```{autodoc2-docstring} archivebox.core.views._serve_responses_path
:summary:
```
* - {py:obj}`_serve_snapshot_replay <archivebox.core.views._serve_snapshot_replay>`
- ```{autodoc2-docstring} archivebox.core.views._serve_snapshot_replay
:summary:
```
* - {py:obj}`_serve_original_domain_replay <archivebox.core.views._serve_original_domain_replay>`
- ```{autodoc2-docstring} archivebox.core.views._serve_original_domain_replay
:summary:
```
* - {py:obj}`live_progress_view <archivebox.core.views.live_progress_view>`
- ```{autodoc2-docstring} archivebox.core.views.live_progress_view
:summary:
@ -93,6 +149,14 @@
- ```{autodoc2-docstring} archivebox.core.views.find_config_source
:summary:
```
* - {py:obj}`find_plugin_for_config_key <archivebox.core.views.find_plugin_for_config_key>`
- ```{autodoc2-docstring} archivebox.core.views.find_plugin_for_config_key
:summary:
```
* - {py:obj}`get_config_definition_link <archivebox.core.views.get_config_definition_link>`
- ```{autodoc2-docstring} archivebox.core.views.get_config_definition_link
:summary:
```
* - {py:obj}`live_config_list_view <archivebox.core.views.live_config_list_view>`
- ```{autodoc2-docstring} archivebox.core.views.live_config_list_view
:summary:
@ -103,8 +167,58 @@
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`ABX_PLUGINS_GITHUB_BASE_URL <archivebox.core.views.ABX_PLUGINS_GITHUB_BASE_URL>`
- ```{autodoc2-docstring} archivebox.core.views.ABX_PLUGINS_GITHUB_BASE_URL
:summary:
```
* - {py:obj}`LIVE_PLUGIN_BASE_URL <archivebox.core.views.LIVE_PLUGIN_BASE_URL>`
- ```{autodoc2-docstring} archivebox.core.views.LIVE_PLUGIN_BASE_URL
:summary:
```
````
### API
````{py:data} ABX_PLUGINS_GITHUB_BASE_URL
:canonical: archivebox.core.views.ABX_PLUGINS_GITHUB_BASE_URL
:value: >
'https://github.com/ArchiveBox/abx-plugins/tree/main/abx_plugins/plugins/'
```{autodoc2-docstring} archivebox.core.views.ABX_PLUGINS_GITHUB_BASE_URL
```
````
````{py:data} LIVE_PLUGIN_BASE_URL
:canonical: archivebox.core.views.LIVE_PLUGIN_BASE_URL
:value: >
'/admin/environment/plugins/'
```{autodoc2-docstring} archivebox.core.views.LIVE_PLUGIN_BASE_URL
```
````
````{py:function} _live_progress_plugin_names() -> tuple[frozenset[str], frozenset[str]]
:canonical: archivebox.core.views._live_progress_plugin_names
```{autodoc2-docstring} archivebox.core.views._live_progress_plugin_names
```
````
````{py:function} _get_request_config(request: django.http.HttpRequest, *, resolve_plugins: bool = False)
:canonical: archivebox.core.views._get_request_config
```{autodoc2-docstring} archivebox.core.views._get_request_config
```
````
````{py:function} _files_index_target(snapshot: archivebox.core.models.Snapshot, archivefile: str | None) -> str
:canonical: archivebox.core.views._files_index_target
@ -112,6 +226,20 @@
```
````
````{py:function} _find_snapshot_by_ref(snapshot_ref: str) -> archivebox.core.models.Snapshot | None
:canonical: archivebox.core.views._find_snapshot_by_ref
```{autodoc2-docstring} archivebox.core.views._find_snapshot_by_ref
```
````
````{py:function} _admin_login_redirect_or_forbidden(request: django.http.HttpRequest)
:canonical: archivebox.core.views._admin_login_redirect_or_forbidden
```{autodoc2-docstring} archivebox.core.views._admin_login_redirect_or_forbidden
```
````
`````{py:class} HomepageView(**kwargs)
:canonical: archivebox.core.views.HomepageView
@ -141,6 +269,15 @@ Bases: {py:obj}`django.views.View`
````
````{py:method} find_snapshots_for_id(slug: str)
:canonical: archivebox.core.views.SnapshotView.find_snapshots_for_id
:staticmethod:
```{autodoc2-docstring} archivebox.core.views.SnapshotView.find_snapshots_for_id
```
````
````{py:method} render_live_index(request, snapshot)
:canonical: archivebox.core.views.SnapshotView.render_live_index
:staticmethod:
@ -191,20 +328,62 @@ Bases: {py:obj}`django.views.View`
```
````
````{py:function} _latest_response_match(domain: str, rel_path: str) -> tuple[pathlib.Path, pathlib.Path] | None
````{py:function} _coerce_sort_timestamp(value: str | float | None) -> float
:canonical: archivebox.core.views._coerce_sort_timestamp
```{autodoc2-docstring} archivebox.core.views._coerce_sort_timestamp
```
````
````{py:function} _snapshot_sort_key(match_path: str, cache: dict[str, float]) -> tuple[float, str]
:canonical: archivebox.core.views._snapshot_sort_key
```{autodoc2-docstring} archivebox.core.views._snapshot_sort_key
```
````
````{py:function} _snapshot_id_from_replay_path(path: pathlib.Path) -> str | None
:canonical: archivebox.core.views._snapshot_id_from_replay_path
```{autodoc2-docstring} archivebox.core.views._snapshot_id_from_replay_path
```
````
````{py:function} _replay_path_visible(request: django.http.HttpRequest, path: pathlib.Path) -> bool
:canonical: archivebox.core.views._replay_path_visible
```{autodoc2-docstring} archivebox.core.views._replay_path_visible
```
````
````{py:function} _latest_response_match(request: django.http.HttpRequest, domain: str, rel_path: str, *, data_root: pathlib.Path) -> tuple[pathlib.Path, pathlib.Path] | None
:canonical: archivebox.core.views._latest_response_match
```{autodoc2-docstring} archivebox.core.views._latest_response_match
```
````
````{py:function} _latest_responses_root(domain: str) -> pathlib.Path | None
````{py:function} _latest_responses_root(request: django.http.HttpRequest, domain: str, *, data_root: pathlib.Path) -> pathlib.Path | None
:canonical: archivebox.core.views._latest_responses_root
```{autodoc2-docstring} archivebox.core.views._latest_responses_root
```
````
````{py:function} _latest_snapshot_for_domain(request: django.http.HttpRequest, domain: str) -> archivebox.core.models.Snapshot | None
:canonical: archivebox.core.views._latest_snapshot_for_domain
```{autodoc2-docstring} archivebox.core.views._latest_snapshot_for_domain
```
````
````{py:function} _original_request_url(domain: str, path: str = '', query_string: str = '') -> str
:canonical: archivebox.core.views._original_request_url
```{autodoc2-docstring} archivebox.core.views._original_request_url
```
````
````{py:function} _serve_responses_path(request, responses_root: pathlib.Path, rel_path: str, show_indexes: bool)
:canonical: archivebox.core.views._serve_responses_path
@ -212,6 +391,20 @@ Bases: {py:obj}`django.views.View`
```
````
````{py:function} _serve_snapshot_replay(request: django.http.HttpRequest, snapshot: archivebox.core.models.Snapshot, path: str = '')
:canonical: archivebox.core.views._serve_snapshot_replay
```{autodoc2-docstring} archivebox.core.views._serve_snapshot_replay
```
````
````{py:function} _serve_original_domain_replay(request: django.http.HttpRequest, domain: str, path: str = '')
:canonical: archivebox.core.views._serve_original_domain_replay
```{autodoc2-docstring} archivebox.core.views._serve_original_domain_replay
```
````
`````{py:class} SnapshotHostView(**kwargs)
:canonical: archivebox.core.views.SnapshotHostView
@ -236,6 +429,30 @@ Bases: {py:obj}`django.views.View`
`````
`````{py:class} SnapshotReplayView(**kwargs)
:canonical: archivebox.core.views.SnapshotReplayView
Bases: {py:obj}`django.views.View`
```{autodoc2-docstring} archivebox.core.views.SnapshotReplayView
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.views.SnapshotReplayView.__init__
```
````{py:method} get(request, snapshot_id: str, path: str = '')
:canonical: archivebox.core.views.SnapshotReplayView.get
```{autodoc2-docstring} archivebox.core.views.SnapshotReplayView.get
```
````
`````
`````{py:class} OriginalDomainHostView(**kwargs)
:canonical: archivebox.core.views.OriginalDomainHostView
@ -260,6 +477,30 @@ Bases: {py:obj}`django.views.View`
`````
`````{py:class} OriginalDomainReplayView(**kwargs)
:canonical: archivebox.core.views.OriginalDomainReplayView
Bases: {py:obj}`django.views.View`
```{autodoc2-docstring} archivebox.core.views.OriginalDomainReplayView
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.views.OriginalDomainReplayView.__init__
```
````{py:method} get(request, domain: str, path: str = '')
:canonical: archivebox.core.views.OriginalDomainReplayView.get
```{autodoc2-docstring} archivebox.core.views.OriginalDomainReplayView.get
```
````
`````
`````{py:class} PublicIndexView(**kwargs)
:canonical: archivebox.core.views.PublicIndexView
@ -285,16 +526,6 @@ Bases: {py:obj}`django.views.generic.list.ListView`
````
````{py:attribute} paginate_by
:canonical: archivebox.core.views.PublicIndexView.paginate_by
:value: >
None
```{autodoc2-docstring} archivebox.core.views.PublicIndexView.paginate_by
```
````
````{py:attribute} ordering
:canonical: archivebox.core.views.PublicIndexView.ordering
:value: >
@ -305,6 +536,21 @@ Bases: {py:obj}`django.views.generic.list.ListView`
````
````{py:attribute} paginator_class
:canonical: archivebox.core.views.PublicIndexView.paginator_class
:value: >
None
```{autodoc2-docstring} archivebox.core.views.PublicIndexView.paginator_class
```
````
````{py:method} get_paginate_by(queryset)
:canonical: archivebox.core.views.PublicIndexView.get_paginate_by
````
````{py:method} get_context_data(**kwargs)
:canonical: archivebox.core.views.PublicIndexView.get_context_data
@ -358,6 +604,11 @@ Bases: {py:obj}`django.contrib.auth.mixins.UserPassesTestMixin`, {py:obj}`django
````
````{py:method} get_form_kwargs()
:canonical: archivebox.core.views.AddView.get_form_kwargs
````
````{py:method} test_func()
:canonical: archivebox.core.views.AddView.test_func
@ -431,7 +682,7 @@ Bases: {py:obj}`archivebox.core.views.AddView`
````
````{py:method} get(request, url: str)
````{py:method} get(request: django.http.HttpRequest, *args: object, **kwargs: object)
:canonical: archivebox.core.views.WebAddView.get
````
@ -504,6 +755,20 @@ Bases: {py:obj}`django.views.View`
```
````
````{py:function} find_plugin_for_config_key(key: str) -> str | None
:canonical: archivebox.core.views.find_plugin_for_config_key
```{autodoc2-docstring} archivebox.core.views.find_plugin_for_config_key
```
````
````{py:function} get_config_definition_link(key: str) -> tuple[str, str]
:canonical: archivebox.core.views.get_config_definition_link
```{autodoc2-docstring} archivebox.core.views.get_config_definition_link
```
````
````{py:function} live_config_list_view(request: django.http.HttpRequest, **kwargs) -> admin_data_views.typing.TableContext
:canonical: archivebox.core.views.live_config_list_view

View File

@ -19,6 +19,10 @@
- ```{autodoc2-docstring} archivebox.core.widgets.TagEditorWidget
:summary:
```
* - {py:obj}`URLFiltersWidget <archivebox.core.widgets.URLFiltersWidget>`
- ```{autodoc2-docstring} archivebox.core.widgets.URLFiltersWidget
:summary:
```
* - {py:obj}`InlineTagEditorWidget <archivebox.core.widgets.InlineTagEditorWidget>`
- ```{autodoc2-docstring} archivebox.core.widgets.InlineTagEditorWidget
:summary:
@ -43,8 +47,7 @@ Bases: {py:obj}`django.forms.Widget`
````{py:attribute} template_name
:canonical: archivebox.core.widgets.TagEditorWidget.template_name
:value: >
None
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.core.widgets.TagEditorWidget.template_name
```
@ -113,7 +116,42 @@ Bases: {py:obj}`django.forms.Widget`
``````
`````{py:class} InlineTagEditorWidget(attrs=None, snapshot_id=None)
`````{py:class} URLFiltersWidget(attrs=None, *, source_selector='textarea[name="url"]')
:canonical: archivebox.core.widgets.URLFiltersWidget
Bases: {py:obj}`django.forms.Widget`
```{autodoc2-docstring} archivebox.core.widgets.URLFiltersWidget
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.core.widgets.URLFiltersWidget.__init__
```
````{py:attribute} template_name
:canonical: archivebox.core.widgets.URLFiltersWidget.template_name
:value: <Multiline-String>
```{autodoc2-docstring} archivebox.core.widgets.URLFiltersWidget.template_name
```
````
````{py:method} render(name, value, attrs=None, renderer=None)
:canonical: archivebox.core.widgets.URLFiltersWidget.render
````
````{py:method} value_from_datadict(data, files, name)
:canonical: archivebox.core.widgets.URLFiltersWidget.value_from_datadict
````
`````
`````{py:class} InlineTagEditorWidget(attrs=None, snapshot_id=None, editable=True)
:canonical: archivebox.core.widgets.InlineTagEditorWidget
Bases: {py:obj}`archivebox.core.widgets.TagEditorWidget`

View File

@ -15,6 +15,14 @@
:class: autosummary longtable
:align: left
* - {py:obj}`MaxDepthListFilter <archivebox.crawls.admin.MaxDepthListFilter>`
- ```{autodoc2-docstring} archivebox.crawls.admin.MaxDepthListFilter
:summary:
```
* - {py:obj}`URLFiltersField <archivebox.crawls.admin.URLFiltersField>`
- ```{autodoc2-docstring} archivebox.crawls.admin.URLFiltersField
:summary:
```
* - {py:obj}`CrawlAdminForm <archivebox.crawls.admin.CrawlAdminForm>`
- ```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdminForm
:summary:
@ -43,14 +51,94 @@
### API
````{py:function} render_snapshots_list(snapshots_qs, limit=20)
`````{py:class} MaxDepthListFilter(request, params, model, model_admin)
:canonical: archivebox.crawls.admin.MaxDepthListFilter
Bases: {py:obj}`django.contrib.admin.SimpleListFilter`
```{autodoc2-docstring} archivebox.crawls.admin.MaxDepthListFilter
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.crawls.admin.MaxDepthListFilter.__init__
```
````{py:attribute} title
:canonical: archivebox.crawls.admin.MaxDepthListFilter.title
:value: >
'max depth'
```{autodoc2-docstring} archivebox.crawls.admin.MaxDepthListFilter.title
```
````
````{py:attribute} parameter_name
:canonical: archivebox.crawls.admin.MaxDepthListFilter.parameter_name
:value: >
'max_depth'
```{autodoc2-docstring} archivebox.crawls.admin.MaxDepthListFilter.parameter_name
```
````
````{py:method} lookups(request, model_admin)
:canonical: archivebox.crawls.admin.MaxDepthListFilter.lookups
````
````{py:method} queryset(request, queryset)
:canonical: archivebox.crawls.admin.MaxDepthListFilter.queryset
````
`````
````{py:function} render_snapshots_list(snapshots_qs, request=None, crawl=None, page_size=50, prefix='snapshots')
:canonical: archivebox.crawls.admin.render_snapshots_list
```{autodoc2-docstring} archivebox.crawls.admin.render_snapshots_list
```
````
``````{py:class} CrawlAdminForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=ErrorList, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)
`````{py:class} URLFiltersField(*, required=True, widget=None, label=None, initial=None, help_text='', error_messages=None, show_hidden_initial=False, validators=(), localize=False, disabled=False, label_suffix=None, template_name=None, bound_field_class=None)
:canonical: archivebox.crawls.admin.URLFiltersField
Bases: {py:obj}`django.forms.Field`
```{autodoc2-docstring} archivebox.crawls.admin.URLFiltersField
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.crawls.admin.URLFiltersField.__init__
```
````{py:attribute} widget
:canonical: archivebox.crawls.admin.URLFiltersField.widget
:value: >
'URLFiltersWidget(...)'
```{autodoc2-docstring} archivebox.crawls.admin.URLFiltersField.widget
```
````
````{py:method} to_python(value)
:canonical: archivebox.crawls.admin.URLFiltersField.to_python
```{autodoc2-docstring} archivebox.crawls.admin.URLFiltersField.to_python
```
````
`````
``````{py:class} CrawlAdminForm(*args, **kwargs)
:canonical: archivebox.crawls.admin.CrawlAdminForm
Bases: {py:obj}`django.forms.ModelForm`
@ -64,6 +152,26 @@ Bases: {py:obj}`django.forms.ModelForm`
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdminForm.__init__
```
````{py:attribute} tags_editor
:canonical: archivebox.crawls.admin.CrawlAdminForm.tags_editor
:value: >
'CharField(...)'
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdminForm.tags_editor
```
````
````{py:attribute} url_filters
:canonical: archivebox.crawls.admin.CrawlAdminForm.url_filters
:value: >
'URLFiltersField(...)'
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdminForm.url_filters
```
````
`````{py:class} Meta
:canonical: archivebox.crawls.admin.CrawlAdminForm.Meta
@ -102,9 +210,30 @@ Bases: {py:obj}`django.forms.ModelForm`
`````
````{py:method} clean_tags_editor()
:canonical: archivebox.crawls.admin.CrawlAdminForm.clean_tags_editor
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdminForm.clean_tags_editor
```
````
````{py:method} clean_url_filters()
:canonical: archivebox.crawls.admin.CrawlAdminForm.clean_url_filters
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdminForm.clean_url_filters
```
````
````{py:method} save(commit=True)
:canonical: archivebox.crawls.admin.CrawlAdminForm.save
````
``````
`````{py:class} CrawlAdmin(model, admin_site)
``````{py:class} CrawlAdmin(model, admin_site)
:canonical: archivebox.crawls.admin.CrawlAdmin
Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
@ -119,10 +248,50 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
````{py:attribute} change_form_template
:canonical: archivebox.crawls.admin.CrawlAdmin.change_form_template
:value: >
'admin/crawls/crawl/change_form.html'
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.change_form_template
```
````
````{py:attribute} list_select_related
:canonical: archivebox.crawls.admin.CrawlAdmin.list_select_related
:value: >
()
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.list_select_related
```
````
````{py:attribute} paginator
:canonical: archivebox.crawls.admin.CrawlAdmin.paginator
:value: >
None
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.paginator
```
````
````{py:attribute} show_full_result_count
:canonical: archivebox.crawls.admin.CrawlAdmin.show_full_result_count
:value: >
False
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.show_full_result_count
```
````
````{py:attribute} list_display
:canonical: archivebox.crawls.admin.CrawlAdmin.list_display
:value: >
('id', 'created_at', 'created_by', 'max_depth', 'label', 'notes', 'urls_preview', 'schedule_str', 's...
('short_id', 'permissions_badge', 'created_at', 'owner', 'depth', 'status_with_stop_reason', 'pause_...
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.list_display
```
@ -152,7 +321,7 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````{py:attribute} readonly_fields
:canonical: archivebox.crawls.admin.CrawlAdmin.readonly_fields
:value: >
('created_at', 'modified_at', 'snapshots')
('created_at', 'modified_at', 'stop_reason_display')
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.readonly_fields
```
@ -162,17 +331,27 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````{py:attribute} fieldsets
:canonical: archivebox.crawls.admin.CrawlAdmin.fieldsets
:value: >
(('URLs',), ('Info',), ('Settings',), ('Status',), ('Relations',), ('Timestamps',), ('Snapshots',))
(('URLs',), ('Overview',), ('Config',))
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.fieldsets
```
````
````{py:attribute} add_fieldsets
:canonical: archivebox.crawls.admin.CrawlAdmin.add_fieldsets
:value: >
(('URLs',), ('Overview',), ('Config',))
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.add_fieldsets
```
````
````{py:attribute} list_filter
:canonical: archivebox.crawls.admin.CrawlAdmin.list_filter
:value: >
('max_depth', 'schedule', 'created_by', 'status', 'retry_at')
()
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.list_filter
```
@ -192,7 +371,7 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````{py:attribute} list_per_page
:canonical: archivebox.crawls.admin.CrawlAdmin.list_per_page
:value: >
100
50
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.list_per_page
```
@ -202,7 +381,7 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````{py:attribute} actions
:canonical: archivebox.crawls.admin.CrawlAdmin.actions
:value: >
['delete_selected_batched']
['pause_selected_crawls', 'resume_selected_crawls', 'seal_selected_crawls', 'delete_selected_batched...
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.actions
```
@ -219,6 +398,55 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
`````{py:class} Media
:canonical: archivebox.crawls.admin.CrawlAdmin.Media
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.Media
```
````{py:attribute} css
:canonical: archivebox.crawls.admin.CrawlAdmin.Media.css
:value: >
None
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.Media.css
```
````
````{py:attribute} js
:canonical: archivebox.crawls.admin.CrawlAdmin.Media.js
:value: >
('admin/crawls/crawl_admin.js',)
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.Media.js
```
````
`````
````{py:method} changelist_view(request, extra_context=None)
:canonical: archivebox.crawls.admin.CrawlAdmin.changelist_view
````
````{py:method} should_annotate_snapshot_counts(request)
:canonical: archivebox.crawls.admin.CrawlAdmin.should_annotate_snapshot_counts
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.should_annotate_snapshot_counts
```
````
````{py:method} hydrate_visible_snapshot_counts(crawls)
:canonical: archivebox.crawls.admin.CrawlAdmin.hydrate_visible_snapshot_counts
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.hydrate_visible_snapshot_counts
```
````
````{py:method} get_queryset(request)
:canonical: archivebox.crawls.admin.CrawlAdmin.get_queryset
@ -227,6 +455,37 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
````{py:method} change_view(request, object_id, form_url='', extra_context=None)
:canonical: archivebox.crawls.admin.CrawlAdmin.change_view
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.change_view
```
````
````{py:method} add_view(request, form_url='', extra_context=None)
:canonical: archivebox.crawls.admin.CrawlAdmin.add_view
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.add_view
```
````
````{py:method} get_fieldsets(request, obj=None)
:canonical: archivebox.crawls.admin.CrawlAdmin.get_fieldsets
````
````{py:method} get_urls()
:canonical: archivebox.crawls.admin.CrawlAdmin.get_urls
````
````{py:method} get_actions(request)
:canonical: archivebox.crawls.admin.CrawlAdmin.get_actions
````
````{py:method} delete_selected_batched(request, queryset)
:canonical: archivebox.crawls.admin.CrawlAdmin.delete_selected_batched
@ -235,6 +494,46 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
````{py:method} pause_selected_crawls(request, queryset)
:canonical: archivebox.crawls.admin.CrawlAdmin.pause_selected_crawls
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.pause_selected_crawls
```
````
````{py:method} resume_selected_crawls(request, queryset)
:canonical: archivebox.crawls.admin.CrawlAdmin.resume_selected_crawls
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.resume_selected_crawls
```
````
````{py:method} seal_selected_crawls(request, queryset)
:canonical: archivebox.crawls.admin.CrawlAdmin.seal_selected_crawls
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.seal_selected_crawls
```
````
````{py:method} set_crawl_permissions(request, queryset)
:canonical: archivebox.crawls.admin.CrawlAdmin.set_crawl_permissions
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.set_crawl_permissions
```
````
````{py:method} update_crawl_permissions(queryset, permissions)
:canonical: archivebox.crawls.admin.CrawlAdmin.update_crawl_permissions
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.update_crawl_permissions
```
````
````{py:method} recrawl(request, obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.recrawl
@ -243,18 +542,122 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
````{py:method} num_snapshots(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.num_snapshots
````{py:method} stop_reason_display(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.stop_reason_display
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.num_snapshots
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.stop_reason_display
```
````
````{py:method} snapshots(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.snapshots
````{py:method} stop_reason_for_crawl(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.stop_reason_for_crawl
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.snapshots
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.stop_reason_for_crawl
```
````
````{py:method} limit_config_for_crawl(obj, output_dir)
:canonical: archivebox.crawls.admin.CrawlAdmin.limit_config_for_crawl
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.limit_config_for_crawl
```
````
````{py:method} status_with_stop_reason(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.status_with_stop_reason
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.status_with_stop_reason
```
````
````{py:method} short_id(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.short_id
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.short_id
```
````
````{py:method} owner(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.owner
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.owner
```
````
````{py:method} depth(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.depth
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.depth
```
````
````{py:method} permissions_badge(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.permissions_badge
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.permissions_badge
```
````
````{py:method} pause_resume_control(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.pause_resume_control
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.pause_resume_control
```
````
````{py:method} num_archived_snapshots(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.num_archived_snapshots
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.num_archived_snapshots
```
````
````{py:method} num_total_snapshots(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.num_total_snapshots
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.num_total_snapshots
```
````
````{py:method} snapshots_changelist(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.snapshots_changelist
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.snapshots_changelist
```
````
````{py:method} delete_snapshot_view(request: django.http.HttpRequest, object_id: str, snapshot_id: str)
:canonical: archivebox.crawls.admin.CrawlAdmin.delete_snapshot_view
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.delete_snapshot_view
```
````
````{py:method} exclude_domain_view(request: django.http.HttpRequest, object_id: str, snapshot_id: str)
:canonical: archivebox.crawls.admin.CrawlAdmin.exclude_domain_view
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.exclude_domain_view
```
````
````{py:method} set_permissions_view(request: django.http.HttpRequest, object_id: str)
:canonical: archivebox.crawls.admin.CrawlAdmin.set_permissions_view
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.set_permissions_view
```
````
@ -275,14 +678,6 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
````{py:method} health_display(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.health_display
```{autodoc2-docstring} archivebox.crawls.admin.CrawlAdmin.health_display
```
````
````{py:method} urls_editor(obj)
:canonical: archivebox.crawls.admin.CrawlAdmin.urls_editor
@ -291,7 +686,7 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
`````
``````
`````{py:class} CrawlScheduleAdmin(model, admin_site)
:canonical: archivebox.crawls.admin.CrawlScheduleAdmin
@ -388,6 +783,37 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} get_queryset(request)
:canonical: archivebox.crawls.admin.CrawlScheduleAdmin.get_queryset
````
````{py:method} change_view(request, object_id, form_url='', extra_context=None)
:canonical: archivebox.crawls.admin.CrawlScheduleAdmin.change_view
```{autodoc2-docstring} archivebox.crawls.admin.CrawlScheduleAdmin.change_view
```
````
````{py:method} add_view(request, form_url='', extra_context=None)
:canonical: archivebox.crawls.admin.CrawlScheduleAdmin.add_view
```{autodoc2-docstring} archivebox.crawls.admin.CrawlScheduleAdmin.add_view
```
````
````{py:method} get_fieldsets(request, obj=None)
:canonical: archivebox.crawls.admin.CrawlScheduleAdmin.get_fieldsets
````
````{py:method} save_model(request, obj, form, change)
:canonical: archivebox.crawls.admin.CrawlScheduleAdmin.save_model
````
````{py:method} template_str(obj)
:canonical: archivebox.crawls.admin.CrawlScheduleAdmin.template_str

View File

@ -13,7 +13,7 @@
:titlesonly:
:maxdepth: 1
archivebox.crawls.schedule_utils
archivebox.crawls.schedule_util
archivebox.crawls.models
archivebox.crawls.apps
archivebox.crawls.admin

View File

@ -20,9 +20,7 @@
* - {py:obj}`Crawl <archivebox.crawls.models.Crawl>`
-
* - {py:obj}`CrawlMachine <archivebox.crawls.models.CrawlMachine>`
- ```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine
:summary:
```
-
````
### API
@ -137,7 +135,7 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithUUID`, {py:obj}`archivebo
`````{py:class} Meta
:canonical: archivebox.crawls.models.CrawlSchedule.Meta
Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
Bases: {py:obj}`archivebox.base_models.models.ModelWithUUID.Meta`, {py:obj}`archivebox.base_models.models.ModelWithNotes.Meta`
````{py:attribute} app_label
:canonical: archivebox.crawls.models.CrawlSchedule.Meta.app_label
@ -227,7 +225,7 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
``````{py:class} Crawl(*args, **kwargs)
:canonical: archivebox.crawls.models.Crawl
Bases: {py:obj}`archivebox.base_models.models.ModelWithOutputDir`, {py:obj}`archivebox.base_models.models.ModelWithConfig`, {py:obj}`archivebox.base_models.models.ModelWithHealthStats`, {py:obj}`archivebox.workers.models.ModelWithStateMachine`
Bases: {py:obj}`archivebox.base_models.models.ModelWithDeleteAfter`, {py:obj}`archivebox.base_models.models.ModelWithOutputDir`, {py:obj}`archivebox.base_models.models.ModelWithConfig`, {py:obj}`archivebox.base_models.models.ModelWithHealthStats`, {py:obj}`archivebox.workers.models.ModelWithStateMachine`
````{py:attribute} id
:canonical: archivebox.crawls.models.Crawl.id
@ -289,6 +287,16 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithOutputDir`, {py:obj}`arch
````
````{py:attribute} permissions
:canonical: archivebox.crawls.models.Crawl.permissions
:value: >
'GeneratedField(...)'
```{autodoc2-docstring} archivebox.crawls.models.Crawl.permissions
```
````
````{py:attribute} max_depth
:canonical: archivebox.crawls.models.Crawl.max_depth
:value: >
@ -309,12 +317,12 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithOutputDir`, {py:obj}`arch
````
````{py:attribute} persona_id
:canonical: archivebox.crawls.models.Crawl.persona_id
````{py:attribute} persona
:canonical: archivebox.crawls.models.Crawl.persona
:value: >
'UUIDField(...)'
'ForeignKey(...)'
```{autodoc2-docstring} archivebox.crawls.models.Crawl.persona_id
```{autodoc2-docstring} archivebox.crawls.models.Crawl.persona
```
````
@ -419,6 +427,38 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithOutputDir`, {py:obj}`arch
````
````{py:attribute} delete_after_final_statuses
:canonical: archivebox.crawls.models.Crawl.delete_after_final_statuses
:value: >
()
```{autodoc2-docstring} archivebox.crawls.models.Crawl.delete_after_final_statuses
```
````
````{py:attribute} schedule_id
:canonical: archivebox.crawls.models.Crawl.schedule_id
:type: uuid.UUID | None
:value: >
None
```{autodoc2-docstring} archivebox.crawls.models.Crawl.schedule_id
```
````
````{py:attribute} sm
:canonical: archivebox.crawls.models.Crawl.sm
:type: CrawlMachine
:value: >
None
```{autodoc2-docstring} archivebox.crawls.models.Crawl.sm
```
````
````{py:attribute} snapshot_set
:canonical: archivebox.crawls.models.Crawl.snapshot_set
:type: django.db.models.Manager[archivebox.core.models.Snapshot]
@ -433,7 +473,7 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithOutputDir`, {py:obj}`arch
`````{py:class} Meta
:canonical: archivebox.crawls.models.Crawl.Meta
Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
Bases: {py:obj}`archivebox.base_models.models.ModelWithDeleteAfter.Meta`, {py:obj}`archivebox.base_models.models.ModelWithOutputDir.Meta`, {py:obj}`archivebox.base_models.models.ModelWithConfig.Meta`, {py:obj}`archivebox.base_models.models.ModelWithHealthStats.Meta`, {py:obj}`archivebox.workers.models.ModelWithStateMachine.Meta`
````{py:attribute} app_label
:canonical: archivebox.crawls.models.Crawl.Meta.app_label
@ -465,6 +505,16 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:attribute} indexes
:canonical: archivebox.crawls.models.Crawl.Meta.indexes
:value: >
None
```{autodoc2-docstring} archivebox.crawls.models.Crawl.Meta.indexes
```
````
`````
````{py:method} __str__()
@ -472,6 +522,63 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:method} get_delete_after_config_value()
:canonical: archivebox.crawls.models.Crawl.get_delete_after_config_value
```{autodoc2-docstring} archivebox.crawls.models.Crawl.get_delete_after_config_value
```
````
````{py:method} pause(*, save: bool = True) -> bool
:canonical: archivebox.crawls.models.Crawl.pause
```{autodoc2-docstring} archivebox.crawls.models.Crawl.pause
```
````
````{py:method} resume(*, when=None, save: bool = True) -> bool
:canonical: archivebox.crawls.models.Crawl.resume
```{autodoc2-docstring} archivebox.crawls.models.Crawl.resume
```
````
````{py:method} cancel() -> None
:canonical: archivebox.crawls.models.Crawl.cancel
```{autodoc2-docstring} archivebox.crawls.models.Crawl.cancel
```
````
````{py:method} schedule_child_snapshots_for_sealing() -> int
:canonical: archivebox.crawls.models.Crawl.schedule_child_snapshots_for_sealing
```{autodoc2-docstring} archivebox.crawls.models.Crawl.schedule_child_snapshots_for_sealing
```
````
````{py:method} schedule_child_snapshots_for_pause() -> int
:canonical: archivebox.crawls.models.Crawl.schedule_child_snapshots_for_pause
```{autodoc2-docstring} archivebox.crawls.models.Crawl.schedule_child_snapshots_for_pause
```
````
````{py:method} missing_delete_at_candidates()
:canonical: archivebox.crawls.models.Crawl.missing_delete_at_candidates
:classmethod:
```{autodoc2-docstring} archivebox.crawls.models.Crawl.missing_delete_at_candidates
```
````
````{py:method} save(*args, **kwargs)
:canonical: archivebox.crawls.models.Crawl.save
@ -486,6 +593,31 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:method} parse_tag_names(tags: collections.abc.Iterable[str] | str, *, pattern: str = ',') -> list[str]
:canonical: archivebox.crawls.models.Crawl.parse_tag_names
:staticmethod:
```{autodoc2-docstring} archivebox.crawls.models.Crawl.parse_tag_names
```
````
````{py:method} current_tag_names() -> list[str]
:canonical: archivebox.crawls.models.Crawl.current_tag_names
```{autodoc2-docstring} archivebox.crawls.models.Crawl.current_tag_names
```
````
````{py:method} apply_snapshot_tag_diff(*, added_tag_names: collections.abc.Iterable[str], removed_tag_names: collections.abc.Iterable[str]) -> None
:canonical: archivebox.crawls.models.Crawl.apply_snapshot_tag_diff
```{autodoc2-docstring} archivebox.crawls.models.Crawl.apply_snapshot_tag_diff
```
````
````{py:method} to_json() -> dict
:canonical: archivebox.crawls.models.Crawl.to_json
@ -494,7 +626,7 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:method} from_json(record: dict, overrides: dict = None)
````{py:method} from_json(record: dict, overrides: dict | None = None)
:canonical: archivebox.crawls.models.Crawl.from_json
:staticmethod:
@ -503,6 +635,14 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:method} output_dir_for_config(runtime_config: collections.abc.Mapping[str, typing.Any] | typing.Any) -> pathlib.Path
:canonical: archivebox.crawls.models.Crawl.output_dir_for_config
```{autodoc2-docstring} archivebox.crawls.models.Crawl.output_dir_for_config
```
````
````{py:property} output_dir
:canonical: archivebox.crawls.models.Crawl.output_dir
:type: pathlib.Path
@ -520,6 +660,153 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:method} normalize_domain(value: str) -> str
:canonical: archivebox.crawls.models.Crawl.normalize_domain
:staticmethod:
```{autodoc2-docstring} archivebox.crawls.models.Crawl.normalize_domain
```
````
````{py:method} split_filter_patterns(value) -> list[str]
:canonical: archivebox.crawls.models.Crawl.split_filter_patterns
:staticmethod:
```{autodoc2-docstring} archivebox.crawls.models.Crawl.split_filter_patterns
```
````
````{py:method} _pattern_matches_url(url: str, pattern: str) -> bool
:canonical: archivebox.crawls.models.Crawl._pattern_matches_url
:classmethod:
```{autodoc2-docstring} archivebox.crawls.models.Crawl._pattern_matches_url
```
````
````{py:method} get_url_allowlist(*, use_effective_config: bool = False, snapshot=None) -> list[str]
:canonical: archivebox.crawls.models.Crawl.get_url_allowlist
```{autodoc2-docstring} archivebox.crawls.models.Crawl.get_url_allowlist
```
````
````{py:method} get_url_denylist(*, use_effective_config: bool = False, snapshot=None) -> list[str]
:canonical: archivebox.crawls.models.Crawl.get_url_denylist
```{autodoc2-docstring} archivebox.crawls.models.Crawl.get_url_denylist
```
````
````{py:method} url_passes_filters(url: str, *, snapshot=None, use_effective_config: bool = True) -> bool
:canonical: archivebox.crawls.models.Crawl.url_passes_filters
```{autodoc2-docstring} archivebox.crawls.models.Crawl.url_passes_filters
```
````
````{py:method} url_passes_compiled_filters(url: str, *, allowlist: list[str], denylist: list[str]) -> bool
:canonical: archivebox.crawls.models.Crawl.url_passes_compiled_filters
```{autodoc2-docstring} archivebox.crawls.models.Crawl.url_passes_compiled_filters
```
````
````{py:method} set_url_filters(allowlist, denylist) -> None
:canonical: archivebox.crawls.models.Crawl.set_url_filters
```{autodoc2-docstring} archivebox.crawls.models.Crawl.set_url_filters
```
````
````{py:method} apply_crawl_config_filters() -> dict[str, int]
:canonical: archivebox.crawls.models.Crawl.apply_crawl_config_filters
```{autodoc2-docstring} archivebox.crawls.models.Crawl.apply_crawl_config_filters
```
````
````{py:method} _iter_url_lines() -> list[tuple[str, str]]
:canonical: archivebox.crawls.models.Crawl._iter_url_lines
```{autodoc2-docstring} archivebox.crawls.models.Crawl._iter_url_lines
```
````
````{py:method} count_urls_for_limit() -> int
:canonical: archivebox.crawls.models.Crawl.count_urls_for_limit
```{autodoc2-docstring} archivebox.crawls.models.Crawl.count_urls_for_limit
```
````
````{py:method} remaining_url_capacity() -> int | None
:canonical: archivebox.crawls.models.Crawl.remaining_url_capacity
```{autodoc2-docstring} archivebox.crawls.models.Crawl.remaining_url_capacity
```
````
````{py:method} has_remaining_url_capacity() -> bool
:canonical: archivebox.crawls.models.Crawl.has_remaining_url_capacity
```{autodoc2-docstring} archivebox.crawls.models.Crawl.has_remaining_url_capacity
```
````
````{py:method} remaining_snapshot_capacity() -> int | None
:canonical: archivebox.crawls.models.Crawl.remaining_snapshot_capacity
```{autodoc2-docstring} archivebox.crawls.models.Crawl.remaining_snapshot_capacity
```
````
````{py:method} has_remaining_snapshot_capacity() -> bool
:canonical: archivebox.crawls.models.Crawl.has_remaining_snapshot_capacity
```{autodoc2-docstring} archivebox.crawls.models.Crawl.has_remaining_snapshot_capacity
```
````
````{py:method} prune_urls(predicate) -> list[str]
:canonical: archivebox.crawls.models.Crawl.prune_urls
```{autodoc2-docstring} archivebox.crawls.models.Crawl.prune_urls
```
````
````{py:method} prune_url(url: str) -> int
:canonical: archivebox.crawls.models.Crawl.prune_url
```{autodoc2-docstring} archivebox.crawls.models.Crawl.prune_url
```
````
````{py:method} exclude_domain(domain: str) -> dict[str, int | str | bool]
:canonical: archivebox.crawls.models.Crawl.exclude_domain
```{autodoc2-docstring} archivebox.crawls.models.Crawl.exclude_domain
```
````
````{py:method} get_system_task() -> str | None
:canonical: archivebox.crawls.models.Crawl.get_system_task
@ -528,6 +815,22 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:method} resolve_persona()
:canonical: archivebox.crawls.models.Crawl.resolve_persona
```{autodoc2-docstring} archivebox.crawls.models.Crawl.resolve_persona
```
````
````{py:method} limit_stop_reason() -> str
:canonical: archivebox.crawls.models.Crawl.limit_stop_reason
```{autodoc2-docstring} archivebox.crawls.models.Crawl.limit_stop_reason
```
````
````{py:method} add_url(entry: dict) -> bool
:canonical: archivebox.crawls.models.Crawl.add_url
@ -544,6 +847,30 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
````
````{py:method} create_discovered_snapshot(parent_snapshot, *, url: str, depth: int, title: str = '', tags: str = '', created_by_id: int | None = None)
:canonical: archivebox.crawls.models.Crawl.create_discovered_snapshot
```{autodoc2-docstring} archivebox.crawls.models.Crawl.create_discovered_snapshot
```
````
````{py:method} create_discovered_snapshots(parent_snapshot, records: collections.abc.Iterable[collections.abc.Mapping[str, typing.Any]], *, depth: int, created_by_id: int | None = None) -> list[archivebox.core.models.Snapshot]
:canonical: archivebox.crawls.models.Crawl.create_discovered_snapshots
```{autodoc2-docstring} archivebox.crawls.models.Crawl.create_discovered_snapshots
```
````
````{py:method} install_declared_binaries(binary_names: set[str], machine=None) -> None
:canonical: archivebox.crawls.models.Crawl.install_declared_binaries
```{autodoc2-docstring} archivebox.crawls.models.Crawl.install_declared_binaries
```
````
````{py:method} run() -> Snapshot | None
:canonical: archivebox.crawls.models.Crawl.run
@ -575,14 +902,16 @@ Bases: {py:obj}`django_stubs_ext.db.models.TypedModelMeta`
Bases: {py:obj}`archivebox.workers.models.BaseStateMachine`
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine
````{py:attribute} crawl
:canonical: archivebox.crawls.models.CrawlMachine.crawl
:type: archivebox.crawls.models.Crawl
:value: >
None
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.crawl
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.__init__
```
````
````{py:attribute} model_attr_name
:canonical: archivebox.crawls.models.CrawlMachine.model_attr_name
@ -614,6 +943,16 @@ Bases: {py:obj}`archivebox.workers.models.BaseStateMachine`
````
````{py:attribute} paused
:canonical: archivebox.crawls.models.CrawlMachine.paused
:value: >
'State(...)'
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.paused
```
````
````{py:attribute} sealed
:canonical: archivebox.crawls.models.CrawlMachine.sealed
:value: >
@ -637,13 +976,33 @@ Bases: {py:obj}`archivebox.workers.models.BaseStateMachine`
````{py:attribute} seal
:canonical: archivebox.crawls.models.CrawlMachine.seal
:value: >
'to(...)'
None
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.seal
```
````
````{py:attribute} pause_requested
:canonical: archivebox.crawls.models.CrawlMachine.pause_requested
:value: >
None
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.pause_requested
```
````
````{py:attribute} resume_requested
:canonical: archivebox.crawls.models.CrawlMachine.resume_requested
:value: >
'to(...)'
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.resume_requested
```
````
````{py:method} can_start() -> bool
:canonical: archivebox.crawls.models.CrawlMachine.can_start
@ -660,6 +1019,22 @@ Bases: {py:obj}`archivebox.workers.models.BaseStateMachine`
````
````{py:method} has_finished_snapshots() -> bool
:canonical: archivebox.crawls.models.CrawlMachine.has_finished_snapshots
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.has_finished_snapshots
```
````
````{py:method} enter_queued()
:canonical: archivebox.crawls.models.CrawlMachine.enter_queued
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.enter_queued
```
````
````{py:method} enter_started()
:canonical: archivebox.crawls.models.CrawlMachine.enter_started
@ -668,6 +1043,14 @@ Bases: {py:obj}`archivebox.workers.models.BaseStateMachine`
````
````{py:method} enter_paused()
:canonical: archivebox.crawls.models.CrawlMachine.enter_paused
```{autodoc2-docstring} archivebox.crawls.models.CrawlMachine.enter_paused
```
````
````{py:method} enter_sealed()
:canonical: archivebox.crawls.models.CrawlMachine.enter_sealed

View File

@ -0,0 +1,76 @@
# {py:mod}`archivebox.crawls.schedule_util`
```{py:module} archivebox.crawls.schedule_util
```
```{autodoc2-docstring} archivebox.crawls.schedule_util
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`normalize_schedule <archivebox.crawls.schedule_util.normalize_schedule>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_util.normalize_schedule
:summary:
```
* - {py:obj}`validate_schedule <archivebox.crawls.schedule_util.validate_schedule>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_util.validate_schedule
:summary:
```
* - {py:obj}`next_run_for_schedule <archivebox.crawls.schedule_util.next_run_for_schedule>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_util.next_run_for_schedule
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`SCHEDULE_ALIASES <archivebox.crawls.schedule_util.SCHEDULE_ALIASES>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_util.SCHEDULE_ALIASES
:summary:
```
````
### API
````{py:data} SCHEDULE_ALIASES
:canonical: archivebox.crawls.schedule_util.SCHEDULE_ALIASES
:type: dict[str, str]
:value: >
None
```{autodoc2-docstring} archivebox.crawls.schedule_util.SCHEDULE_ALIASES
```
````
````{py:function} normalize_schedule(schedule: str) -> str
:canonical: archivebox.crawls.schedule_util.normalize_schedule
```{autodoc2-docstring} archivebox.crawls.schedule_util.normalize_schedule
```
````
````{py:function} validate_schedule(schedule: str) -> str
:canonical: archivebox.crawls.schedule_util.validate_schedule
```{autodoc2-docstring} archivebox.crawls.schedule_util.validate_schedule
```
````
````{py:function} next_run_for_schedule(schedule: str, after: datetime.datetime) -> datetime.datetime
:canonical: archivebox.crawls.schedule_util.next_run_for_schedule
```{autodoc2-docstring} archivebox.crawls.schedule_util.next_run_for_schedule
```
````

View File

@ -1,76 +0,0 @@
# {py:mod}`archivebox.crawls.schedule_utils`
```{py:module} archivebox.crawls.schedule_utils
```
```{autodoc2-docstring} archivebox.crawls.schedule_utils
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`normalize_schedule <archivebox.crawls.schedule_utils.normalize_schedule>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_utils.normalize_schedule
:summary:
```
* - {py:obj}`validate_schedule <archivebox.crawls.schedule_utils.validate_schedule>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_utils.validate_schedule
:summary:
```
* - {py:obj}`next_run_for_schedule <archivebox.crawls.schedule_utils.next_run_for_schedule>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_utils.next_run_for_schedule
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`SCHEDULE_ALIASES <archivebox.crawls.schedule_utils.SCHEDULE_ALIASES>`
- ```{autodoc2-docstring} archivebox.crawls.schedule_utils.SCHEDULE_ALIASES
:summary:
```
````
### API
````{py:data} SCHEDULE_ALIASES
:canonical: archivebox.crawls.schedule_utils.SCHEDULE_ALIASES
:type: dict[str, str]
:value: >
None
```{autodoc2-docstring} archivebox.crawls.schedule_utils.SCHEDULE_ALIASES
```
````
````{py:function} normalize_schedule(schedule: str) -> str
:canonical: archivebox.crawls.schedule_utils.normalize_schedule
```{autodoc2-docstring} archivebox.crawls.schedule_utils.normalize_schedule
```
````
````{py:function} validate_schedule(schedule: str) -> str
:canonical: archivebox.crawls.schedule_utils.validate_schedule
```{autodoc2-docstring} archivebox.crawls.schedule_utils.validate_schedule
```
````
````{py:function} next_run_for_schedule(schedule: str, after: datetime.datetime) -> datetime.datetime
:canonical: archivebox.crawls.schedule_utils.next_run_for_schedule
```{autodoc2-docstring} archivebox.crawls.schedule_utils.next_run_for_schedule
```
````

View File

@ -15,10 +15,12 @@
:class: autosummary longtable
:align: left
* - {py:obj}`HookResult <archivebox.hooks.HookResult>`
- ```{autodoc2-docstring} archivebox.hooks.HookResult
:summary:
```
* - {py:obj}`ConfigLookup <archivebox.hooks.ConfigLookup>`
-
* - {py:obj}`PluginSpecialConfig <archivebox.hooks.PluginSpecialConfig>`
-
* - {py:obj}`ConfigDump <archivebox.hooks.ConfigDump>`
-
````
### Functions
@ -27,6 +29,14 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_has_config_dump <archivebox.hooks._has_config_dump>`
- ```{autodoc2-docstring} archivebox.hooks._has_config_dump
:summary:
```
* - {py:obj}`_config_to_overrides <archivebox.hooks._config_to_overrides>`
- ```{autodoc2-docstring} archivebox.hooks._config_to_overrides
:summary:
```
* - {py:obj}`is_background_hook <archivebox.hooks.is_background_hook>`
- ```{autodoc2-docstring} archivebox.hooks.is_background_hook
:summary:
@ -39,6 +49,14 @@
- ```{autodoc2-docstring} archivebox.hooks.iter_plugin_dirs
:summary:
```
* - {py:obj}`normalize_hook_event_name <archivebox.hooks.normalize_hook_event_name>`
- ```{autodoc2-docstring} archivebox.hooks.normalize_hook_event_name
:summary:
```
* - {py:obj}`_model_output_dir_from_child_path <archivebox.hooks._model_output_dir_from_child_path>`
- ```{autodoc2-docstring} archivebox.hooks._model_output_dir_from_child_path
:summary:
```
* - {py:obj}`discover_hooks <archivebox.hooks.discover_hooks>`
- ```{autodoc2-docstring} archivebox.hooks.discover_hooks
:summary:
@ -79,10 +97,6 @@
- ```{autodoc2-docstring} archivebox.hooks.discover_plugin_configs
:summary:
```
* - {py:obj}`get_config_defaults_from_plugins <archivebox.hooks.get_config_defaults_from_plugins>`
- ```{autodoc2-docstring} archivebox.hooks.get_config_defaults_from_plugins
:summary:
```
* - {py:obj}`get_plugin_special_config <archivebox.hooks.get_plugin_special_config>`
- ```{autodoc2-docstring} archivebox.hooks.get_plugin_special_config
:summary:
@ -123,6 +137,98 @@
### API
`````{py:class} ConfigLookup
:canonical: archivebox.hooks.ConfigLookup
Bases: {py:obj}`typing.Protocol`
````{py:method} get(key: str, default: typing.Any = None) -> typing.Any
:canonical: archivebox.hooks.ConfigLookup.get
```{autodoc2-docstring} archivebox.hooks.ConfigLookup.get
```
````
````{py:method} items() -> collections.abc.Iterable[tuple[str, typing.Any]]
:canonical: archivebox.hooks.ConfigLookup.items
```{autodoc2-docstring} archivebox.hooks.ConfigLookup.items
```
````
`````
`````{py:class} PluginSpecialConfig()
:canonical: archivebox.hooks.PluginSpecialConfig
Bases: {py:obj}`typing.TypedDict`
````{py:attribute} enabled
:canonical: archivebox.hooks.PluginSpecialConfig.enabled
:type: bool
:value: >
None
```{autodoc2-docstring} archivebox.hooks.PluginSpecialConfig.enabled
```
````
````{py:attribute} timeout
:canonical: archivebox.hooks.PluginSpecialConfig.timeout
:type: int
:value: >
None
```{autodoc2-docstring} archivebox.hooks.PluginSpecialConfig.timeout
```
````
````{py:attribute} binary
:canonical: archivebox.hooks.PluginSpecialConfig.binary
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.hooks.PluginSpecialConfig.binary
```
````
`````
`````{py:class} ConfigDump
:canonical: archivebox.hooks.ConfigDump
Bases: {py:obj}`typing.Protocol`
````{py:method} as_dict() -> dict[str, typing.Any]
:canonical: archivebox.hooks.ConfigDump.as_dict
```{autodoc2-docstring} archivebox.hooks.ConfigDump.as_dict
```
````
`````
````{py:function} _has_config_dump(config: object) -> typing.TypeGuard[archivebox.hooks.ConfigDump]
:canonical: archivebox.hooks._has_config_dump
```{autodoc2-docstring} archivebox.hooks._has_config_dump
```
````
````{py:function} _config_to_overrides(config: archivebox.hooks.ConfigLookup | collections.abc.Mapping[str, typing.Any] | None) -> dict[str, typing.Any]
:canonical: archivebox.hooks._config_to_overrides
```{autodoc2-docstring} archivebox.hooks._config_to_overrides
```
````
````{py:data} BUILTIN_PLUGINS_DIR
:canonical: archivebox.hooks.BUILTIN_PLUGINS_DIR
:value: >
@ -157,168 +263,56 @@
```
````
````{py:function} iter_plugin_dirs() -> typing.List[pathlib.Path]
````{py:function} iter_plugin_dirs() -> list[pathlib.Path]
:canonical: archivebox.hooks.iter_plugin_dirs
```{autodoc2-docstring} archivebox.hooks.iter_plugin_dirs
```
````
`````{py:class} HookResult()
:canonical: archivebox.hooks.HookResult
````{py:function} normalize_hook_event_name(event_name: str) -> str | None
:canonical: archivebox.hooks.normalize_hook_event_name
Bases: {py:obj}`typing.TypedDict`
```{autodoc2-docstring} archivebox.hooks.HookResult
```{autodoc2-docstring} archivebox.hooks.normalize_hook_event_name
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.hooks.HookResult.__init__
```
````{py:attribute} returncode
:canonical: archivebox.hooks.HookResult.returncode
:type: int
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.returncode
```
````
````{py:attribute} stdout
:canonical: archivebox.hooks.HookResult.stdout
:type: str
:value: >
None
````{py:function} _model_output_dir_from_child_path(path: pathlib.Path, marker: str) -> pathlib.Path | None
:canonical: archivebox.hooks._model_output_dir_from_child_path
```{autodoc2-docstring} archivebox.hooks.HookResult.stdout
```{autodoc2-docstring} archivebox.hooks._model_output_dir_from_child_path
```
````
````{py:attribute} stderr
:canonical: archivebox.hooks.HookResult.stderr
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.stderr
```
````
````{py:attribute} output_json
:canonical: archivebox.hooks.HookResult.output_json
:type: typing.Optional[typing.Dict[str, typing.Any]]
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.output_json
```
````
````{py:attribute} output_files
:canonical: archivebox.hooks.HookResult.output_files
:type: typing.List[str]
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.output_files
```
````
````{py:attribute} duration_ms
:canonical: archivebox.hooks.HookResult.duration_ms
:type: int
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.duration_ms
```
````
````{py:attribute} hook
:canonical: archivebox.hooks.HookResult.hook
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.hook
```
````
````{py:attribute} plugin
:canonical: archivebox.hooks.HookResult.plugin
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.plugin
```
````
````{py:attribute} hook_name
:canonical: archivebox.hooks.HookResult.hook_name
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.hook_name
```
````
````{py:attribute} records
:canonical: archivebox.hooks.HookResult.records
:type: typing.List[typing.Dict[str, typing.Any]]
:value: >
None
```{autodoc2-docstring} archivebox.hooks.HookResult.records
```
````
`````
````{py:function} discover_hooks(event_name: str, filter_disabled: bool = True, config: typing.Optional[typing.Dict[str, typing.Any]] = None) -> typing.List[pathlib.Path]
````{py:function} discover_hooks(event_name: str, filter_disabled: bool = True, config: archivebox.hooks.ConfigLookup | None = None, **config_kwargs: typing.Any) -> list[pathlib.Path]
:canonical: archivebox.hooks.discover_hooks
```{autodoc2-docstring} archivebox.hooks.discover_hooks
```
````
````{py:function} run_hook(script: pathlib.Path, output_dir: pathlib.Path, config: typing.Dict[str, typing.Any], timeout: typing.Optional[int] = None, parent: typing.Optional[archivebox.machine.models.Process] = None, **kwargs: typing.Any) -> archivebox.machine.models.Process
````{py:function} run_hook(script: pathlib.Path, output_dir: pathlib.Path, config: archivebox.hooks.ConfigLookup | collections.abc.Mapping[str, typing.Any] | None = None, timeout: int | None = None, parent: typing.Optional[archivebox.machine.models.Process] = None, **kwargs: typing.Any) -> archivebox.machine.models.Process
:canonical: archivebox.hooks.run_hook
```{autodoc2-docstring} archivebox.hooks.run_hook
```
````
````{py:function} extract_records_from_process(process: archivebox.machine.models.Process) -> typing.List[typing.Dict[str, typing.Any]]
````{py:function} extract_records_from_process(process: archivebox.machine.models.Process) -> list[dict[str, typing.Any]]
:canonical: archivebox.hooks.extract_records_from_process
```{autodoc2-docstring} archivebox.hooks.extract_records_from_process
```
````
````{py:function} collect_urls_from_plugins(snapshot_dir: pathlib.Path) -> typing.List[typing.Dict[str, typing.Any]]
````{py:function} collect_urls_from_plugins(snapshot_dir: pathlib.Path) -> list[dict[str, typing.Any]]
:canonical: archivebox.hooks.collect_urls_from_plugins
```{autodoc2-docstring} archivebox.hooks.collect_urls_from_plugins
```
````
````{py:function} get_plugins() -> typing.List[str]
````{py:function} get_plugins() -> list[str]
:canonical: archivebox.hooks.get_plugins
```{autodoc2-docstring} archivebox.hooks.get_plugins
@ -332,42 +326,35 @@ Bases: {py:obj}`typing.TypedDict`
```
````
````{py:function} get_enabled_plugins(config: typing.Optional[typing.Dict[str, typing.Any]] = None) -> typing.List[str]
````{py:function} get_enabled_plugins(config: archivebox.hooks.ConfigLookup | None = None, **config_kwargs: typing.Any) -> list[str]
:canonical: archivebox.hooks.get_enabled_plugins
```{autodoc2-docstring} archivebox.hooks.get_enabled_plugins
```
````
````{py:function} discover_plugins_that_provide_interface(module_name: str, required_attrs: typing.List[str], plugin_prefix: typing.Optional[str] = None) -> typing.Dict[str, typing.Any]
````{py:function} discover_plugins_that_provide_interface(module_name: str, required_attrs: list[str], plugin_prefix: str | None = None) -> dict[str, typing.Any]
:canonical: archivebox.hooks.discover_plugins_that_provide_interface
```{autodoc2-docstring} archivebox.hooks.discover_plugins_that_provide_interface
```
````
````{py:function} get_search_backends() -> typing.Dict[str, typing.Any]
````{py:function} get_search_backends() -> dict[str, typing.Any]
:canonical: archivebox.hooks.get_search_backends
```{autodoc2-docstring} archivebox.hooks.get_search_backends
```
````
````{py:function} discover_plugin_configs() -> typing.Dict[str, typing.Dict[str, typing.Any]]
````{py:function} discover_plugin_configs() -> dict[str, dict[str, typing.Any]]
:canonical: archivebox.hooks.discover_plugin_configs
```{autodoc2-docstring} archivebox.hooks.discover_plugin_configs
```
````
````{py:function} get_config_defaults_from_plugins() -> typing.Dict[str, typing.Any]
:canonical: archivebox.hooks.get_config_defaults_from_plugins
```{autodoc2-docstring} archivebox.hooks.get_config_defaults_from_plugins
```
````
````{py:function} get_plugin_special_config(plugin_name: str, config: typing.Dict[str, typing.Any]) -> typing.Dict[str, typing.Any]
````{py:function} get_plugin_special_config(plugin_name: str, config: archivebox.hooks.ConfigLookup, _visited: set[str] | None = None) -> archivebox.hooks.PluginSpecialConfig
:canonical: archivebox.hooks.get_plugin_special_config
```{autodoc2-docstring} archivebox.hooks.get_plugin_special_config
@ -384,7 +371,7 @@ Bases: {py:obj}`typing.TypedDict`
````
````{py:function} get_plugin_template(plugin: str, template_name: str, fallback: bool = True) -> typing.Optional[str]
````{py:function} get_plugin_template(plugin: str, template_name: str, fallback: bool = True) -> str | None
:canonical: archivebox.hooks.get_plugin_template
```{autodoc2-docstring} archivebox.hooks.get_plugin_template
@ -398,7 +385,7 @@ Bases: {py:obj}`typing.TypedDict`
```
````
````{py:function} process_hook_records(records: typing.List[typing.Dict[str, typing.Any]], overrides: typing.Dict[str, typing.Any] = None) -> typing.Dict[str, int]
````{py:function} process_hook_records(records: list[dict[str, typing.Any]], overrides: dict[str, typing.Any] | None = None) -> dict[str, int]
:canonical: archivebox.hooks.process_hook_records
```{autodoc2-docstring} archivebox.hooks.process_hook_records

View File

@ -1,17 +0,0 @@
# {py:mod}`archivebox.ideas`
```{py:module} archivebox.ideas
```
```{autodoc2-docstring} archivebox.ideas
:allowtitles:
```
## Submodules
```{toctree}
:titlesonly:
:maxdepth: 1
archivebox.ideas.process_plugin
```

View File

@ -1,633 +0,0 @@
# {py:mod}`archivebox.ideas.process_plugin`
```{py:module} archivebox.ideas.process_plugin
```
```{autodoc2-docstring} archivebox.ideas.process_plugin
:allowtitles:
```
## Module Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`ProcessRecord <archivebox.ideas.process_plugin.ProcessRecord>`
-
* - {py:obj}`ProcessLaunch <archivebox.ideas.process_plugin.ProcessLaunch>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch
:summary:
```
* - {py:obj}`ProcessStarted <archivebox.ideas.process_plugin.ProcessStarted>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessStarted
:summary:
```
* - {py:obj}`ProcessExited <archivebox.ideas.process_plugin.ProcessExited>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessExited
:summary:
```
* - {py:obj}`ProcessKill <archivebox.ideas.process_plugin.ProcessKill>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessKill
:summary:
```
* - {py:obj}`_RunningProcess <archivebox.ideas.process_plugin._RunningProcess>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess
:summary:
```
* - {py:obj}`ProcessPlugin <archivebox.ideas.process_plugin.ProcessPlugin>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin
:summary:
```
````
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_utcnow <archivebox.ideas.process_plugin._utcnow>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin._utcnow
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`JsonEventAdapter <archivebox.ideas.process_plugin.JsonEventAdapter>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin.JsonEventAdapter
:summary:
```
* - {py:obj}`__all__ <archivebox.ideas.process_plugin.__all__>`
- ```{autodoc2-docstring} archivebox.ideas.process_plugin.__all__
:summary:
```
````
### API
````{py:function} _utcnow() -> datetime.datetime
:canonical: archivebox.ideas.process_plugin._utcnow
```{autodoc2-docstring} archivebox.ideas.process_plugin._utcnow
```
````
`````{py:class} ProcessRecord(/, **data: typing.Any)
:canonical: archivebox.ideas.process_plugin.ProcessRecord
Bases: {py:obj}`pydantic.BaseModel`
````{py:attribute} id
:canonical: archivebox.ideas.process_plugin.ProcessRecord.id
:type: str
:value: >
'Field(...)'
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.id
```
````
````{py:attribute} cmd
:canonical: archivebox.ideas.process_plugin.ProcessRecord.cmd
:type: list[str]
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.cmd
```
````
````{py:attribute} cwd
:canonical: archivebox.ideas.process_plugin.ProcessRecord.cwd
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.cwd
```
````
````{py:attribute} env
:canonical: archivebox.ideas.process_plugin.ProcessRecord.env
:type: dict[str, str]
:value: >
'Field(...)'
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.env
```
````
````{py:attribute} pid
:canonical: archivebox.ideas.process_plugin.ProcessRecord.pid
:type: int | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.pid
```
````
````{py:attribute} started_at
:canonical: archivebox.ideas.process_plugin.ProcessRecord.started_at
:type: datetime.datetime | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.started_at
```
````
````{py:attribute} ended_at
:canonical: archivebox.ideas.process_plugin.ProcessRecord.ended_at
:type: datetime.datetime | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.ended_at
```
````
````{py:attribute} exit_code
:canonical: archivebox.ideas.process_plugin.ProcessRecord.exit_code
:type: int | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.exit_code
```
````
````{py:attribute} stdout_path
:canonical: archivebox.ideas.process_plugin.ProcessRecord.stdout_path
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.stdout_path
```
````
````{py:attribute} stderr_path
:canonical: archivebox.ideas.process_plugin.ProcessRecord.stderr_path
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.stderr_path
```
````
````{py:attribute} cmd_path
:canonical: archivebox.ideas.process_plugin.ProcessRecord.cmd_path
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.cmd_path
```
````
````{py:attribute} pid_path
:canonical: archivebox.ideas.process_plugin.ProcessRecord.pid_path
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.pid_path
```
````
````{py:attribute} is_background
:canonical: archivebox.ideas.process_plugin.ProcessRecord.is_background
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.is_background
```
````
````{py:attribute} parent_process_id
:canonical: archivebox.ideas.process_plugin.ProcessRecord.parent_process_id
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessRecord.parent_process_id
```
````
`````
`````{py:class} ProcessLaunch
:canonical: archivebox.ideas.process_plugin.ProcessLaunch
Bases: {py:obj}`bubus.BaseEvent`\[{py:obj}`archivebox.ideas.process_plugin.ProcessRecord`\]
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch
```
````{py:attribute} cmd
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.cmd
:type: list[str]
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.cmd
```
````
````{py:attribute} cwd
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.cwd
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.cwd
```
````
````{py:attribute} env
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.env
:type: dict[str, str] | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.env
```
````
````{py:attribute} timeout
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.timeout
:type: float | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.timeout
```
````
````{py:attribute} output_dir
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.output_dir
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.output_dir
```
````
````{py:attribute} log_prefix
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.log_prefix
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.log_prefix
```
````
````{py:attribute} is_background
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.is_background
:type: bool
:value: >
False
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.is_background
```
````
````{py:attribute} parent_process_id
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.parent_process_id
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.parent_process_id
```
````
````{py:attribute} parse_stdout_events
:canonical: archivebox.ideas.process_plugin.ProcessLaunch.parse_stdout_events
:type: bool
:value: >
True
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessLaunch.parse_stdout_events
```
````
`````
`````{py:class} ProcessStarted
:canonical: archivebox.ideas.process_plugin.ProcessStarted
Bases: {py:obj}`bubus.BaseEvent`\[{py:obj}`None`\]
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessStarted
```
````{py:attribute} process
:canonical: archivebox.ideas.process_plugin.ProcessStarted.process
:type: archivebox.ideas.process_plugin.ProcessRecord
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessStarted.process
```
````
`````
`````{py:class} ProcessExited
:canonical: archivebox.ideas.process_plugin.ProcessExited
Bases: {py:obj}`bubus.BaseEvent`\[{py:obj}`None`\]
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessExited
```
````{py:attribute} process
:canonical: archivebox.ideas.process_plugin.ProcessExited.process
:type: archivebox.ideas.process_plugin.ProcessRecord
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessExited.process
```
````
`````
`````{py:class} ProcessKill
:canonical: archivebox.ideas.process_plugin.ProcessKill
Bases: {py:obj}`bubus.BaseEvent`\[{py:obj}`archivebox.ideas.process_plugin.ProcessRecord`\]
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessKill
```
````{py:attribute} process_id
:canonical: archivebox.ideas.process_plugin.ProcessKill.process_id
:type: str
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessKill.process_id
```
````
````{py:attribute} signal
:canonical: archivebox.ideas.process_plugin.ProcessKill.signal
:type: int
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessKill.signal
```
````
````{py:attribute} timeout
:canonical: archivebox.ideas.process_plugin.ProcessKill.timeout
:type: float | None
:value: >
10.0
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessKill.timeout
```
````
`````
`````{py:class} _RunningProcess
:canonical: archivebox.ideas.process_plugin._RunningProcess
```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess
```
````{py:attribute} process
:canonical: archivebox.ideas.process_plugin._RunningProcess.process
:type: asyncio.subprocess.Process
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess.process
```
````
````{py:attribute} record
:canonical: archivebox.ideas.process_plugin._RunningProcess.record
:type: archivebox.ideas.process_plugin.ProcessRecord
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess.record
```
````
````{py:attribute} stdout_task
:canonical: archivebox.ideas.process_plugin._RunningProcess.stdout_task
:type: asyncio.Task[None] | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess.stdout_task
```
````
````{py:attribute} stderr_task
:canonical: archivebox.ideas.process_plugin._RunningProcess.stderr_task
:type: asyncio.Task[None] | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess.stderr_task
```
````
````{py:attribute} watcher_task
:canonical: archivebox.ideas.process_plugin._RunningProcess.watcher_task
:type: asyncio.Task[None] | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess.watcher_task
```
````
````{py:attribute} parent_event_id
:canonical: archivebox.ideas.process_plugin._RunningProcess.parent_event_id
:type: str | None
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin._RunningProcess.parent_event_id
```
````
`````
````{py:data} JsonEventAdapter
:canonical: archivebox.ideas.process_plugin.JsonEventAdapter
:value: >
None
```{autodoc2-docstring} archivebox.ideas.process_plugin.JsonEventAdapter
```
````
`````{py:class} ProcessPlugin(bus: bubus.EventBus, *, env: typing.Mapping[str, str] | None = None, json_event_adapter: archivebox.ideas.process_plugin.JsonEventAdapter | None = None)
:canonical: archivebox.ideas.process_plugin.ProcessPlugin
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin
```
```{rubric} Initialization
```
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.__init__
```
````{py:method} register_event_handlers() -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin.register_event_handlers
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.register_event_handlers
```
````
````{py:method} on_ProcessLaunch(event: archivebox.ideas.process_plugin.ProcessLaunch) -> archivebox.ideas.process_plugin.ProcessRecord
:canonical: archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessLaunch
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessLaunch
```
````
````{py:method} on_ProcessKill(event: archivebox.ideas.process_plugin.ProcessKill) -> archivebox.ideas.process_plugin.ProcessRecord
:canonical: archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessKill
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin.on_ProcessKill
```
````
````{py:method} _watch_process(process_id: str, timeout: float | None) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._watch_process
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._watch_process
```
````
````{py:method} _finalize_process(process_id: str) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._finalize_process
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._finalize_process
```
````
````{py:method} _consume_stream(stream: asyncio.StreamReader | None, path: pathlib.Path, parent_event_id: str | None, parse_events: bool) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._consume_stream
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._consume_stream
```
````
````{py:method} _maybe_dispatch_json_event(line: str, parent_event_id: str | None) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._maybe_dispatch_json_event
:async:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._maybe_dispatch_json_event
```
````
````{py:method} _write_cmd_file(path: pathlib.Path, cmd: list[str]) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._write_cmd_file
:staticmethod:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._write_cmd_file
```
````
````{py:method} _write_pid_file(path: pathlib.Path, pid: int) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._write_pid_file
:staticmethod:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._write_pid_file
```
````
````{py:method} _terminate_process(proc: asyncio.subprocess.Process, sig: int) -> None
:canonical: archivebox.ideas.process_plugin.ProcessPlugin._terminate_process
:staticmethod:
```{autodoc2-docstring} archivebox.ideas.process_plugin.ProcessPlugin._terminate_process
```
````
`````
````{py:data} __all__
:canonical: archivebox.ideas.process_plugin.__all__
:value: >
['ProcessRecord', 'ProcessLaunch', 'ProcessStarted', 'ProcessExited', 'ProcessKill', 'ProcessPlugin'...
```{autodoc2-docstring} archivebox.ideas.process_plugin.__all__
```
````

View File

@ -26,7 +26,7 @@
`````{py:class} ArchiveBoxLDAPBackend
:canonical: archivebox.ldap.auth.ArchiveBoxLDAPBackend
Bases: {py:obj}`django_auth_ldap.backend.LDAPBackend`
Bases: {py:obj}`archivebox.ldap.auth.BaseLDAPBackend`
```{autodoc2-docstring} archivebox.ldap.auth.ArchiveBoxLDAPBackend
```

View File

@ -31,6 +31,14 @@
:class: autosummary longtable
:align: left
* - {py:obj}`_render_copy_block <archivebox.machine.admin._render_copy_block>`
- ```{autodoc2-docstring} archivebox.machine.admin._render_copy_block
:summary:
```
* - {py:obj}`_format_process_duration_seconds <archivebox.machine.admin._format_process_duration_seconds>`
- ```{autodoc2-docstring} archivebox.machine.admin._format_process_duration_seconds
:summary:
```
* - {py:obj}`register_admin <archivebox.machine.admin.register_admin>`
- ```{autodoc2-docstring} archivebox.machine.admin.register_admin
:summary:
@ -39,6 +47,20 @@
### API
````{py:function} _render_copy_block(text: str, *, multiline: bool = False)
:canonical: archivebox.machine.admin._render_copy_block
```{autodoc2-docstring} archivebox.machine.admin._render_copy_block
```
````
````{py:function} _format_process_duration_seconds(started_at, ended_at) -> str
:canonical: archivebox.machine.admin._format_process_duration_seconds
```{autodoc2-docstring} archivebox.machine.admin._format_process_duration_seconds
```
````
`````{py:class} MachineAdmin(model, admin_site)
:canonical: archivebox.machine.admin.MachineAdmin
@ -47,7 +69,7 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````{py:attribute} list_display
:canonical: archivebox.machine.admin.MachineAdmin.list_display
:value: >
('id', 'created_at', 'hostname', 'ips', 'os_platform', 'hw_in_docker', 'hw_in_vm', 'hw_manufacturer'...
('id_display', 'created_at', 'hostname', 'ips', 'os_platform', 'hw_in_docker', 'hw_in_vm', 'hw_manuf...
```{autodoc2-docstring} archivebox.machine.admin.MachineAdmin.list_display
```
@ -140,6 +162,14 @@ Bases: {py:obj}`archivebox.base_models.admin.ConfigEditorMixin`, {py:obj}`archiv
````
````{py:method} id_display(machine)
:canonical: archivebox.machine.admin.MachineAdmin.id_display
```{autodoc2-docstring} archivebox.machine.admin.MachineAdmin.id_display
```
````
`````
`````{py:class} NetworkInterfaceAdmin(model, admin_site)
@ -293,7 +323,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} readonly_fields
:canonical: archivebox.machine.admin.BinaryAdmin.readonly_fields
:value: >
('created_at', 'modified_at')
('created_at', 'modified_at', 'output_dir')
```{autodoc2-docstring} archivebox.machine.admin.BinaryAdmin.readonly_fields
```
@ -376,7 +406,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} list_display
:canonical: archivebox.machine.admin.ProcessAdmin.list_display
:value: >
('id', 'created_at', 'machine_info', 'archiveresult_link', 'cmd_str', 'status', 'exit_code', 'pid', ...
('id', 'created_at', 'machine_info', 'archiveresult_link', 'snapshot_link', 'crawl_link', 'cmd_str',...
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.list_display
```
@ -386,7 +416,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} sort_fields
:canonical: archivebox.machine.admin.ProcessAdmin.sort_fields
:value: >
('id', 'created_at', 'status', 'exit_code', 'pid')
('id', 'created_at', 'machine_info', 'archiveresult_link', 'snapshot_link', 'crawl_link', 'cmd_str',...
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.sort_fields
```
@ -406,7 +436,7 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} readonly_fields
:canonical: archivebox.machine.admin.ProcessAdmin.readonly_fields
:value: >
('created_at', 'modified_at', 'machine', 'binary', 'iface', 'archiveresult_link')
('created_at', 'modified_at', 'machine', 'binary_link', 'iface_link', 'archiveresult_link', 'snapsho...
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.readonly_fields
```
@ -456,13 +486,52 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````{py:attribute} actions
:canonical: archivebox.machine.admin.ProcessAdmin.actions
:value: >
['delete_selected']
['kill_processes', 'delete_selected']
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.actions
```
````
````{py:attribute} change_actions
:canonical: archivebox.machine.admin.ProcessAdmin.change_actions
:value: >
['kill_process']
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.change_actions
```
````
````{py:method} get_queryset(request)
:canonical: archivebox.machine.admin.ProcessAdmin.get_queryset
````
````{py:method} _terminate_processes(request, processes)
:canonical: archivebox.machine.admin.ProcessAdmin._terminate_processes
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin._terminate_processes
```
````
````{py:method} kill_processes(request, queryset)
:canonical: archivebox.machine.admin.ProcessAdmin.kill_processes
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.kill_processes
```
````
````{py:method} kill_process(request, obj)
:canonical: archivebox.machine.admin.ProcessAdmin.kill_process
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.kill_process
```
````
````{py:method} machine_info(process)
:canonical: archivebox.machine.admin.ProcessAdmin.machine_info
@ -479,6 +548,22 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} binary_link(process)
:canonical: archivebox.machine.admin.ProcessAdmin.binary_link
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.binary_link
```
````
````{py:method} iface_link(process)
:canonical: archivebox.machine.admin.ProcessAdmin.iface_link
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.iface_link
```
````
````{py:method} archiveresult_link(process)
:canonical: archivebox.machine.admin.ProcessAdmin.archiveresult_link
@ -487,6 +572,22 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} snapshot_link(process)
:canonical: archivebox.machine.admin.ProcessAdmin.snapshot_link
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.snapshot_link
```
````
````{py:method} crawl_link(process)
:canonical: archivebox.machine.admin.ProcessAdmin.crawl_link
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.crawl_link
```
````
````{py:method} cmd_str(process)
:canonical: archivebox.machine.admin.ProcessAdmin.cmd_str
@ -495,6 +596,46 @@ Bases: {py:obj}`archivebox.base_models.admin.BaseModelAdmin`
````
````{py:method} status_badge(process)
:canonical: archivebox.machine.admin.ProcessAdmin.status_badge
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.status_badge
```
````
````{py:method} duration_display(process)
:canonical: archivebox.machine.admin.ProcessAdmin.duration_display
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.duration_display
```
````
````{py:method} output_summary(process)
:canonical: archivebox.machine.admin.ProcessAdmin.output_summary
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.output_summary
```
````
````{py:method} cmd_display(process)
:canonical: archivebox.machine.admin.ProcessAdmin.cmd_display
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.cmd_display
```
````
````{py:method} env_display(process)
:canonical: archivebox.machine.admin.ProcessAdmin.env_display
```{autodoc2-docstring} archivebox.machine.admin.ProcessAdmin.env_display
```
````
`````
````{py:function} register_admin(admin_site)

View File

@ -43,10 +43,6 @@
- ```{autodoc2-docstring} archivebox.machine.detect.get_host_stats
:summary:
```
* - {py:obj}`get_host_immutable_info <archivebox.machine.detect.get_host_immutable_info>`
- ```{autodoc2-docstring} archivebox.machine.detect.get_host_immutable_info
:summary:
```
* - {py:obj}`get_host_guid <archivebox.machine.detect.get_host_guid>`
- ```{autodoc2-docstring} archivebox.machine.detect.get_host_guid
:summary:
@ -147,34 +143,27 @@
```
````
````{py:function} get_host_network() -> typing.Dict[str, typing.Any]
````{py:function} get_host_network() -> dict[str, typing.Any]
:canonical: archivebox.machine.detect.get_host_network
```{autodoc2-docstring} archivebox.machine.detect.get_host_network
```
````
````{py:function} get_os_info() -> typing.Dict[str, typing.Any]
````{py:function} get_os_info() -> dict[str, typing.Any]
:canonical: archivebox.machine.detect.get_os_info
```{autodoc2-docstring} archivebox.machine.detect.get_os_info
```
````
````{py:function} get_host_stats() -> typing.Dict[str, typing.Any]
````{py:function} get_host_stats() -> dict[str, typing.Any]
:canonical: archivebox.machine.detect.get_host_stats
```{autodoc2-docstring} archivebox.machine.detect.get_host_stats
```
````
````{py:function} get_host_immutable_info(host_info: typing.Dict[str, typing.Any]) -> typing.Dict[str, typing.Any]
:canonical: archivebox.machine.detect.get_host_immutable_info
```{autodoc2-docstring} archivebox.machine.detect.get_host_immutable_info
```
````
````{py:function} get_host_guid() -> str
:canonical: archivebox.machine.detect.get_host_guid

View File

@ -0,0 +1,111 @@
# {py:mod}`archivebox.machine.env_util`
```{py:module} archivebox.machine.env_util
```
```{autodoc2-docstring} archivebox.machine.env_util
:allowtitles:
```
## Module Contents
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`stringify_env_value <archivebox.machine.env_util.stringify_env_value>`
- ```{autodoc2-docstring} archivebox.machine.env_util.stringify_env_value
:summary:
```
* - {py:obj}`is_redacted_env_key <archivebox.machine.env_util.is_redacted_env_key>`
- ```{autodoc2-docstring} archivebox.machine.env_util.is_redacted_env_key
:summary:
```
* - {py:obj}`redact_env <archivebox.machine.env_util.redact_env>`
- ```{autodoc2-docstring} archivebox.machine.env_util.redact_env
:summary:
```
* - {py:obj}`env_to_dotenv_text <archivebox.machine.env_util.env_to_dotenv_text>`
- ```{autodoc2-docstring} archivebox.machine.env_util.env_to_dotenv_text
:summary:
```
* - {py:obj}`env_to_shell_exports <archivebox.machine.env_util.env_to_shell_exports>`
- ```{autodoc2-docstring} archivebox.machine.env_util.env_to_shell_exports
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`SENSITIVE_ENV_KEY_PARTS <archivebox.machine.env_util.SENSITIVE_ENV_KEY_PARTS>`
- ```{autodoc2-docstring} archivebox.machine.env_util.SENSITIVE_ENV_KEY_PARTS
:summary:
```
* - {py:obj}`SHELL_ENV_KEY_RE <archivebox.machine.env_util.SHELL_ENV_KEY_RE>`
- ```{autodoc2-docstring} archivebox.machine.env_util.SHELL_ENV_KEY_RE
:summary:
```
````
### API
````{py:data} SENSITIVE_ENV_KEY_PARTS
:canonical: archivebox.machine.env_util.SENSITIVE_ENV_KEY_PARTS
:value: >
('KEY', 'TOKEN', 'SECRET')
```{autodoc2-docstring} archivebox.machine.env_util.SENSITIVE_ENV_KEY_PARTS
```
````
````{py:data} SHELL_ENV_KEY_RE
:canonical: archivebox.machine.env_util.SHELL_ENV_KEY_RE
:value: >
'compile(...)'
```{autodoc2-docstring} archivebox.machine.env_util.SHELL_ENV_KEY_RE
```
````
````{py:function} stringify_env_value(value: typing.Any) -> str
:canonical: archivebox.machine.env_util.stringify_env_value
```{autodoc2-docstring} archivebox.machine.env_util.stringify_env_value
```
````
````{py:function} is_redacted_env_key(key: str) -> bool
:canonical: archivebox.machine.env_util.is_redacted_env_key
```{autodoc2-docstring} archivebox.machine.env_util.is_redacted_env_key
```
````
````{py:function} redact_env(env: dict[str, typing.Any] | None) -> dict[str, typing.Any]
:canonical: archivebox.machine.env_util.redact_env
```{autodoc2-docstring} archivebox.machine.env_util.redact_env
```
````
````{py:function} env_to_dotenv_text(env: dict[str, typing.Any] | None) -> str
:canonical: archivebox.machine.env_util.env_to_dotenv_text
```{autodoc2-docstring} archivebox.machine.env_util.env_to_dotenv_text
```
````
````{py:function} env_to_shell_exports(env: dict[str, typing.Any] | None) -> str
:canonical: archivebox.machine.env_util.env_to_shell_exports
```{autodoc2-docstring} archivebox.machine.env_util.env_to_shell_exports
```
````

View File

@ -14,6 +14,7 @@
:maxdepth: 1
archivebox.machine.models
archivebox.machine.env_util
archivebox.machine.apps
archivebox.machine.admin
archivebox.machine.detect

View File

@ -53,12 +53,40 @@
```
````
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_find_existing_binary_for_reference <archivebox.machine.models._find_existing_binary_for_reference>`
- ```{autodoc2-docstring} archivebox.machine.models._find_existing_binary_for_reference
:summary:
```
* - {py:obj}`_canonical_binary_name <archivebox.machine.models._canonical_binary_name>`
- ```{autodoc2-docstring} archivebox.machine.models._canonical_binary_name
:summary:
```
* - {py:obj}`_get_process_binary_env_keys <archivebox.machine.models._get_process_binary_env_keys>`
- ```{autodoc2-docstring} archivebox.machine.models._get_process_binary_env_keys
:summary:
```
* - {py:obj}`_sanitize_machine_config <archivebox.machine.models._sanitize_machine_config>`
- ```{autodoc2-docstring} archivebox.machine.models._sanitize_machine_config
:summary:
```
````
### Data
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_psutil <archivebox.machine.models._psutil>`
- ```{autodoc2-docstring} archivebox.machine.models._psutil
:summary:
```
* - {py:obj}`_CURRENT_MACHINE <archivebox.machine.models._CURRENT_MACHINE>`
- ```{autodoc2-docstring} archivebox.machine.models._CURRENT_MACHINE
:summary:
@ -95,6 +123,10 @@
- ```{autodoc2-docstring} archivebox.machine.models.PID_REUSE_WINDOW
:summary:
```
* - {py:obj}`PROCESS_TIMEOUT_GRACE <archivebox.machine.models.PROCESS_TIMEOUT_GRACE>`
- ```{autodoc2-docstring} archivebox.machine.models.PROCESS_TIMEOUT_GRACE
:summary:
```
* - {py:obj}`START_TIME_TOLERANCE <archivebox.machine.models.START_TIME_TOLERANCE>`
- ```{autodoc2-docstring} archivebox.machine.models.START_TIME_TOLERANCE
:summary:
@ -103,8 +135,20 @@
### API
````{py:data} _psutil
:canonical: archivebox.machine.models._psutil
:type: typing.Any | None
:value: >
None
```{autodoc2-docstring} archivebox.machine.models._psutil
```
````
````{py:data} _CURRENT_MACHINE
:canonical: archivebox.machine.models._CURRENT_MACHINE
:type: archivebox.machine.models.Machine | None
:value: >
None
@ -115,6 +159,7 @@
````{py:data} _CURRENT_INTERFACE
:canonical: archivebox.machine.models._CURRENT_INTERFACE
:type: archivebox.machine.models.NetworkInterface | None
:value: >
None
@ -125,6 +170,7 @@
````{py:data} _CURRENT_BINARIES
:canonical: archivebox.machine.models._CURRENT_BINARIES
:type: dict[str, archivebox.machine.models.Binary]
:value: >
None
@ -135,6 +181,7 @@
````{py:data} _CURRENT_PROCESS
:canonical: archivebox.machine.models._CURRENT_PROCESS
:type: archivebox.machine.models.Process | None
:value: >
None
@ -193,6 +240,16 @@
````
````{py:data} PROCESS_TIMEOUT_GRACE
:canonical: archivebox.machine.models.PROCESS_TIMEOUT_GRACE
:value: >
'timedelta(...)'
```{autodoc2-docstring} archivebox.machine.models.PROCESS_TIMEOUT_GRACE
```
````
````{py:data} START_TIME_TOLERANCE
:canonical: archivebox.machine.models.START_TIME_TOLERANCE
:value: >
@ -203,6 +260,34 @@
````
````{py:function} _find_existing_binary_for_reference(machine: Machine, reference: str) -> Binary | None
:canonical: archivebox.machine.models._find_existing_binary_for_reference
```{autodoc2-docstring} archivebox.machine.models._find_existing_binary_for_reference
```
````
````{py:function} _canonical_binary_name(name: typing.Any) -> str
:canonical: archivebox.machine.models._canonical_binary_name
```{autodoc2-docstring} archivebox.machine.models._canonical_binary_name
```
````
````{py:function} _get_process_binary_env_keys(plugin_name: str, hook_path: str, env: dict[str, typing.Any] | None) -> list[str]
:canonical: archivebox.machine.models._get_process_binary_env_keys
```{autodoc2-docstring} archivebox.machine.models._get_process_binary_env_keys
```
````
````{py:function} _sanitize_machine_config(config: dict[str, typing.Any] | None, *, lib_dir: str | pathlib.Path | None = None) -> dict[str, typing.Any]
:canonical: archivebox.machine.models._sanitize_machine_config
```{autodoc2-docstring} archivebox.machine.models._sanitize_machine_config
```
````
`````{py:class} MachineManager
:canonical: archivebox.machine.models.MachineManager
@ -418,7 +503,6 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
````{py:attribute} objects
:canonical: archivebox.machine.models.Machine.objects
:type: archivebox.machine.models.MachineManager
:value: >
'MachineManager(...)'
@ -441,8 +525,7 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
`````{py:class} Meta
:canonical: archivebox.machine.models.Machine.Meta
```{autodoc2-docstring} archivebox.machine.models.Machine.Meta
```
Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats.Meta`
````{py:attribute} app_label
:canonical: archivebox.machine.models.Machine.Meta.app_label
@ -456,7 +539,7 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
`````
````{py:method} current() -> archivebox.machine.models.Machine
````{py:method} current(refresh: bool = False) -> archivebox.machine.models.Machine
:canonical: archivebox.machine.models.Machine.current
:classmethod:
@ -465,11 +548,11 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
````
````{py:method} _hydrate_config_from_sibling(machine: archivebox.machine.models.Machine) -> archivebox.machine.models.Machine
:canonical: archivebox.machine.models.Machine._hydrate_config_from_sibling
````{py:method} _sanitize_config(machine: archivebox.machine.models.Machine) -> archivebox.machine.models.Machine
:canonical: archivebox.machine.models.Machine._sanitize_config
:classmethod:
```{autodoc2-docstring} archivebox.machine.models.Machine._hydrate_config_from_sibling
```{autodoc2-docstring} archivebox.machine.models.Machine._sanitize_config
```
````
@ -482,7 +565,7 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
````
````{py:method} from_json(record: dict, overrides: dict = None)
````{py:method} from_json(record: dict[str, typing.Any], overrides: dict[str, typing.Any] | None = None)
:canonical: archivebox.machine.models.Machine.from_json
:staticmethod:
@ -491,6 +574,11 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
````
````{py:method} save(*args, **kwargs)
:canonical: archivebox.machine.models.Machine.save
````
``````
`````{py:class} NetworkInterfaceManager
@ -658,7 +746,6 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
````{py:attribute} objects
:canonical: archivebox.machine.models.NetworkInterface.objects
:type: archivebox.machine.models.NetworkInterfaceManager
:value: >
'NetworkInterfaceManager(...)'
@ -667,11 +754,21 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
````
````{py:attribute} machine_id
:canonical: archivebox.machine.models.NetworkInterface.machine_id
:type: uuid.UUID
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.NetworkInterface.machine_id
```
````
`````{py:class} Meta
:canonical: archivebox.machine.models.NetworkInterface.Meta
```{autodoc2-docstring} archivebox.machine.models.NetworkInterface.Meta
```
Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats.Meta`
````{py:attribute} app_label
:canonical: archivebox.machine.models.NetworkInterface.Meta.app_label
@ -693,9 +790,19 @@ Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats`
````
````{py:attribute} constraints
:canonical: archivebox.machine.models.NetworkInterface.Meta.constraints
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.NetworkInterface.Meta.constraints
```
````
`````
````{py:method} current() -> archivebox.machine.models.NetworkInterface
````{py:method} current(refresh: bool = False) -> archivebox.machine.models.NetworkInterface
:canonical: archivebox.machine.models.NetworkInterface.current
:classmethod:
@ -722,7 +829,7 @@ Bases: {py:obj}`django.db.models.Manager`
````
````{py:method} get_valid_binary(name: str, machine: Machine | None = None) -> Binary | None
````{py:method} get_valid_binary(name: str, machine: archivebox.machine.models.Machine | None = None) -> archivebox.machine.models.Binary | None
:canonical: archivebox.machine.models.BinaryManager.get_valid_binary
```{autodoc2-docstring} archivebox.machine.models.BinaryManager.get_valid_binary
@ -923,9 +1030,20 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:attribute} machine_id
:canonical: archivebox.machine.models.Binary.machine_id
:type: uuid.UUID
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.Binary.machine_id
```
````
````{py:attribute} state_machine_name
:canonical: archivebox.machine.models.Binary.state_machine_name
:type: str
:type: str | None
:value: >
'archivebox.machine.models.BinaryMachine'
@ -947,7 +1065,6 @@ Bases: {py:obj}`django.db.models.TextChoices`
````{py:attribute} objects
:canonical: archivebox.machine.models.Binary.objects
:type: archivebox.machine.models.BinaryManager
:value: >
'BinaryManager(...)'
@ -959,8 +1076,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
`````{py:class} Meta
:canonical: archivebox.machine.models.Binary.Meta
```{autodoc2-docstring} archivebox.machine.models.Binary.Meta
```
Bases: {py:obj}`archivebox.base_models.models.ModelWithHealthStats.Meta`, {py:obj}`archivebox.workers.models.ModelWithStateMachine.Meta`
````{py:attribute} app_label
:canonical: archivebox.machine.models.Binary.Meta.app_label
@ -1043,7 +1159,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} from_json(record: dict, overrides: dict = None)
````{py:method} from_json(record: dict[str, typing.Any], overrides: dict[str, typing.Any] | None = None)
:canonical: archivebox.machine.models.Binary.from_json
:staticmethod:
@ -1052,14 +1168,6 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} update_and_requeue(**kwargs)
:canonical: archivebox.machine.models.Binary.update_and_requeue
```{autodoc2-docstring} archivebox.machine.models.Binary.update_and_requeue
```
````
````{py:method} _allowed_binproviders() -> set[str] | None
:canonical: archivebox.machine.models.Binary._allowed_binproviders
@ -1092,6 +1200,14 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} symlink_to_lib_bin_after_commit(lib_bin_dir: str | pathlib.Path) -> None
:canonical: archivebox.machine.models.Binary.symlink_to_lib_bin_after_commit
```{autodoc2-docstring} archivebox.machine.models.Binary.symlink_to_lib_bin_after_commit
```
````
``````
`````{py:class} ProcessManager
@ -1110,7 +1226,7 @@ Bases: {py:obj}`django.db.models.Manager`
````
````{py:method} get_by_pid(pid: int, machine: archivebox.machine.models.Machine = None) -> Process | None
````{py:method} get_by_pid(pid: int, machine: archivebox.machine.models.Machine | None = None) -> archivebox.machine.models.Process | None
:canonical: archivebox.machine.models.ProcessManager.get_by_pid
```{autodoc2-docstring} archivebox.machine.models.ProcessManager.get_by_pid
@ -1131,7 +1247,7 @@ Bases: {py:obj}`django.db.models.Manager`
``````{py:class} Process(*args, **kwargs)
:canonical: archivebox.machine.models.Process
Bases: {py:obj}`django.db.models.Model`
Bases: {py:obj}`archivebox.base_models.models.ModelWithDeleteAfter`, {py:obj}`django.db.models.Model`
```{autodoc2-docstring} archivebox.machine.models.Process
```
@ -1204,6 +1320,46 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:attribute} SERVER
:canonical: archivebox.machine.models.Process.TypeChoices.SERVER
:value: >
('server', 'Server')
```{autodoc2-docstring} archivebox.machine.models.Process.TypeChoices.SERVER
```
````
````{py:attribute} UPDATE
:canonical: archivebox.machine.models.Process.TypeChoices.UPDATE
:value: >
('update', 'Update')
```{autodoc2-docstring} archivebox.machine.models.Process.TypeChoices.UPDATE
```
````
````{py:attribute} ADD
:canonical: archivebox.machine.models.Process.TypeChoices.ADD
:value: >
('add', 'Add')
```{autodoc2-docstring} archivebox.machine.models.Process.TypeChoices.ADD
```
````
````{py:attribute} SEARCH
:canonical: archivebox.machine.models.Process.TypeChoices.SEARCH
:value: >
('search', 'Search')
```{autodoc2-docstring} archivebox.machine.models.Process.TypeChoices.SEARCH
```
````
````{py:attribute} WORKER
:canonical: archivebox.machine.models.Process.TypeChoices.WORKER
:value: >
@ -1466,6 +1622,61 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:attribute} machine_id
:canonical: archivebox.machine.models.Process.machine_id
:type: uuid.UUID
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.Process.machine_id
```
````
````{py:attribute} parent_id
:canonical: archivebox.machine.models.Process.parent_id
:type: uuid.UUID | None
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.Process.parent_id
```
````
````{py:attribute} binary_id
:canonical: archivebox.machine.models.Process.binary_id
:type: uuid.UUID | None
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.Process.binary_id
```
````
````{py:attribute} children
:canonical: archivebox.machine.models.Process.children
:type: django.db.models.Manager[archivebox.machine.models.Process]
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.Process.children
```
````
````{py:attribute} archiveresult
:canonical: archivebox.machine.models.Process.archiveresult
:type: archivebox.core.models.ArchiveResult
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.Process.archiveresult
```
````
````{py:attribute} state_machine_name
:canonical: archivebox.machine.models.Process.state_machine_name
:type: str
@ -1477,9 +1688,18 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:attribute} delete_after_final_statuses
:canonical: archivebox.machine.models.Process.delete_after_final_statuses
:value: >
()
```{autodoc2-docstring} archivebox.machine.models.Process.delete_after_final_statuses
```
````
````{py:attribute} objects
:canonical: archivebox.machine.models.Process.objects
:type: archivebox.machine.models.ProcessManager
:value: >
'ProcessManager(...)'
@ -1491,8 +1711,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
`````{py:class} Meta
:canonical: archivebox.machine.models.Process.Meta
```{autodoc2-docstring} archivebox.machine.models.Process.Meta
```
Bases: {py:obj}`archivebox.base_models.models.ModelWithDeleteAfter.Meta`
````{py:attribute} app_label
:canonical: archivebox.machine.models.Process.Meta.app_label
@ -1534,6 +1753,16 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:attribute} constraints
:canonical: archivebox.machine.models.Process.Meta.constraints
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.Process.Meta.constraints
```
````
`````
````{py:method} __str__() -> str
@ -1541,6 +1770,23 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} get_delete_after_config_value()
:canonical: archivebox.machine.models.Process.get_delete_after_config_value
```{autodoc2-docstring} archivebox.machine.models.Process.get_delete_after_config_value
```
````
````{py:method} missing_delete_at_candidates()
:canonical: archivebox.machine.models.Process.missing_delete_at_candidates
:classmethod:
```{autodoc2-docstring} archivebox.machine.models.Process.missing_delete_at_candidates
```
````
````{py:property} cmd_version
:canonical: archivebox.machine.models.Process.cmd_version
:type: str
@ -1585,6 +1831,14 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} hydrate_binary_from_context(*, plugin_name: str = '', hook_path: str = '') -> archivebox.machine.models.Binary | None
:canonical: archivebox.machine.models.Process.hydrate_binary_from_context
```{autodoc2-docstring} archivebox.machine.models.Process.hydrate_binary_from_context
```
````
````{py:method} parse_records_from_text(text: str) -> list[dict]
:canonical: archivebox.machine.models.Process.parse_records_from_text
:classmethod:
@ -1602,7 +1856,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} from_json(record: dict, overrides: dict = None)
````{py:method} from_json(record: dict[str, typing.Any], overrides: dict[str, typing.Any] | None = None)
:canonical: archivebox.machine.models.Process.from_json
:staticmethod:
@ -1611,7 +1865,15 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} update_and_requeue(**kwargs)
````{py:method} safe_update(update_fields: dict[str, typing.Any], *, refresh: bool = True, extra_filter: dict[str, typing.Any] | None = None) -> bool
:canonical: archivebox.machine.models.Process.safe_update
```{autodoc2-docstring} archivebox.machine.models.Process.safe_update
```
````
````{py:method} update_and_requeue(**kwargs) -> bool
:canonical: archivebox.machine.models.Process.update_and_requeue
```{autodoc2-docstring} archivebox.machine.models.Process.update_and_requeue
@ -1619,6 +1881,30 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} mark_running(*, process_type: str | None = None, pwd: str | pathlib.Path | None = None, url: str | None = None, worker_type: str = '', timeout: int | None = None) -> None
:canonical: archivebox.machine.models.Process.mark_running
```{autodoc2-docstring} archivebox.machine.models.Process.mark_running
```
````
````{py:method} heartbeat() -> None
:canonical: archivebox.machine.models.Process.heartbeat
```{autodoc2-docstring} archivebox.machine.models.Process.heartbeat
```
````
````{py:method} mark_exited(*, exit_code: int = 0) -> None
:canonical: archivebox.machine.models.Process.mark_exited
```{autodoc2-docstring} archivebox.machine.models.Process.mark_exited
```
````
````{py:method} current() -> archivebox.machine.models.Process
:canonical: archivebox.machine.models.Process.current
:classmethod:
@ -1628,7 +1914,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} _find_parent_process(machine: archivebox.machine.models.Machine = None) -> Process | None
````{py:method} _find_parent_process(machine: archivebox.machine.models.Machine | None = None) -> archivebox.machine.models.Process | None
:canonical: archivebox.machine.models.Process._find_parent_process
:classmethod:
@ -1646,7 +1932,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} cleanup_stale_running(machine: archivebox.machine.models.Machine = None) -> int
````{py:method} cleanup_stale_running(machine: archivebox.machine.models.Machine | None = None) -> int
:canonical: archivebox.machine.models.Process.cleanup_stale_running
:classmethod:
@ -1740,27 +2026,9 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:property} pid_file
:canonical: archivebox.machine.models.Process.pid_file
:type: pathlib.Path
```{autodoc2-docstring} archivebox.machine.models.Process.pid_file
```
````
````{py:property} cmd_file
:canonical: archivebox.machine.models.Process.cmd_file
:type: pathlib.Path
```{autodoc2-docstring} archivebox.machine.models.Process.cmd_file
```
````
````{py:property} stdout_file
:canonical: archivebox.machine.models.Process.stdout_file
:type: pathlib.Path
:type: pathlib.Path | None
```{autodoc2-docstring} archivebox.machine.models.Process.stdout_file
```
@ -1769,7 +2037,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````{py:property} stderr_file
:canonical: archivebox.machine.models.Process.stderr_file
:type: pathlib.Path
:type: pathlib.Path | None
```{autodoc2-docstring} archivebox.machine.models.Process.stderr_file
```
@ -1826,22 +2094,6 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} _write_pid_file() -> None
:canonical: archivebox.machine.models.Process._write_pid_file
```{autodoc2-docstring} archivebox.machine.models.Process._write_pid_file
```
````
````{py:method} _write_cmd_file() -> None
:canonical: archivebox.machine.models.Process._write_cmd_file
```{autodoc2-docstring} archivebox.machine.models.Process._write_cmd_file
```
````
````{py:method} ensure_log_files() -> None
:canonical: archivebox.machine.models.Process.ensure_log_files
@ -1914,7 +2166,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} get_running(process_type: str = None, machine: archivebox.machine.models.Machine = None) -> QuerySet[Process]
````{py:method} get_running(process_type: str | None = None, machine: archivebox.machine.models.Machine | None = None) -> django.db.models.QuerySet[archivebox.machine.models.Process]
:canonical: archivebox.machine.models.Process.get_running
:classmethod:
@ -1923,7 +2175,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} get_running_count(process_type: str = None, machine: archivebox.machine.models.Machine = None) -> int
````{py:method} get_running_count(process_type: str | None = None, machine: archivebox.machine.models.Machine | None = None) -> int
:canonical: archivebox.machine.models.Process.get_running_count
:classmethod:
@ -1932,7 +2184,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} stop_all(process_type: str = None, machine: archivebox.machine.models.Machine = None, graceful: bool = True) -> int
````{py:method} stop_all(process_type: str | None = None, machine: archivebox.machine.models.Machine | None = None, graceful: bool = True) -> int
:canonical: archivebox.machine.models.Process.stop_all
:classmethod:
@ -1941,7 +2193,7 @@ Bases: {py:obj}`django.db.models.TextChoices`
````
````{py:method} get_next_worker_id(process_type: str = 'worker', machine: archivebox.machine.models.Machine = None) -> int
````{py:method} get_next_worker_id(process_type: str = 'worker', machine: archivebox.machine.models.Machine | None = None) -> int
:canonical: archivebox.machine.models.Process.get_next_worker_id
:classmethod:
@ -1994,6 +2246,17 @@ Bases: {py:obj}`archivebox.workers.models.BaseStateMachine`
````
````{py:attribute} binary
:canonical: archivebox.machine.models.BinaryMachine.binary
:type: archivebox.machine.models.Binary
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.BinaryMachine.binary
```
````
````{py:attribute} queued
:canonical: archivebox.machine.models.BinaryMachine.queued
:value: >
@ -2082,6 +2345,17 @@ Bases: {py:obj}`archivebox.workers.models.BaseStateMachine`
````
````{py:attribute} process
:canonical: archivebox.machine.models.ProcessMachine.process
:type: archivebox.machine.models.Process
:value: >
None
```{autodoc2-docstring} archivebox.machine.models.ProcessMachine.process
```
````
````{py:attribute} queued
:canonical: archivebox.machine.models.ProcessMachine.queued
:value: >

View File

@ -65,21 +65,21 @@ Bases: {py:obj}`json.JSONEncoder`
```{autodoc2-docstring} archivebox.mcp.server.MCPJSONEncoder.__init__
```
````{py:method} default(obj)
````{py:method} default(o)
:canonical: archivebox.mcp.server.MCPJSONEncoder.default
````
`````
````{py:function} click_type_to_json_schema_type(click_type) -> dict
````{py:function} click_type_to_json_schema_type(click_type: click.ParamType) -> dict[str, typing.Any]
:canonical: archivebox.mcp.server.click_type_to_json_schema_type
```{autodoc2-docstring} archivebox.mcp.server.click_type_to_json_schema_type
```
````
````{py:function} click_command_to_mcp_tool(cmd_name: str, click_command: click.Command) -> dict
````{py:function} click_command_to_mcp_tool(cmd_name: str, click_command: click.Command) -> dict[str, typing.Any]
:canonical: archivebox.mcp.server.click_command_to_mcp_tool
```{autodoc2-docstring} archivebox.mcp.server.click_command_to_mcp_tool
@ -105,7 +105,7 @@ Bases: {py:obj}`json.JSONEncoder`
```{autodoc2-docstring} archivebox.mcp.server.MCPServer.__init__
```
````{py:method} get_click_command(cmd_name: str) -> typing.Optional[click.Command]
````{py:method} get_click_command(cmd_name: str) -> click.Command | None
:canonical: archivebox.mcp.server.MCPServer.get_click_command
```{autodoc2-docstring} archivebox.mcp.server.MCPServer.get_click_command

View File

@ -25,8 +25,8 @@ archivebox.personas
archivebox.machine
archivebox.api
archivebox.workers
archivebox.ideas
archivebox.base_models
archivebox.services
```
## Submodules
@ -43,6 +43,28 @@ archivebox.__main__
## Package Contents
### Classes
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`_ReconfigurableStream <archivebox._ReconfigurableStream>`
-
````
### Functions
````{list-table}
:class: autosummary longtable
:align: left
* - {py:obj}`__getattr__ <archivebox.__getattr__>`
- ```{autodoc2-docstring} archivebox.__getattr__
:summary:
```
````
### Data
````{list-table}
@ -57,22 +79,6 @@ archivebox.__main__
- ```{autodoc2-docstring} archivebox.PACKAGE_DIR
:summary:
```
* - {py:obj}`BUILTIN_PLUGINS_DIR <archivebox.BUILTIN_PLUGINS_DIR>`
- ```{autodoc2-docstring} archivebox.BUILTIN_PLUGINS_DIR
:summary:
```
* - {py:obj}`USER_PLUGINS_DIR <archivebox.USER_PLUGINS_DIR>`
- ```{autodoc2-docstring} archivebox.USER_PLUGINS_DIR
:summary:
```
* - {py:obj}`ALL_PLUGINS <archivebox.ALL_PLUGINS>`
- ```{autodoc2-docstring} archivebox.ALL_PLUGINS
:summary:
```
* - {py:obj}`LOADED_PLUGINS <archivebox.LOADED_PLUGINS>`
- ```{autodoc2-docstring} archivebox.LOADED_PLUGINS
:summary:
```
* - {py:obj}`__version__ <archivebox.__version__>`
- ```{autodoc2-docstring} archivebox.__version__
:summary:
@ -85,6 +91,10 @@ archivebox.__main__
- ```{autodoc2-docstring} archivebox.__license__
:summary:
```
* - {py:obj}`__all__ <archivebox.__all__>`
- ```{autodoc2-docstring} archivebox.__all__
:summary:
```
* - {py:obj}`ASCII_ICON <archivebox.ASCII_ICON>`
- ```{autodoc2-docstring} archivebox.ASCII_ICON
:summary:
@ -93,6 +103,21 @@ archivebox.__main__
### API
`````{py:class} _ReconfigurableStream
:canonical: archivebox._ReconfigurableStream
Bases: {py:obj}`typing.Protocol`
````{py:method} reconfigure(*, line_buffering: bool) -> object
:canonical: archivebox._ReconfigurableStream.reconfigure
```{autodoc2-docstring} archivebox._ReconfigurableStream.reconfigure
```
````
`````
````{py:data} ASCII_LOGO
:canonical: archivebox.ASCII_LOGO
:value: <Multiline-String>
@ -112,46 +137,6 @@ archivebox.__main__
````
````{py:data} BUILTIN_PLUGINS_DIR
:canonical: archivebox.BUILTIN_PLUGINS_DIR
:value: >
'resolve(...)'
```{autodoc2-docstring} archivebox.BUILTIN_PLUGINS_DIR
```
````
````{py:data} USER_PLUGINS_DIR
:canonical: archivebox.USER_PLUGINS_DIR
:value: >
None
```{autodoc2-docstring} archivebox.USER_PLUGINS_DIR
```
````
````{py:data} ALL_PLUGINS
:canonical: archivebox.ALL_PLUGINS
:value: >
None
```{autodoc2-docstring} archivebox.ALL_PLUGINS
```
````
````{py:data} LOADED_PLUGINS
:canonical: archivebox.LOADED_PLUGINS
:value: >
None
```{autodoc2-docstring} archivebox.LOADED_PLUGINS
```
````
````{py:data} __version__
:canonical: archivebox.__version__
:value: >
@ -182,6 +167,23 @@ archivebox.__main__
````
````{py:function} __getattr__(name: str)
:canonical: archivebox.__getattr__
```{autodoc2-docstring} archivebox.__getattr__
```
````
````{py:data} __all__
:canonical: archivebox.__all__
:value: >
('ASCII_LOGO', 'ASCII_ICON', 'PACKAGE_DIR', 'DATA_DIR', 'CONSTANTS', 'VERSION', 'BUILTIN_PLUGINS_DIR...
```{autodoc2-docstring} archivebox.__all__
```
````
````{py:data} ASCII_ICON
:canonical: archivebox.ASCII_ICON
:value: <Multiline-String>

View File

@ -51,14 +51,14 @@
### API
````{py:function} check_data_folder() -> None
````{py:function} check_data_folder(config=None, **config_kwargs) -> None
:canonical: archivebox.misc.checks.check_data_folder
```{autodoc2-docstring} archivebox.misc.checks.check_data_folder
```
````
````{py:function} check_migrations()
````{py:function} check_migrations(*, blocking: bool = True, auto_apply: bool = False, cancel_delay: int = 3) -> list[str]
:canonical: archivebox.misc.checks.check_migrations
```{autodoc2-docstring} archivebox.misc.checks.check_migrations
@ -86,21 +86,21 @@
```
````
````{py:function} check_data_dir_permissions()
````{py:function} check_data_dir_permissions(config=None, **config_kwargs)
:canonical: archivebox.misc.checks.check_data_dir_permissions
```{autodoc2-docstring} archivebox.misc.checks.check_data_dir_permissions
```
````
````{py:function} check_tmp_dir(tmp_dir=None, throw=False, quiet=False, must_exist=True)
````{py:function} check_tmp_dir(tmp_dir=None, throw=False, quiet=False, must_exist=True, config=None, **config_kwargs)
:canonical: archivebox.misc.checks.check_tmp_dir
```{autodoc2-docstring} archivebox.misc.checks.check_tmp_dir
```
````
````{py:function} check_lib_dir(lib_dir: pathlib.Path | None = None, throw=False, quiet=False, must_exist=True)
````{py:function} check_lib_dir(lib_dir: pathlib.Path | None = None, throw=False, quiet=False, must_exist=True, config=None, **config_kwargs)
:canonical: archivebox.misc.checks.check_lib_dir
```{autodoc2-docstring} archivebox.misc.checks.check_lib_dir

Some files were not shown because too many files have changed in this diff Show More