diff --git a/archivebox/cli/archivebox_update.py b/archivebox/cli/archivebox_update.py
index 4491c356..246f8510 100644
--- a/archivebox/cli/archivebox_update.py
+++ b/archivebox/cli/archivebox_update.py
@@ -5,12 +5,10 @@ __command__ = 'archivebox update'
import sys
import argparse
-from pathlib import Path
from typing import List, Optional, IO
from archivebox.misc.util import docstring
-from archivebox.config import DATA_DIR
-from ..index import (
+from archivebox.index import (
LINK_FILTERS,
get_indexed_folders,
get_archived_folders,
@@ -23,8 +21,16 @@ from ..index import (
get_corrupted_folders,
get_unrecognized_folders,
)
-from ..logging_util import SmartFormatter, accept_stdin
-from ..main import update
+from archivebox.logging_util import SmartFormatter, accept_stdin
+# from ..main import update
+
+def update():
+ from archivebox.config.django import setup_django
+ setup_django()
+
+ from actors.orchestrator import Orchestrator
+ orchestrator = Orchestrator()
+ orchestrator.start()
@docstring(update.__doc__)
@@ -116,20 +122,22 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional
if not command.filter_patterns:
filter_patterns_str = accept_stdin(stdin)
- update(
- resume=command.resume,
- only_new=command.only_new,
- index_only=command.index_only,
- overwrite=command.overwrite,
- filter_patterns_str=filter_patterns_str,
- filter_patterns=command.filter_patterns,
- filter_type=command.filter_type,
- status=command.status,
- after=command.after,
- before=command.before,
- out_dir=Path(pwd) if pwd else DATA_DIR,
- extractors=command.extract,
- )
+ update()
+
+ # update(
+ # resume=command.resume,
+ # only_new=command.only_new,
+ # index_only=command.index_only,
+ # overwrite=command.overwrite,
+ # filter_patterns_str=filter_patterns_str,
+ # filter_patterns=command.filter_patterns,
+ # filter_type=command.filter_type,
+ # status=command.status,
+ # after=command.after,
+ # before=command.before,
+ # out_dir=Path(pwd) if pwd else DATA_DIR,
+ # extractors=command.extract,
+ # )
if __name__ == '__main__':
diff --git a/archivebox/config/__init__.py b/archivebox/config/__init__.py
index 8513d682..3350e6e7 100644
--- a/archivebox/config/__init__.py
+++ b/archivebox/config/__init__.py
@@ -1,4 +1,4 @@
-__package__ = 'config'
+__package__ = 'archivebox.config'
__order__ = 200
from .paths import (
diff --git a/archivebox/config/common.py b/archivebox/config/common.py
index ee6c438b..36d32705 100644
--- a/archivebox/config/common.py
+++ b/archivebox/config/common.py
@@ -120,6 +120,8 @@ class ArchivingConfig(BaseConfigSet):
SAVE_ALLOWLIST: Dict[str, List[str]] = Field(default={}) # mapping of regex patterns to list of archive methods
SAVE_DENYLIST: Dict[str, List[str]] = Field(default={})
+ DEFAULT_PERSONA: str = Field(default='Default')
+
# GIT_DOMAINS: str = Field(default='github.com,bitbucket.org,gitlab.com,gist.github.com,codeberg.org,gitea.com,git.sr.ht')
# WGET_USER_AGENT: str = Field(default=lambda c: c['USER_AGENT'] + ' wget/{WGET_VERSION}')
# CURL_USER_AGENT: str = Field(default=lambda c: c['USER_AGENT'] + ' curl/{CURL_VERSION}')
diff --git a/archivebox/config/views.py b/archivebox/config/views.py
index 975ef7ff..ba0f14fd 100644
--- a/archivebox/config/views.py
+++ b/archivebox/config/views.py
@@ -86,10 +86,11 @@ def binaries_list_view(request: HttpRequest, **kwargs) -> TableContext:
}
for plugin_id, plugin in abx.get_all_plugins().items():
- if not plugin.hooks.get('get_BINARIES'):
+ plugin = benedict(plugin)
+ if not hasattr(plugin.plugin, 'get_BINARIES'):
continue
- for binary in plugin.hooks.get_BINARIES().values():
+ for binary in plugin.plugin.get_BINARIES().values():
try:
installed_binary = InstalledBinary.objects.get_from_db_or_cache(binary)
binary = installed_binary.load_from_db()
@@ -214,9 +215,9 @@ def plugins_list_view(request: HttpRequest, **kwargs) -> TableContext:
return 'black'
for plugin_id, plugin in abx.get_all_plugins().items():
- plugin.hooks.get_BINPROVIDERS = plugin.hooks.get('get_BINPROVIDERS', lambda: {})
- plugin.hooks.get_BINARIES = plugin.hooks.get('get_BINARIES', lambda: {})
- plugin.hooks.get_CONFIG = plugin.hooks.get('get_CONFIG', lambda: {})
+ plugin.hooks.get_BINPROVIDERS = getattr(plugin.plugin, 'get_BINPROVIDERS', lambda: {})
+ plugin.hooks.get_BINARIES = getattr(plugin.plugin, 'get_BINARIES', lambda: {})
+ plugin.hooks.get_CONFIG = getattr(plugin.plugin, 'get_CONFIG', lambda: {})
rows['Label'].append(ItemLink(plugin.label, key=plugin.package))
rows['Version'].append(str(plugin.version))
@@ -251,8 +252,10 @@ def plugin_detail_view(request: HttpRequest, key: str, **kwargs) -> ItemContext:
assert request.user.is_superuser, 'Must be a superuser to view configuration settings.'
+ plugins = abx.get_all_plugins()
+
plugin_id = None
- for check_plugin_id, loaded_plugin in settings.PLUGINS.items():
+ for check_plugin_id, loaded_plugin in plugins.items():
if check_plugin_id.split('.')[-1] == key.split('.')[-1]:
plugin_id = check_plugin_id
break
diff --git a/archivebox/core/__init__.py b/archivebox/core/__init__.py
index 9a301977..74bab17c 100644
--- a/archivebox/core/__init__.py
+++ b/archivebox/core/__init__.py
@@ -1,5 +1,5 @@
__package__ = 'archivebox.core'
-
+__order__ = 100
import abx
@abx.hookimpl
diff --git a/archivebox/core/actors.py b/archivebox/core/actors.py
index 1e9db058..d578c316 100644
--- a/archivebox/core/actors.py
+++ b/archivebox/core/actors.py
@@ -21,7 +21,7 @@ class SnapshotActor(ActorType[Snapshot]):
FINAL_STATES: ClassVar[list[State]] = SnapshotMachine.final_states # ['sealed']
STATE_FIELD_NAME: ClassVar[str] = Snapshot.state_field_name # status
- MAX_CONCURRENT_ACTORS: ClassVar[int] = 3
+ MAX_CONCURRENT_ACTORS: ClassVar[int] = 1 # 3
MAX_TICK_TIME: ClassVar[int] = 10
CLAIM_FROM_TOP_N: ClassVar[int] = MAX_CONCURRENT_ACTORS * 10
@@ -39,7 +39,7 @@ class ArchiveResultActor(ActorType[ArchiveResult]):
FINAL_STATES: ClassVar[list[State]] = ArchiveResultMachine.final_states # ['succeeded', 'failed', 'skipped']
STATE_FIELD_NAME: ClassVar[str] = ArchiveResult.state_field_name # status
- MAX_CONCURRENT_ACTORS: ClassVar[int] = 6
+ MAX_CONCURRENT_ACTORS: ClassVar[int] = 1 # 6
MAX_TICK_TIME: ClassVar[int] = 60
CLAIM_FROM_TOP_N: ClassVar[int] = MAX_CONCURRENT_ACTORS * 10
diff --git a/archivebox/core/admin_archiveresults.py b/archivebox/core/admin_archiveresults.py
index 675f5f43..da90df1d 100644
--- a/archivebox/core/admin_archiveresults.py
+++ b/archivebox/core/admin_archiveresults.py
@@ -39,7 +39,7 @@ class ArchiveResultInline(admin.TabularInline):
extra = 0
sort_fields = ('end_ts', 'extractor', 'output', 'status', 'cmd_version')
readonly_fields = ('id', 'result_id', 'completed', 'command', 'version')
- fields = ('start_ts', 'end_ts', *readonly_fields, 'extractor', 'cmd', 'cmd_version', 'pwd', 'created_by', 'status', 'output')
+ fields = ('start_ts', 'end_ts', *readonly_fields, 'extractor', 'cmd', 'cmd_version', 'pwd', 'created_by', 'status', 'retry_at', 'output')
# exclude = ('id',)
ordering = ('end_ts',)
show_change_link = True
@@ -105,11 +105,11 @@ class ArchiveResultInline(admin.TabularInline):
class ArchiveResultAdmin(ABIDModelAdmin):
- list_display = ('start_ts', 'snapshot_info', 'tags_str', 'extractor', 'cmd_str', 'status', 'output_str')
- sort_fields = ('start_ts', 'extractor', 'status')
+ list_display = ('abid', 'created_by', 'created_at', 'snapshot_info', 'tags_str', 'status', 'extractor', 'cmd_str', 'output_str')
+ sort_fields = ('abid', 'created_by', 'created_at', 'extractor', 'status')
readonly_fields = ('cmd_str', 'snapshot_info', 'tags_str', 'created_at', 'modified_at', 'abid_info', 'output_summary')
search_fields = ('id', 'abid', 'snapshot__url', 'extractor', 'output', 'cmd_version', 'cmd', 'snapshot__timestamp')
- fields = ('snapshot', 'extractor', 'status', 'output', 'pwd', 'start_ts', 'end_ts', 'created_by', 'cmd_version', 'cmd', *readonly_fields)
+ fields = ('snapshot', 'extractor', 'status', 'retry_at', 'start_ts', 'end_ts', 'created_by', 'pwd', 'cmd_version', 'cmd', 'output', *readonly_fields)
autocomplete_fields = ['snapshot']
list_filter = ('status', 'extractor', 'start_ts', 'cmd_version')
@@ -169,7 +169,7 @@ class ArchiveResultAdmin(ABIDModelAdmin):
result.output,
)
output_str += format_html('See result files ...
', str(result.snapshot.timestamp))
- path_from_output_str = (snapshot_dir / result.output)
+ path_from_output_str = (snapshot_dir / (result.output or ''))
output_str += format_html('{}/{}
', str(snapshot_dir), str(result.output))
if os.access(path_from_output_str, os.R_OK):
root_dir = str(path_from_output_str)
diff --git a/archivebox/core/admin_snapshots.py b/archivebox/core/admin_snapshots.py
index 3cc15208..15383190 100644
--- a/archivebox/core/admin_snapshots.py
+++ b/archivebox/core/admin_snapshots.py
@@ -56,12 +56,12 @@ class SnapshotActionForm(ActionForm):
class SnapshotAdmin(SearchResultsAdminMixin, ABIDModelAdmin):
- list_display = ('created_at', 'title_str', 'files', 'size', 'url_str', 'crawl')
- sort_fields = ('title_str', 'url_str', 'created_at', 'crawl')
+ list_display = ('created_at', 'title_str', 'status', 'files', 'size', 'url_str')
+ sort_fields = ('title_str', 'url_str', 'created_at', 'status', 'crawl')
readonly_fields = ('admin_actions', 'status_info', 'tags_str', 'imported_timestamp', 'created_at', 'modified_at', 'downloaded_at', 'abid_info', 'link_dir')
search_fields = ('id', 'url', 'abid', 'timestamp', 'title', 'tags__name')
list_filter = ('created_at', 'downloaded_at', 'archiveresult__status', 'created_by', 'tags__name')
- fields = ('url', 'title', 'created_by', 'bookmarked_at', 'crawl', *readonly_fields)
+ fields = ('url', 'title', 'created_by', 'bookmarked_at', 'status', 'retry_at', 'crawl', *readonly_fields)
ordering = ['-created_at']
actions = ['add_tags', 'remove_tags', 'update_titles', 'update_snapshots', 'resnapshot_snapshot', 'overwrite_snapshots', 'delete_snapshots']
inlines = [TagInline, ArchiveResultInline]
diff --git a/archivebox/core/models.py b/archivebox/core/models.py
index d4e8bcca..05d8af46 100644
--- a/archivebox/core/models.py
+++ b/archivebox/core/models.py
@@ -1,7 +1,7 @@
__package__ = 'archivebox.core'
-from typing import Optional, Dict, Iterable
+from typing import Optional, Dict, Iterable, Any
from django_stubs_ext.db.models import TypedModelMeta
import os
@@ -20,20 +20,22 @@ from django.db.models import Case, When, Value, IntegerField
from django.contrib import admin
from django.conf import settings
-from actors.models import ModelWithStateMachine
+
+import abx
from archivebox.config import CONSTANTS
from abid_utils.models import ABIDModel, ABIDField, AutoDateTimeField
+from actors.models import ModelWithStateMachine
from queues.tasks import bg_archive_snapshot
from crawls.models import Crawl
# from machine.models import Machine, NetworkInterface
from archivebox.misc.system import get_dir_size
from archivebox.misc.util import parse_date, base_url
-from ..index.schema import Link
-from ..index.html import snapshot_icons
-from ..extractors import ARCHIVE_METHODS_INDEXING_PRECEDENCE, EXTRACTORS
+from archivebox.index.schema import Link
+from archivebox.index.html import snapshot_icons
+from archivebox.extractors import ARCHIVE_METHODS_INDEXING_PRECEDENCE
# class BaseModel(models.Model):
@@ -195,13 +197,21 @@ class Snapshot(ABIDModel, ModelWithStateMachine):
tags = models.ManyToManyField(Tag, blank=True, through=SnapshotTag, related_name='snapshot_set', through_fields=('snapshot', 'tag'))
title = models.CharField(max_length=512, null=True, blank=True, db_index=True)
- keys = ('url', 'timestamp', 'title', 'tags', 'downloaded_at')
+ # config = models.JSONField(default=dict, null=False, blank=False, editable=True)
+
+ keys = ('url', 'timestamp', 'title', 'tags', 'downloaded_at', 'created_at', 'status', 'retry_at', 'abid', 'id')
archiveresult_set: models.Manager['ArchiveResult']
objects = SnapshotManager()
def save(self, *args, **kwargs):
+ if self.pk:
+ existing_snapshot = self.__class__.objects.filter(pk=self.pk).first()
+ if existing_snapshot and existing_snapshot.status == self.StatusChoices.SEALED:
+ if self.as_json() != existing_snapshot.as_json():
+ raise Exception(f'Snapshot {self.pk} is already sealed, it cannot be modified any further. NEW: {self.as_json()} != Existing: {existing_snapshot.as_json()}')
+
if not self.bookmarked_at:
self.bookmarked_at = self.created_at or self._init_timestamp
@@ -427,7 +437,7 @@ class Snapshot(ABIDModel, ModelWithStateMachine):
ALL_EXTRACTORS = ['favicon', 'title', 'screenshot', 'headers', 'singlefile', 'dom', 'git', 'archive_org', 'readability', 'mercury', 'pdf', 'wget']
# config = get_scope_config(snapshot=self)
- config = {'EXTRACTORS': ''}
+ config = {'EXTRACTORS': ','.join(ALL_EXTRACTORS)}
if config.get('EXTRACTORS', 'auto') == 'auto':
EXTRACTORS = ALL_EXTRACTORS
@@ -438,10 +448,13 @@ class Snapshot(ABIDModel, ModelWithStateMachine):
for extractor in EXTRACTORS:
if not extractor:
continue
- archiveresult, _created = ArchiveResult.objects.get_or_create(
+ archiveresult = ArchiveResult.objects.update_or_create(
snapshot=self,
extractor=extractor,
status=ArchiveResult.INITIAL_STATE,
+ defaults={
+ 'retry_at': timezone.now(),
+ },
)
archiveresults.append(archiveresult)
return archiveresults
@@ -560,6 +573,8 @@ class ArchiveResult(ABIDModel, ModelWithStateMachine):
# uplink = models.ForeignKey(NetworkInterface, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Network Interface Used')
objects = ArchiveResultManager()
+
+ keys = ('snapshot_id', 'extractor', 'cmd', 'pwd', 'cmd_version', 'output', 'start_ts', 'end_ts', 'created_at', 'status', 'retry_at', 'abid', 'id')
class Meta(TypedModelMeta):
verbose_name = 'Archive Result'
@@ -576,6 +591,16 @@ class ArchiveResult(ABIDModel, ModelWithStateMachine):
def __str__(self):
return repr(self)
+
+ def save(self, *args, **kwargs):
+ # if (self.pk and self.__class__.objects.filter(pk=self.pk).values_list('status', flat=True)[0] in [self.StatusChoices.FAILED, self.StatusChoices.SUCCEEDED, self.StatusChoices.SKIPPED]):
+ # raise Exception(f'ArchiveResult {self.pk} is in a final state, it cannot be modified any further.')
+ if self.pk:
+ existing_archiveresult = self.__class__.objects.filter(pk=self.pk).first()
+ if existing_archiveresult and existing_archiveresult.status in [self.StatusChoices.FAILED, self.StatusChoices.SUCCEEDED, self.StatusChoices.SKIPPED]:
+ if self.as_json() != existing_archiveresult.as_json():
+ raise Exception(f'ArchiveResult {self.pk} is in a final state, it cannot be modified any further. NEW: {self.as_json()} != Existing: {existing_archiveresult.as_json()}')
+ super().save(*args, **kwargs)
# TODO: finish connecting machine.models
# @cached_property
@@ -603,36 +628,53 @@ class ArchiveResult(ABIDModel, ModelWithStateMachine):
return f'/{self.snapshot.archive_path}/{self.output_path()}'
@property
- def extractor_module(self):
- return EXTRACTORS[self.extractor]
+ def extractor_module(self) -> Any | None:
+ return abx.as_dict(abx.pm.hook.get_EXTRACTORS()).get(self.extractor, None)
- def output_path(self) -> str:
+ def output_path(self) -> str | None:
"""return the canonical output filename or directory name within the snapshot dir"""
- return self.extractor_module.get_output_path()
+ try:
+ return self.extractor_module.get_output_path(self.snapshot)
+ except Exception as e:
+ print(f'Error getting output path for {self.extractor} extractor: {e}')
+ return None
- def embed_path(self) -> str:
+ def embed_path(self) -> str | None:
"""
return the actual runtime-calculated path to the file on-disk that
should be used for user-facing iframe embeds of this result
"""
- if get_embed_path_func := getattr(self.extractor_module, 'get_embed_path', None):
- return get_embed_path_func(self)
-
- return self.extractor_module.get_output_path()
+ try:
+ return self.extractor_module.get_embed_path(self)
+ except Exception as e:
+ print(f'Error getting embed path for {self.extractor} extractor: {e}')
+ return None
def legacy_output_path(self):
link = self.snapshot.as_link()
return link.canonical_outputs().get(f'{self.extractor}_path')
def output_exists(self) -> bool:
- return os.path.exists(self.output_path())
-
+ output_path = self.output_path()
+ return bool(output_path and os.path.exists(output_path))
+
def create_output_dir(self):
- snap_dir = self.snapshot_dir
+ snap_dir = Path(self.snapshot_dir)
snap_dir.mkdir(parents=True, exist_ok=True)
- return snap_dir / self.output_path()
+ output_path = self.output_path()
+ if output_path:
+ (snap_dir / output_path).mkdir(parents=True, exist_ok=True)
+ else:
+ raise ValueError(f'Not able to calculate output path for {self.extractor} extractor in {snap_dir}')
+ return snap_dir / output_path
+ def as_json(self, *args) -> dict:
+ args = args or self.keys
+ return {
+ key: getattr(self, key)
+ for key in args
+ }
# def get_storage_dir(self, create=True, symlink=True):
# date_str = self.snapshot.bookmarked_at.strftime('%Y%m%d')
diff --git a/archivebox/core/statemachines.py b/archivebox/core/statemachines.py
index 85cad102..cc96a8ad 100644
--- a/archivebox/core/statemachines.py
+++ b/archivebox/core/statemachines.py
@@ -37,25 +37,44 @@ class SnapshotMachine(StateMachine, strict_states=True):
super().__init__(snapshot, *args, **kwargs)
def can_start(self) -> bool:
- return self.snapshot.url
+ can_start = bool(self.snapshot.url and (self.snapshot.retry_at < timezone.now()))
+ if not can_start:
+ print(f'SnapshotMachine[{self.snapshot.ABID}].can_start() False: {self.snapshot.url} {self.snapshot.retry_at} {timezone.now()}')
+ return can_start
def is_finished(self) -> bool:
+ # if no archiveresults exist yet, it's not finished
if not self.snapshot.archiveresult_set.exists():
return False
+ # if archiveresults exist but are still pending, it's not finished
if self.snapshot.pending_archiveresults().exists():
return False
+
+ # otherwise archiveresults exist and are all finished, so it's finished
return True
- @started.enter
- def on_started(self):
- print(f'SnapshotMachine[{self.snapshot.ABID}].on_started(): snapshot.create_pending_archiveresults() + snapshot.bump_retry_at(+60s)')
- self.snapshot.create_pending_archiveresults()
- self.snapshot.bump_retry_at(seconds=60)
+ def on_transition(self, event, state):
+ print(f'SnapshotMachine[{self.snapshot.ABID}].on_transition() {event} -> {state}')
+
+ @queued.enter
+ def enter_queued(self):
+ print(f'SnapshotMachine[{self.snapshot.ABID}].on_queued(): snapshot.retry_at = now()')
+ self.snapshot.status = Snapshot.StatusChoices.QUEUED
+ self.snapshot.retry_at = timezone.now()
self.snapshot.save()
+ @started.enter
+ def enter_started(self):
+ print(f'SnapshotMachine[{self.snapshot.ABID}].on_started(): snapshot.create_pending_archiveresults() + snapshot.bump_retry_at(+60s)')
+ self.snapshot.status = Snapshot.StatusChoices.STARTED
+ self.snapshot.bump_retry_at(seconds=60)
+ self.snapshot.save()
+ self.snapshot.create_pending_archiveresults()
+
@sealed.enter
- def on_sealed(self):
+ def enter_sealed(self):
print(f'SnapshotMachine[{self.snapshot.ABID}].on_sealed(): snapshot.retry_at=None')
+ self.snapshot.status = Snapshot.StatusChoices.SEALED
self.snapshot.retry_at = None
self.snapshot.save()
@@ -95,7 +114,7 @@ class ArchiveResultMachine(StateMachine, strict_states=True):
super().__init__(archiveresult, *args, **kwargs)
def can_start(self) -> bool:
- return self.archiveresult.snapshot and self.archiveresult.snapshot.STATE == Snapshot.active_state
+ return self.archiveresult.snapshot and (self.archiveresult.retry_at < timezone.now())
def is_succeeded(self) -> bool:
return self.archiveresult.output_exists()
@@ -109,29 +128,45 @@ class ArchiveResultMachine(StateMachine, strict_states=True):
def is_finished(self) -> bool:
return self.is_failed() or self.is_succeeded()
+
+ @queued.enter
+ def enter_queued(self):
+ print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_queued(): archiveresult.retry_at = now()')
+ self.archiveresult.status = ArchiveResult.StatusChoices.QUEUED
+ self.archiveresult.retry_at = timezone.now()
+ self.archiveresult.save()
+
@started.enter
- def on_started(self):
+ def enter_started(self):
print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_started(): archiveresult.start_ts + create_output_dir() + bump_retry_at(+60s)')
+ self.archiveresult.status = ArchiveResult.StatusChoices.STARTED
self.archiveresult.start_ts = timezone.now()
- self.archiveresult.create_output_dir()
self.archiveresult.bump_retry_at(seconds=60)
self.archiveresult.save()
+ self.archiveresult.create_output_dir()
@backoff.enter
- def on_backoff(self):
- print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_backoff(): archiveresult.bump_retry_at(+60s)')
+ def enter_backoff(self):
+ print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_backoff(): archiveresult.retries += 1, archiveresult.bump_retry_at(+60s), archiveresult.end_ts = None')
+ self.archiveresult.status = ArchiveResult.StatusChoices.BACKOFF
+ self.archiveresult.retries = getattr(self.archiveresult, 'retries', 0) + 1
self.archiveresult.bump_retry_at(seconds=60)
+ self.archiveresult.end_ts = None
self.archiveresult.save()
@succeeded.enter
- def on_succeeded(self):
- print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_succeeded(): archiveresult.end_ts')
+ def enter_succeeded(self):
+ print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_succeeded(): archiveresult.retry_at = None, archiveresult.end_ts = now()')
+ self.archiveresult.status = ArchiveResult.StatusChoices.SUCCEEDED
+ self.archiveresult.retry_at = None
self.archiveresult.end_ts = timezone.now()
self.archiveresult.save()
@failed.enter
- def on_failed(self):
- print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_failed(): archiveresult.end_ts')
+ def enter_failed(self):
+ print(f'ArchiveResultMachine[{self.archiveresult.ABID}].on_failed(): archivebox.retry_at = None, archiveresult.end_ts = now()')
+ self.archiveresult.status = ArchiveResult.StatusChoices.FAILED
+ self.archiveresult.retry_at = None
self.archiveresult.end_ts = timezone.now()
self.archiveresult.save()
diff --git a/archivebox/core/views.py b/archivebox/core/views.py
index e425c8fe..ac4f41ee 100644
--- a/archivebox/core/views.py
+++ b/archivebox/core/views.py
@@ -102,7 +102,8 @@ class SnapshotView(View):
# iterate through all the files in the snapshot dir and add the biggest ones to1 the result list
snap_dir = Path(snapshot.link_dir)
- assert os.path.isdir(snap_dir) and os.access(snap_dir, os.R_OK)
+ if not os.path.isdir(snap_dir) and os.access(snap_dir, os.R_OK):
+ return {}
for result_file in (*snap_dir.glob('*'), *snap_dir.glob('*/*')):
extension = result_file.suffix.lstrip('.').lower()
@@ -504,7 +505,7 @@ def find_config_section(key: str) -> str:
if key in CONSTANTS_CONFIG:
return 'CONSTANT'
matching_sections = [
- section_id for section_id, section in CONFIGS.items() if key in section.model_fields
+ section_id for section_id, section in CONFIGS.items() if key in dict(section)
]
section = matching_sections[0] if matching_sections else 'DYNAMIC'
return section
@@ -518,8 +519,9 @@ def find_config_default(key: str) -> str:
default_val = None
for config in CONFIGS.values():
- if key in config.model_fields:
- default_val = config.model_fields[key].default
+ if key in dict(config):
+ default_field = getattr(config, 'model_fields', dict(config))[key]
+ default_val = default_field.default if hasattr(default_field, 'default') else default_field
break
if isinstance(default_val, Callable):
@@ -529,7 +531,6 @@ def find_config_default(key: str) -> str:
else:
default_val = str(default_val)
-
return default_val
def find_config_type(key: str) -> str:
@@ -567,7 +568,7 @@ def live_config_list_view(request: HttpRequest, **kwargs) -> TableContext:
}
for section_id, section in reversed(list(CONFIGS.items())):
- for key, field in section.model_fields.items():
+ for key in dict(section).keys():
rows['Section'].append(section_id) # section.replace('_', ' ').title().replace(' Config', '')
rows['Key'].append(ItemLink(key, key=key))
rows['Type'].append(format_html('{}
', find_config_type(key)))
@@ -580,7 +581,7 @@ def live_config_list_view(request: HttpRequest, **kwargs) -> TableContext:
for key in CONSTANTS_CONFIG.keys():
rows['Section'].append(section) # section.replace('_', ' ').title().replace(' Config', '')
rows['Key'].append(ItemLink(key, key=key))
- rows['Type'].append(format_html('{}
', getattr(type(CONSTANTS_CONFIG[key]), '__name__', repr(CONSTANTS_CONFIG[key]))))
+ rows['Type'].append(format_html('{}
', getattr(type(CONSTANTS_CONFIG[key]), '__name__', str(CONSTANTS_CONFIG[key]))))
rows['Value'].append(format_html('{}
', CONSTANTS_CONFIG[key]) if key_is_safe(key) else '******** (redacted)')
rows['Default'].append(mark_safe(f'{find_config_default(key) or "See here..."}
'))
# rows['Documentation'].append(mark_safe(f'Wiki: {key}'))
@@ -642,13 +643,13 @@ def live_config_value_view(request: HttpRequest, key: str, **kwargs) -> ItemCont
{find_config_default(key) or '↗️ See in ArchiveBox source code...'}
-
+
To change this value, edit data/ArchiveBox.conf
or run:
archivebox config --set {key}="{
val.strip("'")
if (val := find_config_default(key)) else
- (repr(FLAT_CONFIG[key] if key_is_safe(key) else '********')).strip("'")
+ (str(FLAT_CONFIG[key] if key_is_safe(key) else '********')).strip("'")
}"
'''),
diff --git a/archivebox/crawls/__init__.py b/archivebox/crawls/__init__.py
index 4df1c8b2..4eb2aa51 100644
--- a/archivebox/crawls/__init__.py
+++ b/archivebox/crawls/__init__.py
@@ -1,4 +1,5 @@
__package__ = 'archivebox.crawls'
+__order__ = 100
import abx
diff --git a/archivebox/crawls/actors.py b/archivebox/crawls/actors.py
index 55c9f92c..2426196e 100644
--- a/archivebox/crawls/actors.py
+++ b/archivebox/crawls/actors.py
@@ -18,6 +18,6 @@ class CrawlActor(ActorType[Crawl]):
FINAL_STATES: ClassVar[list[State]] = CrawlMachine.final_states
STATE_FIELD_NAME: ClassVar[str] = Crawl.state_field_name
- MAX_CONCURRENT_ACTORS: ClassVar[int] = 3
+ MAX_CONCURRENT_ACTORS: ClassVar[int] = 1
MAX_TICK_TIME: ClassVar[int] = 10
CLAIM_FROM_TOP_N: ClassVar[int] = MAX_CONCURRENT_ACTORS * 10
diff --git a/archivebox/crawls/models.py b/archivebox/crawls/models.py
index 3d9b28d0..cfcb0684 100644
--- a/archivebox/crawls/models.py
+++ b/archivebox/crawls/models.py
@@ -150,8 +150,8 @@ class Crawl(ABIDModel, ModelWithHealthStats, ModelWithStateMachine):
parser = (self.seed and self.seed.extractor) or 'auto'
created_at = self.created_at.strftime("%Y-%m-%d %H:%M") if self.created_at else ''
if self.id and self.seed:
- return f'[{self.ABID}] {url[:64]} ({parser}) @ {created_at} ({self.label or "Untitled Crawl"})'
- return f'[{self.abid_prefix}****not*saved*yet****] {url[:64]} ({parser}) @ {created_at} ({self.label or "Untitled Crawl"})'
+ return f'\\[{self.ABID}] {url[:64]} ({parser}) @ {created_at} ({self.label or "Untitled Crawl"})'
+ return f'\\[{self.abid_prefix}****not*saved*yet****] {url[:64]} ({parser}) @ {created_at} ({self.label or "Untitled Crawl"})'
@classmethod
def from_seed(cls, seed: Seed, max_depth: int=0, persona: str='Default', tags_str: str='', config: dict|None=None, created_by: int|None=None):
@@ -184,26 +184,27 @@ class Crawl(ABIDModel, ModelWithHealthStats, ModelWithStateMachine):
return '/api/v1/docs#/Core%20Models/api_v1_core_get_crawl'
def pending_snapshots(self) -> QuerySet['Snapshot']:
- from core.models import Snapshot
- return self.snapshot_set.exclude(status__in=Snapshot.FINAL_OR_ACTIVE_STATES)
+ return self.snapshot_set.filter(retry_at__isnull=False)
def pending_archiveresults(self) -> QuerySet['ArchiveResult']:
from core.models import ArchiveResult
snapshot_ids = self.snapshot_set.values_list('id', flat=True)
- pending_archiveresults = ArchiveResult.objects.filter(snapshot_id__in=snapshot_ids).exclude(status__in=ArchiveResult.FINAL_OR_ACTIVE_STATES)
+ pending_archiveresults = ArchiveResult.objects.filter(snapshot_id__in=snapshot_ids, retry_at__isnull=True)
return pending_archiveresults
def create_root_snapshot(self) -> 'Snapshot':
from core.models import Snapshot
- root_snapshot, _ = Snapshot.objects.get_or_create(
- crawl=self,
+ root_snapshot, _ = Snapshot.objects.update_or_create(
url=self.seed.uri,
- status=Snapshot.INITIAL_STATE,
- retry_at=timezone.now(),
- timestamp=str(timezone.now().timestamp()),
- # config=self.seed.config,
+ defaults={
+ 'crawl': self,
+ 'status': Snapshot.INITIAL_STATE,
+ 'retry_at': timezone.now(),
+ 'timestamp': str(timezone.now().timestamp()),
+ # 'config': self.seed.config,
+ },
)
return root_snapshot
diff --git a/archivebox/crawls/statemachines.py b/archivebox/crawls/statemachines.py
index 12ba0e03..d3781933 100644
--- a/archivebox/crawls/statemachines.py
+++ b/archivebox/crawls/statemachines.py
@@ -1,5 +1,7 @@
__package__ = 'archivebox.crawls'
+from django.utils import timezone
+
from statemachine import State, StateMachine
from crawls.models import Crawl
@@ -31,7 +33,7 @@ class CrawlMachine(StateMachine, strict_states=True):
super().__init__(crawl, *args, **kwargs)
def can_start(self) -> bool:
- return self.crawl.seed and self.crawl.seed.uri
+ return bool(self.crawl.seed and self.crawl.seed.uri and (self.retry_at < timezone.now()))
def is_finished(self) -> bool:
if not self.crawl.snapshot_set.exists():
@@ -47,15 +49,17 @@ class CrawlMachine(StateMachine, strict_states=True):
# return "before_transition_return"
@started.enter
- def on_started(self):
+ def enter_started(self):
print(f'CrawlMachine[{self.crawl.ABID}].on_started(): crawl.create_root_snapshot() + crawl.bump_retry_at(+10s)')
- self.crawl.create_root_snapshot()
+ self.crawl.status = Crawl.StatusChoices.STARTED
self.crawl.bump_retry_at(seconds=10)
self.crawl.save()
+ self.crawl.create_root_snapshot()
@sealed.enter
- def on_sealed(self):
+ def enter_sealed(self):
print(f'CrawlMachine[{self.crawl.ABID}].on_sealed(): crawl.retry_at=None')
+ self.crawl.status = Crawl.StatusChoices.SEALED
self.crawl.retry_at = None
self.crawl.save()
diff --git a/archivebox/machine/models.py b/archivebox/machine/models.py
index 7686b73e..44e9e078 100644
--- a/archivebox/machine/models.py
+++ b/archivebox/machine/models.py
@@ -11,7 +11,7 @@ from django.utils.functional import cached_property
import abx
import archivebox
-from pydantic_pkgr import Binary, BinProvider
+from abx_pkg import Binary, BinProvider
from archivebox.abid_utils.models import ABIDModel, ABIDField, AutoDateTimeField, ModelWithHealthStats
from .detect import get_host_guid, get_os_info, get_vm_info, get_host_network, get_host_stats
@@ -323,7 +323,7 @@ class InstalledBinary(ABIDModel, ModelWithHealthStats):
# whereas a loaded binary is a not-yet saved instance that may not have the same config
# why would we want to load a binary record from the db when it could be freshly loaded?
def load_from_db(self) -> Binary:
- # TODO: implement defaults arg in pydantic_pkgr
+ # TODO: implement defaults arg in abx_pkg
# return self.BINARY.load(defaults={
# 'binprovider': self.BINPROVIDER,
# 'abspath': Path(self.abspath),
diff --git a/archivebox/main.py b/archivebox/main.py
index 9ce0b9bd..30697ae5 100755
--- a/archivebox/main.py
+++ b/archivebox/main.py
@@ -14,7 +14,7 @@ from crontab import CronTab, CronSlices
from django.db.models import QuerySet
from django.utils import timezone
-from pydantic_pkgr import Binary
+from abx_pkg import Binary
import abx
import archivebox
diff --git a/archivebox/pkgs/__init__.py b/archivebox/pkgs/__init__.py
index 3782fd92..449316c2 100644
--- a/archivebox/pkgs/__init__.py
+++ b/archivebox/pkgs/__init__.py
@@ -6,7 +6,7 @@ PKGS_DIR = Path(__file__).parent
VENDORED_PKGS = [
'abx',
- # 'pydantic-pkgr',
+ # 'abx-pkg',
# ... everything else in archivebox/pkgs/* comes after ...
]
diff --git a/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/__init__.py b/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/__init__.py
index c300bd13..09896924 100644
--- a/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/__init__.py
+++ b/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/__init__.py
@@ -1,3 +1,4 @@
+__package__ = 'abx_plugin_chrome'
__label__ = 'Chrome'
__author__ = 'ArchiveBox'
@@ -25,10 +26,11 @@ def ready():
CHROME_CONFIG.validate()
-# @abx.hookimpl
-# def get_EXTRACTORS():
-# return {
-# 'pdf': PDF_EXTRACTOR,
-# 'screenshot': SCREENSHOT_EXTRACTOR,
-# 'dom': DOM_EXTRACTOR,
-# }
+@abx.hookimpl
+def get_EXTRACTORS():
+ from .extractors import PDF_EXTRACTOR, SCREENSHOT_EXTRACTOR, DOM_EXTRACTOR
+ return {
+ 'pdf': PDF_EXTRACTOR,
+ 'screenshot': SCREENSHOT_EXTRACTOR,
+ 'dom': DOM_EXTRACTOR,
+ }
diff --git a/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/binaries.py b/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/binaries.py
index f315c992..29cfc13a 100644
--- a/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/binaries.py
+++ b/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/binaries.py
@@ -4,7 +4,7 @@ from pathlib import Path
from typing import List, Optional
from pydantic import InstanceOf
-from pydantic_pkgr import (
+from abx_pkg import (
Binary,
BinProvider,
BinName,
diff --git a/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/config.py b/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/config.py
index 6883cdd1..2635bffb 100644
--- a/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/config.py
+++ b/archivebox/pkgs/abx-plugin-chrome/abx_plugin_chrome/config.py
@@ -3,7 +3,7 @@ from pathlib import Path
from typing import List, Optional
from pydantic import Field
-from pydantic_pkgr import bin_abspath
+from abx_pkg import bin_abspath
from abx_spec_config.base_configset import BaseConfigSet
from abx_plugin_default_binproviders import env
diff --git a/archivebox/pkgs/abx-plugin-chrome/pyproject.toml b/archivebox/pkgs/abx-plugin-chrome/pyproject.toml
index da26078d..419d3962 100644
--- a/archivebox/pkgs/abx-plugin-chrome/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-chrome/pyproject.toml
@@ -7,7 +7,7 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-spec-abx-pkg>=0.1.0",
]
[build-system]
diff --git a/archivebox/pkgs/abx-plugin-curl/abx_plugin_curl/binaries.py b/archivebox/pkgs/abx-plugin-curl/abx_plugin_curl/binaries.py
index 32628248..ac819e5f 100644
--- a/archivebox/pkgs/abx-plugin-curl/abx_plugin_curl/binaries.py
+++ b/archivebox/pkgs/abx-plugin-curl/abx_plugin_curl/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_curl'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinName, Binary
+from abx_pkg import BinProvider, BinName, Binary
from abx_plugin_default_binproviders import apt, brew, env
diff --git a/archivebox/pkgs/abx-plugin-curl/pyproject.toml b/archivebox/pkgs/abx-plugin-curl/pyproject.toml
index f3c6ad55..83362372 100644
--- a/archivebox/pkgs/abx-plugin-curl/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-curl/pyproject.toml
@@ -7,7 +7,7 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-spec-abx-pkg>=0.1.0",
]
[build-system]
diff --git a/archivebox/pkgs/abx-plugin-default-binproviders/abx_plugin_default_binproviders.py b/archivebox/pkgs/abx-plugin-default-binproviders/abx_plugin_default_binproviders.py
index 58dbdac9..9dca52ef 100644
--- a/archivebox/pkgs/abx-plugin-default-binproviders/abx_plugin_default_binproviders.py
+++ b/archivebox/pkgs/abx-plugin-default-binproviders/abx_plugin_default_binproviders.py
@@ -3,7 +3,7 @@ import abx
from typing import Dict
-from pydantic_pkgr import (
+from abx_pkg import (
AptProvider,
BrewProvider,
EnvProvider,
diff --git a/archivebox/pkgs/abx-plugin-default-binproviders/pyproject.toml b/archivebox/pkgs/abx-plugin-default-binproviders/pyproject.toml
index 3f8fec96..30a7c746 100644
--- a/archivebox/pkgs/abx-plugin-default-binproviders/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-default-binproviders/pyproject.toml
@@ -6,8 +6,8 @@ readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
- "pydantic-pkgr>=0.5.4",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-pkg>=0.5.4",
+ "abx-spec-abx-pkg>=0.1.0",
]
[build-system]
diff --git a/archivebox/pkgs/abx-plugin-favicon/abx_plugin_favicon/__init__.py b/archivebox/pkgs/abx-plugin-favicon/abx_plugin_favicon/__init__.py
index 75004e3d..61423444 100644
--- a/archivebox/pkgs/abx-plugin-favicon/abx_plugin_favicon/__init__.py
+++ b/archivebox/pkgs/abx-plugin-favicon/abx_plugin_favicon/__init__.py
@@ -20,10 +20,10 @@ def get_CONFIG():
}
-# @abx.hookimpl
-# def get_EXTRACTORS():
-# from .extractors import FAVICON_EXTRACTOR
+@abx.hookimpl
+def get_EXTRACTORS():
+ from .extractors import FAVICON_EXTRACTOR
-# return {
-# 'favicon': FAVICON_EXTRACTOR,
-# }
+ return {
+ 'favicon': FAVICON_EXTRACTOR,
+ }
diff --git a/archivebox/pkgs/abx-plugin-git/abx_plugin_git/binaries.py b/archivebox/pkgs/abx-plugin-git/abx_plugin_git/binaries.py
index f352fd99..8b31660d 100644
--- a/archivebox/pkgs/abx-plugin-git/abx_plugin_git/binaries.py
+++ b/archivebox/pkgs/abx-plugin-git/abx_plugin_git/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_git'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinName, Binary
+from abx_pkg import BinProvider, BinName, Binary
from abx_plugin_default_binproviders import apt, brew, env
diff --git a/archivebox/pkgs/abx-plugin-git/abx_plugin_git/extractors.py b/archivebox/pkgs/abx-plugin-git/abx_plugin_git/extractors.py
index 4863d031..cc1e9a90 100644
--- a/archivebox/pkgs/abx-plugin-git/abx_plugin_git/extractors.py
+++ b/archivebox/pkgs/abx-plugin-git/abx_plugin_git/extractors.py
@@ -1,15 +1,20 @@
__package__ = 'abx_plugin_git'
-# from pathlib import Path
-
-# from .binaries import GIT_BINARY
+from pathlib import Path
-# class GitExtractor(BaseExtractor):
-# name: ExtractorName = 'git'
-# binary: str = GIT_BINARY.name
+from abx_pkg import BinName
-# def get_output_path(self, snapshot) -> Path | None:
-# return snapshot.as_link() / 'git'
+from abx_spec_extractor import BaseExtractor, ExtractorName
-# GIT_EXTRACTOR = GitExtractor()
+from .binaries import GIT_BINARY
+
+
+class GitExtractor(BaseExtractor):
+ name: ExtractorName = 'git'
+ binary: BinName = GIT_BINARY.name
+
+ def get_output_path(self, snapshot) -> Path | None:
+ return snapshot.as_link() / 'git'
+
+GIT_EXTRACTOR = GitExtractor()
diff --git a/archivebox/pkgs/abx-plugin-git/pyproject.toml b/archivebox/pkgs/abx-plugin-git/pyproject.toml
index 384599b7..07bc76c7 100644
--- a/archivebox/pkgs/abx-plugin-git/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-git/pyproject.toml
@@ -7,7 +7,7 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-spec-abx-pkg>=0.1.0",
"abx-plugin-default-binproviders>=2024.10.24",
]
diff --git a/archivebox/pkgs/abx-plugin-ldap-auth/abx_plugin_ldap_auth/binaries.py b/archivebox/pkgs/abx-plugin-ldap-auth/abx_plugin_ldap_auth/binaries.py
index 8ea4776d..e3a1d6fe 100644
--- a/archivebox/pkgs/abx-plugin-ldap-auth/abx_plugin_ldap_auth/binaries.py
+++ b/archivebox/pkgs/abx-plugin-ldap-auth/abx_plugin_ldap_auth/binaries.py
@@ -6,7 +6,7 @@ from typing import List
from pathlib import Path
from pydantic import InstanceOf
-from pydantic_pkgr import BinaryOverrides, SemVer, Binary, BinProvider
+from abx_pkg import BinaryOverrides, SemVer, Binary, BinProvider
from abx_plugin_default_binproviders import apt
from abx_plugin_pip.binproviders import SYS_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER, LIB_PIP_BINPROVIDER, VENV_SITE_PACKAGES, LIB_SITE_PACKAGES, USER_SITE_PACKAGES, SYS_SITE_PACKAGES
diff --git a/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/binaries.py b/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/binaries.py
index f015a7ca..5fe4d2ad 100644
--- a/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/binaries.py
+++ b/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_mercury'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinName, BinaryOverrides, bin_abspath, Binary
+from abx_pkg import BinProvider, BinName, BinaryOverrides, bin_abspath, Binary
from abx_plugin_default_binproviders import env
diff --git a/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/extractors.py b/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/extractors.py
index 36a17f3a..f0f2cf5f 100644
--- a/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/extractors.py
+++ b/archivebox/pkgs/abx-plugin-mercury/abx_plugin_mercury/extractors.py
@@ -1,17 +1,20 @@
__package__ = 'abx_plugin_mercury'
-# from pathlib import Path
+from pathlib import Path
-# from .binaries import MERCURY_BINARY
+from abx_pkg import BinName
+from abx_spec_extractor import BaseExtractor, ExtractorName
+
+from .binaries import MERCURY_BINARY
-# class MercuryExtractor(BaseExtractor):
-# name: ExtractorName = 'mercury'
-# binary: str = MERCURY_BINARY.name
+class MercuryExtractor(BaseExtractor):
+ name: ExtractorName = 'mercury'
+ binary: BinName = MERCURY_BINARY.name
-# def get_output_path(self, snapshot) -> Path | None:
-# return snapshot.link_dir / 'mercury' / 'content.html'
+ def get_output_path(self, snapshot) -> Path | None:
+ return snapshot.link_dir / 'mercury' / 'content.html'
-# MERCURY_EXTRACTOR = MercuryExtractor()
+MERCURY_EXTRACTOR = MercuryExtractor()
diff --git a/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binaries.py b/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binaries.py
index 4f44fc4a..e8ff9c02 100644
--- a/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binaries.py
+++ b/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binaries.py
@@ -1,4 +1,4 @@
-__package__ = 'plugins_pkg.npm'
+__package__ = 'abx_plugin_npm'
from typing import List
@@ -6,7 +6,7 @@ from typing import List
from pydantic import InstanceOf
from benedict import benedict
-from pydantic_pkgr import BinProvider, Binary, BinName, BinaryOverrides
+from abx_pkg import BinProvider, Binary, BinName, BinaryOverrides
from abx_plugin_default_binproviders import get_BINPROVIDERS
diff --git a/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binproviders.py b/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binproviders.py
index dd56e3a9..400c97c2 100644
--- a/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binproviders.py
+++ b/archivebox/pkgs/abx-plugin-npm/abx_plugin_npm/binproviders.py
@@ -2,7 +2,7 @@ import os
from pathlib import Path
from typing import Optional
-from pydantic_pkgr import NpmProvider, PATHStr, BinProviderName
+from abx_pkg import NpmProvider, PATHStr, BinProviderName
import abx
diff --git a/archivebox/pkgs/abx-plugin-npm/pyproject.toml b/archivebox/pkgs/abx-plugin-npm/pyproject.toml
index 1371b2c4..52179573 100644
--- a/archivebox/pkgs/abx-plugin-npm/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-npm/pyproject.toml
@@ -6,8 +6,8 @@ readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
- "pydantic-pkgr>=0.5.4",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-pkg>=0.5.4",
+ "abx-spec-abx-pkg>=0.1.0",
"abx-spec-config>=0.1.0",
"abx-plugin-default-binproviders>=2024.10.24",
]
diff --git a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/.plugin_order b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/.plugin_order
index 573541ac..d411bb7c 100644
--- a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/.plugin_order
+++ b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/.plugin_order
@@ -1 +1 @@
-0
+400
diff --git a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/__init__.py b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/__init__.py
index eebcdb5b..70236b34 100644
--- a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/__init__.py
+++ b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/__init__.py
@@ -1,5 +1,6 @@
__package__ = 'abx_plugin_pip'
__label__ = 'PIP'
+__order__ = 200
import abx
diff --git a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binaries.py b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binaries.py
index 18e5f34f..086f9a57 100644
--- a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binaries.py
+++ b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binaries.py
@@ -9,7 +9,7 @@ from pydantic import InstanceOf, Field, model_validator
import django
import django.db.backends.sqlite3.base
from django.db.backends.sqlite3.base import Database as django_sqlite3 # type: ignore[import-type]
-from pydantic_pkgr import BinProvider, Binary, BinName, BinaryOverrides, SemVer
+from abx_pkg import BinProvider, Binary, BinName, BinaryOverrides, SemVer
from .binproviders import LIB_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER, env, apt, brew
diff --git a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binproviders.py b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binproviders.py
index c29798b0..44e2c6b2 100644
--- a/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binproviders.py
+++ b/archivebox/pkgs/abx-plugin-pip/abx_plugin_pip/binproviders.py
@@ -6,7 +6,7 @@ from typing import Optional
from benedict import benedict
-from pydantic_pkgr import PipProvider, BinName, BinProviderName
+from abx_pkg import PipProvider, BinName, BinProviderName
import abx
diff --git a/archivebox/pkgs/abx-plugin-pip/pyproject.toml b/archivebox/pkgs/abx-plugin-pip/pyproject.toml
index 03f88d0b..04bee813 100644
--- a/archivebox/pkgs/abx-plugin-pip/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-pip/pyproject.toml
@@ -6,9 +6,9 @@ readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
- "pydantic-pkgr>=0.5.4",
+ "abx-pkg>=0.5.4",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-spec-abx-pkg>=0.1.0",
"abx-plugin-default-binproviders>=2024.10.24",
"django>=5.0.0",
]
diff --git a/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binaries.py b/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binaries.py
index 4b77d9d4..e6c59f25 100644
--- a/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binaries.py
+++ b/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_playwright'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinName, BinProvider, Binary
+from abx_pkg import BinName, BinProvider, Binary
from abx_plugin_pip.binproviders import LIB_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER
diff --git a/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binproviders.py b/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binproviders.py
index 972cb11a..467e938c 100644
--- a/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binproviders.py
+++ b/archivebox/pkgs/abx-plugin-playwright/abx_plugin_playwright/binproviders.py
@@ -7,7 +7,7 @@ from pathlib import Path
from typing import List, Optional, Dict, ClassVar
from pydantic import Field
-from pydantic_pkgr import (
+from abx_pkg import (
BinName,
BinProvider,
BinProviderName,
diff --git a/archivebox/pkgs/abx-plugin-playwright/pyproject.toml b/archivebox/pkgs/abx-plugin-playwright/pyproject.toml
index 0ad0d995..615ecb9e 100644
--- a/archivebox/pkgs/abx-plugin-playwright/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-playwright/pyproject.toml
@@ -7,8 +7,8 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"pydantic>=2.4.2",
- "pydantic-pkgr>=0.5.4",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-pkg>=0.5.4",
+ "abx-spec-abx-pkg>=0.1.0",
"abx-spec-config>=0.1.0",
]
diff --git a/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binaries.py b/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binaries.py
index 8afd484f..aad17516 100644
--- a/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binaries.py
+++ b/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_puppeteer'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinName, Binary
+from abx_pkg import BinProvider, BinName, Binary
from abx_plugin_default_binproviders import env
diff --git a/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binproviders.py b/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binproviders.py
index e7b697bd..e65855ae 100644
--- a/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binproviders.py
+++ b/archivebox/pkgs/abx-plugin-puppeteer/abx_plugin_puppeteer/binproviders.py
@@ -4,7 +4,7 @@ from pathlib import Path
from typing import List, Optional, Dict, ClassVar
from pydantic import Field
-from pydantic_pkgr import (
+from abx_pkg import (
BinProvider,
BinName,
BinProviderName,
diff --git a/archivebox/pkgs/abx-plugin-puppeteer/pyproject.toml b/archivebox/pkgs/abx-plugin-puppeteer/pyproject.toml
index 2633b481..cda3c18b 100644
--- a/archivebox/pkgs/abx-plugin-puppeteer/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-puppeteer/pyproject.toml
@@ -7,8 +7,8 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
- "pydantic-pkgr>=0.5.4",
+ "abx-spec-abx-pkg>=0.1.0",
+ "abx-pkg>=0.5.4",
]
[build-system]
diff --git a/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/binaries.py b/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/binaries.py
index 65ecf57c..16215cfb 100644
--- a/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/binaries.py
+++ b/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_readability'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import Binary, BinProvider, BinaryOverrides, BinName
+from abx_pkg import Binary, BinProvider, BinaryOverrides, BinName
from abx_plugin_default_binproviders import env
from abx_plugin_npm.binproviders import SYS_NPM_BINPROVIDER, LIB_NPM_BINPROVIDER
diff --git a/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/extractors.py b/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/extractors.py
index 64d712ed..f44f8e97 100644
--- a/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/extractors.py
+++ b/archivebox/pkgs/abx-plugin-readability/abx_plugin_readability/extractors.py
@@ -1,19 +1,19 @@
# __package__ = 'abx_plugin_readability'
-# from pathlib import Path
+from pathlib import Path
-# from pydantic_pkgr import BinName
+from abx_pkg import BinName
+
+from abx_spec_extractor import BaseExtractor, ExtractorName
+from .binaries import READABILITY_BINARY
-# from .binaries import READABILITY_BINARY
+class ReadabilityExtractor(BaseExtractor):
+ name: ExtractorName = 'readability'
+ binary: BinName = READABILITY_BINARY.name
+
+ def get_output_path(self, snapshot) -> Path:
+ return Path(snapshot.link_dir) / 'readability' / 'content.html'
-# class ReadabilityExtractor(BaseExtractor):
-# name: str = 'readability'
-# binary: BinName = READABILITY_BINARY.name
-
-# def get_output_path(self, snapshot) -> Path:
-# return Path(snapshot.link_dir) / 'readability' / 'content.html'
-
-
-# READABILITY_EXTRACTOR = ReadabilityExtractor()
+READABILITY_EXTRACTOR = ReadabilityExtractor()
diff --git a/archivebox/pkgs/abx-plugin-readwise/abx_plugin_readwise.py b/archivebox/pkgs/abx-plugin-readwise/abx_plugin_readwise.py
index ea31cd14..556ee297 100644
--- a/archivebox/pkgs/abx-plugin-readwise/abx_plugin_readwise.py
+++ b/archivebox/pkgs/abx-plugin-readwise/abx_plugin_readwise.py
@@ -3,7 +3,7 @@ __id__ = 'abx_plugin_readwise_extractor'
__label__ = 'Readwise API'
__version__ = '2024.10.27'
__author__ = 'ArchiveBox'
-__homepage__ = 'https://github.com/ArchiveBox/ArchiveBox/tree/dev/archivebox/plugins_extractor/readwise'
+__homepage__ = 'https://github.com/ArchiveBox/ArchiveBox/tree/dev/archivebox/pkgs/abx-plugin-readwise-extractor'
__dependencies__ = []
import abx
diff --git a/archivebox/pkgs/abx-plugin-ripgrep-search/abx_plugin_ripgrep_search/binaries.py b/archivebox/pkgs/abx-plugin-ripgrep-search/abx_plugin_ripgrep_search/binaries.py
index ef9217ad..f01a77f9 100644
--- a/archivebox/pkgs/abx-plugin-ripgrep-search/abx_plugin_ripgrep_search/binaries.py
+++ b/archivebox/pkgs/abx-plugin-ripgrep-search/abx_plugin_ripgrep_search/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_ripgrep_search'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinaryOverrides, BinName, Binary
+from abx_pkg import BinProvider, BinaryOverrides, BinName, Binary
from abx_plugin_default_binproviders import apt, brew, env
diff --git a/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/binaries.py b/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/binaries.py
index 7af784a3..c1db9acd 100644
--- a/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/binaries.py
+++ b/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/binaries.py
@@ -1,7 +1,7 @@
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import Binary, BinProvider, BinaryOverrides, BinName, bin_abspath
+from abx_pkg import Binary, BinProvider, BinaryOverrides, BinName, bin_abspath
from abx_plugin_default_binproviders import env
from abx_plugin_npm.binproviders import SYS_NPM_BINPROVIDER, LIB_NPM_BINPROVIDER
diff --git a/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/extractors.py b/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/extractors.py
index 07b674ac..07ec50dc 100644
--- a/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/extractors.py
+++ b/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/extractors.py
@@ -1,18 +1,21 @@
__package__ = 'abx_plugin_singlefile'
-# from pathlib import Path
-# from pydantic_pkgr import BinName
+from pathlib import Path
-# from .binaries import SINGLEFILE_BINARY
+from abx_pkg import BinName
+
+from abx_spec_extractor import BaseExtractor, ExtractorName
+
+from .binaries import SINGLEFILE_BINARY
-# class SinglefileExtractor(BaseExtractor):
-# name: str = 'singlefile'
-# binary: BinName = SINGLEFILE_BINARY.name
+class SinglefileExtractor(BaseExtractor):
+ name: ExtractorName = 'singlefile'
+ binary: BinName = SINGLEFILE_BINARY.name
-# def get_output_path(self, snapshot) -> Path:
-# return Path(snapshot.link_dir) / 'singlefile.html'
+ def get_output_path(self, snapshot) -> Path:
+ return Path(snapshot.link_dir) / 'singlefile.html'
-# SINGLEFILE_EXTRACTOR = SinglefileExtractor()
+SINGLEFILE_EXTRACTOR = SinglefileExtractor()
diff --git a/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/migrations/__init__.py b/archivebox/pkgs/abx-plugin-singlefile/abx_plugin_singlefile/migrations/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/archivebox/pkgs/abx-plugin-singlefile/pyproject.toml b/archivebox/pkgs/abx-plugin-singlefile/pyproject.toml
index 7cecd40a..4af3467d 100644
--- a/archivebox/pkgs/abx-plugin-singlefile/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-singlefile/pyproject.toml
@@ -7,8 +7,8 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
- "pydantic-pkgr>=0.5.4",
+ "abx-spec-abx-pkg>=0.1.0",
+ "abx-pkg>=0.5.4",
]
[build-system]
diff --git a/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/binaries.py b/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/binaries.py
index 2e8fb536..06b89b8c 100644
--- a/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/binaries.py
+++ b/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/binaries.py
@@ -3,7 +3,7 @@ __package__ = 'abx_plugin_sonic_search'
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinaryOverrides, BinName, Binary
+from abx_pkg import BinProvider, BinaryOverrides, BinName, Binary
from abx_plugin_default_binproviders import brew, env
diff --git a/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/searchbackend.py b/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/searchbackend.py
index a63a0132..5ad98ab6 100644
--- a/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/searchbackend.py
+++ b/archivebox/pkgs/abx-plugin-sonic-search/abx_plugin_sonic_search/searchbackend.py
@@ -1,4 +1,4 @@
-__package__ = 'plugins_search.sonic'
+__package__ = 'abx_plugin_sonic_search'
from typing import List, Generator, cast
diff --git a/archivebox/pkgs/abx-plugin-sonic-search/pyproject.toml b/archivebox/pkgs/abx-plugin-sonic-search/pyproject.toml
index b6551b52..4a0348fa 100644
--- a/archivebox/pkgs/abx-plugin-sonic-search/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-sonic-search/pyproject.toml
@@ -7,9 +7,9 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-spec-abx-pkg>=0.1.0",
"abx-spec-searchbackend>=0.1.0",
- "pydantic-pkgr>=0.5.4",
+ "abx-pkg>=0.5.4",
]
[build-system]
diff --git a/archivebox/pkgs/abx-plugin-title/abx_plugin_title/__init__.py b/archivebox/pkgs/abx-plugin-title/abx_plugin_title/__init__.py
index d3e5cac5..10477ae0 100644
--- a/archivebox/pkgs/abx-plugin-title/abx_plugin_title/__init__.py
+++ b/archivebox/pkgs/abx-plugin-title/abx_plugin_title/__init__.py
@@ -7,3 +7,11 @@ import abx
# return {
# 'title_extractor': TITLE_EXTRACTOR_CONFIG
# }
+
+
+@abx.hookimpl
+def get_EXTRACTORS():
+ from .extractors import TITLE_EXTRACTOR
+ return {
+ 'title': TITLE_EXTRACTOR,
+ }
diff --git a/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/binaries.py b/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/binaries.py
index 39cbe111..a9605b2a 100644
--- a/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/binaries.py
+++ b/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/binaries.py
@@ -4,7 +4,7 @@ from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinName, Binary
+from abx_pkg import BinProvider, BinName, Binary
from abx_plugin_default_binproviders import apt, brew, env
diff --git a/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/extractors.py b/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/extractors.py
index 4d4d0243..ad9bcf86 100644
--- a/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/extractors.py
+++ b/archivebox/pkgs/abx-plugin-wget/abx_plugin_wget/extractors.py
@@ -1,35 +1,37 @@
__package__ = 'abx_plugin_wget'
-# from pathlib import Path
+from pathlib import Path
-# from pydantic_pkgr import BinName
+from abx_pkg import BinName
-# from .binaries import WGET_BINARY
-# from .wget_util import wget_output_path
+from abx_spec_extractor import BaseExtractor, ExtractorName
-# class WgetExtractor(BaseExtractor):
-# name: ExtractorName = 'wget'
-# binary: BinName = WGET_BINARY.name
+from .binaries import WGET_BINARY
+from .wget_util import wget_output_path
-# def get_output_path(self, snapshot) -> Path | None:
-# wget_index_path = wget_output_path(snapshot.as_link())
-# if wget_index_path:
-# return Path(wget_index_path)
-# return None
+class WgetExtractor(BaseExtractor):
+ name: ExtractorName = 'wget'
+ binary: BinName = WGET_BINARY.name
-# WGET_EXTRACTOR = WgetExtractor()
+ def get_output_path(self, snapshot) -> Path | None:
+ wget_index_path = wget_output_path(snapshot.as_link())
+ if wget_index_path:
+ return Path(wget_index_path)
+ return None
+
+WGET_EXTRACTOR = WgetExtractor()
-# class WarcExtractor(BaseExtractor):
-# name: ExtractorName = 'warc'
-# binary: BinName = WGET_BINARY.name
+class WarcExtractor(BaseExtractor):
+ name: ExtractorName = 'warc'
+ binary: BinName = WGET_BINARY.name
-# def get_output_path(self, snapshot) -> Path | None:
-# warc_files = list((Path(snapshot.link_dir) / 'warc').glob('*.warc.gz'))
-# if warc_files:
-# return sorted(warc_files, key=lambda x: x.stat().st_size, reverse=True)[0]
-# return None
+ def get_output_path(self, snapshot) -> Path | None:
+ warc_files = list((Path(snapshot.link_dir) / 'warc').glob('*.warc.gz'))
+ if warc_files:
+ return sorted(warc_files, key=lambda x: x.stat().st_size, reverse=True)[0]
+ return None
-# WARC_EXTRACTOR = WarcExtractor()
+WARC_EXTRACTOR = WarcExtractor()
diff --git a/archivebox/pkgs/abx-plugin-wget/pyproject.toml b/archivebox/pkgs/abx-plugin-wget/pyproject.toml
index d401e52f..f77617fd 100644
--- a/archivebox/pkgs/abx-plugin-wget/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-wget/pyproject.toml
@@ -7,7 +7,7 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-spec-abx-pkg>=0.1.0",
]
[build-system]
diff --git a/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/binaries.py b/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/binaries.py
index 69239515..d5eb49e5 100644
--- a/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/binaries.py
+++ b/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/binaries.py
@@ -4,7 +4,7 @@ import subprocess
from typing import List
from pydantic import InstanceOf
-from pydantic_pkgr import BinProvider, BinName, BinaryOverrides, Binary
+from abx_pkg import BinProvider, BinName, BinaryOverrides, Binary
from abx_plugin_default_binproviders import apt, brew, env
from abx_plugin_pip.binproviders import LIB_PIP_BINPROVIDER, VENV_PIP_BINPROVIDER, SYS_PIP_BINPROVIDER
diff --git a/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/config.py b/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/config.py
index b36d19d1..11a756eb 100644
--- a/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/config.py
+++ b/archivebox/pkgs/abx-plugin-ytdlp/abx_plugin_ytdlp/config.py
@@ -1,4 +1,4 @@
-__package__ = 'plugins_extractor.ytdlp'
+__package__ = 'abx_plugin_ytdlp'
from typing import List
diff --git a/archivebox/pkgs/abx-plugin-ytdlp/pyproject.toml b/archivebox/pkgs/abx-plugin-ytdlp/pyproject.toml
index b45626bd..df0ec185 100644
--- a/archivebox/pkgs/abx-plugin-ytdlp/pyproject.toml
+++ b/archivebox/pkgs/abx-plugin-ytdlp/pyproject.toml
@@ -7,8 +7,8 @@ requires-python = ">=3.10"
dependencies = [
"abx>=0.1.0",
"abx-spec-config>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
- "pydantic-pkgr>=0.5.4",
+ "abx-spec-abx-pkg>=0.1.0",
+ "abx-pkg>=0.5.4",
]
[build-system]
diff --git a/archivebox/pkgs/abx-spec-archivebox/abx_spec_archivebox/__init__.py b/archivebox/pkgs/abx-spec-archivebox/abx_spec_archivebox/__init__.py
index ab591c96..8127952b 100644
--- a/archivebox/pkgs/abx-spec-archivebox/abx_spec_archivebox/__init__.py
+++ b/archivebox/pkgs/abx-spec-archivebox/abx_spec_archivebox/__init__.py
@@ -11,13 +11,13 @@ from typing import cast
import abx
from abx_spec_config import ConfigPluginSpec
-from abx_spec_pydantic_pkgr import PydanticPkgrPluginSpec
+from abx_spec_abx_pkg import AbxPkgPluginSpec
from abx_spec_django import DjangoPluginSpec
from abx_spec_searchbackend import SearchBackendPluginSpec
-class ArchiveBoxPluginSpec(ConfigPluginSpec, PydanticPkgrPluginSpec, DjangoPluginSpec, SearchBackendPluginSpec):
+class ArchiveBoxPluginSpec(ConfigPluginSpec, AbxPkgPluginSpec, DjangoPluginSpec, SearchBackendPluginSpec):
"""
- ArchiveBox plugins can use any of the hooks from the Config, PydanticPkgr, and Django plugin specs.
+ ArchiveBox plugins can use any of the hooks from the Config, AbxPkg, and Django plugin specs.
"""
pass
diff --git a/archivebox/pkgs/abx-spec-config/abx_spec_config/__init__.py b/archivebox/pkgs/abx-spec-config/abx_spec_config/__init__.py
index 6aeedb71..003801e9 100644
--- a/archivebox/pkgs/abx-spec-config/abx_spec_config/__init__.py
+++ b/archivebox/pkgs/abx-spec-config/abx_spec_config/__init__.py
@@ -2,10 +2,12 @@ __order__ = 100
import os
from pathlib import Path
-from typing import Dict, Any, cast
+from typing import Any, cast, TYPE_CHECKING
from benedict import benedict
+if TYPE_CHECKING:
+ from archivebox.config.constants import ConstantsDict
import abx
@@ -13,38 +15,43 @@ from .base_configset import BaseConfigSet, ConfigKeyStr
class ConfigPluginSpec:
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_collection_config_path(self) -> Path:
+ def get_collection_config_path() -> Path:
return Path(os.getcwd()) / "ArchiveBox.conf"
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_system_config_path(self) -> Path:
+ def get_system_config_path() -> Path:
return Path('~/.config/abx/abx.conf').expanduser()
+ @staticmethod
@abx.hookspec
@abx.hookimpl
- def get_CONFIG(self) -> Dict[abx.PluginId, BaseConfigSet]:
+ def get_CONFIG() -> dict[abx.PluginId, 'BaseConfigSet | ConstantsDict']:
+ from archivebox import CONSTANTS
"""Get the config for a single plugin -> {plugin_id: PluginConfigSet()}"""
return {
- # override this in your plugin to return your plugin's config, e.g.
- # 'ytdlp': YtdlpConfig(...),
+ 'CONSTANTS': CONSTANTS,
}
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_CONFIGS(self) -> Dict[abx.PluginId, BaseConfigSet]:
+ def get_CONFIGS() -> dict[abx.PluginId, BaseConfigSet]:
"""Get the config for all plugins by plugin_id -> {plugin_abc: PluginABCConfigSet(), plugin_xyz: PluginXYZConfigSet(), ...}"""
return abx.as_dict(pm.hook.get_CONFIG())
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_FLAT_CONFIG(self) -> Dict[ConfigKeyStr, Any]:
+ def get_FLAT_CONFIG() -> dict[ConfigKeyStr, Any]:
"""Get the flat config assembled from all plugins config -> {SOME_KEY: 'someval', 'OTHER_KEY': 'otherval', ...}"""
return benedict({
key: value
@@ -52,9 +59,10 @@ class ConfigPluginSpec:
for key, value in benedict(configset).items()
})
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_SCOPE_CONFIG(self, extra=None, archiveresult=None, snapshot=None, crawl=None, user=None, collection=..., environment=..., machine=..., default=...) -> Dict[ConfigKeyStr, Any]:
+ def get_SCOPE_CONFIG(extra=None, archiveresult=None, snapshot=None, crawl=None, user=None, collection=..., environment=..., machine=..., default=...) -> dict[ConfigKeyStr, Any]:
"""Get the config as it applies to you right now, based on the current context"""
return benedict({
**pm.hook.get_default_config(default=default),
@@ -69,35 +77,41 @@ class ConfigPluginSpec:
**(extra or {}),
})
+ @staticmethod
# @abx.hookspec(firstresult=True)
# @abx.hookimpl
- # def get_request_config(self, request) -> dict:
+ # def get_request_config(request) -> dict:
# session = getattr(request, 'session', None)
# return getattr(session, 'config', None) or {}
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_archiveresult_config(self, archiveresult) -> Dict[ConfigKeyStr, Any]:
+ def get_archiveresult_config(archiveresult) -> dict[ConfigKeyStr, Any]:
return getattr(archiveresult, 'config', None) or {}
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_snapshot_config(self, snapshot) -> Dict[ConfigKeyStr, Any]:
+ def get_snapshot_config(snapshot) -> dict[ConfigKeyStr, Any]:
return getattr(snapshot, 'config', None) or {}
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_crawl_config(self, crawl) -> Dict[ConfigKeyStr, Any]:
+ def get_crawl_config(crawl) -> dict[ConfigKeyStr, Any]:
return getattr(crawl, 'config', None) or {}
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_user_config(self, user=None) -> Dict[ConfigKeyStr, Any]:
+ def get_user_config(user=None) -> dict[ConfigKeyStr, Any]:
return getattr(user, 'config', None) or {}
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_collection_config(self, collection=...) -> Dict[ConfigKeyStr, Any]:
+ def get_collection_config(collection=...) -> dict[ConfigKeyStr, Any]:
# ... = ellipsis, means automatically get the collection config from the active data/ArchiveBox.conf file
# {} = empty dict, override to ignore the collection config
return benedict({
@@ -106,9 +120,10 @@ class ConfigPluginSpec:
for key, value in configset.from_collection().items()
}) if collection == ... else collection
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_environment_config(self, environment=...) -> Dict[ConfigKeyStr, Any]:
+ def get_environment_config(environment=...) -> dict[ConfigKeyStr, Any]:
# ... = ellipsis, means automatically get the environment config from the active environment variables
# {} = empty dict, override to ignore the environment config
return benedict({
@@ -117,18 +132,20 @@ class ConfigPluginSpec:
for key, value in configset.from_environment().items()
}) if environment == ... else environment
+ @staticmethod
# @abx.hookspec(firstresult=True)
# @abx.hookimpl
- # def get_machine_config(self, machine=...) -> dict:
+ # def get_machine_config(machine=...) -> dict:
# # ... = ellipsis, means automatically get the machine config from the currently executing machine
# # {} = empty dict, override to ignore the machine config
# if machine == ...:
# machine = Machine.objects.get_current()
# return getattr(machine, 'config', None) or {}
+ @staticmethod
@abx.hookspec(firstresult=True)
@abx.hookimpl
- def get_default_config(self, default=...) -> Dict[ConfigKeyStr, Any]:
+ def get_default_config(default=...) -> dict[ConfigKeyStr, Any]:
# ... = ellipsis, means automatically get the machine config from the currently executing machine
# {} = empty dict, override to ignore the machine config
return benedict({
diff --git a/archivebox/pkgs/abx-spec-django/abx_spec_django.py b/archivebox/pkgs/abx-spec-django/abx_spec_django.py
index 562dad72..28471dc6 100644
--- a/archivebox/pkgs/abx-spec-django/abx_spec_django.py
+++ b/archivebox/pkgs/abx-spec-django/abx_spec_django.py
@@ -1,4 +1,3 @@
-__order__ = 300
import abx
from typing import List, Dict, Any, cast
@@ -6,6 +5,8 @@ from typing import List, Dict, Any, cast
###########################################################################################
class DjangoPluginSpec:
+ __order__ = 10
+
@abx.hookspec
def get_INSTALLED_APPS() -> List[str]:
return ['abx_spec_django']
diff --git a/archivebox/pkgs/abx-spec-extractor/abx_spec_extractor.py b/archivebox/pkgs/abx-spec-extractor/abx_spec_extractor.py
index 74659467..983a6afb 100644
--- a/archivebox/pkgs/abx-spec-extractor/abx_spec_extractor.py
+++ b/archivebox/pkgs/abx-spec-extractor/abx_spec_extractor.py
@@ -1,10 +1,12 @@
+__order__ = 10
+
import os
from typing import Optional, List, Annotated, Tuple
from pathlib import Path
from pydantic import AfterValidator
-from pydantic_pkgr import BinName
+from abx_pkg import BinName
import abx
@@ -23,7 +25,7 @@ CmdArgsList = Annotated[List[str] | Tuple[str, ...], AfterValidator(assert_no_em
@abx.hookspec
@abx.hookimpl
def get_EXTRACTORS():
- return []
+ return {}
@abx.hookspec
@abx.hookimpl
diff --git a/archivebox/pkgs/abx-spec-pydantic-pkgr/README.md b/archivebox/pkgs/abx-spec-pydantic-pkgr/README.md
deleted file mode 100644
index e69de29b..00000000
diff --git a/archivebox/pkgs/abx-spec-pydantic-pkgr/abx_spec_pydantic_pkgr.py b/archivebox/pkgs/abx-spec-pydantic-pkgr/abx_spec_pydantic_pkgr.py
deleted file mode 100644
index b95b3f33..00000000
--- a/archivebox/pkgs/abx-spec-pydantic-pkgr/abx_spec_pydantic_pkgr.py
+++ /dev/null
@@ -1,114 +0,0 @@
-__order__ = 200
-
-import os
-
-from typing import Dict, cast
-from pathlib import Path
-
-from pydantic_pkgr import Binary, BinProvider
-
-import abx
-
-from abx_spec_config import ConfigPluginSpec
-
-###########################################################################################
-
-class PydanticPkgrPluginSpec:
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def get_LIB_DIR(self) -> Path:
- """Get the directory where shared runtime libraries/dependencies should be installed"""
- FLAT_CONFIG = pm.hook.get_FLAT_CONFIG()
- LIB_DIR = Path(FLAT_CONFIG.get('LIB_DIR', '/usr/local/share/abx'))
- return LIB_DIR
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def get_BIN_DIR(self) -> Path:
- """Get the directory where binaries should be symlinked to"""
- FLAT_CONFIG = pm.hook.get_FLAT_CONFIG()
- LIB_DIR = pm.hook.get_LIB_DIR()
- BIN_DIR = Path(FLAT_CONFIG.get('BIN_DIR') or LIB_DIR / 'bin')
- return BIN_DIR
-
- @abx.hookspec
- @abx.hookimpl
- def get_BINPROVIDERS(self) -> Dict[str, BinProvider]:
- return {
- # to be implemented by plugins, e.g.:
- # 'npm': NpmBinProvider(npm_prefix=Path('/usr/local/share/abx/npm')),
- }
-
- @abx.hookspec
- @abx.hookimpl
- def get_BINARIES(self) -> Dict[str, Binary]:
- return {
- # to be implemented by plugins, e.g.:
- # 'yt-dlp': Binary(name='yt-dlp', binproviders=[npm]),
- }
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def get_BINPROVIDER(self, binprovider_name: str) -> BinProvider:
- """Get a specific BinProvider by name"""
- return abx.as_dict(pm.hook.get_BINPROVIDERS())[binprovider_name]
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def get_BINARY(self, bin_name: str) -> Binary:
- """Get a specific Binary by name"""
- return abx.as_dict(pm.hook.get_BINARIES())[bin_name]
-
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def binary_load(self, binary: Binary, **kwargs) -> Binary:
- """Load a binary from the filesystem (override to load a binary from a different source, e.g. DB, cache, etc.)"""
- loaded_binary = binary.load(**kwargs)
- pm.hook.binary_symlink_to_bin_dir(binary=loaded_binary)
- return loaded_binary
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def binary_install(self, binary: Binary, **kwargs) -> Binary:
- """Override to change how a binary is installed (e.g. by downloading from a remote source, etc.)"""
- loaded_binary = binary.install(**kwargs)
- pm.hook.binary_symlink_to_bin_dir(binary=loaded_binary)
- return loaded_binary
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def binary_load_or_install(self, binary: Binary, **kwargs) -> Binary:
- """Override to change how a binary is loaded or installed (e.g. by downloading from a remote source, etc.)"""
- loaded_binary = binary.load_or_install(**kwargs)
- pm.hook.binary_symlink_to_bin_dir(binary=loaded_binary)
- return loaded_binary
-
- @abx.hookspec(firstresult=True)
- @abx.hookimpl
- def binary_symlink_to_bin_dir(self, binary: Binary, bin_dir: Path | None=None):
- if not (binary.abspath and os.path.isfile(binary.abspath)):
- return
-
- BIN_DIR = pm.hook.get_BIN_DIR()
- try:
- BIN_DIR.mkdir(parents=True, exist_ok=True)
- symlink = BIN_DIR / binary.name
- symlink.unlink(missing_ok=True)
- symlink.symlink_to(binary.abspath)
- symlink.chmod(0o777) # make sure its executable by everyone
- except Exception:
- # print(f'[red]:warning: Failed to symlink {symlink} -> {binary.abspath}[/red] {err}')
- # not actually needed, we can just run without it
- pass
-
-
-PLUGIN_SPEC = PydanticPkgrPluginSpec
-
-
-class RequiredSpecsAvailable(ConfigPluginSpec, PydanticPkgrPluginSpec):
- pass
-
-TypedPluginManager = abx.ABXPluginManager[RequiredSpecsAvailable]
-pm = cast(TypedPluginManager, abx.pm)
diff --git a/archivebox/pkgs/abx-spec-pydantic-pkgr/pyproject.toml b/archivebox/pkgs/abx-spec-pydantic-pkgr/pyproject.toml
deleted file mode 100644
index 67f1f62f..00000000
--- a/archivebox/pkgs/abx-spec-pydantic-pkgr/pyproject.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-[project]
-name = "abx-spec-pydantic-pkgr"
-version = "0.1.0"
-description = "The ABX plugin specification for Binaries and BinProviders"
-readme = "README.md"
-requires-python = ">=3.10"
-dependencies = [
- "abx>=0.1.0",
- "pydantic-pkgr>=0.5.4",
-]
-
-[build-system]
-requires = ["hatchling"]
-build-backend = "hatchling.build"
-
-[project.entry-points.abx]
-abx_spec_pydantic_pkgr = "abx_spec_pydantic_pkgr"
diff --git a/archivebox/pkgs/abx-spec-searchbackend/abx_spec_searchbackend.py b/archivebox/pkgs/abx-spec-searchbackend/abx_spec_searchbackend.py
index 8bc53eb8..04cbdb4c 100644
--- a/archivebox/pkgs/abx-spec-searchbackend/abx_spec_searchbackend.py
+++ b/archivebox/pkgs/abx-spec-searchbackend/abx_spec_searchbackend.py
@@ -25,6 +25,9 @@ class BaseSearchBackend(abc.ABC):
class SearchBackendPluginSpec:
+ __order__ = 10
+
+ @staticmethod
@abx.hookspec
@abx.hookimpl
def get_SEARCHBACKENDS() -> Dict[abx.PluginId, BaseSearchBackend]:
diff --git a/archivebox/pkgs/abx/abx.py b/archivebox/pkgs/abx/abx.py
index de4f0046..8e76ead5 100644
--- a/archivebox/pkgs/abx/abx.py
+++ b/archivebox/pkgs/abx/abx.py
@@ -244,10 +244,12 @@ def get_plugin_order(plugin: PluginId | Path | ModuleType | Type) -> Tuple[int,
except FileNotFoundError:
pass
+ default_order = 10 if '_spec_' in str(plugin_dir).lower() else 999
+
if plugin_module:
- order = getattr(plugin_module, '__order__', 999)
+ order = getattr(plugin_module, '__order__', default_order)
else:
- order = 999
+ order = default_order
assert order is not None
assert plugin_dir
@@ -270,7 +272,10 @@ def get_plugin(plugin: PluginId | ModuleType | Type) -> PluginInfo:
elif inspect.isclass(plugin):
module = inspect.getmodule(plugin)
else:
- raise ValueError(f'Invalid plugin, must be a module, class, or plugin ID (package name): {plugin}')
+ plugin = type(plugin)
+ module = inspect.getmodule(plugin)
+
+ # raise ValueError(f'Invalid plugin, must be a module, class, or plugin ID (package name): {plugin}')
assert module
@@ -416,9 +421,14 @@ def load_plugins(plugins: Iterable[PluginId | ModuleType | Type] | Dict[PluginId
PLUGINS_TO_LOAD = []
LOADED_PLUGINS = {}
- for plugin in plugins:
- plugin_info = get_plugin(plugin)
- assert plugin_info, f'No plugin metadata found for {plugin}'
+ plugin_infos = sorted([
+ get_plugin(plugin)
+ for plugin in plugins
+ ], key=lambda plugin: plugin.get('order', 999))
+
+
+ for plugin_info in plugin_infos:
+ assert plugin_info, 'No plugin metadata found for plugin'
assert 'id' in plugin_info and 'module' in plugin_info
if plugin_info['module'] in pm.get_plugins():
LOADED_PLUGINS[plugin_info['id']] = plugin_info
@@ -431,7 +441,7 @@ def load_plugins(plugins: Iterable[PluginId | ModuleType | Type] | Dict[PluginId
for plugin_info in PLUGINS_TO_LOAD:
pm.register(plugin_info['module'])
LOADED_PLUGINS[plugin_info['id']] = plugin_info
- # print(f' √ Loaded plugin: {plugin_id}')
+ print(f' √ Loaded plugin: {plugin_info["id"]}')
return benedict(LOADED_PLUGINS)
@cache
diff --git a/archivebox/seeds/__init__.py b/archivebox/seeds/__init__.py
index 3c276826..7c3cd823 100644
--- a/archivebox/seeds/__init__.py
+++ b/archivebox/seeds/__init__.py
@@ -1,5 +1,6 @@
__package__ = 'archivebox.seeds'
+__order__ = 100
import abx
diff --git a/pyproject.toml b/pyproject.toml
index dbe5c0a4..219d67bb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "archivebox"
-version = "0.8.6rc1"
+version = "0.8.6rc2"
requires-python = ">=3.10"
description = "Self-hosted internet archiving solution."
authors = [{name = "Nick Sweeting", email = "pyproject.toml@archivebox.io"}]
@@ -80,13 +80,13 @@ dependencies = [
"django-taggit==6.1.0",
"base32-crockford==0.3.0",
"platformdirs>=4.3.6",
- "pydantic-pkgr>=0.5.4",
+ "abx-pkg>=0.6.0",
"pocket>=0.3.6",
"sonic-client>=1.0.0",
"yt-dlp>=2024.8.6", # for: media"
############# Plugin Dependencies ################
"abx>=0.1.0",
- "abx-spec-pydantic-pkgr>=0.1.0",
+ "abx-spec-abx-pkg>=0.1.1",
"abx-spec-config>=0.1.0",
"abx-spec-archivebox>=0.1.0",
"abx-spec-django>=0.1.0",
@@ -178,10 +178,10 @@ dev-dependencies = [
]
[tool.uv.sources]
-# pydantic-pkgr = { workspace = true }
+# abx-pkg = { workspace = true }
abx = { workspace = true }
-abx-spec-pydantic-pkgr = { workspace = true }
+abx-spec-abx-pkg = { workspace = true }
abx-spec-config = { workspace = true }
abx-spec-archivebox = { workspace = true }
abx-spec-django = { workspace = true }
diff --git a/requirements.txt b/requirements.txt
index cf5cbb48..1302bae5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
# This file was autogenerated by uv via the following command:
# uv pip compile pyproject.toml --all-extras -o requirements.txt
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx
# via
# archivebox (pyproject.toml)
# abx-plugin-archivedotorg
@@ -24,65 +24,65 @@
# abx-plugin-title
# abx-plugin-wget
# abx-plugin-ytdlp
+ # abx-spec-abx-pkg
# abx-spec-archivebox
# abx-spec-config
# abx-spec-django
# abx-spec-extractor
- # abx-spec-pydantic-pkgr
# abx-spec-searchbackend
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-archivedotorg
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-archivedotorg
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-chrome
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-chrome
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-curl
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-curl
# via
# archivebox (pyproject.toml)
# abx-plugin-archivedotorg
# abx-plugin-favicon
# abx-plugin-title
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-default-binproviders
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-default-binproviders
# via
# archivebox (pyproject.toml)
# abx-plugin-git
# abx-plugin-npm
# abx-plugin-pip
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-favicon
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-favicon
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-git
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-git
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-htmltotext
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-htmltotext
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-ldap-auth
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-ldap-auth
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-mercury
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-mercury
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-npm
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-npm
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-pip
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-pip
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-playwright
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-playwright
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-puppeteer
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-puppeteer
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-readability
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-readability
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-ripgrep-search
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-ripgrep-search
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-singlefile
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-singlefile
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-sonic-search
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-sonic-search
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-sqlitefts-search
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-sqlitefts-search
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-title
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-title
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-wget
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-wget
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-plugin-ytdlp
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-plugin-ytdlp
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-spec-archivebox
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-spec-archivebox
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-spec-config
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-spec-config
# via
# archivebox (pyproject.toml)
# abx-plugin-archivedotorg
@@ -105,13 +105,13 @@
# abx-plugin-title
# abx-plugin-wget
# abx-plugin-ytdlp
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-spec-django
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-spec-django
# via
# archivebox (pyproject.toml)
# abx-plugin-ldap-auth
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-spec-extractor
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-spec-extractor
# via archivebox (pyproject.toml)
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-spec-pydantic-pkgr
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-spec-abx-pkg
# via
# archivebox (pyproject.toml)
# abx-plugin-chrome
@@ -126,12 +126,24 @@
# abx-plugin-sonic-search
# abx-plugin-wget
# abx-plugin-ytdlp
--e file:///Users/squash/Local/Code/archiveboxes/archivebox7/archivebox/pkgs/abx-spec-searchbackend
+-e file:///Volumes/NVME/Users/squash/Local/Code/archiveboxes/ArchiveBox7/archivebox/pkgs/abx-spec-searchbackend
# via
# archivebox (pyproject.toml)
# abx-plugin-ripgrep-search
# abx-plugin-sonic-search
# abx-plugin-sqlitefts-search
+abx-pkg==0.6.0
+ # via
+ # archivebox (pyproject.toml)
+ # abx-plugin-default-binproviders
+ # abx-plugin-npm
+ # abx-plugin-pip
+ # abx-plugin-playwright
+ # abx-plugin-puppeteer
+ # abx-plugin-singlefile
+ # abx-plugin-sonic-search
+ # abx-plugin-ytdlp
+ # abx-spec-abx-pkg
annotated-types==0.7.0
# via pydantic
anyio==4.6.2.post1
@@ -159,11 +171,9 @@ base32-crockford==0.3.0
# via archivebox (pyproject.toml)
beautifulsoup4==4.12.3
# via python-benedict
-brotli==1.1.0
- # via yt-dlp
-bx-django-utils==81
+bx-django-utils==82
# via django-huey-monitor
-bx-py-utils==105
+bx-py-utils==106
# via
# bx-django-utils
# django-huey-monitor
@@ -172,10 +182,9 @@ certifi==2024.8.30
# httpcore
# httpx
# requests
- # yt-dlp
cffi==1.17.1
# via cryptography
-channels==4.1.0
+channels==4.2.0
# via archivebox (pyproject.toml)
charset-normalizer==3.4.0
# via requests
@@ -197,7 +206,7 @@ decorator==5.1.1
# via
# ipdb
# ipython
-django==5.1.2
+django==5.1.3
# via
# archivebox (pyproject.toml)
# abx
@@ -270,7 +279,7 @@ ftfy==6.3.1
# via python-benedict
h11==0.14.0
# via httpcore
-httpcore==1.0.6
+httpcore==1.0.7
# via httpx
httpx==0.27.2
# via django-signal-webhooks
@@ -297,7 +306,7 @@ ipython==8.29.0
# via
# archivebox (pyproject.toml)
# ipdb
-jedi==0.19.1
+jedi==0.19.2
# via ipython
libcst==1.5.0
# via django-autotyping
@@ -309,8 +318,6 @@ matplotlib-inline==0.1.7
# via ipython
mdurl==0.1.2
# via markdown-it-py
-mutagen==1.47.0
- # via yt-dlp
mypy-extensions==1.0.0
# via archivebox (pyproject.toml)
openpyxl==3.1.5
@@ -319,12 +326,14 @@ parso==0.8.4
# via jedi
pexpect==4.9.0
# via ipython
-phonenumbers==8.13.48
+phonenumbers==8.13.50
# via python-benedict
+pip==24.3.1
+ # via abx-pkg
platformdirs==4.3.6
# via
# archivebox (pyproject.toml)
- # pydantic-pkgr
+ # abx-pkg
pluggy==1.5.0
# via
# archivebox (pyproject.toml)
@@ -352,34 +361,20 @@ pyasn1-modules==0.4.1
# service-identity
pycparser==2.22
# via cffi
-pycryptodomex==3.21.0
- # via yt-dlp
pydantic==2.9.2
# via
+ # abx-pkg
# abx-plugin-playwright
# abx-spec-config
# abx-spec-extractor
# abx-spec-searchbackend
# django-ninja
# django-pydantic-field
- # pydantic-pkgr
# pydantic-settings
pydantic-core==2.23.4
# via
+ # abx-pkg
# pydantic
- # pydantic-pkgr
-pydantic-pkgr==0.5.4
- # via
- # archivebox (pyproject.toml)
- # abx-plugin-default-binproviders
- # abx-plugin-npm
- # abx-plugin-pip
- # abx-plugin-playwright
- # abx-plugin-puppeteer
- # abx-plugin-singlefile
- # abx-plugin-sonic-search
- # abx-plugin-ytdlp
- # abx-spec-pydantic-pkgr
pydantic-settings==2.6.1
# via
# archivebox (pyproject.toml)
@@ -414,6 +409,8 @@ python-ldap==3.4.4
# django-auth-ldap
python-slugify==8.0.4
# via python-benedict
+python-statemachine==2.4.0
+ # via archivebox (pyproject.toml)
python-stdnum==1.20
# via bx-django-utils
pytz==2024.2
@@ -424,14 +421,13 @@ pyyaml==6.0.2
# via
# libcst
# python-benedict
-regex==2024.9.11
+regex==2024.11.6
# via dateparser
requests==2.32.3
# via
# archivebox (pyproject.toml)
# pocket
# python-benedict
- # yt-dlp
requests-tracker==0.3.3
# via archivebox (pyproject.toml)
rich==13.9.4
@@ -443,7 +439,7 @@ rich-argparse==1.6.0
# via archivebox (pyproject.toml)
service-identity==24.2.0
# via twisted
-setuptools==75.3.0
+setuptools==75.5.0
# via
# archivebox (pyproject.toml)
# autobahn
@@ -464,7 +460,7 @@ sonic-client==1.0.0
# via archivebox (pyproject.toml)
soupsieve==2.6
# via beautifulsoup4
-sqlparse==0.5.1
+sqlparse==0.5.2
# via
# django
# django-debug-toolbar
@@ -492,12 +488,12 @@ types-pyyaml==6.0.12.20240917
typing-extensions==4.12.2
# via
# archivebox (pyproject.toml)
+ # abx-pkg
# django-pydantic-field
# django-stubs
# django-stubs-ext
# pydantic
# pydantic-core
- # pydantic-pkgr
# twisted
tzdata==2024.2
# via archivebox (pyproject.toml)
@@ -506,9 +502,7 @@ tzlocal==5.2
ulid-py==1.1.0
# via archivebox (pyproject.toml)
urllib3==2.2.3
- # via
- # requests
- # yt-dlp
+ # via requests
uuid6==2024.7.10
# via typeid-python
w3lib==2.2.1
@@ -517,13 +511,11 @@ wcwidth==0.2.13
# via
# ftfy
# prompt-toolkit
-websockets==13.1
- # via yt-dlp
xlrd==2.0.1
# via python-benedict
xmltodict==0.14.2
# via python-benedict
-yt-dlp==2024.10.22
+yt-dlp==2024.11.4
# via archivebox (pyproject.toml)
zope-interface==7.1.1
# via twisted
diff --git a/uv.lock b/uv.lock
index 2a64ae37..1e00ccab 100644
--- a/uv.lock
+++ b/uv.lock
@@ -32,11 +32,11 @@ members = [
"abx-plugin-title",
"abx-plugin-wget",
"abx-plugin-ytdlp",
+ "abx-spec-abx-pkg",
"abx-spec-archivebox",
"abx-spec-config",
"abx-spec-django",
"abx-spec-extractor",
- "abx-spec-pydantic-pkgr",
"abx-spec-searchbackend",
"archivebox",
]
@@ -56,6 +56,22 @@ requires-dist = [
{ name = "pluggy", specifier = ">=1.5.0" },
]
+[[package]]
+name = "abx-pkg"
+version = "0.6.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pip" },
+ { name = "platformdirs" },
+ { name = "pydantic" },
+ { name = "pydantic-core" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/61/13/d14cbe8cb0713cc6d7e10039d615585b5fad5ce5ed67af51f306a3143ffe/abx_pkg-0.6.0.tar.gz", hash = "sha256:a4ceae2ffd619e6b0d6556fc1e7f361a9ef5d33e158a1d85ae39b97677dc98ea", size = 99389 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/bb/a3/57728ed5e1fcaba39af65716c37eb3cee5183605f69890b13576faadb00d/abx_pkg-0.6.0-py3-none-any.whl", hash = "sha256:22bad7d8dd1da3498770f16abdf9d54f3ff8476748d048a88ba10915d9a81037", size = 44167 },
+]
+
[[package]]
name = "abx-plugin-archivedotorg"
version = "2024.10.28"
@@ -79,15 +95,15 @@ version = "2024.10.28"
source = { editable = "archivebox/pkgs/abx-plugin-chrome" }
dependencies = [
{ name = "abx" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
]
[[package]]
@@ -96,15 +112,15 @@ version = "2024.10.24"
source = { editable = "archivebox/pkgs/abx-plugin-curl" }
dependencies = [
{ name = "abx" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
]
[[package]]
@@ -113,15 +129,15 @@ version = "2024.10.24"
source = { editable = "archivebox/pkgs/abx-plugin-default-binproviders" }
dependencies = [
{ name = "abx" },
- { name = "abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr" },
+ { name = "abx-pkg" },
+ { name = "abx-spec-abx-pkg" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
]
[[package]]
@@ -148,16 +164,16 @@ source = { editable = "archivebox/pkgs/abx-plugin-git" }
dependencies = [
{ name = "abx" },
{ name = "abx-plugin-default-binproviders" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
{ name = "abx-plugin-default-binproviders", editable = "archivebox/pkgs/abx-plugin-default-binproviders" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
]
[[package]]
@@ -213,19 +229,19 @@ version = "2024.10.24"
source = { editable = "archivebox/pkgs/abx-plugin-npm" }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
{ name = "abx-plugin-default-binproviders" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
{ name = "abx-plugin-default-binproviders", editable = "archivebox/pkgs/abx-plugin-default-binproviders" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
]
[[package]]
@@ -234,21 +250,21 @@ version = "2024.10.24"
source = { editable = "archivebox/pkgs/abx-plugin-pip" }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
{ name = "abx-plugin-default-binproviders" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
{ name = "django" },
- { name = "pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
{ name = "abx-plugin-default-binproviders", editable = "archivebox/pkgs/abx-plugin-default-binproviders" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
{ name = "django", specifier = ">=5.0.0" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
]
[[package]]
@@ -257,19 +273,19 @@ version = "2024.10.28"
source = { editable = "archivebox/pkgs/abx-plugin-playwright" }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
{ name = "pydantic" },
- { name = "pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
{ name = "pydantic", specifier = ">=2.4.2" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
]
[[package]]
@@ -295,17 +311,17 @@ version = "2024.10.28"
source = { editable = "archivebox/pkgs/abx-plugin-puppeteer" }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
]
[[package]]
@@ -361,17 +377,17 @@ version = "2024.10.28"
source = { editable = "archivebox/pkgs/abx-plugin-singlefile" }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
]
[[package]]
@@ -380,19 +396,19 @@ version = "2024.10.28"
source = { editable = "archivebox/pkgs/abx-plugin-sonic-search" }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
{ name = "abx-spec-searchbackend" },
- { name = "pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
{ name = "abx-spec-searchbackend", editable = "archivebox/pkgs/abx-spec-searchbackend" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
]
[[package]]
@@ -435,15 +451,15 @@ version = "2024.10.28"
source = { editable = "archivebox/pkgs/abx-plugin-wget" }
dependencies = [
{ name = "abx" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
]
[[package]]
@@ -452,17 +468,32 @@ version = "2024.10.28"
source = { editable = "archivebox/pkgs/abx-plugin-ytdlp" }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr" },
]
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.5.4" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
+]
+
+[[package]]
+name = "abx-spec-abx-pkg"
+version = "0.1.1"
+source = { editable = "archivebox/pkgs/abx-spec-abx-pkg" }
+dependencies = [
+ { name = "abx" },
+ { name = "abx-pkg" },
+]
+
+[package.metadata]
+requires-dist = [
+ { name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.6.0" },
]
[[package]]
@@ -533,21 +564,6 @@ requires-dist = [
{ name = "python-benedict", specifier = ">=0.26.0" },
]
-[[package]]
-name = "abx-spec-pydantic-pkgr"
-version = "0.1.0"
-source = { editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" }
-dependencies = [
- { name = "abx" },
- { name = "pydantic-pkgr" },
-]
-
-[package.metadata]
-requires-dist = [
- { name = "abx", editable = "archivebox/pkgs/abx" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
-]
-
[[package]]
name = "abx-spec-searchbackend"
version = "0.1.0"
@@ -600,10 +616,11 @@ wheels = [
[[package]]
name = "archivebox"
-version = "0.8.6rc0"
+version = "0.8.6rc2"
source = { editable = "." }
dependencies = [
{ name = "abx" },
+ { name = "abx-pkg" },
{ name = "abx-plugin-archivedotorg" },
{ name = "abx-plugin-chrome" },
{ name = "abx-plugin-curl" },
@@ -625,11 +642,11 @@ dependencies = [
{ name = "abx-plugin-title" },
{ name = "abx-plugin-wget" },
{ name = "abx-plugin-ytdlp" },
+ { name = "abx-spec-abx-pkg" },
{ name = "abx-spec-archivebox" },
{ name = "abx-spec-config" },
{ name = "abx-spec-django" },
{ name = "abx-spec-extractor" },
- { name = "abx-spec-pydantic-pkgr" },
{ name = "abx-spec-searchbackend" },
{ name = "atomicwrites" },
{ name = "base32-crockford" },
@@ -657,7 +674,6 @@ dependencies = [
{ name = "pocket" },
{ name = "psutil" },
{ name = "py-machineid" },
- { name = "pydantic-pkgr" },
{ name = "pydantic-settings" },
{ name = "python-benedict", extra = ["io", "parse"] },
{ name = "python-crontab" },
@@ -729,6 +745,7 @@ dev = [
[package.metadata]
requires-dist = [
{ name = "abx", editable = "archivebox/pkgs/abx" },
+ { name = "abx-pkg", specifier = ">=0.6.0" },
{ name = "abx-plugin-archivedotorg", editable = "archivebox/pkgs/abx-plugin-archivedotorg" },
{ name = "abx-plugin-chrome", editable = "archivebox/pkgs/abx-plugin-chrome" },
{ name = "abx-plugin-curl", editable = "archivebox/pkgs/abx-plugin-curl" },
@@ -750,11 +767,11 @@ requires-dist = [
{ name = "abx-plugin-title", editable = "archivebox/pkgs/abx-plugin-title" },
{ name = "abx-plugin-wget", editable = "archivebox/pkgs/abx-plugin-wget" },
{ name = "abx-plugin-ytdlp", editable = "archivebox/pkgs/abx-plugin-ytdlp" },
+ { name = "abx-spec-abx-pkg", editable = "archivebox/pkgs/abx-spec-abx-pkg" },
{ name = "abx-spec-archivebox", editable = "archivebox/pkgs/abx-spec-archivebox" },
{ name = "abx-spec-config", editable = "archivebox/pkgs/abx-spec-config" },
{ name = "abx-spec-django", editable = "archivebox/pkgs/abx-spec-django" },
{ name = "abx-spec-extractor", editable = "archivebox/pkgs/abx-spec-extractor" },
- { name = "abx-spec-pydantic-pkgr", editable = "archivebox/pkgs/abx-spec-pydantic-pkgr" },
{ name = "abx-spec-searchbackend", editable = "archivebox/pkgs/abx-spec-searchbackend" },
{ name = "archivebox", extras = ["sonic", "ldap", "debug"], marker = "extra == 'all'" },
{ name = "atomicwrites", specifier = "==1.4.1" },
@@ -788,7 +805,6 @@ requires-dist = [
{ name = "pocket", specifier = ">=0.3.6" },
{ name = "psutil", specifier = ">=6.0.0" },
{ name = "py-machineid", specifier = ">=0.6.0" },
- { name = "pydantic-pkgr", specifier = ">=0.5.4" },
{ name = "pydantic-settings", specifier = ">=2.5.2" },
{ name = "python-benedict", extras = ["io", "parse"], specifier = ">=0.33.2" },
{ name = "python-crontab", specifier = ">=3.2.0" },
@@ -951,135 +967,42 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/7e/0a/a5260c758ff813acc6967344339aa7ba15f815575f4d49141685c4345d39/bottle-0.13.2-py2.py3-none-any.whl", hash = "sha256:27569ab8d1332fbba3e400b3baab2227ab4efb4882ff147af05a7c00ed73409c", size = 104053 },
]
-[[package]]
-name = "brotli"
-version = "1.1.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/2f/c2/f9e977608bdf958650638c3f1e28f85a1b075f075ebbe77db8555463787b/Brotli-1.1.0.tar.gz", hash = "sha256:81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724", size = 7372270 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/6d/3a/dbf4fb970c1019a57b5e492e1e0eae745d32e59ba4d6161ab5422b08eefe/Brotli-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752", size = 873045 },
- { url = "https://files.pythonhosted.org/packages/dd/11/afc14026ea7f44bd6eb9316d800d439d092c8d508752055ce8d03086079a/Brotli-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8fd5270e906eef71d4a8d19b7c6a43760c6abcfcc10c9101d14eb2357418de9", size = 446218 },
- { url = "https://files.pythonhosted.org/packages/36/83/7545a6e7729db43cb36c4287ae388d6885c85a86dd251768a47015dfde32/Brotli-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ae56aca0402a0f9a3431cddda62ad71666ca9d4dc3a10a142b9dce2e3c0cda3", size = 2903872 },
- { url = "https://files.pythonhosted.org/packages/32/23/35331c4d9391fcc0f29fd9bec2c76e4b4eeab769afbc4b11dd2e1098fb13/Brotli-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43ce1b9935bfa1ede40028054d7f48b5469cd02733a365eec8a329ffd342915d", size = 2941254 },
- { url = "https://files.pythonhosted.org/packages/3b/24/1671acb450c902edb64bd765d73603797c6c7280a9ada85a195f6b78c6e5/Brotli-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7c4855522edb2e6ae7fdb58e07c3ba9111e7621a8956f481c68d5d979c93032e", size = 2857293 },
- { url = "https://files.pythonhosted.org/packages/d5/00/40f760cc27007912b327fe15bf6bfd8eaecbe451687f72a8abc587d503b3/Brotli-1.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:38025d9f30cf4634f8309c6874ef871b841eb3c347e90b0851f63d1ded5212da", size = 3002385 },
- { url = "https://files.pythonhosted.org/packages/b8/cb/8aaa83f7a4caa131757668c0fb0c4b6384b09ffa77f2fba9570d87ab587d/Brotli-1.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e6a904cb26bfefc2f0a6f240bdf5233be78cd2488900a2f846f3c3ac8489ab80", size = 2911104 },
- { url = "https://files.pythonhosted.org/packages/bc/c4/65456561d89d3c49f46b7fbeb8fe6e449f13bdc8ea7791832c5d476b2faf/Brotli-1.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a37b8f0391212d29b3a91a799c8e4a2855e0576911cdfb2515487e30e322253d", size = 2809981 },
- { url = "https://files.pythonhosted.org/packages/05/1b/cf49528437bae28abce5f6e059f0d0be6fecdcc1d3e33e7c54b3ca498425/Brotli-1.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e84799f09591700a4154154cab9787452925578841a94321d5ee8fb9a9a328f0", size = 2935297 },
- { url = "https://files.pythonhosted.org/packages/81/ff/190d4af610680bf0c5a09eb5d1eac6e99c7c8e216440f9c7cfd42b7adab5/Brotli-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f66b5337fa213f1da0d9000bc8dc0cb5b896b726eefd9c6046f699b169c41b9e", size = 2930735 },
- { url = "https://files.pythonhosted.org/packages/80/7d/f1abbc0c98f6e09abd3cad63ec34af17abc4c44f308a7a539010f79aae7a/Brotli-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5dab0844f2cf82be357a0eb11a9087f70c5430b2c241493fc122bb6f2bb0917c", size = 2933107 },
- { url = "https://files.pythonhosted.org/packages/34/ce/5a5020ba48f2b5a4ad1c0522d095ad5847a0be508e7d7569c8630ce25062/Brotli-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e4fe605b917c70283db7dfe5ada75e04561479075761a0b3866c081d035b01c1", size = 2845400 },
- { url = "https://files.pythonhosted.org/packages/44/89/fa2c4355ab1eecf3994e5a0a7f5492c6ff81dfcb5f9ba7859bd534bb5c1a/Brotli-1.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1e9a65b5736232e7a7f91ff3d02277f11d339bf34099a56cdab6a8b3410a02b2", size = 3031985 },
- { url = "https://files.pythonhosted.org/packages/af/a4/79196b4a1674143d19dca400866b1a4d1a089040df7b93b88ebae81f3447/Brotli-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:58d4b711689366d4a03ac7957ab8c28890415e267f9b6589969e74b6e42225ec", size = 2927099 },
- { url = "https://files.pythonhosted.org/packages/e9/54/1c0278556a097f9651e657b873ab08f01b9a9ae4cac128ceb66427d7cd20/Brotli-1.1.0-cp310-cp310-win32.whl", hash = "sha256:be36e3d172dc816333f33520154d708a2657ea63762ec16b62ece02ab5e4daf2", size = 333172 },
- { url = "https://files.pythonhosted.org/packages/f7/65/b785722e941193fd8b571afd9edbec2a9b838ddec4375d8af33a50b8dab9/Brotli-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:0c6244521dda65ea562d5a69b9a26120769b7a9fb3db2fe9545935ed6735b128", size = 357255 },
- { url = "https://files.pythonhosted.org/packages/96/12/ad41e7fadd5db55459c4c401842b47f7fee51068f86dd2894dd0dcfc2d2a/Brotli-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a3daabb76a78f829cafc365531c972016e4aa8d5b4bf60660ad8ecee19df7ccc", size = 873068 },
- { url = "https://files.pythonhosted.org/packages/95/4e/5afab7b2b4b61a84e9c75b17814198ce515343a44e2ed4488fac314cd0a9/Brotli-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c8146669223164fc87a7e3de9f81e9423c67a79d6b3447994dfb9c95da16e2d6", size = 446244 },
- { url = "https://files.pythonhosted.org/packages/9d/e6/f305eb61fb9a8580c525478a4a34c5ae1a9bcb12c3aee619114940bc513d/Brotli-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30924eb4c57903d5a7526b08ef4a584acc22ab1ffa085faceb521521d2de32dd", size = 2906500 },
- { url = "https://files.pythonhosted.org/packages/3e/4f/af6846cfbc1550a3024e5d3775ede1e00474c40882c7bf5b37a43ca35e91/Brotli-1.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ceb64bbc6eac5a140ca649003756940f8d6a7c444a68af170b3187623b43bebf", size = 2943950 },
- { url = "https://files.pythonhosted.org/packages/b3/e7/ca2993c7682d8629b62630ebf0d1f3bb3d579e667ce8e7ca03a0a0576a2d/Brotli-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a469274ad18dc0e4d316eefa616d1d0c2ff9da369af19fa6f3daa4f09671fd61", size = 2918527 },
- { url = "https://files.pythonhosted.org/packages/b3/96/da98e7bedc4c51104d29cc61e5f449a502dd3dbc211944546a4cc65500d3/Brotli-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:524f35912131cc2cabb00edfd8d573b07f2d9f21fa824bd3fb19725a9cf06327", size = 2845489 },
- { url = "https://files.pythonhosted.org/packages/e8/ef/ccbc16947d6ce943a7f57e1a40596c75859eeb6d279c6994eddd69615265/Brotli-1.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5b3cc074004d968722f51e550b41a27be656ec48f8afaeeb45ebf65b561481dd", size = 2914080 },
- { url = "https://files.pythonhosted.org/packages/80/d6/0bd38d758d1afa62a5524172f0b18626bb2392d717ff94806f741fcd5ee9/Brotli-1.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:19c116e796420b0cee3da1ccec3b764ed2952ccfcc298b55a10e5610ad7885f9", size = 2813051 },
- { url = "https://files.pythonhosted.org/packages/14/56/48859dd5d129d7519e001f06dcfbb6e2cf6db92b2702c0c2ce7d97e086c1/Brotli-1.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:510b5b1bfbe20e1a7b3baf5fed9e9451873559a976c1a78eebaa3b86c57b4265", size = 2938172 },
- { url = "https://files.pythonhosted.org/packages/3d/77/a236d5f8cd9e9f4348da5acc75ab032ab1ab2c03cc8f430d24eea2672888/Brotli-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a1fd8a29719ccce974d523580987b7f8229aeace506952fa9ce1d53a033873c8", size = 2933023 },
- { url = "https://files.pythonhosted.org/packages/f1/87/3b283efc0f5cb35f7f84c0c240b1e1a1003a5e47141a4881bf87c86d0ce2/Brotli-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c247dd99d39e0338a604f8c2b3bc7061d5c2e9e2ac7ba9cc1be5a69cb6cd832f", size = 2935871 },
- { url = "https://files.pythonhosted.org/packages/f3/eb/2be4cc3e2141dc1a43ad4ca1875a72088229de38c68e842746b342667b2a/Brotli-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1b2c248cd517c222d89e74669a4adfa5577e06ab68771a529060cf5a156e9757", size = 2847784 },
- { url = "https://files.pythonhosted.org/packages/66/13/b58ddebfd35edde572ccefe6890cf7c493f0c319aad2a5badee134b4d8ec/Brotli-1.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2a24c50840d89ded6c9a8fdc7b6ed3692ed4e86f1c4a4a938e1e92def92933e0", size = 3034905 },
- { url = "https://files.pythonhosted.org/packages/84/9c/bc96b6c7db824998a49ed3b38e441a2cae9234da6fa11f6ed17e8cf4f147/Brotli-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f31859074d57b4639318523d6ffdca586ace54271a73ad23ad021acd807eb14b", size = 2929467 },
- { url = "https://files.pythonhosted.org/packages/e7/71/8f161dee223c7ff7fea9d44893fba953ce97cf2c3c33f78ba260a91bcff5/Brotli-1.1.0-cp311-cp311-win32.whl", hash = "sha256:39da8adedf6942d76dc3e46653e52df937a3c4d6d18fdc94a7c29d263b1f5b50", size = 333169 },
- { url = "https://files.pythonhosted.org/packages/02/8a/fece0ee1057643cb2a5bbf59682de13f1725f8482b2c057d4e799d7ade75/Brotli-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:aac0411d20e345dc0920bdec5548e438e999ff68d77564d5e9463a7ca9d3e7b1", size = 357253 },
- { url = "https://files.pythonhosted.org/packages/5c/d0/5373ae13b93fe00095a58efcbce837fd470ca39f703a235d2a999baadfbc/Brotli-1.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:32d95b80260d79926f5fab3c41701dbb818fde1c9da590e77e571eefd14abe28", size = 815693 },
- { url = "https://files.pythonhosted.org/packages/8e/48/f6e1cdf86751300c288c1459724bfa6917a80e30dbfc326f92cea5d3683a/Brotli-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b760c65308ff1e462f65d69c12e4ae085cff3b332d894637f6273a12a482d09f", size = 422489 },
- { url = "https://files.pythonhosted.org/packages/06/88/564958cedce636d0f1bed313381dfc4b4e3d3f6015a63dae6146e1b8c65c/Brotli-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:316cc9b17edf613ac76b1f1f305d2a748f1b976b033b049a6ecdfd5612c70409", size = 873081 },
- { url = "https://files.pythonhosted.org/packages/58/79/b7026a8bb65da9a6bb7d14329fd2bd48d2b7f86d7329d5cc8ddc6a90526f/Brotli-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:caf9ee9a5775f3111642d33b86237b05808dafcd6268faa492250e9b78046eb2", size = 446244 },
- { url = "https://files.pythonhosted.org/packages/e5/18/c18c32ecea41b6c0004e15606e274006366fe19436b6adccc1ae7b2e50c2/Brotli-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70051525001750221daa10907c77830bc889cb6d865cc0b813d9db7fefc21451", size = 2906505 },
- { url = "https://files.pythonhosted.org/packages/08/c8/69ec0496b1ada7569b62d85893d928e865df29b90736558d6c98c2031208/Brotli-1.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f4bf76817c14aa98cc6697ac02f3972cb8c3da93e9ef16b9c66573a68014f91", size = 2944152 },
- { url = "https://files.pythonhosted.org/packages/ab/fb/0517cea182219d6768113a38167ef6d4eb157a033178cc938033a552ed6d/Brotli-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0c5516f0aed654134a2fc936325cc2e642f8a0e096d075209672eb321cff408", size = 2919252 },
- { url = "https://files.pythonhosted.org/packages/c7/53/73a3431662e33ae61a5c80b1b9d2d18f58dfa910ae8dd696e57d39f1a2f5/Brotli-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6c3020404e0b5eefd7c9485ccf8393cfb75ec38ce75586e046573c9dc29967a0", size = 2845955 },
- { url = "https://files.pythonhosted.org/packages/55/ac/bd280708d9c5ebdbf9de01459e625a3e3803cce0784f47d633562cf40e83/Brotli-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4ed11165dd45ce798d99a136808a794a748d5dc38511303239d4e2363c0695dc", size = 2914304 },
- { url = "https://files.pythonhosted.org/packages/76/58/5c391b41ecfc4527d2cc3350719b02e87cb424ef8ba2023fb662f9bf743c/Brotli-1.1.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4093c631e96fdd49e0377a9c167bfd75b6d0bad2ace734c6eb20b348bc3ea180", size = 2814452 },
- { url = "https://files.pythonhosted.org/packages/c7/4e/91b8256dfe99c407f174924b65a01f5305e303f486cc7a2e8a5d43c8bec3/Brotli-1.1.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e4c4629ddad63006efa0ef968c8e4751c5868ff0b1c5c40f76524e894c50248", size = 2938751 },
- { url = "https://files.pythonhosted.org/packages/5a/a6/e2a39a5d3b412938362bbbeba5af904092bf3f95b867b4a3eb856104074e/Brotli-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:861bf317735688269936f755fa136a99d1ed526883859f86e41a5d43c61d8966", size = 2933757 },
- { url = "https://files.pythonhosted.org/packages/13/f0/358354786280a509482e0e77c1a5459e439766597d280f28cb097642fc26/Brotli-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:87a3044c3a35055527ac75e419dfa9f4f3667a1e887ee80360589eb8c90aabb9", size = 2936146 },
- { url = "https://files.pythonhosted.org/packages/80/f7/daf538c1060d3a88266b80ecc1d1c98b79553b3f117a485653f17070ea2a/Brotli-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c5529b34c1c9d937168297f2c1fde7ebe9ebdd5e121297ff9c043bdb2ae3d6fb", size = 2848055 },
- { url = "https://files.pythonhosted.org/packages/ad/cf/0eaa0585c4077d3c2d1edf322d8e97aabf317941d3a72d7b3ad8bce004b0/Brotli-1.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ca63e1890ede90b2e4454f9a65135a4d387a4585ff8282bb72964fab893f2111", size = 3035102 },
- { url = "https://files.pythonhosted.org/packages/d8/63/1c1585b2aa554fe6dbce30f0c18bdbc877fa9a1bf5ff17677d9cca0ac122/Brotli-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e79e6520141d792237c70bcd7a3b122d00f2613769ae0cb61c52e89fd3443839", size = 2930029 },
- { url = "https://files.pythonhosted.org/packages/5f/3b/4e3fd1893eb3bbfef8e5a80d4508bec17a57bb92d586c85c12d28666bb13/Brotli-1.1.0-cp312-cp312-win32.whl", hash = "sha256:5f4d5ea15c9382135076d2fb28dde923352fe02951e66935a9efaac8f10e81b0", size = 333276 },
- { url = "https://files.pythonhosted.org/packages/3d/d5/942051b45a9e883b5b6e98c041698b1eb2012d25e5948c58d6bf85b1bb43/Brotli-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:906bc3a79de8c4ae5b86d3d75a8b77e44404b0f4261714306e3ad248d8ab0951", size = 357255 },
- { url = "https://files.pythonhosted.org/packages/0a/9f/fb37bb8ffc52a8da37b1c03c459a8cd55df7a57bdccd8831d500e994a0ca/Brotli-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8bf32b98b75c13ec7cf774164172683d6e7891088f6316e54425fde1efc276d5", size = 815681 },
- { url = "https://files.pythonhosted.org/packages/06/b3/dbd332a988586fefb0aa49c779f59f47cae76855c2d00f450364bb574cac/Brotli-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7bc37c4d6b87fb1017ea28c9508b36bbcb0c3d18b4260fcdf08b200c74a6aee8", size = 422475 },
- { url = "https://files.pythonhosted.org/packages/bb/80/6aaddc2f63dbcf2d93c2d204e49c11a9ec93a8c7c63261e2b4bd35198283/Brotli-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c0ef38c7a7014ffac184db9e04debe495d317cc9c6fb10071f7fefd93100a4f", size = 2906173 },
- { url = "https://files.pythonhosted.org/packages/ea/1d/e6ca79c96ff5b641df6097d299347507d39a9604bde8915e76bf026d6c77/Brotli-1.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91d7cc2a76b5567591d12c01f019dd7afce6ba8cba6571187e21e2fc418ae648", size = 2943803 },
- { url = "https://files.pythonhosted.org/packages/ac/a3/d98d2472e0130b7dd3acdbb7f390d478123dbf62b7d32bda5c830a96116d/Brotli-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a93dde851926f4f2678e704fadeb39e16c35d8baebd5252c9fd94ce8ce68c4a0", size = 2918946 },
- { url = "https://files.pythonhosted.org/packages/c4/a5/c69e6d272aee3e1423ed005d8915a7eaa0384c7de503da987f2d224d0721/Brotli-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0db75f47be8b8abc8d9e31bc7aad0547ca26f24a54e6fd10231d623f183d089", size = 2845707 },
- { url = "https://files.pythonhosted.org/packages/58/9f/4149d38b52725afa39067350696c09526de0125ebfbaab5acc5af28b42ea/Brotli-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6967ced6730aed543b8673008b5a391c3b1076d834ca438bbd70635c73775368", size = 2936231 },
- { url = "https://files.pythonhosted.org/packages/5a/5a/145de884285611838a16bebfdb060c231c52b8f84dfbe52b852a15780386/Brotli-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7eedaa5d036d9336c95915035fb57422054014ebdeb6f3b42eac809928e40d0c", size = 2848157 },
- { url = "https://files.pythonhosted.org/packages/50/ae/408b6bfb8525dadebd3b3dd5b19d631da4f7d46420321db44cd99dcf2f2c/Brotli-1.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d487f5432bf35b60ed625d7e1b448e2dc855422e87469e3f450aa5552b0eb284", size = 3035122 },
- { url = "https://files.pythonhosted.org/packages/af/85/a94e5cfaa0ca449d8f91c3d6f78313ebf919a0dbd55a100c711c6e9655bc/Brotli-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:832436e59afb93e1836081a20f324cb185836c617659b07b129141a8426973c7", size = 2930206 },
- { url = "https://files.pythonhosted.org/packages/c2/f0/a61d9262cd01351df22e57ad7c34f66794709acab13f34be2675f45bf89d/Brotli-1.1.0-cp313-cp313-win32.whl", hash = "sha256:43395e90523f9c23a3d5bdf004733246fba087f2948f87ab28015f12359ca6a0", size = 333804 },
- { url = "https://files.pythonhosted.org/packages/7e/c1/ec214e9c94000d1c1974ec67ced1c970c148aa6b8d8373066123fc3dbf06/Brotli-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:9011560a466d2eb3f5a6e4929cf4a09be405c64154e12df0dd72713f6500e32b", size = 358517 },
-]
-
-[[package]]
-name = "brotlicffi"
-version = "1.1.0.0"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "cffi" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/95/9d/70caa61192f570fcf0352766331b735afa931b4c6bc9a348a0925cc13288/brotlicffi-1.1.0.0.tar.gz", hash = "sha256:b77827a689905143f87915310b93b273ab17888fd43ef350d4832c4a71083c13", size = 465192 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/a2/11/7b96009d3dcc2c931e828ce1e157f03824a69fb728d06bfd7b2fc6f93718/brotlicffi-1.1.0.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9b7ae6bd1a3f0df532b6d67ff674099a96d22bc0948955cb338488c31bfb8851", size = 453786 },
- { url = "https://files.pythonhosted.org/packages/d6/e6/a8f46f4a4ee7856fbd6ac0c6fb0dc65ed181ba46cd77875b8d9bbe494d9e/brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19ffc919fa4fc6ace69286e0a23b3789b4219058313cf9b45625016bf7ff996b", size = 2911165 },
- { url = "https://files.pythonhosted.org/packages/be/20/201559dff14e83ba345a5ec03335607e47467b6633c210607e693aefac40/brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9feb210d932ffe7798ee62e6145d3a757eb6233aa9a4e7db78dd3690d7755814", size = 2927895 },
- { url = "https://files.pythonhosted.org/packages/cd/15/695b1409264143be3c933f708a3f81d53c4a1e1ebbc06f46331decbf6563/brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84763dbdef5dd5c24b75597a77e1b30c66604725707565188ba54bab4f114820", size = 2851834 },
- { url = "https://files.pythonhosted.org/packages/b4/40/b961a702463b6005baf952794c2e9e0099bde657d0d7e007f923883b907f/brotlicffi-1.1.0.0-cp37-abi3-win32.whl", hash = "sha256:1b12b50e07c3911e1efa3a8971543e7648100713d4e0971b13631cce22c587eb", size = 341731 },
- { url = "https://files.pythonhosted.org/packages/1c/fa/5408a03c041114ceab628ce21766a4ea882aa6f6f0a800e04ee3a30ec6b9/brotlicffi-1.1.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:994a4f0681bb6c6c3b0925530a1926b7a189d878e6e5e38fae8efa47c5d9c613", size = 366783 },
- { url = "https://files.pythonhosted.org/packages/e5/3b/bd4f3d2bcf2306ae66b0346f5b42af1962480b200096ffc7abc3bd130eca/brotlicffi-1.1.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2e4aeb0bd2540cb91b069dbdd54d458da8c4334ceaf2d25df2f4af576d6766ca", size = 397397 },
- { url = "https://files.pythonhosted.org/packages/54/10/1fd57864449360852c535c2381ee7120ba8f390aa3869df967c44ca7eba1/brotlicffi-1.1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b7b0033b0d37bb33009fb2fef73310e432e76f688af76c156b3594389d81391", size = 379698 },
- { url = "https://files.pythonhosted.org/packages/e5/95/15aa422aa6450e6556e54a5fd1650ff59f470aed77ac739aa90ab63dc611/brotlicffi-1.1.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54a07bb2374a1eba8ebb52b6fafffa2afd3c4df85ddd38fcc0511f2bb387c2a8", size = 378635 },
- { url = "https://files.pythonhosted.org/packages/6c/a7/f254e13b2cb43337d6d99a4ec10394c134e41bfda8a2eff15b75627f4a3d/brotlicffi-1.1.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7901a7dc4b88f1c1475de59ae9be59799db1007b7d059817948d8e4f12e24e35", size = 385719 },
- { url = "https://files.pythonhosted.org/packages/72/a9/0971251c4427c14b2a827dba3d910d4d3330dabf23d4278bf6d06a978847/brotlicffi-1.1.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce01c7316aebc7fce59da734286148b1d1b9455f89cf2c8a4dfce7d41db55c2d", size = 361760 },
-]
-
[[package]]
name = "bumpver"
-version = "2023.1129"
+version = "2024.1130"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" },
{ name = "colorama" },
{ name = "lexid" },
- { name = "looseversion" },
{ name = "toml" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/7e/31/7087ec411432b395e04c449e9c5569b6ef677bbb506a900251fe91070eb5/bumpver-2023.1129.tar.gz", hash = "sha256:2a09813066d92ae2eabf882d4f9a88ebd60135e828c424bdf7800e1723e15010", size = 110275 }
+sdist = { url = "https://files.pythonhosted.org/packages/bb/a9/becf78cc86211bd2287114c4f990a3bed450816696f14810cc59d7815bb5/bumpver-2024.1130.tar.gz", hash = "sha256:74f7ebc294b2240f346e99748cc6f238e57b050999d7428db75d76baf2bf1437", size = 115102 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f0/ee/147b9a684a9af36e429f75b6dc76c06f8086b114483de4bd4ae3a303fda9/bumpver-2023.1129-py2.py3-none-any.whl", hash = "sha256:b2a55c0224215b6ca1c3a0c99827749927b7c61cbb5dfef75565dbda8e75f687", size = 61957 },
+ { url = "https://files.pythonhosted.org/packages/09/34/57d038ae30374976ce4ec57db9dea95bf55d1b5543b35e77aa9ce3543198/bumpver-2024.1130-py2.py3-none-any.whl", hash = "sha256:8e54220aefe7db25148622f45959f7beb6b8513af0b0429b38b9072566665a49", size = 65273 },
]
[[package]]
name = "bx-django-utils"
-version = "81"
+version = "82"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "bx-py-utils" },
{ name = "django" },
{ name = "python-stdnum" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/e7/4a/a4087420852629abd835a17f7d41eca9efa93453c6dcaa29697f40195021/bx_django_utils-81.tar.gz", hash = "sha256:0896f53d737ddda3e98085803e9f469abc4b84561d4062ec13aa40b14e9453b8", size = 192245 }
+sdist = { url = "https://files.pythonhosted.org/packages/a4/97/aa16b8a646617f49d0197b8d365cca46a9955381d279c609cf602bbc1c2b/bx_django_utils-82.tar.gz", hash = "sha256:3551764852bff5a51be4855161dd96fc2a9c46a96f0f0c1ecf1929edb211c8ae", size = 194337 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/28/8e/692dce1f10303c6f4a03f5c2ae646d36b555c6190f17e11a2a469f9bdc48/bx_django_utils-81-py3-none-any.whl", hash = "sha256:b7ca9a801f0a160fd68c5744b7449552a3029484c373b8aaa2f41d0d50431b51", size = 199480 },
+ { url = "https://files.pythonhosted.org/packages/d6/bc/2626603cf819d355dc5d8402af70091c9e82063befde080424b8a2af0281/bx_django_utils-82-py3-none-any.whl", hash = "sha256:8909f9504ae69c504fe32eaf05b978c4d6c141b8e35cbd293c15a4e8643036e0", size = 203752 },
]
[[package]]
name = "bx-py-utils"
-version = "105"
+version = "106"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/f7/c3/4949fd3031a26eaf7378befacc5a2858d68a4e328b342e2ffc4c321c9a89/bx_py_utils-105.tar.gz", hash = "sha256:1bb7c1401147df35a95ca78c1de9f25d104aeda941a5cc89f9cfc2d1616ddbd7", size = 192317 }
+sdist = { url = "https://files.pythonhosted.org/packages/07/97/25d9c34122d4d9a33383c8b265a0bd9f5391f18a7ae9aa65c61877941649/bx_py_utils-106.tar.gz", hash = "sha256:26d6d3353ccd7d93ae322d33f8dde1b14d01b88f10329a714cd43da67b2e3d9f", size = 192712 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/6c/e5/da929891157b56f7a9bf825118926910e5e3629eb1cd3ec441d292e7501c/bx_py_utils-105-py3-none-any.whl", hash = "sha256:d441b0e413f8b19b03ab1784187ca2cf2ec5b68d64082790bdbca16a4612cb3e", size = 175660 },
+ { url = "https://files.pythonhosted.org/packages/0c/75/297e15764b5e46259ef68ed3deef98413a3ae038512a468e36623b41d13e/bx_py_utils-106-py3-none-any.whl", hash = "sha256:1b5e7622310c5ef814de241419bc0f0929c3d0445e1418fa477d2be3f7da0332", size = 176056 },
]
[[package]]
@@ -1150,15 +1073,15 @@ wheels = [
[[package]]
name = "channels"
-version = "4.1.0"
+version = "4.2.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "asgiref" },
{ name = "django" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/7d/73/da9e496657b242308d68cf79c937be125fcca4af61a620d98adfdde66fab/channels-4.1.0.tar.gz", hash = "sha256:e0ed375719f5c1851861f05ed4ce78b0166f9245ca0ecd836cb77d4bb531489d", size = 26132 }
+sdist = { url = "https://files.pythonhosted.org/packages/96/e2/10d949dca9eb8a85c5735efefe3309033419e7d4f4193a70f6ede58b2951/channels-4.2.0.tar.gz", hash = "sha256:d9e707487431ba5dbce9af982970dab3b0efd786580fadb99e45dca5e39fdd59", size = 26554 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/a3/68/d9098a51b1661c00c70bb9ce7c42d65044e475b8d1c16ba05b8ee32b7f49/channels-4.1.0-py3-none-any.whl", hash = "sha256:a3c4419307f582c3f71d67bfb6eff748ae819c2f360b9b141694d84f242baa48", size = 30306 },
+ { url = "https://files.pythonhosted.org/packages/7e/4e/f36a0e2c04504014385cbc13119a15b8a716e524e8e5ed9480581397691a/channels-4.2.0-py3-none-any.whl", hash = "sha256:6b75bc8d6888fb7236e7e7bf1948520b72d296ad08216a242fc56b1db0ffde1a", size = 30935 },
]
[package.optional-dependencies]
@@ -1360,28 +1283,28 @@ wheels = [
[[package]]
name = "deprecated"
-version = "1.2.14"
+version = "1.2.15"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "wrapt" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/92/14/1e41f504a246fc224d2ac264c227975427a85caf37c3979979edb9b1b232/Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3", size = 2974416 }
+sdist = { url = "https://files.pythonhosted.org/packages/2e/a3/53e7d78a6850ffdd394d7048a31a6f14e44900adedf190f9a165f6b69439/deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d", size = 2977612 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/20/8d/778b7d51b981a96554f29136cd59ca7880bf58094338085bcf2a979a0e6a/Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c", size = 9561 },
+ { url = "https://files.pythonhosted.org/packages/1d/8f/c7f227eb42cfeaddce3eb0c96c60cbca37797fa7b34f8e1aeadf6c5c0983/Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320", size = 9941 },
]
[[package]]
name = "django"
-version = "5.1.2"
+version = "5.1.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "asgiref" },
{ name = "sqlparse" },
{ name = "tzdata", marker = "sys_platform == 'win32'" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/9c/e5/a06e20c963b280af4aa9432bc694fbdeb1c8df9e28c2ffd5fbb71c4b1bec/Django-5.1.2.tar.gz", hash = "sha256:bd7376f90c99f96b643722eee676498706c9fd7dc759f55ebfaf2c08ebcdf4f0", size = 10711674 }
+sdist = { url = "https://files.pythonhosted.org/packages/c6/85/ba2c2b83ba8b95354f99ed8344405d9571109ce0175028876209d6b93fba/Django-5.1.3.tar.gz", hash = "sha256:c0fa0e619c39325a169208caef234f90baa925227032ad3f44842ba14d75234a", size = 10698518 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/a3/b8/f205f2b8c44c6cdc555c4f56bbe85ceef7f67c0cf1caa8abe078bb7e32bd/Django-5.1.2-py3-none-any.whl", hash = "sha256:f11aa87ad8d5617171e3f77e1d5d16f004b79a2cf5d2e1d2b97a6a1f8e9ba5ed", size = 8276058 },
+ { url = "https://files.pythonhosted.org/packages/e5/f6/88ed57e1b3ed54ff18c1da352aecbd6f51784c3e642d97586b61f050f5b1/Django-5.1.3-py3-none-any.whl", hash = "sha256:8b38a9a12da3ae00cb0ba72da985ec4b14de6345046b1e174b1fd7254398f818", size = 8276180 },
]
[[package]]
@@ -1691,14 +1614,14 @@ wheels = [
[[package]]
name = "googleapis-common-protos"
-version = "1.65.0"
+version = "1.66.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "protobuf" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/53/3b/1599ceafa875ffb951480c8c74f4b77646a6b80e80970698f2aa93c216ce/googleapis_common_protos-1.65.0.tar.gz", hash = "sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0", size = 113657 }
+sdist = { url = "https://files.pythonhosted.org/packages/ff/a7/8e9cccdb1c49870de6faea2a2764fa23f627dd290633103540209f03524c/googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c", size = 114376 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/ec/08/49bfe7cf737952cc1a9c43e80cc258ed45dad7f183c5b8276fc94cb3862d/googleapis_common_protos-1.65.0-py2.py3-none-any.whl", hash = "sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63", size = 220890 },
+ { url = "https://files.pythonhosted.org/packages/a0/0f/c0713fb2b3d28af4b2fded3291df1c4d4f79a00d15c2374a9e010870016c/googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed", size = 221682 },
]
[[package]]
@@ -1712,15 +1635,15 @@ wheels = [
[[package]]
name = "httpcore"
-version = "1.0.6"
+version = "1.0.7"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "certifi" },
{ name = "h11" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/b6/44/ed0fa6a17845fb033bd885c03e842f08c1b9406c86a2e60ac1ae1b9206a6/httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f", size = 85180 }
+sdist = { url = "https://files.pythonhosted.org/packages/6a/41/d7d0a89eb493922c37d343b607bc1b5da7f5be7e383740b4753ad8943e90/httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c", size = 85196 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/06/89/b161908e2f51be56568184aeb4a880fd287178d176fd1c860d2217f41106/httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f", size = 78011 },
+ { url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 },
]
[[package]]
@@ -1777,14 +1700,14 @@ wheels = [
[[package]]
name = "importlib-metadata"
-version = "8.4.0"
+version = "8.5.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "zipp" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/c0/bd/fa8ce65b0a7d4b6d143ec23b0f5fd3f7ab80121078c465bc02baeaab22dc/importlib_metadata-8.4.0.tar.gz", hash = "sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5", size = 54320 }
+sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c0/14/362d31bf1076b21e1bcdcb0dc61944822ff263937b804a79231df2774d28/importlib_metadata-8.4.0-py3-none-any.whl", hash = "sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1", size = 26269 },
+ { url = "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", size = 26514 },
]
[[package]]
@@ -1847,14 +1770,14 @@ wheels = [
[[package]]
name = "jedi"
-version = "0.19.1"
+version = "0.19.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "parso" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/d6/99/99b493cec4bf43176b678de30f81ed003fd6a647a301b9c927280c600f0a/jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd", size = 1227821 }
+sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0", size = 1569361 },
+ { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278 },
]
[[package]]
@@ -1927,7 +1850,7 @@ wheels = [
[[package]]
name = "logfire"
-version = "2.1.1"
+version = "2.3.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "executing" },
@@ -1939,9 +1862,9 @@ dependencies = [
{ name = "tomli", marker = "python_full_version < '3.11'" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/ee/b8/b4f3a741076a9bdce82ed25218a8167d74c9834588710babc03cb587773a/logfire-2.1.1.tar.gz", hash = "sha256:fd0b9a8b3334cd8c7efb52c04297c2360380818a021e8024ca37bae5f32b78aa", size = 244832 }
+sdist = { url = "https://files.pythonhosted.org/packages/58/d6/0df3e4e4d5d98674cd058b9b48c2860157f50bce46f4d9648192bf2f31c6/logfire-2.3.0.tar.gz", hash = "sha256:2a29a7a31079201cbad494b865b27bf93b75df70dd752df0f121467a23709bbb", size = 250234 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/7e/93/905aef6a938fdd8633cf4937a35ae2438e2830788e8465588e1063ab79b5/logfire-2.1.1-py3-none-any.whl", hash = "sha256:5ead7b0f3edf6cab9bbe9a02e0f6a4c5f3f693411928b32b727ecb3d2b709814", size = 167207 },
+ { url = "https://files.pythonhosted.org/packages/e6/c7/7de2f15842845aaf5d4d6e0b00469f574bbb332c42322dbc2ff2dc5c3466/logfire-2.3.0-py3-none-any.whl", hash = "sha256:812febd7cc29fdd7551d40161b7aa877a1bc8b4f74ef5bcfb0f0ca790f5184f4", size = 170621 },
]
[package.optional-dependencies]
@@ -1949,15 +1872,6 @@ django = [
{ name = "opentelemetry-instrumentation-django" },
]
-[[package]]
-name = "looseversion"
-version = "1.3.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/64/7e/f13dc08e0712cc2eac8e56c7909ce2ac280dbffef2ffd87bd5277ce9d58b/looseversion-1.3.0.tar.gz", hash = "sha256:ebde65f3f6bb9531a81016c6fef3eb95a61181adc47b7f949e9c0ea47911669e", size = 8799 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/4e/74/d5405b9b3b12e9176dff223576d7090bc161092878f533fd0dc23dd6ae1d/looseversion-1.3.0-py2.py3-none-any.whl", hash = "sha256:781ef477b45946fc03dd4c84ea87734b21137ecda0e1e122bcb3c8d16d2a56e0", size = 8237 },
-]
-
[[package]]
name = "mailchecker"
version = "6.0.11"
@@ -2076,15 +1990,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 },
]
-[[package]]
-name = "mutagen"
-version = "1.47.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/81/e6/64bc71b74eef4b68e61eb921dcf72dabd9e4ec4af1e11891bbd312ccbb77/mutagen-1.47.0.tar.gz", hash = "sha256:719fadef0a978c31b4cf3c956261b3c58b6948b32023078a2117b1de09f0fc99", size = 1274186 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/b0/7a/620f945b96be1f6ee357d211d5bf74ab1b7fe72a9f1525aafbfe3aee6875/mutagen-1.47.0-py3-none-any.whl", hash = "sha256:edd96f50c5907a9539d8e5bba7245f62c9f520aef333d13392a79a4f70aca719", size = 194391 },
-]
-
[[package]]
name = "mypy"
version = "1.13.0"
@@ -2147,11 +2052,11 @@ wheels = [
[[package]]
name = "objprint"
-version = "0.2.3"
+version = "0.3.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/90/21/9c8ad411320d2e6d37fe8a0f017d9baed6652a6b7732b31d44d8aa98a6f3/objprint-0.2.3.tar.gz", hash = "sha256:73d0ad5a7c3151fce634c8892e5c2a050ccae3b1a353bf1316f08b7854da863b", size = 45507 }
+sdist = { url = "https://files.pythonhosted.org/packages/81/b8/c10e96120f1585824a1992655334b49da3924edfb364e84a26cc0ecdb89b/objprint-0.3.0.tar.gz", hash = "sha256:b5d83f9d62db5b95353bb42959106e1cd43010dcaa3eed1ad8d7d0b2df9b2d5a", size = 47481 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/b2/d8/c514052dd125848a72b1013895e86557c7f6e04887b5b75f62b2fdbb3233/objprint-0.2.3-py3-none-any.whl", hash = "sha256:1721e6f97bae5c5b86c2716a0d45a9dd2c9a4cd9f52cfc8a0dfbe801805554cb", size = 39750 },
+ { url = "https://files.pythonhosted.org/packages/ec/af/572825252f16f36eeecbc8e3b721913d2640d69b984fdb8907aa8b4b0975/objprint-0.3.0-py3-none-any.whl", hash = "sha256:489083bfc8baf0526f8fd6af74673799511532636f0ce4141133255ded773405", size = 41619 },
]
[[package]]
@@ -2168,32 +2073,32 @@ wheels = [
[[package]]
name = "opentelemetry-api"
-version = "1.27.0"
+version = "1.28.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "deprecated" },
{ name = "importlib-metadata" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/c9/83/93114b6de85a98963aec218a51509a52ed3f8de918fe91eb0f7299805c3f/opentelemetry_api-1.27.0.tar.gz", hash = "sha256:ed673583eaa5f81b5ce5e86ef7cdaf622f88ef65f0b9aab40b843dcae5bef342", size = 62693 }
+sdist = { url = "https://files.pythonhosted.org/packages/4e/f7/5f8771e591f7641ba019904e2a6be151998a6c8f3e1137654773ca060b04/opentelemetry_api-1.28.1.tar.gz", hash = "sha256:6fa7295a12c707f5aebef82da3d9ec5afe6992f3e42bfe7bec0339a44b3518e7", size = 62804 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/fb/1f/737dcdbc9fea2fa96c1b392ae47275165a7c641663fbb08a8d252968eed2/opentelemetry_api-1.27.0-py3-none-any.whl", hash = "sha256:953d5871815e7c30c81b56d910c707588000fff7a3ca1c73e6531911d53065e7", size = 63970 },
+ { url = "https://files.pythonhosted.org/packages/d5/39/7a9c2fde8e0309e9fd339aa953110a49ebbdf8797eb497d8357f1933ec5d/opentelemetry_api-1.28.1-py3-none-any.whl", hash = "sha256:bfe86c95576cf19a914497f439fd79c9553a38de0adbdc26f7cfc46b0c00b16c", size = 64316 },
]
[[package]]
name = "opentelemetry-exporter-otlp-proto-common"
-version = "1.27.0"
+version = "1.28.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "opentelemetry-proto" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/cd/2e/7eaf4ba595fb5213cf639c9158dfb64aacb2e4c7d74bfa664af89fa111f4/opentelemetry_exporter_otlp_proto_common-1.27.0.tar.gz", hash = "sha256:159d27cf49f359e3798c4c3eb8da6ef4020e292571bd8c5604a2a573231dd5c8", size = 17860 }
+sdist = { url = "https://files.pythonhosted.org/packages/47/ff/99803ddffb90bc895b2f665fa9d79efee8fa9a0fe3cc6d318c19ce18b4d9/opentelemetry_exporter_otlp_proto_common-1.28.1.tar.gz", hash = "sha256:6e55e7f5d59296cc87a74c08b8e0ddf87403f73a62302ec7ee042c1a1f4a8f70", size = 19040 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/41/27/4610ab3d9bb3cde4309b6505f98b3aabca04a26aa480aa18cede23149837/opentelemetry_exporter_otlp_proto_common-1.27.0-py3-none-any.whl", hash = "sha256:675db7fffcb60946f3a5c43e17d1168a3307a94a930ecf8d2ea1f286f3d4f79a", size = 17848 },
+ { url = "https://files.pythonhosted.org/packages/2a/b1/33d69035e87fbd7c962be00315c3ea2567a6a45be71946d2b3bf008719b3/opentelemetry_exporter_otlp_proto_common-1.28.1-py3-none-any.whl", hash = "sha256:56ea6cf28c90f767733f046a54525dc7271a25faff86b1955e5252b55f4e007f", size = 18452 },
]
[[package]]
name = "opentelemetry-exporter-otlp-proto-http"
-version = "1.27.0"
+version = "1.28.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "deprecated" },
@@ -2204,28 +2109,29 @@ dependencies = [
{ name = "opentelemetry-sdk" },
{ name = "requests" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/31/0a/f05c55e8913bf58a033583f2580a0ec31a5f4cf2beacc9e286dcb74d6979/opentelemetry_exporter_otlp_proto_http-1.27.0.tar.gz", hash = "sha256:2103479092d8eb18f61f3fbff084f67cc7f2d4a7d37e75304b8b56c1d09ebef5", size = 15059 }
+sdist = { url = "https://files.pythonhosted.org/packages/00/aa/9f4f6dce9b742bf0275e66cdd6f2e841c7213f0d1775bf8427c2e0f6f9ae/opentelemetry_exporter_otlp_proto_http-1.28.1.tar.gz", hash = "sha256:f4c21d380f2dd8ddbe4d456d8728853bc1131eb977bac1d0becc838e2086b506", size = 15049 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/2d/8d/4755884afc0b1db6000527cac0ca17273063b6142c773ce4ecd307a82e72/opentelemetry_exporter_otlp_proto_http-1.27.0-py3-none-any.whl", hash = "sha256:688027575c9da42e179a69fe17e2d1eba9b14d81de8d13553a21d3114f3b4d75", size = 17203 },
+ { url = "https://files.pythonhosted.org/packages/55/5f/f924d45701cf0b2584694a40e99fbfe1fdf0162ed0acfd9b96ad649f57bb/opentelemetry_exporter_otlp_proto_http-1.28.1-py3-none-any.whl", hash = "sha256:f09a684c7b9d9a451323560c61564345c253c6bb3426f6a94db31ba5f428e778", size = 17229 },
]
[[package]]
name = "opentelemetry-instrumentation"
-version = "0.48b0"
+version = "0.49b1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "opentelemetry-api" },
- { name = "setuptools" },
+ { name = "opentelemetry-semantic-conventions" },
+ { name = "packaging" },
{ name = "wrapt" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/04/0e/d9394839af5d55c8feb3b22cd11138b953b49739b20678ca96289e30f904/opentelemetry_instrumentation-0.48b0.tar.gz", hash = "sha256:94929685d906380743a71c3970f76b5f07476eea1834abd5dd9d17abfe23cc35", size = 24724 }
+sdist = { url = "https://files.pythonhosted.org/packages/2a/2c/ce74e9f484a07d13cc91c36dd75d76aee2e651ad95beb967e208f5c15988/opentelemetry_instrumentation-0.49b1.tar.gz", hash = "sha256:2d0e41181b7957ba061bb436b969ad90545ac3eba65f290830009b4264d2824e", size = 26465 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/0a/7f/405c41d4f359121376c9d5117dcf68149b8122d3f6c718996d037bd4d800/opentelemetry_instrumentation-0.48b0-py3-none-any.whl", hash = "sha256:a69750dc4ba6a5c3eb67986a337185a25b739966d80479befe37b546fc870b44", size = 29449 },
+ { url = "https://files.pythonhosted.org/packages/ca/98/9c40915677f24b6bd0bd4ec6e84f929815a581d78cd67eab5213c630c6b6/opentelemetry_instrumentation-0.49b1-py3-none-any.whl", hash = "sha256:0a9d3821736104013693ef3b8a9d29b41f2f3a81ee2d8c9288b52d62bae5747c", size = 30688 },
]
[[package]]
name = "opentelemetry-instrumentation-dbapi"
-version = "0.48b0"
+version = "0.49b1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "opentelemetry-api" },
@@ -2233,14 +2139,14 @@ dependencies = [
{ name = "opentelemetry-semantic-conventions" },
{ name = "wrapt" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/a1/9a/468bc52079522db225158523aaedc24bfed13fe9c3775da638fc726d21fb/opentelemetry_instrumentation_dbapi-0.48b0.tar.gz", hash = "sha256:89821288199f4f5225e74543bf14addf9b1824b8b5f1e83ad0d9dafa844f33b0", size = 11033 }
+sdist = { url = "https://files.pythonhosted.org/packages/1c/31/7174044f9d112ec7c9d90bea40b2daa7f475ac5d1a866772aeca51b8bff3/opentelemetry_instrumentation_dbapi-0.49b1.tar.gz", hash = "sha256:aa19a0dc96a127b155778b7c3aa58d1db100e3c1b4be2b61cd7aa318af9079cd", size = 12213 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/8c/a7/ad9dc41c8358f4e39a8ea44273a59e7ac536b17d7c7456836ab683617eb9/opentelemetry_instrumentation_dbapi-0.48b0-py3-none-any.whl", hash = "sha256:0d11a73ecbf55b11e8fbc93e9e97366958b98ccb4b691c776b32e4b20b3ce8bb", size = 11003 },
+ { url = "https://files.pythonhosted.org/packages/6d/89/e1778632653bbd66f1856d4ab6efdd5194f0e3aa637478edaed1cda46377/opentelemetry_instrumentation_dbapi-0.49b1-py3-none-any.whl", hash = "sha256:ff4fc87f6b6a8fd40bb383efabcdb94078ff6fc7e8f8bf1c501256fb4e8064ed", size = 11515 },
]
[[package]]
name = "opentelemetry-instrumentation-django"
-version = "0.48b0"
+version = "0.49b1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "opentelemetry-api" },
@@ -2249,28 +2155,28 @@ dependencies = [
{ name = "opentelemetry-semantic-conventions" },
{ name = "opentelemetry-util-http" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/0c/88/3d4ab7c9d68c3980ecbe1d4649f984006b9bd5e093f3a02a0978dcdb0286/opentelemetry_instrumentation_django-0.48b0.tar.gz", hash = "sha256:d31fca8bdf5a75e004a459f2eb3fcba707fbb0a39fc3d3c520c38265775cb9df", size = 23979 }
+sdist = { url = "https://files.pythonhosted.org/packages/50/ca/4a8153b7bb7e1a911050701cf24d67c38d33dc7a21dae1f2ad5153b72b61/opentelemetry_instrumentation_django-0.49b1.tar.gz", hash = "sha256:4a997d1c18d7e81e28d2b7041223c30dc8a60dbc572ade2a20a048fbdc5bbae9", size = 24602 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/70/46/671d2618b12bee9071064bc6f63d7df9d6870560c8aa67948378fee47e62/opentelemetry_instrumentation_django-0.48b0-py3-none-any.whl", hash = "sha256:e6742744ee1cfbfee8a6b57182a2071475531b79863411e1eb5f0d5b5322b7b4", size = 19204 },
+ { url = "https://files.pythonhosted.org/packages/6f/17/198634a684baea6908200a616e509be65c4391f71fa7e34dc39ac2396771/opentelemetry_instrumentation_django-0.49b1-py3-none-any.whl", hash = "sha256:79795c46061a298556ae023a71ae47ea2c8c8f715266b0f1dba9f3d7f7018785", size = 19456 },
]
[[package]]
name = "opentelemetry-instrumentation-sqlite3"
-version = "0.48b0"
+version = "0.49b1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "opentelemetry-api" },
{ name = "opentelemetry-instrumentation" },
{ name = "opentelemetry-instrumentation-dbapi" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/36/fa/ef80b55f8b2a5814fc4a868159f2b5b3c8316d20d449ba2f9f314faed9f1/opentelemetry_instrumentation_sqlite3-0.48b0.tar.gz", hash = "sha256:483b973a197890d69a25d17956d6fa66c540fc0f9f73190c93c98d2dabb3188b", size = 7530 }
+sdist = { url = "https://files.pythonhosted.org/packages/00/db/3364ca3eb16e46a845da8c31711829c142d41b690f4f7a15ba9a8e09ed1d/opentelemetry_instrumentation_sqlite3-0.49b1.tar.gz", hash = "sha256:7e359dec019bd06cdf0aef3a87689301a961ae04b5bff0f7a4e3eb30b6d184f6", size = 7529 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9c/04/6d1b1789e1c1da35d839a0075a7cfb1ca14de4f06e75a390f8ce4402e101/opentelemetry_instrumentation_sqlite3-0.48b0-py3-none-any.whl", hash = "sha256:558ff8e7b78d0647cdffb1496c5e92f72d1f459e9ae9c6d3ae9eab3517d481e5", size = 8716 },
+ { url = "https://files.pythonhosted.org/packages/f3/d1/3e8d06a3a5eaeff053087d2e9321d2137eb77182e3f823ac7d645b35a731/opentelemetry_instrumentation_sqlite3-0.49b1-py3-none-any.whl", hash = "sha256:635338d78bb83c542e44e8c0a7d0eb5a0f23f047eccd443b14914f2440b181d8", size = 8718 },
]
[[package]]
name = "opentelemetry-instrumentation-wsgi"
-version = "0.48b0"
+version = "0.49b1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "opentelemetry-api" },
@@ -2278,66 +2184,66 @@ dependencies = [
{ name = "opentelemetry-semantic-conventions" },
{ name = "opentelemetry-util-http" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/de/a5/f45cdfba18f22aefd2378eac8c07c1f8c9656d6bf7ce315ced48c67f3437/opentelemetry_instrumentation_wsgi-0.48b0.tar.gz", hash = "sha256:1a1e752367b0df4397e0b835839225ef5c2c3c053743a261551af13434fc4d51", size = 17974 }
+sdist = { url = "https://files.pythonhosted.org/packages/66/6b/4ef472608f68ecfa532c4af647e3b27cf25a12def0e2ec036268f464a6ab/opentelemetry_instrumentation_wsgi-0.49b1.tar.gz", hash = "sha256:e1dd9a6e10b0a4baa1afd17c75b0836f9e3fd1d40c3d0d5287e898d49436ac34", size = 17732 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/fb/87/fa420007e0ba7e8cd43799ab204717ab515f000236fa2726a6be3299efdd/opentelemetry_instrumentation_wsgi-0.48b0-py3-none-any.whl", hash = "sha256:c6051124d741972090fe94b2fa302555e1e2a22e9cdda32dd39ed49a5b34e0c6", size = 13691 },
+ { url = "https://files.pythonhosted.org/packages/ba/dc/89b2f3056d7269147f0d04bd578ca4b5fb405ad9c5d5ec5527bf819de3a4/opentelemetry_instrumentation_wsgi-0.49b1-py3-none-any.whl", hash = "sha256:6ab07115dc5c38f9c5b368e1ae4d9741cddeeef857ad01b211ee314a72ffdbea", size = 13699 },
]
[[package]]
name = "opentelemetry-proto"
-version = "1.27.0"
+version = "1.28.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "protobuf" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/9a/59/959f0beea798ae0ee9c979b90f220736fbec924eedbefc60ca581232e659/opentelemetry_proto-1.27.0.tar.gz", hash = "sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6", size = 34749 }
+sdist = { url = "https://files.pythonhosted.org/packages/00/5d/da18070fbd436baa49bad9f1393b2346f650800aa5b3a7b2d3640510eb0e/opentelemetry_proto-1.28.1.tar.gz", hash = "sha256:6f9e9d9958822ab3e3cdcd2a24806d62aa10282349fd4338aafe32c69c87fc15", size = 34333 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/94/56/3d2d826834209b19a5141eed717f7922150224d1a982385d19a9444cbf8d/opentelemetry_proto-1.27.0-py3-none-any.whl", hash = "sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace", size = 52464 },
+ { url = "https://files.pythonhosted.org/packages/3b/cb/272d2ef811dba0b98d7dcd23687900d8ba6855fd289119c4cf44c1dc77c7/opentelemetry_proto-1.28.1-py3-none-any.whl", hash = "sha256:cb406ec69f1d11439e60fb43c6b744783fc8ee4deecdab61b3e29f112b0602f9", size = 55831 },
]
[[package]]
name = "opentelemetry-sdk"
-version = "1.27.0"
+version = "1.28.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "opentelemetry-api" },
{ name = "opentelemetry-semantic-conventions" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/0d/9a/82a6ac0f06590f3d72241a587cb8b0b751bd98728e896cc4cbd4847248e6/opentelemetry_sdk-1.27.0.tar.gz", hash = "sha256:d525017dea0ccce9ba4e0245100ec46ecdc043f2d7b8315d56b19aff0904fa6f", size = 145019 }
+sdist = { url = "https://files.pythonhosted.org/packages/f2/c8/83996963ca80c149583260c22492022c9b48c854d4ca877aa3b6be8fbd3d/opentelemetry_sdk-1.28.1.tar.gz", hash = "sha256:100fa371b2046ffba6a340c18f0b2a0463acad7461e5177e126693b613a6ca57", size = 157162 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c1/bd/a6602e71e315055d63b2ff07172bd2d012b4cba2d4e00735d74ba42fc4d6/opentelemetry_sdk-1.27.0-py3-none-any.whl", hash = "sha256:365f5e32f920faf0fd9e14fdfd92c086e317eaa5f860edba9cdc17a380d9197d", size = 110505 },
+ { url = "https://files.pythonhosted.org/packages/7c/f3/09e86288ee3aace7306b2778127565f64c53d6ec1634dd67d128848d5a4f/opentelemetry_sdk-1.28.1-py3-none-any.whl", hash = "sha256:72aad7f5fcbe37113c4ab4899f6cdeb6ac77ed3e62f25a85e3627b12583dad0f", size = 118732 },
]
[[package]]
name = "opentelemetry-semantic-conventions"
-version = "0.48b0"
+version = "0.49b1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "deprecated" },
{ name = "opentelemetry-api" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/0a/89/1724ad69f7411772446067cdfa73b598694c8c91f7f8c922e344d96d81f9/opentelemetry_semantic_conventions-0.48b0.tar.gz", hash = "sha256:12d74983783b6878162208be57c9effcb89dc88691c64992d70bb89dc00daa1a", size = 89445 }
+sdist = { url = "https://files.pythonhosted.org/packages/bf/61/2715d9d24842ef2250cbd6a44198b6d134b6238d515c6b2f9042ea5aee63/opentelemetry_semantic_conventions-0.49b1.tar.gz", hash = "sha256:91817883b159ffb94c2ca9548509c4fe0aafce7c24f437aa6ac3fc613aa9a758", size = 95221 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/b7/7a/4f0063dbb0b6c971568291a8bc19a4ca70d3c185db2d956230dd67429dfc/opentelemetry_semantic_conventions-0.48b0-py3-none-any.whl", hash = "sha256:a0de9f45c413a8669788a38569c7e0a11ce6ce97861a628cca785deecdc32a1f", size = 149685 },
+ { url = "https://files.pythonhosted.org/packages/04/1d/01ad9c2a8f8346258bf87c20fc024c8baa410492e2c6b397140383381a28/opentelemetry_semantic_conventions-0.49b1-py3-none-any.whl", hash = "sha256:dd6f3ac8169d2198c752e1a63f827e5f5e110ae9b0ce33f2aad9a3baf0739743", size = 159213 },
]
[[package]]
name = "opentelemetry-util-http"
-version = "0.48b0"
+version = "0.49b1"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/d6/d7/185c494754340e0a3928fd39fde2616ee78f2c9d66253affaad62d5b7935/opentelemetry_util_http-0.48b0.tar.gz", hash = "sha256:60312015153580cc20f322e5cdc3d3ecad80a71743235bdb77716e742814623c", size = 7863 }
+sdist = { url = "https://files.pythonhosted.org/packages/c4/1f/f2a734beb7d6c51745867b3daa08bc4a727a7a272232ff9f43770d4d0213/opentelemetry_util_http-0.49b1.tar.gz", hash = "sha256:6c2bc6f7e20e286dbdfcccb9d895fa290ec9d7c596cdf2e06bf1d8e434b2edd0", size = 7864 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/ad/2e/36097c0a4d0115b8c7e377c90bab7783ac183bc5cb4071308f8959454311/opentelemetry_util_http-0.48b0-py3-none-any.whl", hash = "sha256:76f598af93aab50328d2a69c786beaedc8b6a7770f7a818cc307eb353debfffb", size = 6946 },
+ { url = "https://files.pythonhosted.org/packages/74/f6/911f49a8ebac7986d839bbfd9fd813db00e8305878f7d04cd9a0747021e0/opentelemetry_util_http-0.49b1-py3-none-any.whl", hash = "sha256:0290b942f7888b6310df6803e52e12f4043b8f224db0659f62dc7b70059eb94f", size = 6945 },
]
[[package]]
name = "packaging"
-version = "24.1"
+version = "24.2"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", size = 148788 }
+sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", size = 53985 },
+ { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 },
]
[[package]]
@@ -2363,11 +2269,11 @@ wheels = [
[[package]]
name = "phonenumbers"
-version = "8.13.48"
+version = "8.13.50"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/61/59/d01506a791481d26a640acb0a1124e3f0a816b0711e563962d7d55184890/phonenumbers-8.13.48.tar.gz", hash = "sha256:62d8df9b0f3c3c41571c6b396f044ddd999d61631534001b8be7fdf7ba1b18f3", size = 2297098 }
+sdist = { url = "https://files.pythonhosted.org/packages/55/bf/6d62a014a43e1e485185b9652ef309f8ce8998f65c9a1b7d4b89c46cb76b/phonenumbers-8.13.50.tar.gz", hash = "sha256:e05ac6fb7b98c6d719a87ea895b9fc153673b4a51f455ec9afaf557ef4629da6", size = 2297710 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/98/f4/a9340f98335ae6fab1ad4b56b6a04f390de65bea371c71b0cdf67e4c08d0/phonenumbers-8.13.48-py2.py3-none-any.whl", hash = "sha256:5c51939acefa390eb74119750afb10a85d3c628dc83fd62c52d6f532fcf5d205", size = 2582542 },
+ { url = "https://files.pythonhosted.org/packages/eb/d4/2011babd77b9709dd80f89aa74611fdace859e0571cd9e79ba3f95902441/phonenumbers-8.13.50-py2.py3-none-any.whl", hash = "sha256:bb95dbc0d9979c51f7ad94bcd780784938958861fbb4b75a2fe39ccd3d58954a", size = 2583092 },
]
[[package]]
@@ -2420,16 +2326,16 @@ wheels = [
[[package]]
name = "protobuf"
-version = "4.25.5"
+version = "5.28.3"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/67/dd/48d5fdb68ec74d70fabcc252e434492e56f70944d9f17b6a15e3746d2295/protobuf-4.25.5.tar.gz", hash = "sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584", size = 380315 }
+sdist = { url = "https://files.pythonhosted.org/packages/74/6e/e69eb906fddcb38f8530a12f4b410699972ab7ced4e21524ece9d546ac27/protobuf-5.28.3.tar.gz", hash = "sha256:64badbc49180a5e401f373f9ce7ab1d18b63f7dd4a9cdc43c92b9f0b481cef7b", size = 422479 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/00/35/1b3c5a5e6107859c4ca902f4fbb762e48599b78129a05d20684fef4a4d04/protobuf-4.25.5-cp310-abi3-win32.whl", hash = "sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8", size = 392457 },
- { url = "https://files.pythonhosted.org/packages/a7/ad/bf3f358e90b7e70bf7fb520702cb15307ef268262292d3bdb16ad8ebc815/protobuf-4.25.5-cp310-abi3-win_amd64.whl", hash = "sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea", size = 413449 },
- { url = "https://files.pythonhosted.org/packages/51/49/d110f0a43beb365758a252203c43eaaad169fe7749da918869a8c991f726/protobuf-4.25.5-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173", size = 394248 },
- { url = "https://files.pythonhosted.org/packages/c6/ab/0f384ca0bc6054b1a7b6009000ab75d28a5506e4459378b81280ae7fd358/protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d", size = 293717 },
- { url = "https://files.pythonhosted.org/packages/05/a6/094a2640be576d760baa34c902dcb8199d89bce9ed7dd7a6af74dcbbd62d/protobuf-4.25.5-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331", size = 294635 },
- { url = "https://files.pythonhosted.org/packages/33/90/f198a61df8381fb43ae0fe81b3d2718e8dcc51ae8502c7657ab9381fbc4f/protobuf-4.25.5-py3-none-any.whl", hash = "sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41", size = 156467 },
+ { url = "https://files.pythonhosted.org/packages/d1/c5/05163fad52d7c43e124a545f1372d18266db36036377ad29de4271134a6a/protobuf-5.28.3-cp310-abi3-win32.whl", hash = "sha256:0c4eec6f987338617072592b97943fdbe30d019c56126493111cf24344c1cc24", size = 419624 },
+ { url = "https://files.pythonhosted.org/packages/9c/4c/4563ebe001ff30dca9d7ed12e471fa098d9759712980cde1fd03a3a44fb7/protobuf-5.28.3-cp310-abi3-win_amd64.whl", hash = "sha256:91fba8f445723fcf400fdbe9ca796b19d3b1242cd873907979b9ed71e4afe868", size = 431464 },
+ { url = "https://files.pythonhosted.org/packages/1c/f2/baf397f3dd1d3e4af7e3f5a0382b868d25ac068eefe1ebde05132333436c/protobuf-5.28.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a3f6857551e53ce35e60b403b8a27b0295f7d6eb63d10484f12bc6879c715687", size = 414743 },
+ { url = "https://files.pythonhosted.org/packages/85/50/cd61a358ba1601f40e7d38bcfba22e053f40ef2c50d55b55926aecc8fec7/protobuf-5.28.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:3fa2de6b8b29d12c61911505d893afe7320ce7ccba4df913e2971461fa36d584", size = 316511 },
+ { url = "https://files.pythonhosted.org/packages/5d/ae/3257b09328c0b4e59535e497b0c7537d4954038bdd53a2f0d2f49d15a7c4/protobuf-5.28.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:712319fbdddb46f21abb66cd33cb9e491a5763b2febd8f228251add221981135", size = 316624 },
+ { url = "https://files.pythonhosted.org/packages/ad/c3/2377c159e28ea89a91cf1ca223f827ae8deccb2c9c401e5ca233cd73002f/protobuf-5.28.3-py3-none-any.whl", hash = "sha256:cee1757663fa32a1ee673434fcf3bf24dd54763c79690201208bafec62f19eed", size = 169511 },
]
[[package]]
@@ -2516,30 +2422,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 },
]
-[[package]]
-name = "pycryptodomex"
-version = "3.21.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/11/dc/e66551683ade663b5f07d7b3bc46434bf703491dbd22ee12d1f979ca828f/pycryptodomex-3.21.0.tar.gz", hash = "sha256:222d0bd05381dd25c32dd6065c071ebf084212ab79bab4599ba9e6a3e0009e6c", size = 4818543 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/22/5e/99f217d9881eead69607a2248dd7bbdf610837d7f5ad53f45a6cb71bbbfb/pycryptodomex-3.21.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:34325b84c8b380675fd2320d0649cdcbc9cf1e0d1526edbe8fce43ed858cdc7e", size = 2499490 },
- { url = "https://files.pythonhosted.org/packages/ce/8f/4d0e2a859a6470289d64e39b419f01d2494dfa2e4995342d50f6c2834237/pycryptodomex-3.21.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:103c133d6cd832ae7266feb0a65b69e3a5e4dbbd6f3a3ae3211a557fd653f516", size = 1638037 },
- { url = "https://files.pythonhosted.org/packages/0c/9e/6e748c1fa814c956d356f93cf7192b19487ca56fc9e2a0bcde2bbc057601/pycryptodomex-3.21.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77ac2ea80bcb4b4e1c6a596734c775a1615d23e31794967416afc14852a639d3", size = 2172279 },
- { url = "https://files.pythonhosted.org/packages/46/3f/f5bef92b11750af9e3516d4e69736eeeff20a2818d34611508bef5a7b381/pycryptodomex-3.21.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9aa0cf13a1a1128b3e964dc667e5fe5c6235f7d7cfb0277213f0e2a783837cc2", size = 2258130 },
- { url = "https://files.pythonhosted.org/packages/de/4d/f0c65afd64ce435fd0547187ce6f99dfb37cdde16b05b57bca9f5c06966e/pycryptodomex-3.21.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:46eb1f0c8d309da63a2064c28de54e5e614ad17b7e2f88df0faef58ce192fc7b", size = 2297719 },
- { url = "https://files.pythonhosted.org/packages/1c/6a/2a1a101b0345ee70376ba93df8de6c8c01aac8341fda02970800873456a7/pycryptodomex-3.21.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:cc7e111e66c274b0df5f4efa679eb31e23c7545d702333dfd2df10ab02c2a2ce", size = 2164079 },
- { url = "https://files.pythonhosted.org/packages/3d/00/90a15f16c234815b660303c2d7266b41b401ea2605f3a90373e9d425e39f/pycryptodomex-3.21.0-cp36-abi3-musllinux_1_2_i686.whl", hash = "sha256:770d630a5c46605ec83393feaa73a9635a60e55b112e1fb0c3cea84c2897aa0a", size = 2333060 },
- { url = "https://files.pythonhosted.org/packages/61/74/49f5d20c514ccc631b940cc9dfec45dcce418dc84a98463a2e2ebec33904/pycryptodomex-3.21.0-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:52e23a0a6e61691134aa8c8beba89de420602541afaae70f66e16060fdcd677e", size = 2257982 },
- { url = "https://files.pythonhosted.org/packages/92/4b/d33ef74e2cc0025a259936661bb53432c5bbbadc561c5f2e023bcd73ce4c/pycryptodomex-3.21.0-cp36-abi3-win32.whl", hash = "sha256:a3d77919e6ff56d89aada1bd009b727b874d464cb0e2e3f00a49f7d2e709d76e", size = 1779052 },
- { url = "https://files.pythonhosted.org/packages/5b/be/7c991840af1184009fc86267160948350d1bf875f153c97bb471ad944e40/pycryptodomex-3.21.0-cp36-abi3-win_amd64.whl", hash = "sha256:b0e9765f93fe4890f39875e6c90c96cb341767833cfa767f41b490b506fa9ec0", size = 1816307 },
- { url = "https://files.pythonhosted.org/packages/af/ac/24125ad36778914a36f08d61ba5338cb9159382c638d9761ee19c8de822c/pycryptodomex-3.21.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:feaecdce4e5c0045e7a287de0c4351284391fe170729aa9182f6bd967631b3a8", size = 1694999 },
- { url = "https://files.pythonhosted.org/packages/93/73/be7a54a5903508070e5508925ba94493a1f326cfeecfff750e3eb250ea28/pycryptodomex-3.21.0-pp27-pypy_73-win32.whl", hash = "sha256:365aa5a66d52fd1f9e0530ea97f392c48c409c2f01ff8b9a39c73ed6f527d36c", size = 1769437 },
- { url = "https://files.pythonhosted.org/packages/e5/9f/39a6187f3986841fa6a9f35c6fdca5030ef73ff708b45a993813a51d7d10/pycryptodomex-3.21.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3efddfc50ac0ca143364042324046800c126a1d63816d532f2e19e6f2d8c0c31", size = 1619607 },
- { url = "https://files.pythonhosted.org/packages/f8/70/60bb08e9e9841b18d4669fb69d84b64ce900aacd7eb0ebebd4c7b9bdecd3/pycryptodomex-3.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0df2608682db8279a9ebbaf05a72f62a321433522ed0e499bc486a6889b96bf3", size = 1653571 },
- { url = "https://files.pythonhosted.org/packages/c9/6f/191b73509291c5ff0dddec9cc54797b1d73303c12b2e4017b24678e57099/pycryptodomex-3.21.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5823d03e904ea3e53aebd6799d6b8ec63b7675b5d2f4a4bd5e3adcb512d03b37", size = 1691548 },
- { url = "https://files.pythonhosted.org/packages/2d/c7/a0d3356f3074ac548afefa515ff46f3bea011deca607faf1c09b26dd5330/pycryptodomex-3.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:27e84eeff24250ffec32722334749ac2a57a5fd60332cd6a0680090e7c42877e", size = 1792099 },
-]
-
[[package]]
name = "pydantic"
version = "2.9.2"
@@ -2621,21 +2503,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/a9/f9/b6bcaf874f410564a78908739c80861a171788ef4d4f76f5009656672dfe/pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753", size = 1920344 },
]
-[[package]]
-name = "pydantic-pkgr"
-version = "0.5.4"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "platformdirs" },
- { name = "pydantic" },
- { name = "pydantic-core" },
- { name = "typing-extensions" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/d2/18/3bf29e213c4a19d5b08e0fa1048c72f76c54565a208cced1fd4a60f989fc/pydantic_pkgr-0.5.4.tar.gz", hash = "sha256:e3487b46357b1e1b729363385590355cfac261b18ed207f59e9b613c5a8d45b2", size = 42408 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/01/97/9ec8d45e4af1a3af7d0ca78e12bcb1d74a446399034cb1514aab2bac056e/pydantic_pkgr-0.5.4-py3-none-any.whl", hash = "sha256:46ad1ad5954ee9c55b2c2f2c2be749a39992a89edde624454e63d8a7b550be8b", size = 45061 },
-]
-
[[package]]
name = "pydantic-settings"
version = "2.6.1"
@@ -2792,11 +2659,11 @@ wheels = [
[[package]]
name = "python-statemachine"
-version = "2.3.6"
+version = "2.4.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/20/c9/7034a362ce151f9fa0ead5630727a16122f7a5ed235d42447910dff95b6a/python_statemachine-2.3.6.tar.gz", hash = "sha256:9cb4040ca7f2158d3cd46f36a77b420b6ef95a90223928a7f3cab232a70bd560", size = 36735 }
+sdist = { url = "https://files.pythonhosted.org/packages/58/88/6bba4ca5a30d15928ee1c11c423edcd030559b2a1236c2b64f1dc408d2a2/python_statemachine-2.4.0.tar.gz", hash = "sha256:1f0cce643c9d17b130dbeb369c293c97d6d0dc25931d45bc8ff667cd7cd67747", size = 40916 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/39/04/19a44b549cbaae1ac6c2acc58afb96b71209da866713877f40aab2f45de6/python_statemachine-2.3.6-py3-none-any.whl", hash = "sha256:0001b02cbe2f5b2420c423b5b3e3a33915447ac6d9735219c929e2378d454f5f", size = 41529 },
+ { url = "https://files.pythonhosted.org/packages/6d/bc/a0cd6ea3fed5e49c8c83b0eefc1ae382a5ecb4963adfb35696c5275cf78c/python_statemachine-2.4.0-py3-none-any.whl", hash = "sha256:c9efc4ca9e2627b981ab2b6b41af294fe30ae6e7f0ca927b2cd368ea3f1c896c", size = 48205 },
]
[[package]]
@@ -2877,71 +2744,71 @@ wheels = [
[[package]]
name = "regex"
-version = "2024.9.11"
+version = "2024.11.6"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/f9/38/148df33b4dbca3bd069b963acab5e0fa1a9dbd6820f8c322d0dd6faeff96/regex-2024.9.11.tar.gz", hash = "sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd", size = 399403 }
+sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/63/12/497bd6599ce8a239ade68678132296aec5ee25ebea45fc8ba91aa60fceec/regex-2024.9.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408", size = 482488 },
- { url = "https://files.pythonhosted.org/packages/c1/24/595ddb9bec2a9b151cdaf9565b0c9f3da9f0cb1dca6c158bc5175332ddf8/regex-2024.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d", size = 287443 },
- { url = "https://files.pythonhosted.org/packages/69/a8/b2fb45d9715b1469383a0da7968f8cacc2f83e9fbbcd6b8713752dd980a6/regex-2024.9.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5", size = 284561 },
- { url = "https://files.pythonhosted.org/packages/88/87/1ce4a5357216b19b7055e7d3b0efc75a6e426133bf1e7d094321df514257/regex-2024.9.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c", size = 783177 },
- { url = "https://files.pythonhosted.org/packages/3c/65/b9f002ab32f7b68e7d1dcabb67926f3f47325b8dbc22cc50b6a043e1d07c/regex-2024.9.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8", size = 823193 },
- { url = "https://files.pythonhosted.org/packages/22/91/8339dd3abce101204d246e31bc26cdd7ec07c9f91598472459a3a902aa41/regex-2024.9.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35", size = 809950 },
- { url = "https://files.pythonhosted.org/packages/cb/19/556638aa11c2ec9968a1da998f07f27ec0abb9bf3c647d7c7985ca0b8eea/regex-2024.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71", size = 782661 },
- { url = "https://files.pythonhosted.org/packages/d1/e9/7a5bc4c6ef8d9cd2bdd83a667888fc35320da96a4cc4da5fa084330f53db/regex-2024.9.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8", size = 772348 },
- { url = "https://files.pythonhosted.org/packages/f1/0b/29f2105bfac3ed08e704914c38e93b07c784a6655f8a015297ee7173e95b/regex-2024.9.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a", size = 697460 },
- { url = "https://files.pythonhosted.org/packages/71/3a/52ff61054d15a4722605f5872ad03962b319a04c1ebaebe570b8b9b7dde1/regex-2024.9.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d", size = 769151 },
- { url = "https://files.pythonhosted.org/packages/97/07/37e460ab5ca84be8e1e197c3b526c5c86993dcc9e13cbc805c35fc2463c1/regex-2024.9.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137", size = 777478 },
- { url = "https://files.pythonhosted.org/packages/65/7b/953075723dd5ab00780043ac2f9de667306ff9e2a85332975e9f19279174/regex-2024.9.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6", size = 845373 },
- { url = "https://files.pythonhosted.org/packages/40/b8/3e9484c6230b8b6e8f816ab7c9a080e631124991a4ae2c27a81631777db0/regex-2024.9.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca", size = 845369 },
- { url = "https://files.pythonhosted.org/packages/b7/99/38434984d912edbd2e1969d116257e869578f67461bd7462b894c45ed874/regex-2024.9.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a", size = 773935 },
- { url = "https://files.pythonhosted.org/packages/ab/67/43174d2b46fa947b7b9dfe56b6c8a8a76d44223f35b1d64645a732fd1d6f/regex-2024.9.11-cp310-cp310-win32.whl", hash = "sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0", size = 261624 },
- { url = "https://files.pythonhosted.org/packages/c4/2a/4f9c47d9395b6aff24874c761d8d620c0232f97c43ef3cf668c8b355e7a7/regex-2024.9.11-cp310-cp310-win_amd64.whl", hash = "sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623", size = 274020 },
- { url = "https://files.pythonhosted.org/packages/86/a1/d526b7b6095a0019aa360948c143aacfeb029919c898701ce7763bbe4c15/regex-2024.9.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df", size = 482483 },
- { url = "https://files.pythonhosted.org/packages/32/d9/bfdd153179867c275719e381e1e8e84a97bd186740456a0dcb3e7125c205/regex-2024.9.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268", size = 287442 },
- { url = "https://files.pythonhosted.org/packages/33/c4/60f3370735135e3a8d673ddcdb2507a8560d0e759e1398d366e43d000253/regex-2024.9.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad", size = 284561 },
- { url = "https://files.pythonhosted.org/packages/b1/51/91a5ebdff17f9ec4973cb0aa9d37635efec1c6868654bbc25d1543aca4ec/regex-2024.9.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679", size = 791779 },
- { url = "https://files.pythonhosted.org/packages/07/4a/022c5e6f0891a90cd7eb3d664d6c58ce2aba48bff107b00013f3d6167069/regex-2024.9.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4", size = 832605 },
- { url = "https://files.pythonhosted.org/packages/ac/1c/3793990c8c83ca04e018151ddda83b83ecc41d89964f0f17749f027fc44d/regex-2024.9.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664", size = 818556 },
- { url = "https://files.pythonhosted.org/packages/e9/5c/8b385afbfacb853730682c57be56225f9fe275c5bf02ac1fc88edbff316d/regex-2024.9.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50", size = 792808 },
- { url = "https://files.pythonhosted.org/packages/9b/8b/a4723a838b53c771e9240951adde6af58c829fb6a6a28f554e8131f53839/regex-2024.9.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199", size = 781115 },
- { url = "https://files.pythonhosted.org/packages/83/5f/031a04b6017033d65b261259c09043c06f4ef2d4eac841d0649d76d69541/regex-2024.9.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4", size = 778155 },
- { url = "https://files.pythonhosted.org/packages/fd/cd/4660756070b03ce4a66663a43f6c6e7ebc2266cc6b4c586c167917185eb4/regex-2024.9.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd", size = 784614 },
- { url = "https://files.pythonhosted.org/packages/93/8d/65b9bea7df120a7be8337c415b6d256ba786cbc9107cebba3bf8ff09da99/regex-2024.9.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f", size = 853744 },
- { url = "https://files.pythonhosted.org/packages/96/a7/fba1eae75eb53a704475baf11bd44b3e6ccb95b316955027eb7748f24ef8/regex-2024.9.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96", size = 855890 },
- { url = "https://files.pythonhosted.org/packages/45/14/d864b2db80a1a3358534392373e8a281d95b28c29c87d8548aed58813910/regex-2024.9.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1", size = 781887 },
- { url = "https://files.pythonhosted.org/packages/4d/a9/bfb29b3de3eb11dc9b412603437023b8e6c02fb4e11311863d9bf62c403a/regex-2024.9.11-cp311-cp311-win32.whl", hash = "sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9", size = 261644 },
- { url = "https://files.pythonhosted.org/packages/c7/ab/1ad2511cf6a208fde57fafe49829cab8ca018128ab0d0b48973d8218634a/regex-2024.9.11-cp311-cp311-win_amd64.whl", hash = "sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf", size = 274033 },
- { url = "https://files.pythonhosted.org/packages/6e/92/407531450762bed778eedbde04407f68cbd75d13cee96c6f8d6903d9c6c1/regex-2024.9.11-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7", size = 483590 },
- { url = "https://files.pythonhosted.org/packages/8e/a2/048acbc5ae1f615adc6cba36cc45734e679b5f1e4e58c3c77f0ed611d4e2/regex-2024.9.11-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231", size = 288175 },
- { url = "https://files.pythonhosted.org/packages/8a/ea/909d8620329ab710dfaf7b4adee41242ab7c9b95ea8d838e9bfe76244259/regex-2024.9.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d", size = 284749 },
- { url = "https://files.pythonhosted.org/packages/ca/fa/521eb683b916389b4975337873e66954e0f6d8f91bd5774164a57b503185/regex-2024.9.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64", size = 795181 },
- { url = "https://files.pythonhosted.org/packages/28/db/63047feddc3280cc242f9c74f7aeddc6ee662b1835f00046f57d5630c827/regex-2024.9.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42", size = 835842 },
- { url = "https://files.pythonhosted.org/packages/e3/94/86adc259ff8ec26edf35fcca7e334566c1805c7493b192cb09679f9c3dee/regex-2024.9.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766", size = 823533 },
- { url = "https://files.pythonhosted.org/packages/29/52/84662b6636061277cb857f658518aa7db6672bc6d1a3f503ccd5aefc581e/regex-2024.9.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a", size = 797037 },
- { url = "https://files.pythonhosted.org/packages/c3/2a/cd4675dd987e4a7505f0364a958bc41f3b84942de9efaad0ef9a2646681c/regex-2024.9.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9", size = 784106 },
- { url = "https://files.pythonhosted.org/packages/6f/75/3ea7ec29de0bbf42f21f812f48781d41e627d57a634f3f23947c9a46e303/regex-2024.9.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d", size = 782468 },
- { url = "https://files.pythonhosted.org/packages/d3/67/15519d69b52c252b270e679cb578e22e0c02b8dd4e361f2b04efcc7f2335/regex-2024.9.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822", size = 790324 },
- { url = "https://files.pythonhosted.org/packages/9c/71/eff77d3fe7ba08ab0672920059ec30d63fa7e41aa0fb61c562726e9bd721/regex-2024.9.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0", size = 860214 },
- { url = "https://files.pythonhosted.org/packages/81/11/e1bdf84a72372e56f1ea4b833dd583b822a23138a616ace7ab57a0e11556/regex-2024.9.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a", size = 859420 },
- { url = "https://files.pythonhosted.org/packages/ea/75/9753e9dcebfa7c3645563ef5c8a58f3a47e799c872165f37c55737dadd3e/regex-2024.9.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a", size = 787333 },
- { url = "https://files.pythonhosted.org/packages/bc/4e/ba1cbca93141f7416624b3ae63573e785d4bc1834c8be44a8f0747919eca/regex-2024.9.11-cp312-cp312-win32.whl", hash = "sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776", size = 262058 },
- { url = "https://files.pythonhosted.org/packages/6e/16/efc5f194778bf43e5888209e5cec4b258005d37c613b67ae137df3b89c53/regex-2024.9.11-cp312-cp312-win_amd64.whl", hash = "sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009", size = 273526 },
- { url = "https://files.pythonhosted.org/packages/93/0a/d1c6b9af1ff1e36832fe38d74d5c5bab913f2bdcbbd6bc0e7f3ce8b2f577/regex-2024.9.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784", size = 483376 },
- { url = "https://files.pythonhosted.org/packages/a4/42/5910a050c105d7f750a72dcb49c30220c3ae4e2654e54aaaa0e9bc0584cb/regex-2024.9.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36", size = 288112 },
- { url = "https://files.pythonhosted.org/packages/8d/56/0c262aff0e9224fa7ffce47b5458d373f4d3e3ff84e99b5ff0cb15e0b5b2/regex-2024.9.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92", size = 284608 },
- { url = "https://files.pythonhosted.org/packages/b9/54/9fe8f9aec5007bbbbce28ba3d2e3eaca425f95387b7d1e84f0d137d25237/regex-2024.9.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86", size = 795337 },
- { url = "https://files.pythonhosted.org/packages/b2/e7/6b2f642c3cded271c4f16cc4daa7231be544d30fe2b168e0223724b49a61/regex-2024.9.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85", size = 835848 },
- { url = "https://files.pythonhosted.org/packages/cd/9e/187363bdf5d8c0e4662117b92aa32bf52f8f09620ae93abc7537d96d3311/regex-2024.9.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963", size = 823503 },
- { url = "https://files.pythonhosted.org/packages/f8/10/601303b8ee93589f879664b0cfd3127949ff32b17f9b6c490fb201106c4d/regex-2024.9.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6", size = 797049 },
- { url = "https://files.pythonhosted.org/packages/ef/1c/ea200f61ce9f341763f2717ab4daebe4422d83e9fd4ac5e33435fd3a148d/regex-2024.9.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802", size = 784144 },
- { url = "https://files.pythonhosted.org/packages/d8/5c/d2429be49ef3292def7688401d3deb11702c13dcaecdc71d2b407421275b/regex-2024.9.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29", size = 782483 },
- { url = "https://files.pythonhosted.org/packages/12/d9/cbc30f2ff7164f3b26a7760f87c54bf8b2faed286f60efd80350a51c5b99/regex-2024.9.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8", size = 790320 },
- { url = "https://files.pythonhosted.org/packages/19/1d/43ed03a236313639da5a45e61bc553c8d41e925bcf29b0f8ecff0c2c3f25/regex-2024.9.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84", size = 860435 },
- { url = "https://files.pythonhosted.org/packages/34/4f/5d04da61c7c56e785058a46349f7285ae3ebc0726c6ea7c5c70600a52233/regex-2024.9.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554", size = 859571 },
- { url = "https://files.pythonhosted.org/packages/12/7f/8398c8155a3c70703a8e91c29532558186558e1aea44144b382faa2a6f7a/regex-2024.9.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8", size = 787398 },
- { url = "https://files.pythonhosted.org/packages/58/3a/f5903977647a9a7e46d5535e9e96c194304aeeca7501240509bde2f9e17f/regex-2024.9.11-cp313-cp313-win32.whl", hash = "sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8", size = 262035 },
- { url = "https://files.pythonhosted.org/packages/ff/80/51ba3a4b7482f6011095b3a036e07374f64de180b7d870b704ed22509002/regex-2024.9.11-cp313-cp313-win_amd64.whl", hash = "sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f", size = 273510 },
+ { url = "https://files.pythonhosted.org/packages/95/3c/4651f6b130c6842a8f3df82461a8950f923925db8b6961063e82744bddcc/regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91", size = 482674 },
+ { url = "https://files.pythonhosted.org/packages/15/51/9f35d12da8434b489c7b7bffc205c474a0a9432a889457026e9bc06a297a/regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0", size = 287684 },
+ { url = "https://files.pythonhosted.org/packages/bd/18/b731f5510d1b8fb63c6b6d3484bfa9a59b84cc578ac8b5172970e05ae07c/regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e", size = 284589 },
+ { url = "https://files.pythonhosted.org/packages/78/a2/6dd36e16341ab95e4c6073426561b9bfdeb1a9c9b63ab1b579c2e96cb105/regex-2024.11.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde", size = 782511 },
+ { url = "https://files.pythonhosted.org/packages/1b/2b/323e72d5d2fd8de0d9baa443e1ed70363ed7e7b2fb526f5950c5cb99c364/regex-2024.11.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e", size = 821149 },
+ { url = "https://files.pythonhosted.org/packages/90/30/63373b9ea468fbef8a907fd273e5c329b8c9535fee36fc8dba5fecac475d/regex-2024.11.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2", size = 809707 },
+ { url = "https://files.pythonhosted.org/packages/f2/98/26d3830875b53071f1f0ae6d547f1d98e964dd29ad35cbf94439120bb67a/regex-2024.11.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf", size = 781702 },
+ { url = "https://files.pythonhosted.org/packages/87/55/eb2a068334274db86208ab9d5599ffa63631b9f0f67ed70ea7c82a69bbc8/regex-2024.11.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c", size = 771976 },
+ { url = "https://files.pythonhosted.org/packages/74/c0/be707bcfe98254d8f9d2cff55d216e946f4ea48ad2fd8cf1428f8c5332ba/regex-2024.11.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86", size = 697397 },
+ { url = "https://files.pythonhosted.org/packages/49/dc/bb45572ceb49e0f6509f7596e4ba7031f6819ecb26bc7610979af5a77f45/regex-2024.11.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67", size = 768726 },
+ { url = "https://files.pythonhosted.org/packages/5a/db/f43fd75dc4c0c2d96d0881967897926942e935d700863666f3c844a72ce6/regex-2024.11.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d", size = 775098 },
+ { url = "https://files.pythonhosted.org/packages/99/d7/f94154db29ab5a89d69ff893159b19ada89e76b915c1293e98603d39838c/regex-2024.11.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2", size = 839325 },
+ { url = "https://files.pythonhosted.org/packages/f7/17/3cbfab1f23356fbbf07708220ab438a7efa1e0f34195bf857433f79f1788/regex-2024.11.6-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008", size = 843277 },
+ { url = "https://files.pythonhosted.org/packages/7e/f2/48b393b51900456155de3ad001900f94298965e1cad1c772b87f9cfea011/regex-2024.11.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62", size = 773197 },
+ { url = "https://files.pythonhosted.org/packages/45/3f/ef9589aba93e084cd3f8471fded352826dcae8489b650d0b9b27bc5bba8a/regex-2024.11.6-cp310-cp310-win32.whl", hash = "sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e", size = 261714 },
+ { url = "https://files.pythonhosted.org/packages/42/7e/5f1b92c8468290c465fd50c5318da64319133231415a8aa6ea5ab995a815/regex-2024.11.6-cp310-cp310-win_amd64.whl", hash = "sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519", size = 274042 },
+ { url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669 },
+ { url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684 },
+ { url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589 },
+ { url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121 },
+ { url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275 },
+ { url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257 },
+ { url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727 },
+ { url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667 },
+ { url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963 },
+ { url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700 },
+ { url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592 },
+ { url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929 },
+ { url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213 },
+ { url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734 },
+ { url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052 },
+ { url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 },
+ { url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 },
+ { url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 },
+ { url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 },
+ { url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 },
+ { url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 },
+ { url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 },
+ { url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 },
+ { url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 },
+ { url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 },
+ { url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 },
+ { url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 },
+ { url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 },
+ { url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 },
+ { url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 },
+ { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 },
+ { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 },
+ { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 },
+ { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 },
+ { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 },
+ { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 },
+ { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 },
+ { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 },
+ { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 },
+ { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 },
+ { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 },
+ { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 },
+ { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 },
+ { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 },
+ { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 },
]
[[package]]
@@ -3000,27 +2867,27 @@ wheels = [
[[package]]
name = "ruff"
-version = "0.7.2"
+version = "0.7.4"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/95/51/231bb3790e5b0b9fd4131f9a231d73d061b3667522e3f406fd9b63334d0e/ruff-0.7.2.tar.gz", hash = "sha256:2b14e77293380e475b4e3a7a368e14549288ed2931fce259a6f99978669e844f", size = 3210036 }
+sdist = { url = "https://files.pythonhosted.org/packages/0b/8b/bc4e0dfa1245b07cf14300e10319b98e958a53ff074c1dd86b35253a8c2a/ruff-0.7.4.tar.gz", hash = "sha256:cd12e35031f5af6b9b93715d8c4f40360070b2041f81273d0527683d5708fce2", size = 3275547 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/5c/56/0caa2b5745d66a39aa239c01059f6918fc76ed8380033d2f44bf297d141d/ruff-0.7.2-py3-none-linux_armv6l.whl", hash = "sha256:b73f873b5f52092e63ed540adefc3c36f1f803790ecf2590e1df8bf0a9f72cb8", size = 10373973 },
- { url = "https://files.pythonhosted.org/packages/1a/33/cad6ff306731f335d481c50caa155b69a286d5b388e87ff234cd2a4b3557/ruff-0.7.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:5b813ef26db1015953daf476202585512afd6a6862a02cde63f3bafb53d0b2d4", size = 10171140 },
- { url = "https://files.pythonhosted.org/packages/97/f5/6a2ca5c9ba416226eac9cf8121a1baa6f06655431937e85f38ffcb9d0d01/ruff-0.7.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:853277dbd9675810c6826dad7a428d52a11760744508340e66bf46f8be9701d9", size = 9809333 },
- { url = "https://files.pythonhosted.org/packages/16/83/e3e87f13d1a1dc205713632978cd7bc287a59b08bc95780dbe359b9aefcb/ruff-0.7.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21aae53ab1490a52bf4e3bf520c10ce120987b047c494cacf4edad0ba0888da2", size = 10622987 },
- { url = "https://files.pythonhosted.org/packages/22/16/97ccab194480e99a2e3c77ae132b3eebfa38c2112747570c403a4a13ba3a/ruff-0.7.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ccc7e0fc6e0cb3168443eeadb6445285abaae75142ee22b2b72c27d790ab60ba", size = 10184640 },
- { url = "https://files.pythonhosted.org/packages/97/1b/82ff05441b036f68817296c14f24da47c591cb27acfda473ee571a5651ac/ruff-0.7.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd77877a4e43b3a98e5ef4715ba3862105e299af0c48942cc6d51ba3d97dc859", size = 11210203 },
- { url = "https://files.pythonhosted.org/packages/a6/96/7ecb30a7ef7f942e2d8e0287ad4c1957dddc6c5097af4978c27cfc334f97/ruff-0.7.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e00163fb897d35523c70d71a46fbaa43bf7bf9af0f4534c53ea5b96b2e03397b", size = 11870894 },
- { url = "https://files.pythonhosted.org/packages/06/6a/c716bb126218227f8e604a9c484836257708a05ee3d2ebceb666ff3d3867/ruff-0.7.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3c54b538633482dc342e9b634d91168fe8cc56b30a4b4f99287f4e339103e88", size = 11449533 },
- { url = "https://files.pythonhosted.org/packages/e6/2f/3a5f9f9478904e5ae9506ea699109070ead1e79aac041e872cbaad8a7458/ruff-0.7.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7b792468e9804a204be221b14257566669d1db5c00d6bb335996e5cd7004ba80", size = 12607919 },
- { url = "https://files.pythonhosted.org/packages/a0/57/4642e57484d80d274750dcc872ea66655bbd7e66e986fede31e1865b463d/ruff-0.7.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dba53ed84ac19ae4bfb4ea4bf0172550a2285fa27fbb13e3746f04c80f7fa088", size = 11016915 },
- { url = "https://files.pythonhosted.org/packages/4d/6d/59be6680abee34c22296ae3f46b2a3b91662b8b18ab0bf388b5eb1355c97/ruff-0.7.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b19fafe261bf741bca2764c14cbb4ee1819b67adb63ebc2db6401dcd652e3748", size = 10625424 },
- { url = "https://files.pythonhosted.org/packages/82/e7/f6a643683354c9bc7879d2f228ee0324fea66d253de49273a0814fba1927/ruff-0.7.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:28bd8220f4d8f79d590db9e2f6a0674f75ddbc3847277dd44ac1f8d30684b828", size = 10233692 },
- { url = "https://files.pythonhosted.org/packages/d7/48/b4e02fc835cd7ed1ee7318d9c53e48bcf6b66301f55925a7dcb920e45532/ruff-0.7.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9fd67094e77efbea932e62b5d2483006154794040abb3a5072e659096415ae1e", size = 10751825 },
- { url = "https://files.pythonhosted.org/packages/1e/06/6c5ee6ab7bb4cbad9e8bb9b2dd0d818c759c90c1c9e057c6ed70334b97f4/ruff-0.7.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:576305393998b7bd6c46018f8104ea3a9cb3fa7908c21d8580e3274a3b04b691", size = 11074811 },
- { url = "https://files.pythonhosted.org/packages/a1/16/8969304f25bcd0e4af1778342e63b715e91db8a2dbb51807acd858cba915/ruff-0.7.2-py3-none-win32.whl", hash = "sha256:fa993cfc9f0ff11187e82de874dfc3611df80852540331bc85c75809c93253a8", size = 8650268 },
- { url = "https://files.pythonhosted.org/packages/d9/18/c4b00d161def43fe5968e959039c8f6ce60dca762cec4a34e4e83a4210a0/ruff-0.7.2-py3-none-win_amd64.whl", hash = "sha256:dd8800cbe0254e06b8fec585e97554047fb82c894973f7ff18558eee33d1cb88", size = 9433693 },
- { url = "https://files.pythonhosted.org/packages/7f/7b/c920673ac01c19814dd15fc617c02301c522f3d6812ca2024f4588ed4549/ruff-0.7.2-py3-none-win_arm64.whl", hash = "sha256:bb8368cd45bba3f57bb29cbb8d64b4a33f8415d0149d2655c5c8539452ce7760", size = 8735845 },
+ { url = "https://files.pythonhosted.org/packages/e6/4b/f5094719e254829766b807dadb766841124daba75a37da83e292ae5ad12f/ruff-0.7.4-py3-none-linux_armv6l.whl", hash = "sha256:a4919925e7684a3f18e18243cd6bea7cfb8e968a6eaa8437971f681b7ec51478", size = 10447512 },
+ { url = "https://files.pythonhosted.org/packages/9e/1d/3d2d2c9f601cf6044799c5349ff5267467224cefed9b35edf5f1f36486e9/ruff-0.7.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:cfb365c135b830778dda8c04fb7d4280ed0b984e1aec27f574445231e20d6c63", size = 10235436 },
+ { url = "https://files.pythonhosted.org/packages/62/83/42a6ec6216ded30b354b13e0e9327ef75a3c147751aaf10443756cb690e9/ruff-0.7.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:63a569b36bc66fbadec5beaa539dd81e0527cb258b94e29e0531ce41bacc1f20", size = 9888936 },
+ { url = "https://files.pythonhosted.org/packages/4d/26/e1e54893b13046a6ad05ee9b89ee6f71542ba250f72b4c7a7d17c3dbf73d/ruff-0.7.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d06218747d361d06fd2fdac734e7fa92df36df93035db3dc2ad7aa9852cb109", size = 10697353 },
+ { url = "https://files.pythonhosted.org/packages/21/24/98d2e109c4efc02bfef144ec6ea2c3e1217e7ce0cfddda8361d268dfd499/ruff-0.7.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0cea28d0944f74ebc33e9f934238f15c758841f9f5edd180b5315c203293452", size = 10228078 },
+ { url = "https://files.pythonhosted.org/packages/ad/b7/964c75be9bc2945fc3172241b371197bb6d948cc69e28bc4518448c368f3/ruff-0.7.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80094ecd4793c68b2571b128f91754d60f692d64bc0d7272ec9197fdd09bf9ea", size = 11264823 },
+ { url = "https://files.pythonhosted.org/packages/12/8d/20abdbf705969914ce40988fe71a554a918deaab62c38ec07483e77866f6/ruff-0.7.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:997512325c6620d1c4c2b15db49ef59543ef9cd0f4aa8065ec2ae5103cedc7e7", size = 11951855 },
+ { url = "https://files.pythonhosted.org/packages/b8/fc/6519ce58c57b4edafcdf40920b7273dfbba64fc6ebcaae7b88e4dc1bf0a8/ruff-0.7.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00b4cf3a6b5fad6d1a66e7574d78956bbd09abfd6c8a997798f01f5da3d46a05", size = 11516580 },
+ { url = "https://files.pythonhosted.org/packages/37/1a/5ec1844e993e376a86eb2456496831ed91b4398c434d8244f89094758940/ruff-0.7.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7dbdc7d8274e1422722933d1edddfdc65b4336abf0b16dfcb9dedd6e6a517d06", size = 12692057 },
+ { url = "https://files.pythonhosted.org/packages/50/90/76867152b0d3c05df29a74bb028413e90f704f0f6701c4801174ba47f959/ruff-0.7.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e92dfb5f00eaedb1501b2f906ccabfd67b2355bdf117fea9719fc99ac2145bc", size = 11085137 },
+ { url = "https://files.pythonhosted.org/packages/c8/eb/0a7cb6059ac3555243bd026bb21785bbc812f7bbfa95a36c101bd72b47ae/ruff-0.7.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3bd726099f277d735dc38900b6a8d6cf070f80828877941983a57bca1cd92172", size = 10681243 },
+ { url = "https://files.pythonhosted.org/packages/5e/76/2270719dbee0fd35780b05c08a07b7a726c3da9f67d9ae89ef21fc18e2e5/ruff-0.7.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2e32829c429dd081ee5ba39aef436603e5b22335c3d3fff013cd585806a6486a", size = 10319187 },
+ { url = "https://files.pythonhosted.org/packages/9f/e5/39100f72f8ba70bec1bd329efc880dea8b6c1765ea1cb9d0c1c5f18b8d7f/ruff-0.7.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:662a63b4971807623f6f90c1fb664613f67cc182dc4d991471c23c541fee62dd", size = 10803715 },
+ { url = "https://files.pythonhosted.org/packages/a5/89/40e904784f305fb56850063f70a998a64ebba68796d823dde67e89a24691/ruff-0.7.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:876f5e09eaae3eb76814c1d3b68879891d6fde4824c015d48e7a7da4cf066a3a", size = 11162912 },
+ { url = "https://files.pythonhosted.org/packages/8d/1b/dd77503b3875c51e3dbc053fd8367b845ab8b01c9ca6d0c237082732856c/ruff-0.7.4-py3-none-win32.whl", hash = "sha256:75c53f54904be42dd52a548728a5b572344b50d9b2873d13a3f8c5e3b91f5cac", size = 8702767 },
+ { url = "https://files.pythonhosted.org/packages/63/76/253ddc3e89e70165bba952ecca424b980b8d3c2598ceb4fc47904f424953/ruff-0.7.4-py3-none-win_amd64.whl", hash = "sha256:745775c7b39f914238ed1f1b0bebed0b9155a17cd8bc0b08d3c87e4703b990d6", size = 9497534 },
+ { url = "https://files.pythonhosted.org/packages/aa/70/f8724f31abc0b329ca98b33d73c14020168babcf71b0cba3cded5d9d0e66/ruff-0.7.4-py3-none-win_arm64.whl", hash = "sha256:11bff065102c3ae9d3ea4dc9ecdfe5a5171349cdd0787c1fc64761212fc9cf1f", size = 8851590 },
]
[[package]]
@@ -3040,11 +2907,11 @@ wheels = [
[[package]]
name = "setuptools"
-version = "75.3.0"
+version = "75.5.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/ed/22/a438e0caa4576f8c383fa4d35f1cc01655a46c75be358960d815bfbb12bd/setuptools-75.3.0.tar.gz", hash = "sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686", size = 1351577 }
+sdist = { url = "https://files.pythonhosted.org/packages/c8/db/722a42ffdc226e950c4757b3da7b56ff5c090bb265dccd707f7b8a3c6fee/setuptools-75.5.0.tar.gz", hash = "sha256:5c4ccb41111392671f02bb5f8436dfc5a9a7185e80500531b133f5775c4163ef", size = 1336032 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/90/12/282ee9bce8b58130cb762fbc9beabd531549952cac11fc56add11dcb7ea0/setuptools-75.3.0-py3-none-any.whl", hash = "sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd", size = 1251070 },
+ { url = "https://files.pythonhosted.org/packages/fe/df/88ccbee85aefbca071db004fdc8f8d2507d55d5a9dc27ebb93c92edb1bd8/setuptools-75.5.0-py3-none-any.whl", hash = "sha256:87cb777c3b96d638ca02031192d40390e0ad97737e27b6b4fa831bea86f2f829", size = 1222710 },
]
[[package]]
@@ -3142,16 +3009,16 @@ wheels = [
[[package]]
name = "sphinx-rtd-theme"
-version = "3.0.1"
+version = "3.0.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "docutils" },
{ name = "sphinx" },
{ name = "sphinxcontrib-jquery" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/55/ff/e24d14f397ce07a93d302be444d4da7953294f9b1be99497dc92f800ac7b/sphinx_rtd_theme-3.0.1.tar.gz", hash = "sha256:a4c5745d1b06dfcb80b7704fe532eb765b44065a8fad9851e4258c8804140703", size = 7620352 }
+sdist = { url = "https://files.pythonhosted.org/packages/91/44/c97faec644d29a5ceddd3020ae2edffa69e7d00054a8c7a6021e82f20335/sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85", size = 7620463 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c8/51/aed903ad0843a06ccfb93e6e8849e752a9379eaec0f50d9237ae373dd737/sphinx_rtd_theme-3.0.1-py2.py3-none-any.whl", hash = "sha256:921c0ece75e90633ee876bd7b148cfaad136b481907ad154ac3669b6fc957916", size = 7655509 },
+ { url = "https://files.pythonhosted.org/packages/85/77/46e3bac77b82b4df5bb5b61f2de98637724f246b4966cfc34bc5895d852a/sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13", size = 7655561 },
]
[[package]]
@@ -3222,11 +3089,11 @@ wheels = [
[[package]]
name = "sqlparse"
-version = "0.5.1"
+version = "0.5.2"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/73/82/dfa23ec2cbed08a801deab02fe7c904bfb00765256b155941d789a338c68/sqlparse-0.5.1.tar.gz", hash = "sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e", size = 84502 }
+sdist = { url = "https://files.pythonhosted.org/packages/57/61/5bc3aff85dc5bf98291b37cf469dab74b3d0aef2dd88eade9070a200af05/sqlparse-0.5.2.tar.gz", hash = "sha256:9e37b35e16d1cc652a2545f0997c1deb23ea28fa1f3eefe609eee3063c3b105f", size = 84951 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/5d/a5/b2860373aa8de1e626b2bdfdd6df4355f0565b47e51f7d0c54fe70faf8fe/sqlparse-0.5.1-py3-none-any.whl", hash = "sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4", size = 44156 },
+ { url = "https://files.pythonhosted.org/packages/7a/13/5f6654c9d915077fae255686ca6fa42095b62b7337e3e1aa9e82caa6f43a/sqlparse-0.5.2-py3-none-any.whl", hash = "sha256:e99bc85c78160918c3e1d9230834ab8d80fc06c59d03f8db2618f65f65dda55e", size = 44407 },
]
[[package]]
@@ -3275,11 +3142,11 @@ wheels = [
[[package]]
name = "tomli"
-version = "2.0.2"
+version = "2.1.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/35/b9/de2a5c0144d7d75a57ff355c0c24054f965b2dc3036456ae03a51ea6264b/tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed", size = 16096 }
+sdist = { url = "https://files.pythonhosted.org/packages/1e/e4/1b6cbcc82d8832dd0ce34767d5c560df8a3547ad8cbc427f34601415930a/tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8", size = 16622 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38", size = 13237 },
+ { url = "https://files.pythonhosted.org/packages/de/f7/4da0ffe1892122c9ea096c57f64c2753ae5dd3ce85488802d11b0992cc6d/tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391", size = 13750 },
]
[[package]]
@@ -3414,73 +3281,73 @@ wheels = [
[[package]]
name = "uv"
-version = "0.4.29"
+version = "0.5.2"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/6a/23/6e8d8177112b40d4905a49c03d397c5b93eb030f87cdddf0c5d4be599fc9/uv-0.4.29.tar.gz", hash = "sha256:9c559b6fdc042add463e86afa1c210716f7020bfc2e96b00df5af7afcb587ce7", size = 2102901 }
+sdist = { url = "https://files.pythonhosted.org/packages/13/51/985549772d9c76d18b99ab188afe2aaa7a9afd948b97a03d7061e4716798/uv-0.5.2.tar.gz", hash = "sha256:89e60ad9601f35f187326de84f35e7517c6eb1438359da42ec85cfd9c1895957", size = 2174112 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/1c/8d/78b6927a3e511a4bc05347714c8917896477537bf09a6301e84de08b7a59/uv-0.4.29-py3-none-linux_armv6l.whl", hash = "sha256:287dc3fd3f78093a5a82136f01cbd9f224e0905b38d3dcffdc96c08fbbe48ee9", size = 13250618 },
- { url = "https://files.pythonhosted.org/packages/d8/2f/1bbfc3c15933fcf07c222e063044696320f5a9fe3d5c584960ed0c490cf8/uv-0.4.29-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6b03859068aaa08ca9907a51d403d54b0a9d8054091646845a9192f213f099d4", size = 13316211 },
- { url = "https://files.pythonhosted.org/packages/fb/1a/1c862cc36f29cf58b22758f31eb5f9611ee86429d470c8e4c0fd235592ec/uv-0.4.29-py3-none-macosx_11_0_arm64.whl", hash = "sha256:950bbfe1954e9c3a5d6c4777bb778b4c23d0dea9ad9f77622c45d4fbba433355", size = 12363705 },
- { url = "https://files.pythonhosted.org/packages/a1/0e/76e947db1135fa2436b11cc1ca927de187601be7ec65b0102f42a6a58211/uv-0.4.29-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:3473b05142ba436ac30d036b7ab5e9bcfa97f63df5d1382f92e0a3e4aaa391bc", size = 12622825 },
- { url = "https://files.pythonhosted.org/packages/41/3d/b54226b11eb935e4e57585905cf3ded2ac7d972c551bef1c3a000d4c5e47/uv-0.4.29-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7060dfbad0bc26e9cecbb4f8482445c958071511f23728948478f81acfb29048", size = 13054445 },
- { url = "https://files.pythonhosted.org/packages/bf/00/02fa712a3991957d2a65d043173d06d3a429acb3c4e54976f4385c034d97/uv-0.4.29-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df35d9cbe4cfbb7bce287f56e3bb7a7cef0b7b5173ed889d936d4c470f2b1b83", size = 13655646 },
- { url = "https://files.pythonhosted.org/packages/61/85/f6796032396bbd350648747c984376c8c8add14c75476ed8d5a3438a9c76/uv-0.4.29-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:cfb797a87b55d96cc0593e9f29ab5d58454be74598ea0158e1b2f4f2dc97cede", size = 14281147 },
- { url = "https://files.pythonhosted.org/packages/17/48/3314a03c6580d0b05bd1b9122ff9a9fbde5163815cf84f5a220fc013cea1/uv-0.4.29-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:668d3e6095c6f0cac6a831ef4030f7ad79442d1c84b9569f01f50b60c2d51a77", size = 14004714 },
- { url = "https://files.pythonhosted.org/packages/11/e0/456bc5271f09ff385c57570628705757a59f9a3f8205ff029dc9b2213dbd/uv-0.4.29-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0be21afa0e582ddc5badff6ef40c3c6784efc5feae4ad568307b668d40dc49bd", size = 18032241 },
- { url = "https://files.pythonhosted.org/packages/ef/6c/db10ff7f178ee93a832941e1cddbf38bfb1b0e30fd07580db10eb909f19d/uv-0.4.29-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6224a322267570e0470c61008fd1c8e2f50bf073b339f4c3010da86aef3c44c", size = 13787528 },
- { url = "https://files.pythonhosted.org/packages/1b/cf/501cd6aeeae0413e83ed0c112a362e44c05fa01144ecfd05c6fb3533778d/uv-0.4.29-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:24cccff9c248864ba0ab3429bae56314146c9494ce66a881d70ea8cf2805945f", size = 12789635 },
- { url = "https://files.pythonhosted.org/packages/8d/8d/3103af713c6369b6c1afe2bd8415eb43ea2cd4d11aa823f2e5747736b410/uv-0.4.29-py3-none-musllinux_1_1_armv7l.whl", hash = "sha256:68d4967b5f0af8bd46085e0f3ded229026700668a97734a21c3d11a5fc350c47", size = 13022589 },
- { url = "https://files.pythonhosted.org/packages/4f/4d/e9a0da7c43301f27503ed0af881afb9059e3700bd374d1c7c6579ff9fb29/uv-0.4.29-py3-none-musllinux_1_1_i686.whl", hash = "sha256:75927da78f74bb935314d236dc61ecdc192e878e06eb79585b6d9d5ee9829f98", size = 13367805 },
- { url = "https://files.pythonhosted.org/packages/be/70/a78cd7cdac7581cf0a7e027cf3c69d07ca5b6b83d39f571411cc73f1590f/uv-0.4.29-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:246da468ac0d51e7fb257cd038db2f8d6376ae269a44d01f56776e32108aa9da", size = 15158094 },
- { url = "https://files.pythonhosted.org/packages/e6/93/3bcb18a54a9823c8bfadd362022b1c480da10c0bcd86398101f9a124e0a7/uv-0.4.29-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:8c71663c7df4f512c697de39a4926dc191897f5fede73644bb2329f532c1ebfa", size = 13917229 },
- { url = "https://files.pythonhosted.org/packages/8a/38/bd90e265f868ddbc2dd3cc9625e2d8670d3ac35984a078491be11be754f3/uv-0.4.29-py3-none-win32.whl", hash = "sha256:b5775db128b98251c3ea7874367fc20dce9f9aac3dbfa635e3ef4a1c56842d9c", size = 13203439 },
- { url = "https://files.pythonhosted.org/packages/cb/4f/446a0fe5901b110093f3888e93c8ebee1b08f35ba1699bbaf3645b553865/uv-0.4.29-py3-none-win_amd64.whl", hash = "sha256:67dcfd253020e25ed1c49e5bd06406205c37264f99e14002de53a357cd1cdadf", size = 14902665 },
+ { url = "https://files.pythonhosted.org/packages/59/e8/542ef2ce56366f550f1cb93c1d4fd75bdfda440be56e8e99303f694193ce/uv-0.5.2-py3-none-linux_armv6l.whl", hash = "sha256:7bde66f13571e437fd45f32f5742ab53d5e011b4edb1c74cb74cb8b1cbb828b5", size = 13639242 },
+ { url = "https://files.pythonhosted.org/packages/f7/5e/dfa65e7e0dd0db9e7b258b15e2cc5109a89c5a61939cff8a4772e1dd8478/uv-0.5.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d0834c6b37750c045bbea80600d3ae3e95becc4db148f5c0d0bc3ec6a7924e8f", size = 13610178 },
+ { url = "https://files.pythonhosted.org/packages/24/e0/f468ea89d85fb4c7a442b999d6fc1a5ef32e6fa3c872e471f0a1ba856069/uv-0.5.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a8a9897dd7657258c53f41aecdbe787da99f4fc0775f19826ab65cc0a7136cbf", size = 12658718 },
+ { url = "https://files.pythonhosted.org/packages/12/46/4239d5dc97d6d292256baef0750c69f19ef427febcbbb4ab20b4b5a1a49b/uv-0.5.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:15c7ffa08ae21abd221dbdf9ba25c8969235f587cec6df8035552434e5ca1cc5", size = 12938603 },
+ { url = "https://files.pythonhosted.org/packages/7c/c5/71d05e9ca73ddbf83fb320105bdf966bab9e5d04d3708f58f8daea8d94a0/uv-0.5.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d1fe4e025dbb9ec5c9250bfc1231847b8487706538f94d10c769f0a54db3e0af", size = 13438355 },
+ { url = "https://files.pythonhosted.org/packages/76/ec/d6811c51f02f8426610468639d7c0f7bce50854e22491e6fd43dc6197003/uv-0.5.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfba5b0070652da4174083b78852f3ab3d262ba1c8b63a4d5ae497263b02b834", size = 13997533 },
+ { url = "https://files.pythonhosted.org/packages/03/b5/bafafe3132e2fdfde3a0931f5fbb0116fbd761bf813cc260a4672ff6fa2e/uv-0.5.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dfcd8275ff8cb59d5f26f826a44270b2fe8f38aa7188d7355c48d3e9b759d0c0", size = 14586163 },
+ { url = "https://files.pythonhosted.org/packages/8d/69/685fdaa80434d680248e588e339bce08251167fcdd008ee384669cd7e507/uv-0.5.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:71467545d51883d1af7094c8f6da69b55e7d49b742c2dc707d644676dcb66515", size = 14481327 },
+ { url = "https://files.pythonhosted.org/packages/67/84/525f395051bf753a92509a0b19b8410017417e96705645a00b3554da3aa6/uv-0.5.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5052758d374dd769efd0c70b4789ffb08439567eb114ad8fe728536bb5cc5299", size = 18609412 },
+ { url = "https://files.pythonhosted.org/packages/82/ce/11fe4448173570b9a4ac09a5b21b6b2d90d455ce454c3e344e5fcd8b3430/uv-0.5.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:374e9498e155fcaa8728a6770b84f03781106d705332f4ec059e1cc93c8f4d8a", size = 14156364 },
+ { url = "https://files.pythonhosted.org/packages/44/4f/27fb79bf0300d110e9d9bf6ae31ffad516f6af9fca8a518208c9b71d1093/uv-0.5.2-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:675ca34829ceca3e9de395cf05e8f881334a24488f97dd923c463830270d52a7", size = 13132200 },
+ { url = "https://files.pythonhosted.org/packages/a3/ff/a25a9619201857cd3f6a2012d5d49ef9cfc76cd8b426f941b3c709c124c0/uv-0.5.2-py3-none-musllinux_1_1_armv7l.whl", hash = "sha256:c9795b990fb0b2a18d3a8cef8822e13c6a6f438bc16d34ccf01d931c76cfd5da", size = 13421241 },
+ { url = "https://files.pythonhosted.org/packages/fc/ea/e3b6fe349a63069f2724a8f5992e3d7da0eade867f9b5f6470afd8512046/uv-0.5.2-py3-none-musllinux_1_1_i686.whl", hash = "sha256:27d666da8fbb0f87d9df67abf9feea0da4ee1336730f2c4be29a11f3feaa0a29", size = 13787663 },
+ { url = "https://files.pythonhosted.org/packages/b9/ed/6bf3b02e5672b9e4f4c9acfc9d92cd114572ce7d5ae458c423ab849e3738/uv-0.5.2-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:67776d34cba359c63919c5ad50331171261d2ec7a83fd07f032eb8cc22e22b8e", size = 15529195 },
+ { url = "https://files.pythonhosted.org/packages/19/29/41fd2928e79d343d7009b92028df868d13307f365949a9649d5fff9c11d7/uv-0.5.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:772b32d157ec8f27c0099ecac94cf5cd298bce72f1a1f512205591de4e9f0c5c", size = 14277293 },
+ { url = "https://files.pythonhosted.org/packages/3b/ba/bf58db3f3520c18fd7dc43cc302432bd49dc4a20a612cda587756f9fb035/uv-0.5.2-py3-none-win32.whl", hash = "sha256:2597e91be45b3f4458d0d16a5a1cda7e93af7d6dbfddf251aae5377f9187fa88", size = 13541309 },
+ { url = "https://files.pythonhosted.org/packages/55/84/ab10b46e0523aa8ea290798ec7ca4dde339601697d2319d19564c3552b34/uv-0.5.2-py3-none-win_amd64.whl", hash = "sha256:a4d4fdad03e6dc3e8216192b8a12bcf2c71c8b12046e755575c7f262cbb61924", size = 15323473 },
]
[[package]]
name = "viztracer"
-version = "0.17.0"
+version = "0.17.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "objprint" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/bd/24/9453a4898f5712271126af8f3976dd479d102963a8af427f6999ae4d0d76/viztracer-0.17.0.tar.gz", hash = "sha256:20397b0c2a6341513596fe4c292994c3db8f3f6b79a0a4f497dadb9d73d988b8", size = 14257390 }
+sdist = { url = "https://files.pythonhosted.org/packages/0b/a4/6961326e300d6a02fa16fc5ca0ca24e16b8574beb4c7be77e7a619389bf8/viztracer-0.17.1.tar.gz", hash = "sha256:6dd9592bb799bbabf863d850b24b77fd9a33a5648c00b9223a824377998fb8a3", size = 14259435 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/a2/8c/4e9d7ae684891992b1df3dd3dcc8d8df88dc6fd66898bf81089a359e62d4/viztracer-0.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c963fca8b32b8f34cfb931836d2214a0939503692ba12f7e7c883e89be558a5", size = 14418217 },
- { url = "https://files.pythonhosted.org/packages/96/a6/694366bad4f52e6b15e68726af55f4601d0350295dbdac54bbc40e8e9db4/viztracer-0.17.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:486990cd0f5761dbe6c88c6fb4e2ff72b2e4b60f9bddfbf692973268b6d5879f", size = 14418238 },
- { url = "https://files.pythonhosted.org/packages/b3/06/314b0bb1f50b86f285d5a29303d35be10addc0b94e6ab3afc10a5caf83a4/viztracer-0.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2658dedb31119031d75e9dc82c55a8b6a2d6e4075a6af9afa765718ae8d2bad1", size = 14506059 },
- { url = "https://files.pythonhosted.org/packages/5d/d4/ea54d23acfa80d5652fc6337691d2edd335ec3aaf2727f91349662a8ff5c/viztracer-0.17.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7af07a223e25ec2ada6b7f8a0a4ebaa4ac4120c25910df470d7a85a426e9117d", size = 14504372 },
- { url = "https://files.pythonhosted.org/packages/72/60/143770383ded250d0d93c012779205533ef50f6e2a66322832e841b05a5c/viztracer-0.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b6b7a42bca2eac521afadd33f513fefb08099b8f7dd08fb346d20e012b0fdcf", size = 14511652 },
- { url = "https://files.pythonhosted.org/packages/59/cc/921e0e6bad40552dc0fadd03884784623fecd540fd0130b032ce5f4de28d/viztracer-0.17.0-cp310-cp310-win32.whl", hash = "sha256:c558853385bea8d70735fd36c75a35f37dad99fd3de2064fc9f709046312730f", size = 14583899 },
- { url = "https://files.pythonhosted.org/packages/2f/7c/bd875a12eaf2e6fadeecc99f30604d201face9f60fa6e3ea99d304a3c55f/viztracer-0.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:455e2cc6f6d69d0caaa20f13217b140070531c3ec35eb6878e7a37ee107acd6b", size = 14586387 },
- { url = "https://files.pythonhosted.org/packages/c0/e2/0fdeb0cb73fd739b69d11b5a2304de654415761ba74c21da6fafcc3e8153/viztracer-0.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:13b207badfeaa89096c285d7161b4d83db41c7f7721dcec0091e5426a47d636a", size = 14418246 },
- { url = "https://files.pythonhosted.org/packages/6c/e0/8f14a7220513facbe32e763915b4496d990e3ff0b737d910d1b2750ec012/viztracer-0.17.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:d44133a2279266238a3ebdcef00ab9a89f4e7f0596521166d25e5400ed6207ae", size = 14418273 },
- { url = "https://files.pythonhosted.org/packages/be/17/ebdfae4c6c71d64e900b3fa275cd0a603768e528be66718219fe1aa73a98/viztracer-0.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:929094255fb0bc7de1e415a79a2c5c6fc3c71fc101818c5729991ebd25f89ed1", size = 14506753 },
- { url = "https://files.pythonhosted.org/packages/a3/8f/8ddd670f57183b5911bb58c1106a3f2aec7a238d754b292f6f2ea7f87562/viztracer-0.17.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c98deafdb3439a8cb41b1d5eba8846c5e8c672dac757cead7ecaa2c7e240177", size = 14505430 },
- { url = "https://files.pythonhosted.org/packages/18/83/8f272941e6e7a5f0fd08bc345eb94186a78a1772a92d03b6b2fcc6957f18/viztracer-0.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad758e75f7b5fc8ffb45725f21f4dd1bd2787c0fe80b079ac1dee3b779069c3", size = 14512575 },
- { url = "https://files.pythonhosted.org/packages/53/d7/c55211f2a6832eca4597b125244bb6f617db9becb9b73b7bf37d000b7cb3/viztracer-0.17.0-cp311-cp311-win32.whl", hash = "sha256:28f38c54db3957b91c582b90b6090ce7c9b693d73d2f2320ebd02e996303d5d0", size = 14583929 },
- { url = "https://files.pythonhosted.org/packages/39/63/005bd024287ee051c1ad1b49930c87a6d162f35c5c47b03f07ae3c07c054/viztracer-0.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:371742b31ca2cbfecefa6fcdbc84cfff798c43f7497d57b0d9cb2e3690083486", size = 14586423 },
- { url = "https://files.pythonhosted.org/packages/ec/d1/bae841082c3e4a28c524b2375eaa7a7beec83b2e06956b3a3010a28c418e/viztracer-0.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:67784cb54311f5580ea14adf05988bc9f2c180b896d541cea482062fc0495916", size = 14418458 },
- { url = "https://files.pythonhosted.org/packages/e1/dd/2953a04b83d8ba6cd935098c8f042c4e8de0efa9bb8787b86f6e2c24c300/viztracer-0.17.0-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:3b86ff18e479239bde2bafdf1035d4c3ead8185bdca7446bdb076c13a10dad81", size = 14418946 },
- { url = "https://files.pythonhosted.org/packages/86/5f/bab339cdca1b7ec1faf57dc737ce0a437403a7737148fee125687e4dde9c/viztracer-0.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f56fa71aa8ba44870fa35b3b443b0fb49c91dd1ae0d900db714364d26637be3", size = 14512930 },
- { url = "https://files.pythonhosted.org/packages/c5/cc/1d741f21faba995f06d56048612d1833f5b0944d8d96c762684fc2e9057a/viztracer-0.17.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:912ad33d2435797ca0e09c2e044d0d6538ccbadb537b71f4eb2cf27c8910c4d8", size = 14513172 },
- { url = "https://files.pythonhosted.org/packages/87/26/443c82b50eae3db5519c66b1a453f1394654eca97ca38db6e2252595cd6f/viztracer-0.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b01147907c805de78fe4bfaadac3e1fb9f17adb88b30afa6500bf73f18b4d042", size = 14521155 },
- { url = "https://files.pythonhosted.org/packages/ec/d5/4dbc8de7d0f67c5ae77464bcdc95c031070499301dc35f0d7657be554e83/viztracer-0.17.0-cp312-cp312-win32.whl", hash = "sha256:21c00b5b97b9b7ce5afea6288de3234457bdae8aa123df442ed2f8106423ab9c", size = 14584408 },
- { url = "https://files.pythonhosted.org/packages/cb/40/fe774499f9032376262bb77d25503ceaf1385b764569ebd8a171e555fb98/viztracer-0.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:a539ed578e4462d0107421197c5fb7345a3572560fb940962418e56b72eaf0ac", size = 14586859 },
- { url = "https://files.pythonhosted.org/packages/bc/66/d53bb352880f9dab245ee96c1ec64c2d47f9fa27d075a42df1b80460d091/viztracer-0.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a36db9b610131ce52ad911a08075e73ece8f863a74cafa846266e73bf49d4fae", size = 14418460 },
- { url = "https://files.pythonhosted.org/packages/3d/12/3682cbdb5758836e7097e3fd08294a334f27d21c6220f44adbf1bc3b3d86/viztracer-0.17.0-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:fb64f867d36c2fff411b5f155e3f6d383bee76e4c927c9df321012ab34e05afe", size = 14418943 },
- { url = "https://files.pythonhosted.org/packages/73/ce/6825a659575eb3248fd6ac53b52c584cbd8df969d57125edc3eba398eeeb/viztracer-0.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b4cb83b86aebd24f872c4baead1c41ec114ca5f104c7297a8852bd37a1d3fa8", size = 14513132 },
- { url = "https://files.pythonhosted.org/packages/0f/91/db8f16716e9cef767aa29d6515bd27d7458761a281799c7aa5d91f776c94/viztracer-0.17.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc4de3e6d5a7906472a777ebc1908bd4f7f38b8d509b9fd725e8a568e13365f8", size = 14513002 },
- { url = "https://files.pythonhosted.org/packages/4b/11/5ee9200153e32835f9e2ac5c3d8f0596e9e5c3459d9d145a603ca3acf697/viztracer-0.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bcac5ae4d20980883312e9527af6bfb87fdc5cdeafe7a67caf4e060f9066f5ed", size = 14521342 },
- { url = "https://files.pythonhosted.org/packages/d0/0e/91a213c57f47e7ab06f287491ee5f4f31dee6b185ce9273614a44e723e80/viztracer-0.17.0-cp313-cp313-win32.whl", hash = "sha256:3e9bf5674da8476027f4c94f33673136bf24d639260b7f5adcd3bcba1987ede7", size = 14584395 },
- { url = "https://files.pythonhosted.org/packages/67/d9/a4aea0c138ee4de224524f6318493bafc19d47e75c64291525d24688c1f4/viztracer-0.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:2dce28aed18faa8d923e59b76e13c18fe79fa7e9c5dbd632fcbaeae890c6c84f", size = 14586845 },
- { url = "https://files.pythonhosted.org/packages/6e/93/7dd079c7d5868c312bc725146696781eb47705f1691789e8769c0a150717/viztracer-0.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:227fa597fc837697483b91ccc93b12b3da67c1991b4716bc19096ec1419ed4e6", size = 14420948 },
- { url = "https://files.pythonhosted.org/packages/34/8a/7ff8e8f73ac8179f1c6d0e7f8e8332e7d4cc8f22fcfe8b7f99cc07d200f7/viztracer-0.17.0-cp313-cp313t-macosx_11_0_x86_64.whl", hash = "sha256:0eb962c2459fb2e781691bfcb4d6cfa1ded90211ee6b1be68e4e31982b9f2f3f", size = 14421433 },
- { url = "https://files.pythonhosted.org/packages/a5/93/24f72603b2fc79094c1ad6660d741461169ee9726d33ae5fef588c8224ac/viztracer-0.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:96373fb17a94b96925c146caa7651ad16de5fd4a10d69cf11d58fb2a417943bd", size = 14556475 },
- { url = "https://files.pythonhosted.org/packages/5c/1f/0a03dcb20ce587a89fbb8ae10db4d844998e4f8c6717adcd32cc957f2375/viztracer-0.17.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b606830ee327e0e02d317a545d88f5a52ca8ad723c15e9e3f0063ac39f5668b1", size = 14551278 },
- { url = "https://files.pythonhosted.org/packages/fa/5a/19f0814ee64bb9fe0d5b7e33fb03cf08580d053ac9365548e5ca99f5ba25/viztracer-0.17.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:febd0d23c1782461831a8c83df92475ab3ac019b5cf57208272a43eee3bda58b", size = 14559588 },
- { url = "https://files.pythonhosted.org/packages/55/5d/94454c6382c830e0eaea22819d4f0eede96274816939ef650965036d6431/viztracer-0.17.0-cp313-cp313t-win32.whl", hash = "sha256:cd0b99c36ed0e1237fcabcd51952ef98c52ec2daab7605979874b89dec0cdeee", size = 14587606 },
- { url = "https://files.pythonhosted.org/packages/1b/9f/8958d311bf436431993fdbb9b47ac5138557f923f29fc716796772c8dc91/viztracer-0.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:45803cf94c8c3ea622221c53df5aa9a9afcb457c8272f7e79bcf6eec56f0eac4", size = 14590501 },
+ { url = "https://files.pythonhosted.org/packages/39/f6/e0f12bdac8dc2772178074d96fd00832284048136502eed5ae2782211930/viztracer-0.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:541efdc140eb275972fad0523053b6478734cbab78068b6dce181c89bce59004", size = 14419809 },
+ { url = "https://files.pythonhosted.org/packages/58/9f/ca75796d050cdbed491f14806f5dd4f7bf6bfb64b8cb4200c7fbf6b8ea43/viztracer-0.17.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:1db0a576b63f8293f4309ef587440a262fed4af6acc325d7c5ebfb727293ceea", size = 14419930 },
+ { url = "https://files.pythonhosted.org/packages/1a/11/14ad30a0eb3650626e2949154409352b08b4d8b7c61904e7beb46974d79a/viztracer-0.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13a66de891b2823a6088521d1b005aa53c5fa4cac6a0a1af4577752bdb8cb1d2", size = 14508363 },
+ { url = "https://files.pythonhosted.org/packages/b6/23/36ac84307695f8aebe180470f89e238eb488394b7a58ba112e8f03df567a/viztracer-0.17.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa631be9e03f69c56b11fd55a620e48bf061b0c8a2a83f763764f4d32b442bf1", size = 14506811 },
+ { url = "https://files.pythonhosted.org/packages/b4/40/3772fc680d1c0c7a57752b90c64f202652e6653158d7e11e6c3dd1be05dd/viztracer-0.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9d68e36dcaedc46da0d2fd0396268f3381f92065f51b1ae7fc47e128c3f94a5", size = 14514271 },
+ { url = "https://files.pythonhosted.org/packages/00/fa/d950e38ee62aecc1ed1799800059c1365049136f313f69df9ee0c9be7761/viztracer-0.17.1-cp310-cp310-win32.whl", hash = "sha256:bc8d10ec362f320fef34ab87bcbd24e4a1fe343bc2df3bee4bd6c180df534398", size = 14585516 },
+ { url = "https://files.pythonhosted.org/packages/84/ac/5bd561c5eabe2ee6260e30dd35c9e0c40a23e4b9cf731ec16e09d6288e7f/viztracer-0.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:79607eb7b8c88fdf6869783241ae33d46c5fe39c741457eae14b230277367501", size = 14587899 },
+ { url = "https://files.pythonhosted.org/packages/86/4e/a653369eda3f09eee2b1c78d05a47018a630f55c95c987c62371ae3913fa/viztracer-0.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:57d345421f4bee648d5bb32add73e77383f98c3fcfc0c261a6856f19fffaae97", size = 14419828 },
+ { url = "https://files.pythonhosted.org/packages/6b/91/c88841103fddf9208d693d33d45dfe2dd81ad200eb7e532eafd2946b32d8/viztracer-0.17.1-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:b309717a1bcae94df5931e6508512677b681588f08a9be02cb49ebba41078096", size = 14419977 },
+ { url = "https://files.pythonhosted.org/packages/c4/6d/f5f2b3c0b5a1aa2caa83757d0ce0b311e36b732415114bf2421ca805b6e6/viztracer-0.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f81b76c60ed21bf07e42dcd2c74530ef9ef2e22bd8d4c601aefceeef6dbef252", size = 14509120 },
+ { url = "https://files.pythonhosted.org/packages/8d/ce/77c117e04a97decece91605d0c357a3c5069097849858824919945b99caa/viztracer-0.17.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88843a218fd8b1b957b57357d4ffd84a4f005856fccc2bfcb868449d1332c99d", size = 14507901 },
+ { url = "https://files.pythonhosted.org/packages/ba/4e/31b38e04f9d1a68bddc72b4255d0553876132fb97fd515d835c5163cf35c/viztracer-0.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0073210ef9a8b8b096c14b1e6a5db49c6622cdc0de1211db8fcd5457f55f35eb", size = 14515255 },
+ { url = "https://files.pythonhosted.org/packages/59/e3/c6b456ea0527d80bff0bcdd72a3186d52d0942000f2f29bb986eaa7587a5/viztracer-0.17.1-cp311-cp311-win32.whl", hash = "sha256:36bd9e294d402648e924b53e331228b6e29f94a1288d59e4eb7aadbb4899194e", size = 14585552 },
+ { url = "https://files.pythonhosted.org/packages/89/6c/beab3f9c6aed23f1a88b69738cc3cbac04c315dad1e9348b54e34ab3eff2/viztracer-0.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:5704a98b95904dfd7f502c3cae4251fce74548fde93434043e916c63dd5c9a4e", size = 14587932 },
+ { url = "https://files.pythonhosted.org/packages/a2/12/4520ccfc8aa4f43ab4522a45f29677b94d13490b409cc9fa9a63cb960e1a/viztracer-0.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6b7e86951568d543d77c75ad52e153c7453eb665c893aa341a3cc5635ff7aa77", size = 14420045 },
+ { url = "https://files.pythonhosted.org/packages/ff/70/74c3ad03e06ca6d59a3cf61180413d263f3137182363c2c4dd904a961886/viztracer-0.17.1-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:5067585425f576787f01e160ebcdb8047a7f464cf94041af4eee856a3c593b96", size = 14420607 },
+ { url = "https://files.pythonhosted.org/packages/c9/09/236f089bce702b201821a18d5007f98d81b82328da405f31feddbb1e5801/viztracer-0.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb4f34cda09ee3211c07c03622d729a1e539c325eab79d42f3d6b73524f6295a", size = 14515403 },
+ { url = "https://files.pythonhosted.org/packages/a2/09/caa0384eefe5d66dd8bf81786959a3f60491cd8bb9fd66c50e93fa658886/viztracer-0.17.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6bc50f67bf5999d105f8d354025e348d1343cfef8bc1bc3134d32ff8e15ac892", size = 14515371 },
+ { url = "https://files.pythonhosted.org/packages/8f/da/a990fbf432b994c1ddbf9aa347ec7e38dd7ba2f78670517e64ed149cb592/viztracer-0.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0f32c8a4553a4e9586be47809bd6fc0433bb6fd564c9e3f8f30358d29623871", size = 14523729 },
+ { url = "https://files.pythonhosted.org/packages/f0/70/1fbfc02000546725676aca325f32bbfb43bf08f6c3393e17e3a66682df99/viztracer-0.17.1-cp312-cp312-win32.whl", hash = "sha256:e7c055ba1f8561d8fc36e3d696bff8017dc55fccd082fdfe9b120a80ef25e149", size = 14586057 },
+ { url = "https://files.pythonhosted.org/packages/15/87/24586d95790ec5b4cb29dcc48e6aa8d38b52fd2f9e2db86e21322791124c/viztracer-0.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:62ed11367f8407813142322e6bf7e698a837e68b58fe605456811916b82d1643", size = 14588395 },
+ { url = "https://files.pythonhosted.org/packages/3c/ef/1255a6950daa2349b24ffc45122ad6291b740eb1a0c3261ac48e97868eda/viztracer-0.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef1a259c791d193006005860367ebc86feeae340908b5287121d30f30310d1a2", size = 14420041 },
+ { url = "https://files.pythonhosted.org/packages/15/8f/817afcf89dc3f624cae1e955de7d3556c99deca13588990c46ca5506e13f/viztracer-0.17.1-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:2f1f70879733dcb45e9addbce8b81915b002a249e2b4e861d74c862615d813f5", size = 14420620 },
+ { url = "https://files.pythonhosted.org/packages/14/cb/740c88697b1a500d37ff39e58852b79d1a0eacb89af933de43dc4ea27d82/viztracer-0.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7030bc38f0073a6136cf7d2126aea9edc2cb09c202502cc1f717ba409313064", size = 14515688 },
+ { url = "https://files.pythonhosted.org/packages/71/d3/f7a48cadca545b9a4875641e0b6f5ca9799549f4973c9ec1c7e83bacaf7b/viztracer-0.17.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50d22664a63ec4b6274cbfe7164bdcd238ebf5622b7a729bf600a7480544134b", size = 14515229 },
+ { url = "https://files.pythonhosted.org/packages/0f/6d/24802b7d8aec8f56d5e415eeea4c058b7c51837de2c143f61661c5baf215/viztracer-0.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3d4748a367beffae9579a146c58f85305dae01c84621d672d730331b6e0c999", size = 14524171 },
+ { url = "https://files.pythonhosted.org/packages/7e/1c/3d101ba723d0431926418c0a7685262f5c98ed4fdae7e199f3e39b939b12/viztracer-0.17.1-cp313-cp313-win32.whl", hash = "sha256:87ea4e0b631f004d2971ae5efca4d506ae1b3e4351cadb4bd4384d8bbfd8d248", size = 14586065 },
+ { url = "https://files.pythonhosted.org/packages/c6/11/7dcdfdf412800d165380da3e68be254f4acd9542e2de1a1d9cc21db0d53e/viztracer-0.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:3a6681961e7a26e2c89f6787bd72d87da82981903b017c1ebdd78adfb764552a", size = 14588404 },
+ { url = "https://files.pythonhosted.org/packages/59/e7/b3ee71e7df15d29894734128336263fd505d23fd054b732d009b96527249/viztracer-0.17.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e93fffd59f1b1dce2afeb239819093b53e3d6b003d879324bae0c1aa2ae682e5", size = 14422541 },
+ { url = "https://files.pythonhosted.org/packages/b5/63/7927b92e4c37eae7be43e4e6a0b86c587cdfee956f89f4e777e3bfc64566/viztracer-0.17.1-cp313-cp313t-macosx_11_0_x86_64.whl", hash = "sha256:5e1051647089462f225fac2e1e2fdfa9e39f7a18c4d24b8e98c2f9119efba32c", size = 14423197 },
+ { url = "https://files.pythonhosted.org/packages/ac/b1/3a4189216c95c3b29a4d29af9db69453112bc5cf2b66a8a833fc6dcf1996/viztracer-0.17.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea5587e7f3aa37436e76aa9c74840c9c909290595e04cb22da73f1fe5af53f64", size = 14559492 },
+ { url = "https://files.pythonhosted.org/packages/54/7c/8388c32bc75b108fd4328262525deeb1134ecb06e1bac90ab1c8e92197ac/viztracer-0.17.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1c2704b7770c69291c37001b6a78dcda3d17b40fdd2c136d5ca53c7832510ab", size = 14553947 },
+ { url = "https://files.pythonhosted.org/packages/f8/93/63b6227a4208fc65e947baaeb7cc060ce0603be031ed7ddb2d100c51ff6c/viztracer-0.17.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6571efe616ec7225aae66d21056c0661c748b59a7e23cb6739b7ae98612456c", size = 14562777 },
+ { url = "https://files.pythonhosted.org/packages/7c/d3/8a0c185c709dfee189132e272cc0454ca1653a8c1399463350228658035f/viztracer-0.17.1-cp313-cp313t-win32.whl", hash = "sha256:7a1557c05ec47b699a32a92edcc85302059ece05b1c400c3964e6d0e6a290c29", size = 14589216 },
+ { url = "https://files.pythonhosted.org/packages/55/ad/e9cbeebab551db96b3f5c55630390b5260de3e865e70a5c985f895b75ea5/viztracer-0.17.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f03bd1ae7787ef9b1caaabc4faba86c64e317f39e6b7a29f94842c82b70895f4", size = 14592041 },
]
[[package]]
@@ -3501,72 +3368,13 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 },
]
-[[package]]
-name = "websockets"
-version = "13.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/e2/73/9223dbc7be3dcaf2a7bbf756c351ec8da04b1fa573edaf545b95f6b0c7fd/websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878", size = 158549 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/0a/94/d15dbfc6a5eb636dbc754303fba18208f2e88cf97e733e1d64fb9cb5c89e/websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee", size = 157815 },
- { url = "https://files.pythonhosted.org/packages/30/02/c04af33f4663945a26f5e8cf561eb140c35452b50af47a83c3fbcfe62ae1/websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7", size = 155466 },
- { url = "https://files.pythonhosted.org/packages/35/e8/719f08d12303ea643655e52d9e9851b2dadbb1991d4926d9ce8862efa2f5/websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6", size = 155716 },
- { url = "https://files.pythonhosted.org/packages/91/e1/14963ae0252a8925f7434065d25dcd4701d5e281a0b4b460a3b5963d2594/websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b", size = 164806 },
- { url = "https://files.pythonhosted.org/packages/ec/fa/ab28441bae5e682a0f7ddf3d03440c0c352f930da419301f4a717f675ef3/websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa", size = 163810 },
- { url = "https://files.pythonhosted.org/packages/44/77/dea187bd9d16d4b91566a2832be31f99a40d0f5bfa55eeb638eb2c3bc33d/websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700", size = 164125 },
- { url = "https://files.pythonhosted.org/packages/cf/d9/3af14544e83f1437eb684b399e6ba0fa769438e869bf5d83d74bc197fae8/websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c", size = 164532 },
- { url = "https://files.pythonhosted.org/packages/1c/8a/6d332eabe7d59dfefe4b8ba6f46c8c5fabb15b71c8a8bc3d2b65de19a7b6/websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0", size = 163948 },
- { url = "https://files.pythonhosted.org/packages/1a/91/a0aeadbaf3017467a1ee03f8fb67accdae233fe2d5ad4b038c0a84e357b0/websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f", size = 163898 },
- { url = "https://files.pythonhosted.org/packages/71/31/a90fb47c63e0ae605be914b0b969d7c6e6ffe2038cd744798e4b3fbce53b/websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe", size = 158706 },
- { url = "https://files.pythonhosted.org/packages/93/ca/9540a9ba80da04dc7f36d790c30cae4252589dbd52ccdc92e75b0be22437/websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a", size = 159141 },
- { url = "https://files.pythonhosted.org/packages/b2/f0/cf0b8a30d86b49e267ac84addbebbc7a48a6e7bb7c19db80f62411452311/websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19", size = 157813 },
- { url = "https://files.pythonhosted.org/packages/bf/e7/22285852502e33071a8cf0ac814f8988480ec6db4754e067b8b9d0e92498/websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5", size = 155469 },
- { url = "https://files.pythonhosted.org/packages/68/d4/c8c7c1e5b40ee03c5cc235955b0fb1ec90e7e37685a5f69229ad4708dcde/websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd", size = 155717 },
- { url = "https://files.pythonhosted.org/packages/c9/e4/c50999b9b848b1332b07c7fd8886179ac395cb766fda62725d1539e7bc6c/websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02", size = 165379 },
- { url = "https://files.pythonhosted.org/packages/bc/49/4a4ad8c072f18fd79ab127650e47b160571aacfc30b110ee305ba25fffc9/websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7", size = 164376 },
- { url = "https://files.pythonhosted.org/packages/af/9b/8c06d425a1d5a74fd764dd793edd02be18cf6fc3b1ccd1f29244ba132dc0/websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096", size = 164753 },
- { url = "https://files.pythonhosted.org/packages/d5/5b/0acb5815095ff800b579ffc38b13ab1b915b317915023748812d24e0c1ac/websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084", size = 165051 },
- { url = "https://files.pythonhosted.org/packages/30/93/c3891c20114eacb1af09dedfcc620c65c397f4fd80a7009cd12d9457f7f5/websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3", size = 164489 },
- { url = "https://files.pythonhosted.org/packages/28/09/af9e19885539759efa2e2cd29b8b3f9eecef7ecefea40d46612f12138b36/websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9", size = 164438 },
- { url = "https://files.pythonhosted.org/packages/b6/08/6f38b8e625b3d93de731f1d248cc1493327f16cb45b9645b3e791782cff0/websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f", size = 158710 },
- { url = "https://files.pythonhosted.org/packages/fb/39/ec8832ecb9bb04a8d318149005ed8cee0ba4e0205835da99e0aa497a091f/websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557", size = 159137 },
- { url = "https://files.pythonhosted.org/packages/df/46/c426282f543b3c0296cf964aa5a7bb17e984f58dde23460c3d39b3148fcf/websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc", size = 157821 },
- { url = "https://files.pythonhosted.org/packages/aa/85/22529867010baac258da7c45848f9415e6cf37fef00a43856627806ffd04/websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49", size = 155480 },
- { url = "https://files.pythonhosted.org/packages/29/2c/bdb339bfbde0119a6e84af43ebf6275278698a2241c2719afc0d8b0bdbf2/websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd", size = 155715 },
- { url = "https://files.pythonhosted.org/packages/9f/d0/8612029ea04c5c22bf7af2fd3d63876c4eaeef9b97e86c11972a43aa0e6c/websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0", size = 165647 },
- { url = "https://files.pythonhosted.org/packages/56/04/1681ed516fa19ca9083f26d3f3a302257e0911ba75009533ed60fbb7b8d1/websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6", size = 164592 },
- { url = "https://files.pythonhosted.org/packages/38/6f/a96417a49c0ed132bb6087e8e39a37db851c70974f5c724a4b2a70066996/websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9", size = 165012 },
- { url = "https://files.pythonhosted.org/packages/40/8b/fccf294919a1b37d190e86042e1a907b8f66cff2b61e9befdbce03783e25/websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68", size = 165311 },
- { url = "https://files.pythonhosted.org/packages/c1/61/f8615cf7ce5fe538476ab6b4defff52beb7262ff8a73d5ef386322d9761d/websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14", size = 164692 },
- { url = "https://files.pythonhosted.org/packages/5c/f1/a29dd6046d3a722d26f182b783a7997d25298873a14028c4760347974ea3/websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf", size = 164686 },
- { url = "https://files.pythonhosted.org/packages/0f/99/ab1cdb282f7e595391226f03f9b498f52109d25a2ba03832e21614967dfa/websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c", size = 158712 },
- { url = "https://files.pythonhosted.org/packages/46/93/e19160db48b5581feac8468330aa11b7292880a94a37d7030478596cc14e/websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3", size = 159145 },
- { url = "https://files.pythonhosted.org/packages/51/20/2b99ca918e1cbd33c53db2cace5f0c0cd8296fc77558e1908799c712e1cd/websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6", size = 157828 },
- { url = "https://files.pythonhosted.org/packages/b8/47/0932a71d3d9c0e9483174f60713c84cee58d62839a143f21a2bcdbd2d205/websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708", size = 155487 },
- { url = "https://files.pythonhosted.org/packages/a9/60/f1711eb59ac7a6c5e98e5637fef5302f45b6f76a2c9d64fd83bbb341377a/websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418", size = 155721 },
- { url = "https://files.pythonhosted.org/packages/6a/e6/ba9a8db7f9d9b0e5f829cf626ff32677f39824968317223605a6b419d445/websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a", size = 165609 },
- { url = "https://files.pythonhosted.org/packages/c1/22/4ec80f1b9c27a0aebd84ccd857252eda8418ab9681eb571b37ca4c5e1305/websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f", size = 164556 },
- { url = "https://files.pythonhosted.org/packages/27/ac/35f423cb6bb15600438db80755609d27eda36d4c0b3c9d745ea12766c45e/websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5", size = 164993 },
- { url = "https://files.pythonhosted.org/packages/31/4e/98db4fd267f8be9e52e86b6ee4e9aa7c42b83452ea0ea0672f176224b977/websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135", size = 165360 },
- { url = "https://files.pythonhosted.org/packages/3f/15/3f0de7cda70ffc94b7e7024544072bc5b26e2c1eb36545291abb755d8cdb/websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2", size = 164745 },
- { url = "https://files.pythonhosted.org/packages/a1/6e/66b6b756aebbd680b934c8bdbb6dcb9ce45aad72cde5f8a7208dbb00dd36/websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6", size = 164732 },
- { url = "https://files.pythonhosted.org/packages/35/c6/12e3aab52c11aeb289e3dbbc05929e7a9d90d7a9173958477d3ef4f8ce2d/websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d", size = 158709 },
- { url = "https://files.pythonhosted.org/packages/41/d8/63d6194aae711d7263df4498200c690a9c39fb437ede10f3e157a6343e0d/websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2", size = 159144 },
- { url = "https://files.pythonhosted.org/packages/2d/75/6da22cb3ad5b8c606963f9a5f9f88656256fecc29d420b4b2bf9e0c7d56f/websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238", size = 155499 },
- { url = "https://files.pythonhosted.org/packages/c0/ba/22833d58629088fcb2ccccedfae725ac0bbcd713319629e97125b52ac681/websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5", size = 155737 },
- { url = "https://files.pythonhosted.org/packages/95/54/61684fe22bdb831e9e1843d972adadf359cf04ab8613285282baea6a24bb/websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9", size = 157095 },
- { url = "https://files.pythonhosted.org/packages/fc/f5/6652fb82440813822022a9301a30afde85e5ff3fb2aebb77f34aabe2b4e8/websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6", size = 156701 },
- { url = "https://files.pythonhosted.org/packages/67/33/ae82a7b860fa8a08aba68818bdf7ff61f04598aa5ab96df4cd5a3e418ca4/websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a", size = 156654 },
- { url = "https://files.pythonhosted.org/packages/63/0b/a1b528d36934f833e20f6da1032b995bf093d55cb416b9f2266f229fb237/websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23", size = 159192 },
- { url = "https://files.pythonhosted.org/packages/56/27/96a5cd2626d11c8280656c6c71d8ab50fe006490ef9971ccd154e0c42cd2/websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f", size = 152134 },
-]
-
[[package]]
name = "wheel"
-version = "0.44.0"
+version = "0.45.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/b7/a0/95e9e962c5fd9da11c1e28aa4c0d8210ab277b1ada951d2aee336b505813/wheel-0.44.0.tar.gz", hash = "sha256:a29c3f2817e95ab89aa4660681ad547c0e9547f20e75b0562fe7723c9a2a9d49", size = 100733 }
+sdist = { url = "https://files.pythonhosted.org/packages/e7/52/fd4516fb8f7d11a08e3f9cd69eb1558f098ab67e79f32d920c4974ee550f/wheel-0.45.0.tar.gz", hash = "sha256:a57353941a3183b3d5365346b567a260a0602a0f8a635926a7dede41b94c674a", size = 107426 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl", hash = "sha256:2376a90c98cc337d18623527a97c31797bd02bad0033d41547043a1cbfbe448f", size = 67059 },
+ { url = "https://files.pythonhosted.org/packages/92/81/65ae90d584a73ca976d8f1eb83e2f58447a4055a9fb3ae69b28721070bdf/wheel-0.45.0-py3-none-any.whl", hash = "sha256:52f0baa5e6522155090a09c6bd95718cc46956d1b51d537ea5454249edb671c7", size = 72497 },
]
[[package]]
@@ -3637,30 +3445,20 @@ wheels = [
[[package]]
name = "yt-dlp"
-version = "2024.10.22"
+version = "2024.11.4"
source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "brotli", marker = "implementation_name == 'cpython'" },
- { name = "brotlicffi", marker = "implementation_name != 'cpython'" },
- { name = "certifi" },
- { name = "mutagen" },
- { name = "pycryptodomex" },
- { name = "requests" },
- { name = "urllib3" },
- { name = "websockets" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/2f/79/acfe1c2bf64ed83e1b465e6550c0f5bc2214ea447a900b102f5ca6e4186e/yt_dlp-2024.10.22.tar.gz", hash = "sha256:47b82a1fd22411b5c95ef2f0a1ae1af4e6dfd736ea99fdb2a0ea41445abc62ba", size = 2885622 }
+sdist = { url = "https://files.pythonhosted.org/packages/52/50/0014e9099a9dc3dec1da086e5eb5f861984a0512738bd3d3b63cedd82cbb/yt_dlp-2024.11.4.tar.gz", hash = "sha256:ed204c1b61bc563e134447766d1ab343173540799e13ebb953e887ce7dcf6865", size = 2900105 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/bb/68/548f9819b41d53561d4f3d39588111cf39993c066b6e5300b4ae118eb2e6/yt_dlp-2024.10.22-py3-none-any.whl", hash = "sha256:ba166602ebe22a220e4dc1ead45bf00eb469ed812b22f4fb8bb54734f9b02084", size = 3155189 },
+ { url = "https://files.pythonhosted.org/packages/6e/e4/e45c5067a79780954b905db4a42aa83d7aaefd91e32b18ab91c77600e668/yt_dlp-2024.11.4-py3-none-any.whl", hash = "sha256:589d51ed9f154624a45c1f0ceb3d68d0d1e2031460e8dbc62139be631c20b388", size = 3165645 },
]
[[package]]
name = "zipp"
-version = "3.20.2"
+version = "3.21.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", size = 24199 }
+sdist = { url = "https://files.pythonhosted.org/packages/3f/50/bad581df71744867e9468ebd0bcd6505de3b275e06f202c2cb016e3ff56f/zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", size = 24545 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", size = 9200 },
+ { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630 },
]
[[package]]