bppicker 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bppicker-0.2.0 → bppicker-0.2.1}/CHANGELOG.md +13 -1
- {bppicker-0.2.0 → bppicker-0.2.1}/PKG-INFO +1 -1
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/__init__.py +1 -1
- {bppicker-0.2.0 → bppicker-0.2.1}/pyproject.toml +1 -1
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_desktop_shell_boot.py +24 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/.eslint-globals.json +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/.gitignore +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/CODE_OF_CONDUCT.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/CONTRIBUTING.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/Dockerfile +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/LICENSE +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/MANIFEST.in +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/MODEL_POLICY.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/NOTICE.txt +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/README.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/SECURITY.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/ai/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/ai/inpainting.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/cli.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/analyze.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/db_restore.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/db_restore_impl.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/demo.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/model.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/model_attribution.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/model_commands.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/pick.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/commands/serve.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/config.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/config_builtins.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/config_resolver.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/config_schema.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/constants.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/albums.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/backup.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/batch_rename.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/calendar.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/clip.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/connection.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/dedupe.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/dialect.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/edits.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/event_hooks.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/face_cluster_ops.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/face_embedding_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/face_feedback.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/face_identity_remap.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/face_queries.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/groups.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/integrity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/journal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/library.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/live_photo.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/live_photo_scan.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/memories.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/migrate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/migrations.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/migrations_latest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/migrations_recent.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/moments.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/pets.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photo_hooks.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photos.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photos_dates.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photos_gps.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photos_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photos_missing.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photos_sha.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/photos_updates.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/presets.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/schema.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/schema_migrate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/settings.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_builtins.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_document.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_domains.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_ensure.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_groups.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_people.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_pets.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_queries.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_refreshers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_sensitive.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_album_tags.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/smart_albums.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/sql_batches.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/stats.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/db/tags.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/dedupe/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/dedupe/cluster.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/dedupe/common.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/dedupe/phash.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/dedupe/select.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/dedupe/semantic.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/dedupe/strategy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/demo/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/demo/generate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/errors.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/exif_utils.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/io_scan.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/media_types.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/output/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/output/export.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/output/export_metadata.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/output/export_modes.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/output/export_reports.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/output/gallery.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/plugin_protocol.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/plugins/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/plugins/example.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/plugins/registry_protocol.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/acceptance.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/acceptance_log.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/acceptance_log_files.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/acceptance_log_parse.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/attribution_bundle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/builtins.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/builtins_bundled.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/byom.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/derived_data_purge.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/disclaimers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/download_chokepoint.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/labels.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/manifest_rollback.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/model_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/overlay.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/policy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/remote_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/removal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/signed_manifest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/trusted_keys.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/use_context.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/registry/use_context_store.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/_registry_base.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/aggregate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/aggregate_video.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/blur.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/clip_embed.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/clip_tokenizer.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/composition.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/enhance.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/exposure.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_blazeface_fr.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_cluster.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_detector_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_buffalo.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_buffalo_s.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_detect.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_extractors.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_landmarks.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_plugin.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_sface.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embed_sface_runtime.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_embedder_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_expression.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_fallback.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_hand_filter.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_mediapipe.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_pipeline.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_recognition_loader.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_score.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_scrfd.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/face_yunet.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/inference_log.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/install_hold.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/model_base.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/model_download.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/model_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/model_load_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/model_manifest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/models/blaze_face_short_range.tflite +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/nudity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/onnx_providers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/pets.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/pose.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/segmentation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/skin.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/scoring/toggles.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/selection/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/selection/choose.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/selection/diversity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/cancel.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/concurrency.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/config_snapshot.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/download.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/fresh_file.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/json_utils.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/logging.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/path_validation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/paths.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/raw.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/retry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/safe_subprocess.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/serving_lock.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/subprocess_runner.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/timing.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/utils/video.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/_deprecated_attr.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/album_siblings.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analysis_store.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_archive.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_face_extract.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_finalize.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_model_preflight.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_phases.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_run_steps.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_scoring.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_subprocess.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/analyze_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/app.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/auth_boundary.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/base_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/box_crop.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_album_overrides.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_albums.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_analysis.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_attribution.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_calendar.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_catalog.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_clip.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_core.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_export.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces_bbox.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces_cluster_ops.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces_extract.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces_manage.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces_photo.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces_recluster.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_faces_review.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_groups.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_health.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_inpaint.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_install.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_library.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_logs.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_media.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_memories.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_model_admin.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_model_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_models.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_os_integration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_pets.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_photos.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_photos_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_photos_manage.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_photos_missing.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_recompute.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_search.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_settings.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_share.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/bp_tags.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/catalog_loaders.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/clip_cap.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/clip_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/derived_recovery.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/download_gates.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/e2e_fixture.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/export_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_create_helpers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_crop.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_extraction_journal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_extraction_phase5.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_extraction_phase6.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_extraction_phases.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_lock.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_merge_core.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_method_reconcile.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_orchestrator.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_phase_classes.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_phase_pipeline.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_phase_types.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_recovery.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/face_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/faces_review_match.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/filters.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/health.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/host_allowlist.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/import_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/install_busy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/install_specs.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/install_status.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/install_stream.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/lan_redaction.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/library_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/media_support.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/model_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/model_download_jobs.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/model_filter.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/models_status.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/paging.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/permanent_delete.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/photo_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/photo_dict.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/photo_edits.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/picker_fields.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/pip_process.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/recompute.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/request_validation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/review_meta.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/share.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/share_devices.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/share_proxy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/share_qr.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/share_runtime.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/sse.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state_compat.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state_helpers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state_init.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state_init_phases.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state_ops.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/state_startup_steps.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/css/app.css +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/img/apple-touch-icon.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/img/icon-192.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/img/icon-512.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/globals.js +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/action-registry.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/activity-humanize.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/activity-log.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/albums-menus.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/albums-render-helpers.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/albums-render-smart.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/albums-render.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/albums-switch.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/albums.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/analysis-install.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/analysis-preflight.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/analysis-recompute.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/analysis-status.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/analysis.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/api-client.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/app.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/attribution-consent.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/batch-rename.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/boot-health.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/boot-proof.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/calendar-render.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/calendar-selection.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/calendar.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/client-error-beacon.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/clip.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/compare-sibling.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/compare.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/constants.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/core.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/date-format.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/deleted-ctx-menu.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/deleted-enhance.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/deleted.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/dialog-focus.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/dialogs.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/download-jobs.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/dupe-review.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-constants.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-crop.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-inpaint.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-preview.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-redeye.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-rendering.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-styles.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor-tools.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/editor.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-acceptance.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-actions.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-busy.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-catalog.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-cells.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-guesses.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-license.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-popover.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-rowstate.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/face-embedders-state.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/faces-extraction.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/faces.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/format-helpers.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/groups.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/import-worker.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/inspector.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/install-done.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/library.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-actions.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-ctxmenu.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-face-assign.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-face-commit.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-face-edit.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-face-overlays.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-face-picker-actions.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-face-picker.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-info.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-input.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox-open.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/lightbox.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/map.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/memories.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/menu-a11y.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/modal.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/modals-face-embedders.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/modals.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/models-changed.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/moments-stacks.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/moments-view.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/navigation.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/nudges.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/on-this-day.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/onboarding.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/paging.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-actions.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-album-bar.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-ctx-menu.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-merge.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-pair-review.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-pickers.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-rename.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-review-card.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-review.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people-view.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/people.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/pets-pickers.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/pets.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/phash-status.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photo-preview.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos-batch.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos-card.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos-grid-filter.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos-helpers.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos-hover.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos-select.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos-vgrid.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/photos.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/picker-overlay.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/presets.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/review-meta.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/score-format.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/search-results-html.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/search.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/sensitive.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/settings-client.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/share-tab.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/sidebar-safety.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/slideshow.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/state.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/tags-view.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/tags.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/text-format.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/theme.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/timeline.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/toast.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/toolbar.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/tooltip.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/tour.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/ui-helpers.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/update-checker.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/use-context-options.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/utils.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/view-guard.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/js/modules/wizard.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/manifest.json +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/README.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/LICENSE +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/dist/images/layers-2x.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/dist/images/layers.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/dist/images/marker-icon-2x.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/dist/images/marker-icon.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/dist/images/marker-shadow.png +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/dist/leaflet.css +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet/dist/leaflet.js +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet.markercluster/MIT-LICENCE.txt +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet.markercluster/dist/MarkerCluster.Default.css +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet.markercluster/dist/MarkerCluster.css +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/static/vendor/leaflet.markercluster/dist/leaflet.markercluster.js +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/templates/index.html +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/templates/loopback_locked.html +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/templates/pair.html +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/templates/pair_needs_link.html +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/thumbnails.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/update_checker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/worker_pool.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/bpp/web/worker_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/API.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/adding-a-model.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/adr/0001-subprocess-runner.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/adr/0002-cancellation-contract.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/adr/0003-plugin-protocol.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/adr/0004-error-hierarchy.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/adr/0005-legal-posture-and-model-registry.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/adr/README.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/architecture-notes.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/configuration.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/landing/index.html +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/macos-signing.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/plugins.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/quickstart-gallery.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/docs/security.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/examples/plugin_example/README.md +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/examples/plugin_example/bpp_example_plugin/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/examples/plugin_example/bpp_example_plugin/plugin.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/examples/plugin_example/pyproject.toml +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/launch.command.template +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/sample_config.yaml +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/check_no_bundled_weights.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/export_clip_onnx.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/extract-js-names.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/function-loc.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/generate-eslint-globals.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/generate_demo_library.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/publish_registry_manifest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/run_e2e.sh +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/run_mock_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/setup_e2e_library.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/sign_registry_manifest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/third_party_bundled.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/third_party_inventory.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/third_party_sources.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/scripts/verify_live_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_authorize_request_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_blueprint_coverage_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_bp_analysis_photos_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_clip_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_clustering_stability_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_coverage_gaps_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_db_restore_command_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_db_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_detector_stubs.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_enhance_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_export_sidecar_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_export_utils_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_face_extraction_journal_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_face_landmark_validation_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_face_name_preservation_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_face_review_flow_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_face_scan_scoring_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_faces_create_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_faces_new_endpoints_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_git.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_install_support.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_integration_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_js_source_scan_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_log_redaction_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_media_state_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_model_quality_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_models.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_packaging_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_plugin_loader_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_recompute_coverage_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_robustness_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_smart_album_coverage_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_trust_proxy_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_video_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/_web_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/conftest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/owner_only/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/owner_only/_owner.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/owner_only/conftest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/owner_only/test_owner_only_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/owner_only/test_owner_only_mutations.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/owner_only/test_owner_only_paths.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/__init__.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/_acceptance_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/_download_chokepoint_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/_model_registry_shared.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/conftest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_acceptance.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_acceptance_endpoint_status.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_acceptance_revocation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_acceptance_row_coercion.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_acceptance_state.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_acceptance_strict_answers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_attribution_bundle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_attribution_bundle_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_buffalo_s_entry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_byom.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_catalog_weights_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_default_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_download_chokepoint.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_download_chokepoint_single_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_download_status_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_load_state_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_manifest_rollback.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_model_policy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_model_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_picker_entry_fields.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_policy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_primary_for_kind.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_redownload_legal_map.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_removal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_restricted_entries.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_runtime_enforcement.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_signed_manifest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_stale_acceptance.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/registry/test_surface_parity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/scoring/test_face_embed_buffalo_s.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/scoring/test_runtime_reset.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_acceptance_log_fail_closed.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_activity_log.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_album_hierarchy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_album_type_constants.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_analysis_store.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_analyze_downstream_uses_worker_ctx.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_analyze_preflight_licenses.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_analyze_preflight_toggles.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_analyze_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_api_doc_no_dead_params.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_api_doc_response_fields.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_api_doc_status_and_install_state.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_api_versioning.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_attr_interpolation_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_auth_token.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_authorize_request.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_authorize_request_constant_time_token_compare.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_auto_purge_containment.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_auto_purge_journaled_with_cache_cleanup.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_auto_restore_uses_backup_wal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_base_worker_error_emit.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_batch_name_sanitize.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_batch_rename.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_batch_rename_apply_refreshes.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_batching_and_layering.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_blueprint_coverage.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_blueprint_coverage_album_override.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_blueprint_coverage_album_workflow.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_blueprint_coverage_faces_merge.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_blueprint_coverage_faces_restore.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_blueprints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_bp_analysis_photos.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_bp_analysis_photos_api_batch_favorite.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_bp_analysis_photos_api_export.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_bp_library.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_bulk_untag_batch.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_bundled_model_gating.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cache_cleanup_on_delete.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cache_invalidation_audit.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cache_suffix_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cached_image_lock.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_calendar.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cancel.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cancel_propagation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_catalog_loader_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cli_model_accept_attribution.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cli_pick.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_cli_plugin_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clip.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clip_matrix_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clip_memory.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clip_search.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clip_semantic_deduplicate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clip_worker_cancel.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clustering_stability.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clustering_stability_as_completed_order_bug.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clustering_stability_edges.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_clustering_stability_reanalysis_preserves_cluster_ids.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_commands.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_config_fallbacks_match_defaults.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_config_resolver.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_config_schema.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_config_snapshot.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_constants.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_coverage_gaps.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_coverage_gaps_core_blueprint_gaps.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_coverage_gaps_schema_migrations.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_csp.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_db.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_db_connection_count.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_db_migration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_db_restore_command.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_db_restore_command_restore_proceeds_after_corrupt_quarantine_cleanup.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_db_restore_command_running_server_lock.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_db_smart_albums.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_dedupe_defaults.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_dedupe_one_path.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_dedupe_phash.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_dedupe_strategy_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_default_library_isolation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_demo.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_desktop_failure_screens.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_dialect.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_diversity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_dlib_acceptance_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_docker_healthcheck.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_docs_paths_exist.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_download.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_dupe_review.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_embedding_size_contract.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_empty_states.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_endpoint_docstrings.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_enhance.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_enhance_apply_advanced_edits.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_enhance_apply_edits.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_enhance_blur.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_enhance_new_apply_edits.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_env_var_docs.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_errors.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_errors_flask_handler.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_eslint_globals_generator.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_exif.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_exif_parse_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_disk_full.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_metadata_fail_closed.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_mode_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_never_writes_through_links.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_process_orientation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_sidecar.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_sidecar_export_selected_manifest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_sync_uses_shared_validation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_utils.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_utils_export_metadata_privacy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_utils_generate_gallery.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_utils_setup_logging.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_worker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_export_zip_keeps_existing_files.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_cap.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_cluster_map_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_cluster_map_invalidated_after_extraction.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_cluster_ops.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_count_sync.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_data_safety_round2.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_data_safety_round3.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_data_safety_round4.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_detector_single_binding.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_embed_detect.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_embedding_method_dispatch.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_embedding_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extract_batching.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_journal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_journal_orchestrator_resume.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_journal_resume_recaptures_dismissed_slots.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_journal_ship_criterion6k_signal_injection.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_max_long_side.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_phases.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_phases_late.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_extraction_wal_checkpoint.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_feedback.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_landmark_validation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_landmark_validation_tiled_detection.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_lock_coverage.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_lock_timeout.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_name_preservation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_name_preservation_empty_cluster_guard.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_pipeline.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_recognition_loader.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_recovery_serialized.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_recovery_thread.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_registries.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_review_e2e.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_review_flow.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_scan_scoring.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_scan_scoring_hamming_distance.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_scan_scoring_suppress_hand_faces.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_thread_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_face_worker_row_factory.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_faces_create.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_faces_create_new_person.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_faces_new_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_faces_new_endpoints_embedding_validation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_faces_photo_bbox_dims.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_faces_update_bbox.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_final_sweep_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_final_sweep_perf.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_fresh_file.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_function_loc_cap.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_get_handlers_survive_write_failure.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_gps_columns_migration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_gps_pagination.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_groups.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_hardening_regressions.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_health_and_startup_logging.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_health_endpoint.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_health_install_downloads_phash.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_heif_registration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_host_allowlist.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_image_decode_cap.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_import_scoring_settings.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_init_app_db_helpers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_inpainting.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_install_claims.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_install_hold.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_install_left_over.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_install_paired_devices.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_install_progress.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_install_refusals.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_integration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_integration_library_switch_workflow.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_item14_followups.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_journal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_journal_recovery.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_js_source_scan.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_js_source_scan_critical_function_refs.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_js_source_scan_mobile_lightbox.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_json_set_aside.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_json_shape.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_lan_payload_paths.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_large_library_caps.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_layering_endpoint_helpers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_libraries_paths.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_library_binding.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_library_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_library_rename_traversal.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_library_switch.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_license_check_per_photo.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_licenses.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_live_photo.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_live_photo_detect_and_link.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_loc_cap.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_log_redaction.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_log_redaction_werkzeug_redaction.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_loopback_boot_key.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_map.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_max_content_length.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_media_auth_integration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_media_state.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_media_state_build_photo_dict.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_media_state_check_dedup_feedback.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_media_state_thumbnail_verified_integration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_media_types.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_mediapipe_inference_failures_logged.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_mediapipe_thread_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_memories.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_memory_soak.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_migration_multi_step.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_missing_coverage.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_missing_files_guard.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_missing_scan_flag_lifecycle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_missing_scan_refusal_surfaced.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_constants_documented.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_download_jobs.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_download_locks.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_download_robustness.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_license_single_source.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_license_status.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_load_gate_freshness.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_manifest.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_quality.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_quality_pose_classification.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_singleton.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_model_singleton_unpinned.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_models_pending_endpoint.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_moments.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_mypy_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_nas_resilience.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_near_duplicate_clusters.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_no_duplicate_test_names.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_no_import_cycles.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_no_third_party_cdn.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_nudity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_nudity_decode.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_nudity_download.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_nudity_integrity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_nudity_label_validation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_on_this_day.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_onnx_providers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_open_folder_restrict.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_orphan_person_albums.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_packaging.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_packaging_docs_consistency.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pair_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pair_status_touch.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pairing_requires_share_token.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_parallel_map_window.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_path_validation_helper.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_paths.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pattern_lint.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_assign_new_faces_vectorized.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_cache_cleanup_no_listing.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_face_cluster_blocked.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_face_clusters_no_decode.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_groups_single_pass.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_jpeg_draft.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_live_photo_backfill_queries.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_pagination.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_phash_backfill_batches.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_semantic_pass2_blocked.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_top_rated_refresh.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_perf_yunet_detector_reuse.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_permanent_delete_guard.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_permanent_delete_quarantine_edges.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_permanent_delete_recycle_bin.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_persist_atomicity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pet_cluster_iou_match.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pet_crop_cache_key.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pets.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pets_pet_detections_crud.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pets_smart_albums.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_phash_backfill_throttle.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_phash_generation_guard.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_photo_dict_typed.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_photo_hooks.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_photo_summary_builders.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_photos_pagination.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_picker_tables_in_sync.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pip_process.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_pipeline_fixes.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_albums_exports_hooks.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_extensibility.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_face_backends.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_lifecycle_and_indexed_smart_person.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_loader.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_loader_loader_respects_version_requirement.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_models_visible.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_protocol.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_toggle_keys.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugin_weight_keys_lazy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_plugins_doc_claims.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_polish_features.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_post_cluster_dispatch.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_privacy_claims.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_property_exif.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_property_paths.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_property_share.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_raw.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_raw_decode.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_raw_readers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_reanalyze_keeps_provenance.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_recent_hidden.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_recompute_coverage.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_recompute_coverage_optimize.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_recompute_dedupe_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_recompute_override_clamp.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_recovery_library_bound.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_redeye_points.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_refresh_domains_used.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_refresh_smart_albums_kinds.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_registry_protocol.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_release_hardening.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_remap_person_tags.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_rename_overwrite_guard.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_request_validation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_review_meta.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_robustness.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_robustness_first_run_api.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_robustness_per_step_migration_backup.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_route_registration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_sample_config_defaults.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scan_extensions_config.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scan_progress.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scan_skips_internal_dirs_deep.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scorer_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scores_sync.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scoring_blur.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scoring_subprocess.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scrfd.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_scrfd_license_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_search.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_search_like_escape.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_security_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_sensitive.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_serve_debug_flag.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_serve_host_default.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_serve_log_handler_ordering.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_serving_lock.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_settings_ui.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_access_log.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_auth_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_cookie.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_db.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_devices.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_endpoints.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_schema_migration.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_share_token_rotation_backups.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_sidecar_entry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smart_album_coverage.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smart_album_coverage_thumbnail_cache.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smart_album_presentation.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smart_album_queries.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smart_album_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smart_album_unique.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smart_person_cluster_id_v36.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_smoke.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_sse_event.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_sse_shared_stream.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_ssl_context_normalization.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_startup_backup_failure_is_not_corruption.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_startup_integrity_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_state_change_logging.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_state_compat_delegates_logged.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_stats.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_subprocess_runner.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_subprocess_runner_user_message.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_tag_rename_collision.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_tags.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_third_party_inventory.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_thumbnail_write_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_timeline.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_trim_export_rename_safety.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_trust_proxy.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_trust_proxy_behind_proxy_gated_by_trusted_networks.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_update_checker.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_video.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_video_metadata_db.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_video_trim_updates_row.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_web.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_web_batch_routes.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_web_face_recluster.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_whole_tree_review_batch2.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_whole_tree_review_batch3.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_whole_tree_review_batch3b.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_whole_tree_review_fixes.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_worker_finalize.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_worker_pool.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_worker_registry.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_workers.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_yunet_sface.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_yunet_sface_acceptance_gate.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests/test_yunet_sface_integrity.py +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_albums-setup.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_analysis-setup.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_deleted-setup.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_editor-setup.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_install-helpers.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_lightbox-setup.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_photos-setup.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/_toolbar-setup.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/action-registry.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/activity-humanize.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/activity-log.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/albums-presentation.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/albums-render-album-nav.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/albums-smart-album-context-menu.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/albums.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/analysis-refresh-status-right.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/analysis.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/api-client.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/attribution-consent.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/batch-rename.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/boot-health.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/boot-proof.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/calendar-keys-scope.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/calendar.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/cards-keyboard.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/client-error-beacon.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/clip.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/compare-sibling.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/compare.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/core.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/ctx-menu-shortcuts.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/date-format.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/deleted-batch-enhance.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/deleted.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/dialog-focus.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/dialogs.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/dispatcher.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/download-jobs.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/dupe-review.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/editor-crop.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/editor-inpaint.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/editor-redeye.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/editor.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/escape-order.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/face-embedders-blocker-text.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/face-embedders-escape.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/face-embedders-license-badge.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/face-embedders-load-failures.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/face-embedders-load-state.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/face-embedders-primary.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/face-embedders-reaccept.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/faces-reextract.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/faces.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/final-sweep-ui.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/format-helpers.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/function-loc-cap.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/groups.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/import-worker.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/inspector.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/install-done.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/install-prompts.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/library.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-add-face.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-bbox-edit.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-ctx-menu-clamp.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-esc-dialog.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-face-edit.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-lb-delete.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-map-guard.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox-map.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/lightbox.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/map.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/media-error-reload.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/media-url-auth.regression.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/memories.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/menu-a11y.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/menu-actions.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/modal.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/modals-face-embedders-busy-gate.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/modals-face-embedders-derive-row-state.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/modals-face-embedders-redownload-face-embedder-entry.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/modals-face-embedders-status-cell-menu-agree.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/modals-face-embedders.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/modals.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/models-changed-wiring.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/models-changed.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/moments-stacks.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/moments-view.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/mutation-error-toasts.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/nav-keyboard.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/navigation.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/no-local-escAttr.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/nudges.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/on-this-day.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/onboarding-use-context.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/onboarding.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/optimistic-handlers.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/paging.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/pair-page.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/pair-review-escape.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/pass-event-pattern.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/pattern-lint.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-actions.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-merge-bulk.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-merge-override-revert.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-pair-review.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-rename.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-review-esc.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-view-load.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/people-view.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/pet-crop-url.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/pets.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/phash-status.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/photo-load-error.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/photo-preview.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/photos-apply-zoom.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/photos-card-moment-preserve.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/photos-card-moment.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/photos-keynav.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/photos.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/picker-overlays.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/picker-server-fields.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/presets.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/review-meta.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/review15-ui-races.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/score-format.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/search-seq.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/search.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/sensitive.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/settings-client.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/settings-models-load.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/share-tab.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/sidebar-safety.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/sliders-delegation.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/slideshow.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/state.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/tags-view.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/tags.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/text-format.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/theme.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/timeline.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/toast.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/toolbar.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/tooltip.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/tour.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/types/globals.d.ts +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/ui-helpers.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/update-checker.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/use-context-options.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/utils.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/view-guard.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/whole-tree-review-batch2.module.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/window-pollution.test.mjs +0 -0
- {bppicker-0.2.0 → bppicker-0.2.1}/tests-js/wizard.module.test.mjs +0 -0
|
@@ -6,6 +6,17 @@ this project follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.2.1] — 2026-10-23
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- **The Mac app starts.** The 0.2.0 Mac build did not: macOS refused to
|
|
13
|
+
let its signed server load the Python runtime it unpacks (library
|
|
14
|
+
validation under the hardened runtime), so the app never reached its
|
|
15
|
+
server. The app now carries the entitlements a PyInstaller build
|
|
16
|
+
needs, and the release pipeline runs the signed server from the
|
|
17
|
+
installer before anything is uploaded. Install 0.2.1 over 0.2.0.
|
|
18
|
+
The Python package was not affected.
|
|
19
|
+
|
|
9
20
|
## [0.2.0] — 2026-10-23
|
|
10
21
|
|
|
11
22
|
Licensing, accuracy and hardening release. **Schema version: 44** (unchanged).
|
|
@@ -434,7 +445,8 @@ External calls are limited to documented features:
|
|
|
434
445
|
desktop wrapper currently builds only the macOS bundle.
|
|
435
446
|
- Python 3.11 only (CI tests this version; 3.12+ is unvalidated).
|
|
436
447
|
|
|
437
|
-
[Unreleased]: https://github.com/Arkalogy/best-photo-picker/compare/v0.2.
|
|
448
|
+
[Unreleased]: https://github.com/Arkalogy/best-photo-picker/compare/v0.2.1...HEAD
|
|
449
|
+
[0.2.1]: https://github.com/Arkalogy/best-photo-picker/releases/tag/v0.2.1
|
|
438
450
|
[0.2.0]: https://github.com/Arkalogy/best-photo-picker/releases/tag/v0.2.0
|
|
439
451
|
[0.1.2]: https://github.com/Arkalogy/best-photo-picker/releases/tag/v0.1.2
|
|
440
452
|
[0.1.1]: https://github.com/Arkalogy/best-photo-picker/releases/tag/v0.1.1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: bppicker
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Local-first photo curation tool — score, deduplicate, and select the best photos from large collections
|
|
5
5
|
Project-URL: Homepage, https://github.com/Arkalogy/best-photo-picker
|
|
6
6
|
Project-URL: Repository, https://github.com/Arkalogy/best-photo-picker
|
|
@@ -18,7 +18,7 @@ _os.environ.setdefault("OPENCV_IO_MAX_IMAGE_PIXELS", str(200_000_000))
|
|
|
18
18
|
# the first import.
|
|
19
19
|
_os.environ.setdefault("NO_ALBUMENTATIONS_UPDATE", "1")
|
|
20
20
|
|
|
21
|
-
__version__ = "0.2.
|
|
21
|
+
__version__ = "0.2.1"
|
|
22
22
|
APP_NAME = "Best Photo Picker"
|
|
23
23
|
|
|
24
24
|
# Eagerly import the model registry so the download chokepoint
|
|
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
|
|
|
8
8
|
# *import* package stays `bpp` — `pip install bppicker` then
|
|
9
9
|
# `import bpp` is the contract.
|
|
10
10
|
name = "bppicker"
|
|
11
|
-
version = "0.2.
|
|
11
|
+
version = "0.2.1"
|
|
12
12
|
description = "Local-first photo curation tool — score, deduplicate, and select the best photos from large collections"
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
requires-python = ">=3.11,<3.12"
|
|
@@ -105,3 +105,27 @@ class TestDesktopShellRestartLifecycle:
|
|
|
105
105
|
monitor = src.split("Server respawned successfully")[0]
|
|
106
106
|
monitor = monitor[monitor.rfind("loop {") :]
|
|
107
107
|
assert "foreign_ticks" in monitor and "show_start_failure(&handle_nav, true)" in monitor
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def test_the_signed_app_may_load_its_own_python():
|
|
111
|
+
"""The sidecar is a PyInstaller one-file binary; under the hardened
|
|
112
|
+
runtime it needs library validation disabled or it can't load the
|
|
113
|
+
Python it unpacks (the 0.2.0 Mac build did not start). The bundler
|
|
114
|
+
applies the entitlements file to every binary it signs, and the
|
|
115
|
+
release runs the signed sidecar from the DMG, serving a page, before
|
|
116
|
+
anything is uploaded."""
|
|
117
|
+
import json
|
|
118
|
+
import plistlib
|
|
119
|
+
|
|
120
|
+
conf = json.loads((ROOT / "desktop" / "src-tauri" / "tauri.conf.json").read_text())
|
|
121
|
+
name = conf["bundle"]["macOS"]["entitlements"]
|
|
122
|
+
plist = plistlib.loads((ROOT / "desktop" / "src-tauri" / name).read_bytes())
|
|
123
|
+
assert plist["com.apple.security.cs.disable-library-validation"] is True
|
|
124
|
+
assert plist["com.apple.security.cs.allow-unsigned-executable-memory"] is True
|
|
125
|
+
workflow = (ROOT / ".github" / "workflows" / "release-desktop.yml").read_text()
|
|
126
|
+
gate = workflow.index("Verify the signed sidecar starts and serves")
|
|
127
|
+
assert gate < workflow.index("Notarize and staple the DMG")
|
|
128
|
+
step = workflow[gate : workflow.index("Notarize and staple the DMG")]
|
|
129
|
+
assert '"$server" --version' in step
|
|
130
|
+
assert "serve --library" in step and "curl -sf" in step
|
|
131
|
+
assert "alarm 120" in step and "hdiutil detach" in step
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|