simple-module-images 0.0.14__py3-none-any.whl
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.
- simple_module_images-0.0.14.dist-info/METADATA +202 -0
- simple_module_images-0.0.14.dist-info/RECORD +347 -0
- simple_module_images-0.0.14.dist-info/WHEEL +4 -0
- simple_module_images-0.0.14.dist-info/entry_points.txt +2 -0
- simple_module_images-0.0.14.dist-info/licenses/NOTICE +61 -0
- sm_images/__init__.py +7 -0
- sm_images/contracts/__init__.py +78 -0
- sm_images/contracts/events.py +86 -0
- sm_images/contracts/reads.py +145 -0
- sm_images/contracts/schemas.py +93 -0
- sm_images/core/__init__.py +5 -0
- sm_images/core/access/__init__.py +275 -0
- sm_images/core/access/redaction.py +173 -0
- sm_images/core/access/resource_types.py +66 -0
- sm_images/core/access/starter_right.py +81 -0
- sm_images/core/access/write.py +91 -0
- sm_images/core/billing/__init__.py +203 -0
- sm_images/core/billing/install.py +206 -0
- sm_images/core/billing/metering_keys.py +27 -0
- sm_images/core/billing/ops.py +275 -0
- sm_images/core/billing/repair.py +224 -0
- sm_images/core/billing/repair_cursor.py +100 -0
- sm_images/core/billing/settle.py +211 -0
- sm_images/core/billing/subject.py +156 -0
- sm_images/core/clock/__init__.py +17 -0
- sm_images/core/clock/db.py +43 -0
- sm_images/core/constants.py +277 -0
- sm_images/core/errors.py +199 -0
- sm_images/core/events.py +82 -0
- sm_images/core/settings/__init__.py +141 -0
- sm_images/core/settings/boot.py +49 -0
- sm_images/core/storage/__init__.py +145 -0
- sm_images/core/storage/intents.py +73 -0
- sm_images/core/storage/keys.py +71 -0
- sm_images/core/tenancy/__init__.py +263 -0
- sm_images/core/tenancy/_guard.py +100 -0
- sm_images/core/tenancy/_mode.py +273 -0
- sm_images/core/tenancy/request_context.py +50 -0
- sm_images/index.ts +11 -0
- sm_images/ingest/__init__.py +23 -0
- sm_images/ingest/_holds_host.py +30 -0
- sm_images/ingest/admission.py +148 -0
- sm_images/ingest/b64.py +40 -0
- sm_images/ingest/dedupe.py +122 -0
- sm_images/ingest/direct.py +247 -0
- sm_images/ingest/guards.py +106 -0
- sm_images/ingest/imports/__init__.py +1 -0
- sm_images/ingest/imports/access.py +106 -0
- sm_images/ingest/imports/beat.py +85 -0
- sm_images/ingest/imports/chunk.py +216 -0
- sm_images/ingest/imports/claims.py +71 -0
- sm_images/ingest/imports/cleanup.py +132 -0
- sm_images/ingest/imports/controls.py +194 -0
- sm_images/ingest/imports/dns.py +115 -0
- sm_images/ingest/imports/download.py +195 -0
- sm_images/ingest/imports/errors.py +27 -0
- sm_images/ingest/imports/features.py +212 -0
- sm_images/ingest/imports/fetch.py +252 -0
- sm_images/ingest/imports/filename_pattern.py +138 -0
- sm_images/ingest/imports/geojson_stream.py +173 -0
- sm_images/ingest/imports/item_claim.py +140 -0
- sm_images/ingest/imports/item_errors.py +93 -0
- sm_images/ingest/imports/jobs.py +244 -0
- sm_images/ingest/imports/launch.py +80 -0
- sm_images/ingest/imports/log_redact.py +70 -0
- sm_images/ingest/imports/lookup.py +63 -0
- sm_images/ingest/imports/manage_right.py +82 -0
- sm_images/ingest/imports/mapping.py +73 -0
- sm_images/ingest/imports/netsafe.py +100 -0
- sm_images/ingest/imports/rate_limit.py +144 -0
- sm_images/ingest/imports/recover.py +261 -0
- sm_images/ingest/imports/reset.py +159 -0
- sm_images/ingest/imports/retrying.py +188 -0
- sm_images/ingest/imports/runner.py +229 -0
- sm_images/ingest/imports/service.py +132 -0
- sm_images/ingest/imports/settle.py +279 -0
- sm_images/ingest/imports/stage.py +82 -0
- sm_images/ingest/imports/staging.py +158 -0
- sm_images/ingest/imports/tasks.py +60 -0
- sm_images/ingest/imports/terminal.py +178 -0
- sm_images/ingest/imports/url_safety.py +181 -0
- sm_images/ingest/imports/values.py +165 -0
- sm_images/ingest/imports/zip_abort.py +47 -0
- sm_images/ingest/imports/zip_entries.py +126 -0
- sm_images/ingest/imports/zip_eocd.py +83 -0
- sm_images/ingest/imports/zip_import.py +241 -0
- sm_images/ingest/imports/zip_metadata.py +70 -0
- sm_images/ingest/imports/zip_safety.py +252 -0
- sm_images/ingest/imports/zip_source.py +127 -0
- sm_images/ingest/imports/zip_upload.py +260 -0
- sm_images/ingest/meta.py +137 -0
- sm_images/ingest/multipart.py +165 -0
- sm_images/ingest/service.py +238 -0
- sm_images/ingest/service_holds.py +67 -0
- sm_images/ingest/slots.py +194 -0
- sm_images/ingest/sniff.py +50 -0
- sm_images/ingest/ticket.py +92 -0
- sm_images/ingest/upload_reaper.py +111 -0
- sm_images/ingest/upload_session.py +220 -0
- sm_images/jobs/__init__.py +1 -0
- sm_images/jobs/janitor.py +256 -0
- sm_images/jobs/phases.py +52 -0
- sm_images/jobs/placeholders.py +78 -0
- sm_images/jobs/purge.py +222 -0
- sm_images/jobs/purge_delete.py +121 -0
- sm_images/jobs/purge_select.py +241 -0
- sm_images/jobs/reconcile.py +204 -0
- sm_images/jobs/reconcile_dispatch.py +121 -0
- sm_images/jobs/regroup/__init__.py +1 -0
- sm_images/jobs/regroup/control.py +103 -0
- sm_images/jobs/regroup/jobs.py +257 -0
- sm_images/jobs/regroup/runner.py +103 -0
- sm_images/locales/de.json +682 -0
- sm_images/locales/en.json +682 -0
- sm_images/map/__init__.py +15 -0
- sm_images/map/build.py +223 -0
- sm_images/map/objects.py +33 -0
- sm_images/map/pmtiles_build.py +147 -0
- sm_images/map/points.py +136 -0
- sm_images/map/recover.py +56 -0
- sm_images/map/revoke.py +121 -0
- sm_images/map/schedule.py +208 -0
- sm_images/map/style.py +71 -0
- sm_images/map/tasks.py +35 -0
- sm_images/models/__init__.py +66 -0
- sm_images/models/_base.py +14 -0
- sm_images/models/_cols.py +56 -0
- sm_images/models/billing_op.py +84 -0
- sm_images/models/collection.py +82 -0
- sm_images/models/enums.py +88 -0
- sm_images/models/group.py +25 -0
- sm_images/models/image.py +120 -0
- sm_images/models/import_item.py +51 -0
- sm_images/models/import_job.py +71 -0
- sm_images/models/object_intent.py +35 -0
- sm_images/models/pipeline_restart.py +37 -0
- sm_images/models/prompt.py +93 -0
- sm_images/models/regroup_job.py +94 -0
- sm_images/models/rendition.py +30 -0
- sm_images/models/step_run.py +50 -0
- sm_images/models/upload_admission.py +33 -0
- sm_images/models/upload_session.py +59 -0
- sm_images/module.py +245 -0
- sm_images/package.json +31 -0
- sm_images/pagebuilder-blocks.ts +43 -0
- sm_images/pages/Collection.tsx +254 -0
- sm_images/pages/Collections.tsx +75 -0
- sm_images/pages/Image.tsx +111 -0
- sm_images/pages/PublicCollection.tsx +72 -0
- sm_images/pages/Review.tsx +190 -0
- sm_images/pipeline/__init__.py +91 -0
- sm_images/pipeline/advance.py +196 -0
- sm_images/pipeline/ai/__init__.py +21 -0
- sm_images/pipeline/ai/codes.py +46 -0
- sm_images/pipeline/ai/cross_check.py +138 -0
- sm_images/pipeline/ai/group_inputs.py +103 -0
- sm_images/pipeline/ai/group_lease.py +189 -0
- sm_images/pipeline/ai/group_load.py +179 -0
- sm_images/pipeline/ai/group_members.py +159 -0
- sm_images/pipeline/ai/group_request.py +145 -0
- sm_images/pipeline/ai/group_run.py +221 -0
- sm_images/pipeline/ai/group_store.py +78 -0
- sm_images/pipeline/ai/prompt_steps.py +171 -0
- sm_images/pipeline/ai/reads.py +51 -0
- sm_images/pipeline/ai/results.py +193 -0
- sm_images/pipeline/ai/review.py +150 -0
- sm_images/pipeline/ai/run.py +191 -0
- sm_images/pipeline/ai/runner.py +158 -0
- sm_images/pipeline/ai/schema_model.py +172 -0
- sm_images/pipeline/ai/schema_safety.py +221 -0
- sm_images/pipeline/builtin_steps.py +103 -0
- sm_images/pipeline/claim.py +250 -0
- sm_images/pipeline/config.py +214 -0
- sm_images/pipeline/control.py +163 -0
- sm_images/pipeline/cycle.py +113 -0
- sm_images/pipeline/eager_drain.py +70 -0
- sm_images/pipeline/executor.py +218 -0
- sm_images/pipeline/extensions.py +122 -0
- sm_images/pipeline/finish.py +243 -0
- sm_images/pipeline/keeper.py +17 -0
- sm_images/pipeline/load.py +135 -0
- sm_images/pipeline/orchestrate.py +203 -0
- sm_images/pipeline/plan.py +237 -0
- sm_images/pipeline/presets.py +102 -0
- sm_images/pipeline/processing/__init__.py +1 -0
- sm_images/pipeline/processing/exif.py +147 -0
- sm_images/pipeline/processing/heif.py +28 -0
- sm_images/pipeline/processing/renditions.py +58 -0
- sm_images/pipeline/publish.py +222 -0
- sm_images/pipeline/registry.py +247 -0
- sm_images/pipeline/reopen.py +84 -0
- sm_images/pipeline/restart.py +165 -0
- sm_images/pipeline/runtime.py +129 -0
- sm_images/pipeline/step.py +152 -0
- sm_images/pipeline/steps/__init__.py +1 -0
- sm_images/pipeline/steps/anonymize/__init__.py +19 -0
- sm_images/pipeline/steps/anonymize/blur.py +72 -0
- sm_images/pipeline/steps/anonymize/detectors.py +138 -0
- sm_images/pipeline/steps/anonymize/models.py +229 -0
- sm_images/pipeline/steps/anonymize/step.py +200 -0
- sm_images/pipeline/steps/anonymize/weights.py +191 -0
- sm_images/pipeline/steps/classify.py +111 -0
- sm_images/pipeline/steps/quality.py +115 -0
- sm_images/pipeline/storage_hold.py +229 -0
- sm_images/pipeline/worker_runtime.py +196 -0
- sm_images/task_config.py +65 -0
- sm_images/tasks.py +179 -0
- sm_images/ui/components/ChipGroup.tsx +39 -0
- sm_images/ui/components/ConfirmDialog.tsx +90 -0
- sm_images/ui/components/ImagesLayout.tsx +9 -0
- sm_images/ui/components/block/ImageGalleryBlock.tsx +118 -0
- sm_images/ui/components/block/ImageStatsBlock.tsx +106 -0
- sm_images/ui/components/block/ImageStatsRender.tsx +118 -0
- sm_images/ui/components/collections/CollectionCard.tsx +32 -0
- sm_images/ui/components/collections/CreateCollectionDialog.tsx +126 -0
- sm_images/ui/components/collections/PublicLink.tsx +42 -0
- sm_images/ui/components/collections/VisibilitySelect.tsx +42 -0
- sm_images/ui/components/gallery/Gallery.tsx +105 -0
- sm_images/ui/components/gallery/GalleryTile.tsx +62 -0
- sm_images/ui/components/gallery/UploadButton.tsx +81 -0
- sm_images/ui/components/groups/GroupCard.tsx +95 -0
- sm_images/ui/components/groups/GroupForm.tsx +81 -0
- sm_images/ui/components/groups/GroupsTab.tsx +116 -0
- sm_images/ui/components/groups/MemberThumb.tsx +36 -0
- sm_images/ui/components/groups/RegroupPanel.tsx +159 -0
- sm_images/ui/components/imports/ImportFailures.tsx +54 -0
- sm_images/ui/components/imports/ImportWizard.tsx +261 -0
- sm_images/ui/components/imports/ImportsTab.tsx +70 -0
- sm_images/ui/components/imports/JobRow.tsx +157 -0
- sm_images/ui/components/imports/MappingFields.tsx +98 -0
- sm_images/ui/components/imports/PreviewSummary.tsx +68 -0
- sm_images/ui/components/map/CollectionMap.tsx +98 -0
- sm_images/ui/components/map/MapCanvas.tsx +214 -0
- sm_images/ui/components/map/mapRevision.ts +15 -0
- sm_images/ui/components/map/mapSource.ts +101 -0
- sm_images/ui/components/map/mapWorker.ts +22 -0
- sm_images/ui/components/pipeline/ParamsForm.tsx +246 -0
- sm_images/ui/components/pipeline/PipelineTab.tsx +271 -0
- sm_images/ui/components/pipeline/StepCard.tsx +103 -0
- sm_images/ui/components/prompts/GroupResults.tsx +128 -0
- sm_images/ui/components/prompts/PresetPicker.tsx +85 -0
- sm_images/ui/components/prompts/PromptForm.tsx +196 -0
- sm_images/ui/components/prompts/PromptRow.tsx +169 -0
- sm_images/ui/components/prompts/PromptsTab.tsx +178 -0
- sm_images/ui/components/prompts/RunConfirm.tsx +79 -0
- sm_images/ui/components/prompts/RunOnImages.tsx +113 -0
- sm_images/ui/components/prompts/SchemaEditor.tsx +122 -0
- sm_images/ui/components/prompts/SchemaFieldBuilder.tsx +139 -0
- sm_images/ui/components/public/Lightbox.tsx +78 -0
- sm_images/ui/components/public/PublicGallery.tsx +138 -0
- sm_images/ui/components/results/GenericResultView.tsx +61 -0
- sm_images/ui/components/results/PromptAnswer.tsx +54 -0
- sm_images/ui/components/results/ResultView.tsx +13 -0
- sm_images/ui/components/results/plugins.ts +14 -0
- sm_images/ui/components/results/registry.ts +55 -0
- sm_images/ui/components/review/CorrectionForm.tsx +187 -0
- sm_images/ui/components/review/ReviewPanel.tsx +136 -0
- sm_images/ui/components/share/ShareDialog.tsx +155 -0
- sm_images/ui/components/viewer/GroupEditor.tsx +170 -0
- sm_images/ui/components/viewer/ImageMeta.tsx +86 -0
- sm_images/ui/components/viewer/ImageViewer.tsx +85 -0
- sm_images/ui/components/viewer/NeighborNav.tsx +74 -0
- sm_images/ui/hooks/useCollections.ts +21 -0
- sm_images/ui/hooks/useCursorList.ts +90 -0
- sm_images/ui/hooks/useGeoJsonPreview.ts +37 -0
- sm_images/ui/hooks/useGroups.ts +42 -0
- sm_images/ui/hooks/useImages.ts +47 -0
- sm_images/ui/hooks/useImportJobs.ts +99 -0
- sm_images/ui/hooks/usePipelinePoll.ts +57 -0
- sm_images/ui/hooks/usePromptResults.ts +121 -0
- sm_images/ui/hooks/useRegroupJob.ts +71 -0
- sm_images/ui/hooks/useReviewKeys.ts +43 -0
- sm_images/ui/hooks/useReviewQueue.ts +148 -0
- sm_images/ui/hooks/useShares.ts +83 -0
- sm_images/ui/utils/api-groups.ts +66 -0
- sm_images/ui/utils/api-imports.ts +60 -0
- sm_images/ui/utils/api-net.ts +76 -0
- sm_images/ui/utils/api-prompts.ts +71 -0
- sm_images/ui/utils/api-public.ts +67 -0
- sm_images/ui/utils/api-review.ts +48 -0
- sm_images/ui/utils/api-shares.ts +42 -0
- sm_images/ui/utils/api.ts +175 -0
- sm_images/ui/utils/csrf.ts +62 -0
- sm_images/ui/utils/direct-upload.ts +92 -0
- sm_images/ui/utils/geojsonDetect.ts +81 -0
- sm_images/ui/utils/geojsonHeadScanner.ts +197 -0
- sm_images/ui/utils/geojsonPreview.ts +146 -0
- sm_images/ui/utils/i18n.ts +182 -0
- sm_images/ui/utils/labels.ts +86 -0
- sm_images/ui/utils/schemaFields.ts +134 -0
- sm_images/ui/utils/types-prompts.ts +70 -0
- sm_images/ui/utils/types-public.ts +39 -0
- sm_images/ui/utils/types.ts +245 -0
- sm_images/web/__init__.py +3 -0
- sm_images/web/endpoints/__init__.py +1 -0
- sm_images/web/endpoints/api/__init__.py +50 -0
- sm_images/web/endpoints/api/_runtime.py +24 -0
- sm_images/web/endpoints/api/collections.py +118 -0
- sm_images/web/endpoints/api/groups.py +199 -0
- sm_images/web/endpoints/api/images.py +246 -0
- sm_images/web/endpoints/api/imports.py +227 -0
- sm_images/web/endpoints/api/map.py +58 -0
- sm_images/web/endpoints/api/pipeline.py +107 -0
- sm_images/web/endpoints/api/presets.py +50 -0
- sm_images/web/endpoints/api/prompts.py +188 -0
- sm_images/web/endpoints/api/review.py +90 -0
- sm_images/web/endpoints/api/serve.py +65 -0
- sm_images/web/endpoints/api/shares.py +60 -0
- sm_images/web/endpoints/api/uploads.py +163 -0
- sm_images/web/endpoints/csrf.py +26 -0
- sm_images/web/endpoints/deps.py +29 -0
- sm_images/web/endpoints/map_params.py +69 -0
- sm_images/web/endpoints/menu.py +29 -0
- sm_images/web/endpoints/public.py +173 -0
- sm_images/web/endpoints/public_views.py +58 -0
- sm_images/web/endpoints/views.py +150 -0
- sm_images/web/schemas/__init__.py +1 -0
- sm_images/web/schemas/collection.py +65 -0
- sm_images/web/schemas/group.py +100 -0
- sm_images/web/schemas/image.py +179 -0
- sm_images/web/schemas/imports.py +85 -0
- sm_images/web/schemas/pipeline.py +30 -0
- sm_images/web/schemas/prompt.py +132 -0
- sm_images/web/schemas/review.py +38 -0
- sm_images/web/services/__init__.py +32 -0
- sm_images/web/services/collections.py +169 -0
- sm_images/web/services/cursor.py +62 -0
- sm_images/web/services/gallery.py +155 -0
- sm_images/web/services/groups.py +265 -0
- sm_images/web/services/neighbors.py +50 -0
- sm_images/web/services/present.py +102 -0
- sm_images/web/services/presets.py +161 -0
- sm_images/web/services/prompt_answers.py +48 -0
- sm_images/web/services/prompts.py +211 -0
- sm_images/web/services/public_gallery.py +81 -0
- sm_images/web/services/public_stats.py +113 -0
- sm_images/web/services/regroup.py +198 -0
- sm_images/web/services/regroup_write.py +153 -0
- sm_images/web/services/review_queue.py +101 -0
- sm_images/web/services/slugs.py +19 -0
- sm_images/web/services/stats.py +150 -0
- sm_images/web/services/viewer_stats.py +89 -0
- sm_images/web/serving/__init__.py +2 -0
- sm_images/web/serving/cache.py +156 -0
- sm_images/web/serving/ranges.py +90 -0
- sm_images/web/serving/respond.py +263 -0
- sm_images/web/serving/urls.py +124 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: simple_module_images
|
|
3
|
+
Version: 0.0.14
|
|
4
|
+
Summary: Image collections with a processing pipeline: EXIF, renditions, quality checks, optional anonymisation, geo-located imports and map tiles
|
|
5
|
+
Project-URL: Repository, https://github.com/antosubash/simple_module_python_modules
|
|
6
|
+
Author-email: Anto Subash <antosubash@live.com>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: NOTICE
|
|
9
|
+
Keywords: exif,gallery,geo,images,simple-module
|
|
10
|
+
Requires-Python: >=3.12
|
|
11
|
+
Requires-Dist: httpx>=0.27
|
|
12
|
+
Requires-Dist: ijson>=3.2
|
|
13
|
+
Requires-Dist: itsdangerous<3,>=2.0
|
|
14
|
+
Requires-Dist: pillow-heif>=1.4
|
|
15
|
+
Requires-Dist: pillow>=10.0
|
|
16
|
+
Requires-Dist: pydantic-settings>=2.0
|
|
17
|
+
Requires-Dist: regex>=2023.0
|
|
18
|
+
Requires-Dist: simple-module-background-tasks<0.1,>=0.0.44
|
|
19
|
+
Requires-Dist: simple-module-core<0.1,>=0.0.42
|
|
20
|
+
Requires-Dist: simple-module-db<0.1,>=0.0.41
|
|
21
|
+
Requires-Dist: simple-module-file-storage<0.1,>=0.0.44
|
|
22
|
+
Requires-Dist: simple-module-hosting<0.1,>=0.0.42
|
|
23
|
+
Requires-Dist: simple-module-inertia<0.1,>=0.0.41
|
|
24
|
+
Requires-Dist: simple-module-settings<0.1,>=0.0.41
|
|
25
|
+
Requires-Dist: simple-module-sharing<0.1,>=0.0.44
|
|
26
|
+
Provides-Extra: ai
|
|
27
|
+
Requires-Dist: simple-module-ai<0.1,>=0.0.14; extra == 'ai'
|
|
28
|
+
Provides-Extra: anonymize
|
|
29
|
+
Requires-Dist: onnxruntime>=1.18; extra == 'anonymize'
|
|
30
|
+
Provides-Extra: billing
|
|
31
|
+
Requires-Dist: simple-module-billing<0.1,>=0.0.14; extra == 'billing'
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pmtiles>=3.2; extra == 'dev'
|
|
34
|
+
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
|
|
35
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: simple-module-test<0.1,>=0.0.41; extra == 'dev'
|
|
37
|
+
Provides-Extra: pagebuilder
|
|
38
|
+
Requires-Dist: simple-module-pagebuilder<0.1,>=0.0.12; extra == 'pagebuilder'
|
|
39
|
+
Provides-Extra: quality
|
|
40
|
+
Requires-Dist: opencv-python-headless>=4.9; extra == 'quality'
|
|
41
|
+
Description-Content-Type: text/markdown
|
|
42
|
+
|
|
43
|
+
# simple_module_images
|
|
44
|
+
|
|
45
|
+
Image collections for SimpleModule hosts. A collection holds images whose
|
|
46
|
+
**originals are immutable**; everything derived from them (EXIF and location,
|
|
47
|
+
renditions, quality metrics, an optionally anonymised display copy, map tiles)
|
|
48
|
+
is produced by pipeline steps that run as background tasks. Collections are
|
|
49
|
+
private to their owner, shared with chosen users, internal to the organisation
|
|
50
|
+
or public.
|
|
51
|
+
|
|
52
|
+
Imports take single files, batches, large direct uploads, ZIP archives and
|
|
53
|
+
GeoJSON sources of up to a million located images. Groups, AI prompts with a
|
|
54
|
+
review queue, a map (GeoJSON points and PMTiles) and a public gallery are
|
|
55
|
+
included. Design:
|
|
56
|
+
`docs/superpowers/specs/2026-10-28-images-module-design.md` in the source repo;
|
|
57
|
+
the guides are in [`docs/`](docs/index.md).
|
|
58
|
+
|
|
59
|
+
## Install
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pip install simple_module_images
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Add `simple_module_images` to your host's dependencies; for an in-repo checkout,
|
|
66
|
+
resolve it from the workspace:
|
|
67
|
+
|
|
68
|
+
```toml
|
|
69
|
+
[tool.uv.sources.simple_module_images]
|
|
70
|
+
workspace = true
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
A plain install pulls no onnxruntime or OpenCV. Heavy processors are
|
|
74
|
+
extras, imported only inside the step that needs them:
|
|
75
|
+
|
|
76
|
+
| Extra | Adds |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `quality` | OpenCV: resolution, blur and exposure metrics |
|
|
79
|
+
| `anonymize` | onnxruntime: YuNet face and YOLOv9 plate detection (MIT models), blurred into a display copy (the original is kept); weights from `anonymize_weights_path` or a pinned, checksummed download on first use |
|
|
80
|
+
| `ai` | `simple_module_ai`: prompt-based image analysis |
|
|
81
|
+
| `billing` | `simple_module_billing`: storage and request metering |
|
|
82
|
+
| `pagebuilder` | `simple_module_pagebuilder`: an image gallery block |
|
|
83
|
+
|
|
84
|
+
The map view needs no extra: its PMTiles archive is built by the `tippecanoe`
|
|
85
|
+
binary (`tippecanoe_path`), which must be on the worker's machine.
|
|
86
|
+
|
|
87
|
+
**Models and licences.** The `anonymize` extra installs only onnxruntime
|
|
88
|
+
(MIT). The step downloads two MIT-licensed ONNX models on first use, pinned by
|
|
89
|
+
SHA-256: **YuNet** (faces; Shiqi Yu, via
|
|
90
|
+
[OpenCV Zoo](https://github.com/opencv/opencv_zoo/tree/eb9f4f2d4b79b58e5513b5d25d5f0243a8357bf4/models/face_detection_yunet))
|
|
91
|
+
and **YOLOv9 licence-plate detector** (ankandrew,
|
|
92
|
+
[open-image-models](https://github.com/ankandrew/open-image-models)). Their
|
|
93
|
+
copyright notices are in this module's `NOTICE`. Recall is unverified, and
|
|
94
|
+
weights are cached under `~/.cache/simple_module_images/models` unless
|
|
95
|
+
`anonymize_weights_path` points at `face.onnx` and `plate.onnx`. See
|
|
96
|
+
[docs/index.md](docs/index.md#anonymize-models-and-licences).
|
|
97
|
+
|
|
98
|
+
The module needs the framework's `settings`, `sharing`, `file_storage` and
|
|
99
|
+
`background_tasks` modules. Migrations live in the consuming host
|
|
100
|
+
(`make migration`), never in the wheel.
|
|
101
|
+
|
|
102
|
+
Image processing runs in Celery workers (`make worker`, `worker-imports`,
|
|
103
|
+
`worker-heavy`, `worker-gpu`, `beat`) or inline with
|
|
104
|
+
`SM_BG_TASKS_TASK_ALWAYS_EAGER=true`. A plugin that adds steps ships an
|
|
105
|
+
`images_extensions.py` and must be installed in the web process and every
|
|
106
|
+
worker. See [docs/worker.md](docs/worker.md) and
|
|
107
|
+
[docs/writing-a-plugin.md](docs/writing-a-plugin.md).
|
|
108
|
+
|
|
109
|
+
## Usage
|
|
110
|
+
|
|
111
|
+
The console is at `/admin/images`, the JSON API under `/api/images` and public
|
|
112
|
+
collections at `/images/c/{slug}`. Every router binds a tenant: a single-tenant
|
|
113
|
+
host uses `default`, a multi-tenant host the organisation the framework
|
|
114
|
+
resolved (403 `tenant_required` for the console, 404 for public routes when
|
|
115
|
+
none).
|
|
116
|
+
|
|
117
|
+
### Permissions
|
|
118
|
+
|
|
119
|
+
| Permission | Allows |
|
|
120
|
+
| --- | --- |
|
|
121
|
+
| `images.view` | See collections and images the access policy admits |
|
|
122
|
+
| `images.create` | Create collections and upload images |
|
|
123
|
+
| `images.publish` | Make a collection public or internal |
|
|
124
|
+
| `images.manage` | Manage every collection regardless of owner |
|
|
125
|
+
| `images.originals.view` | Download the immutable original |
|
|
126
|
+
|
|
127
|
+
### Settings
|
|
128
|
+
|
|
129
|
+
The module's settings are governed by the framework's `settings.edit`, as every
|
|
130
|
+
other module's are; images has no settings permission of its own.
|
|
131
|
+
|
|
132
|
+
Stored in the database and edited on the Settings screen; there is no
|
|
133
|
+
`SM_IMAGES_*` environment variable. System scope: one configuration for every
|
|
134
|
+
tenant. Fields marked as needing a restart (`tippecanoe_path`,
|
|
135
|
+
`public_asset_base_url`) are read once at boot; workers pick up the rest within
|
|
136
|
+
about 30 seconds.
|
|
137
|
+
|
|
138
|
+
| Setting | Default |
|
|
139
|
+
| --- | --- |
|
|
140
|
+
| `max_image_bytes` | 50 MiB |
|
|
141
|
+
| `batch_max` | 50 |
|
|
142
|
+
| `upload_body_max_bytes` | 100 MiB |
|
|
143
|
+
| `direct_upload_threshold` | 20 MiB |
|
|
144
|
+
| `max_open_uploads_per_tenant` | 20 |
|
|
145
|
+
| `zip_max_bytes` / `zip_max_entries` | 2 GiB / 10 000 |
|
|
146
|
+
| `zip_max_entry_bytes` / `zip_max_total_bytes` / `zip_max_ratio` | 200 MiB / 8 GiB / 200 |
|
|
147
|
+
| `geojson_max_features` / `geojson_max_bytes` / `geojson_max_feature_bytes` | 1 000 000 / 2 GiB / 60 MiB |
|
|
148
|
+
| `download_concurrency_per_domain` / `download_concurrency_total` (per download task) / `download_timeout` | 4 / 32 / 60 s |
|
|
149
|
+
| `thumbnail_sizes` | marker 64, small 160, medium 400, large 1024 |
|
|
150
|
+
| `dedupe_by_hash` | off |
|
|
151
|
+
| `tippecanoe_path`, `anonymize_weights_path` | `tippecanoe`, empty |
|
|
152
|
+
| `map_rebuild_threshold_pct` / `map_rebuild_threshold_abs` | 5 / 100 |
|
|
153
|
+
| `map_style_url` (basemap; empty = flat, no third-party request) | `https://tiles.openfreemap.org/styles/positron` |
|
|
154
|
+
| `public_asset_base_url` | empty |
|
|
155
|
+
| `janitor_grace_days`, `step_output_max_bytes`, `step_lease_seconds` | 7, 65 536, 1 800 |
|
|
156
|
+
|
|
157
|
+
### Routes
|
|
158
|
+
|
|
159
|
+
Upload routes (`/api/images/collections/{id}/images`, `.../imports`,
|
|
160
|
+
`.../imports/zip` and `/api/images/uploads/`) carry a request-body ceiling of
|
|
161
|
+
`upload_body_max_bytes` plus multipart framing; the rest use the host's global
|
|
162
|
+
limit. Public exemptions are `GET`/`HEAD` only, under `/images/c/` and
|
|
163
|
+
`/api/images/public/`.
|
|
164
|
+
|
|
165
|
+
### Map
|
|
166
|
+
|
|
167
|
+
- `GET /api/images/collections/{id}/points?bbox=minx,miny,maxx,maxy&limit=&cursor=`
|
|
168
|
+
(anonymous twin: `/api/images/public/c/{slug}/points`) answers a GeoJSON
|
|
169
|
+
`FeatureCollection`. Each point carries only `id`, `captured_at` and
|
|
170
|
+
`group_id`; an image whose display mutator has not settled is not a point.
|
|
171
|
+
`limit` is clamped to 5000; follow `next_cursor` for the rest.
|
|
172
|
+
- `GET|HEAD …/collections/{id}/map.pmtiles` (twin: `/api/images/public/c/{slug}/map.pmtiles`)
|
|
173
|
+
serves the collection's PMTiles archive with `Range`, checking access on
|
|
174
|
+
every request. It is a 404 until a map is built.
|
|
175
|
+
- `images.build_map` (queue `images`) builds the archive with `tippecanoe`.
|
|
176
|
+
A rebuild starts once the changes since the last build reach
|
|
177
|
+
`map_rebuild_threshold_abs` or `map_rebuild_threshold_pct` percent of its
|
|
178
|
+
points (both at least 1). A move does not wait for the threshold. A visibility
|
|
179
|
+
change, a removed point (an image trashed or its location cleared) and a
|
|
180
|
+
pipeline save that changes the redaction gate withdraw the archive in the
|
|
181
|
+
same transaction and build a fresh one. An archive is stamped with the
|
|
182
|
+
redaction gate it was built under, and is a 404 under any other (for
|
|
183
|
+
example once a mutator plugin is removed) until `images.reconcile` rebuilds it.
|
|
184
|
+
- The `images.tippecanoe` health check is degraded while the binary cannot be
|
|
185
|
+
found. Points keep working.
|
|
186
|
+
- The points are drawn over the basemap `map_style_url` names (OpenFreeMap's
|
|
187
|
+
Positron by default; its origin is added to the CSP). Viewers' browsers
|
|
188
|
+
fetch its tiles from that host, so it sees their IP and the area they view;
|
|
189
|
+
set it to empty for a flat background with no third-party request. A style
|
|
190
|
+
that cannot be fetched falls back to the flat background.
|
|
191
|
+
|
|
192
|
+
## Documentation
|
|
193
|
+
|
|
194
|
+
| Page | For |
|
|
195
|
+
| --- | --- |
|
|
196
|
+
| [docs/index.md](docs/index.md) | Concepts, install, permissions, every setting |
|
|
197
|
+
| [docs/access.md](docs/access.md) | Visibility, shares, originals, withheld images |
|
|
198
|
+
| [docs/imports.md](docs/imports.md) | Uploads, direct upload and bucket CORS, ZIP, GeoJSON, limits |
|
|
199
|
+
| [docs/pipeline.md](docs/pipeline.md) | Steps, leases, AI prompts, groups, presets, review, storage metering |
|
|
200
|
+
| [docs/writing-a-plugin.md](docs/writing-a-plugin.md) | Steps, presets and result views from another module |
|
|
201
|
+
| [docs/worker.md](docs/worker.md) | Workers, beat, timeouts, tuning, recovery times |
|
|
202
|
+
| [docs/migrating-from-portal.md](docs/migrating-from-portal.md) | Moving off the portal's feature |
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
sm_images/__init__.py,sha256=HSXu6Hb_yVHwjSdZTeL43_-XCPP50Y8qjeyHMD7gtiY,322
|
|
2
|
+
sm_images/index.ts,sha256=-TD0puzeS4opjOoHuzMvzcQw-QIPywbmI5caHL8XbIo,408
|
|
3
|
+
sm_images/module.py,sha256=FmcHTX-1Wgfv9IMZBoWGrW67dd95m-S4x_1a3K6b93U,10756
|
|
4
|
+
sm_images/pagebuilder-blocks.ts,sha256=3sCmb770qZe6-5uc4yU2BtxuwWpculV1ALk0Dy9sHOw,1909
|
|
5
|
+
sm_images/task_config.py,sha256=P1fsg40DEopmnr0W8hTZAJmUoC8DGHHsBiUhb7RdVfw,2425
|
|
6
|
+
sm_images/tasks.py,sha256=8q4f6kvcfc14_WoFH0CWZWOHqHeh8x9_uAABwLbQfiA,6967
|
|
7
|
+
sm_images/contracts/__init__.py,sha256=7hp3--CROSDi_bABNFsiqPgjyfeKxb8wWOdB2YaAua4,2000
|
|
8
|
+
sm_images/contracts/events.py,sha256=K3HCyaZOZAhpmhFlfciHaw0p0rjqF_bsdyghB24jjKE,2332
|
|
9
|
+
sm_images/contracts/reads.py,sha256=TSANLnWgZSHCQXQf-JtAMa940yrCepw74wersi_1tec,5982
|
|
10
|
+
sm_images/contracts/schemas.py,sha256=w_NVu6F_B1X55dVNYuaIqToWzufk6PUidC1e_St1WHU,2836
|
|
11
|
+
sm_images/core/__init__.py,sha256=ybFmv5A5UPCGT5j2sQiwB4XtwCjFx9nxP_bfxtURnWM,244
|
|
12
|
+
sm_images/core/constants.py,sha256=XrC9D6KQjZO5FlsHoX_JXOTG6BXTyw-2_qWsf2Mk0gA,11806
|
|
13
|
+
sm_images/core/errors.py,sha256=u5u0XlsZs7bCg_lPoZBF-saZVztQs4PJamigM75moIs,6643
|
|
14
|
+
sm_images/core/events.py,sha256=t1s0gcIcuDusUYjbbHUvIFQ_CPI3--hOPefBtaB6oLY,2662
|
|
15
|
+
sm_images/core/access/__init__.py,sha256=tnVh5F61oyMID4BooYQLd8N66fzwf-gOdeaP2FRQJVA,10850
|
|
16
|
+
sm_images/core/access/redaction.py,sha256=HRZHnYHlkUorOoKEvhFFjr6uZUkKd8gfq5SIPsNUGK8,7525
|
|
17
|
+
sm_images/core/access/resource_types.py,sha256=apI5MDp7j_0R3CYOnUJii_1kjqYK6QnMAw8WPLft8JQ,2961
|
|
18
|
+
sm_images/core/access/starter_right.py,sha256=EQkoPddR2LdoHR61i61HATTN_VwMCzk5NDw5ZDq0XJg,3189
|
|
19
|
+
sm_images/core/access/write.py,sha256=ai0IkoAc172R73VHK-mOxUvNhWzwkQOi4x4D1yJw6xs,3744
|
|
20
|
+
sm_images/core/billing/__init__.py,sha256=KfgEbiT4TAwJjc8Q-K8s4HIcNdJzQuILEMuJxqbNVGo,8119
|
|
21
|
+
sm_images/core/billing/install.py,sha256=6R5uPZyuBqJE35iqa1dVMSFfE1eQDBricWQSAbh1hK4,9574
|
|
22
|
+
sm_images/core/billing/metering_keys.py,sha256=AXX88BLd4e4DjCEcz2bZUgQJeKRRPwKYjIsC8Z2kzAQ,1136
|
|
23
|
+
sm_images/core/billing/ops.py,sha256=Ny5tKgc7Bvl2Joo8mjzGoUpOZUzx-Ba_ts5zGKfReUE,9804
|
|
24
|
+
sm_images/core/billing/repair.py,sha256=YTgzLe0ulvKZGwtFYWvsOnhaxQt5md_5J8MRLCc_pXM,9602
|
|
25
|
+
sm_images/core/billing/repair_cursor.py,sha256=ksehqpCOPfLYaHTGwvaG39N-IFHOIIbGRcpGqvd78X4,3810
|
|
26
|
+
sm_images/core/billing/settle.py,sha256=V9_T_Dv8vMXfdJN13WeSdndeOzt-Fn9OVzLk_ByCcpo,7384
|
|
27
|
+
sm_images/core/billing/subject.py,sha256=QNarJ0OUP4XS8URJXbe1arP9LQ4N8xKITlqtNje1BUg,5243
|
|
28
|
+
sm_images/core/clock/__init__.py,sha256=0lP6FaUsQn2zSOdeN1556GDQz7k5D8Ov3x22ZdzAE3k,491
|
|
29
|
+
sm_images/core/clock/db.py,sha256=f8JeYO_nSePswWli-SeB-x0BUUHhx-nRkLR2I4NcICk,1856
|
|
30
|
+
sm_images/core/settings/__init__.py,sha256=2S8RjzoHuEQZQtBAkGqxk7UWGOPJvFTGgwgIfs-XBBY,6360
|
|
31
|
+
sm_images/core/settings/boot.py,sha256=Rs2XWPxGAvtXBVqMXxXepk6dvKP4F_im8_f40tV_8ww,2314
|
|
32
|
+
sm_images/core/storage/__init__.py,sha256=I0bz3GEPj8lrE_uCblzze-Fpux7A46PjfeCDuaAn8Y4,5325
|
|
33
|
+
sm_images/core/storage/intents.py,sha256=ycmi3RLiAjv3Ox4C7v0QXTmp89s-b1GabYKSsrILDsg,2843
|
|
34
|
+
sm_images/core/storage/keys.py,sha256=rsRUIcs7EMyvzmxwdGYHPbJs703y1QJ3CerB64TpjY8,2579
|
|
35
|
+
sm_images/core/tenancy/__init__.py,sha256=k7JUScSr3imro04fq2gv9nUE0FAW8uNAHpGTbPIlONk,10943
|
|
36
|
+
sm_images/core/tenancy/_guard.py,sha256=2WweajWIDDP3aYjeSm75YA0esYy9kOHKkd5geHsL8RM,4220
|
|
37
|
+
sm_images/core/tenancy/_mode.py,sha256=cFChRaHk1gJhrfWgjp2rCxTC0xhxrUTjIbC1Gcns114,10909
|
|
38
|
+
sm_images/core/tenancy/request_context.py,sha256=R8Huk2xOQ4zLrLNPShDEsDAB-bXxKR_ighF1xm_HHLc,1940
|
|
39
|
+
sm_images/ingest/__init__.py,sha256=llCKSJzXFoDxPZh7Z_mRbiYCNy-3NMUruxa96A-e8Hc,628
|
|
40
|
+
sm_images/ingest/_holds_host.py,sha256=WnmgfDQTObuyL672ima2nRGqX-LAgDk2pgnNOcV3uNk,930
|
|
41
|
+
sm_images/ingest/admission.py,sha256=rofjGE7yJ4NLlA4EU2SS9_KyAGnf_aFjDXMtwsbNxf8,6904
|
|
42
|
+
sm_images/ingest/b64.py,sha256=KkflI3mG7JK05pyk3L3cmuL8lpYaVmn5kTnO4ZB8j-I,1332
|
|
43
|
+
sm_images/ingest/dedupe.py,sha256=pNuCuieiQTMYrgkaRpoZ-BrluNUW1a8w5x_M9Tv3p8A,4924
|
|
44
|
+
sm_images/ingest/direct.py,sha256=QnAyXVooD6oSTRE4GWGeKPIxFLUO-7Zkk_agbqyDS08,9855
|
|
45
|
+
sm_images/ingest/guards.py,sha256=1YPW0i0r5ZKOgOx8reM_f4vXM2SQuoC5z2nRO0x5waM,4100
|
|
46
|
+
sm_images/ingest/meta.py,sha256=5x0rsURSFVTTkUO9-hueeXA6rH5EiPOPAzijngpNmwY,5032
|
|
47
|
+
sm_images/ingest/multipart.py,sha256=VY_B0Kux3LBCw5Jo0s8Z6uVPNrcvSQ8CJodHIlBiFpQ,6172
|
|
48
|
+
sm_images/ingest/service.py,sha256=0Ic4xzuFDJrKIIFNTm8hAfipY0PU_dC25Vb3wCGoR2Y,10599
|
|
49
|
+
sm_images/ingest/service_holds.py,sha256=olsqSPg875jVk8KE7of7Z4zn1xEKxJWkyri-RqJFcz4,2833
|
|
50
|
+
sm_images/ingest/slots.py,sha256=ZpBvMOB5PmKmYTsum9N8Gvaxt0VppyES7sUhWEAX2Y4,8015
|
|
51
|
+
sm_images/ingest/sniff.py,sha256=CSIJAZ8ygyi8RqS-eh-vtKGKTMQGzpXwMMM5fVjn0KQ,1607
|
|
52
|
+
sm_images/ingest/ticket.py,sha256=sFBbhKTaPGEMt_CYJxFCiRZunlIJ1H8kGwYPwIQR-98,3366
|
|
53
|
+
sm_images/ingest/upload_reaper.py,sha256=grwi_zxvD8FjV5y-evxK-P5h-AuHT95BQVoX6zbD2Lg,4405
|
|
54
|
+
sm_images/ingest/upload_session.py,sha256=vk-Y9No0HJEcWiQIBQlm3o_YO44MGulv8-LUOAozOj8,8992
|
|
55
|
+
sm_images/ingest/imports/__init__.py,sha256=LbM9hjCo3TYKjXc2S5i1lGd2BGCo2Z2MyLTnnjAigvI,80
|
|
56
|
+
sm_images/ingest/imports/access.py,sha256=DM1Oj0vzi5r7NtUnFLacuOZ7DfXMJyXWgveJ53dJG-I,4287
|
|
57
|
+
sm_images/ingest/imports/beat.py,sha256=bH-B_-TBnzV9C5AAIOcYt_m8slr3BdL4iOH1SRpG6O8,3154
|
|
58
|
+
sm_images/ingest/imports/chunk.py,sha256=DLlQbK9RPm-81BbyhGvBolx_ZZOTWNR1TCLwH6nJjTg,8320
|
|
59
|
+
sm_images/ingest/imports/claims.py,sha256=YLAHZ5h2sQxMQtuKRwEJbf_q0I_u8Z3WCHETCpoN8Fs,2815
|
|
60
|
+
sm_images/ingest/imports/cleanup.py,sha256=AM1cqEW4cuTBxaIKNPmvRxBZ4OlAub1P98P5t8a32vs,5370
|
|
61
|
+
sm_images/ingest/imports/controls.py,sha256=TKnGcgCD7KnF3jD0aKktJZELNpvH0lGpEA-uyJRvNuU,8112
|
|
62
|
+
sm_images/ingest/imports/dns.py,sha256=5IE0qXql2vdJfmi1vNj0vSr2MCXyNubGV2SMKfb8faY,3917
|
|
63
|
+
sm_images/ingest/imports/download.py,sha256=MYFdxlClgSEjgo4L6mTYh-pZKCrz1zoxp_UCp9wo8mU,7670
|
|
64
|
+
sm_images/ingest/imports/errors.py,sha256=0cOHCKghgBUelqC6JQBNoAK0BQgmxoa5Vegq5C_MtLI,777
|
|
65
|
+
sm_images/ingest/imports/features.py,sha256=AazLcGvVEiaHOQktgF1Sq-sTQPixW0rcX6ViAhfl_14,7490
|
|
66
|
+
sm_images/ingest/imports/fetch.py,sha256=wVFUeQwOYQR9GHmmus1lg59Xqovq895tc-I75qhtu-0,10858
|
|
67
|
+
sm_images/ingest/imports/filename_pattern.py,sha256=gPulcraJVpKppG0qpIwDy_HfUWEcUG9Lq1XQM-0XhKI,4647
|
|
68
|
+
sm_images/ingest/imports/geojson_stream.py,sha256=2B-Gvgodua-WZTOZ99mK0r5EY1iaekNZguh4eYTKTc4,6498
|
|
69
|
+
sm_images/ingest/imports/item_claim.py,sha256=BjjZ7WDcEizQjAwM2P9fovs5mF1PfOvfcW6po37E6ck,5466
|
|
70
|
+
sm_images/ingest/imports/item_errors.py,sha256=9sDU2o6dsdXwSWnBP4Sxie41O2qPMV0rDhQOu4Bu4OI,3036
|
|
71
|
+
sm_images/ingest/imports/jobs.py,sha256=ZsdCD3SaqwxtK8Nf4aHI0golGje-i-k774n2ew__wRY,8528
|
|
72
|
+
sm_images/ingest/imports/launch.py,sha256=-ISM8KQD-Almbw6viZoPZ9WMceoIDlG2-YJnsDCMGOU,2989
|
|
73
|
+
sm_images/ingest/imports/log_redact.py,sha256=pEbVRn5TAtQ3ALpoxd9ydXSMsUasWXVIQ171H4ImXY0,2376
|
|
74
|
+
sm_images/ingest/imports/lookup.py,sha256=rQtpkVf2N5g-L5J5QwGxhr8mOuN4asANfNK65MYU9vM,2525
|
|
75
|
+
sm_images/ingest/imports/manage_right.py,sha256=tXLEnRF7BLVtjvG8EJo5Qe04fcELpdpIX5mcJUmO2dQ,3101
|
|
76
|
+
sm_images/ingest/imports/mapping.py,sha256=u0LhtcOxCm6NvObkxDAmfLP02Iwnwpi3JS56gd8iC-8,2624
|
|
77
|
+
sm_images/ingest/imports/netsafe.py,sha256=FKnjOzxpu-mCyK5X_p74ONzuVbK_cKxQ8OVilktcLxc,3752
|
|
78
|
+
sm_images/ingest/imports/rate_limit.py,sha256=K9PSycZ7inxTlkZQh7Hm5pXlaV57CEJ5DjL9jHskzp0,5369
|
|
79
|
+
sm_images/ingest/imports/recover.py,sha256=KD24dWu2CRkhhoFD5o3VGE0TbvaPslYMXCvgQcPID-Y,11189
|
|
80
|
+
sm_images/ingest/imports/reset.py,sha256=UiKl4fs-CLSGjUnQgL_x-L6AS0UwQX54oZG1Qzbg7sk,6718
|
|
81
|
+
sm_images/ingest/imports/retrying.py,sha256=KKGRT42eZTnOY6-FRE9rIjJPSXDT83xPTRUoGfHLLy0,7074
|
|
82
|
+
sm_images/ingest/imports/runner.py,sha256=MHGGBuAdGhWbMjIqdYHxXoRtxtk1lEdI4Tnz-IYLxew,10153
|
|
83
|
+
sm_images/ingest/imports/service.py,sha256=QB6BtZT-0mu2P-UhY9UrWcRStg5WZ02A8GwHQezLtSA,5000
|
|
84
|
+
sm_images/ingest/imports/settle.py,sha256=T7KFCnB07qtquGXgpOQtxkD1BoOiQfTD-RIwfpmbEek,9608
|
|
85
|
+
sm_images/ingest/imports/stage.py,sha256=9quPrL6iNg7rj3IZBAgVAtQhTKPiO2QVPl_FlcZkAKc,3030
|
|
86
|
+
sm_images/ingest/imports/staging.py,sha256=qVshiWPo6PWqPV2sS4kJvOMVCT5rfuZBcFGsK9n9FgY,5419
|
|
87
|
+
sm_images/ingest/imports/tasks.py,sha256=GSGpVqwojw6QPcffwoWDEHDucBeiSMs45pNryyi86Fg,2252
|
|
88
|
+
sm_images/ingest/imports/terminal.py,sha256=8tyaIm7rblirYcddloglGRO7zcRu0_S06B241AUwXTI,6978
|
|
89
|
+
sm_images/ingest/imports/url_safety.py,sha256=FSarKA6rgD2iz7mDj1g7gD5_ZC1aX336CoDUj3L7S8I,6694
|
|
90
|
+
sm_images/ingest/imports/values.py,sha256=vix5SdCXeKsAkr4WqAkz0jUkkUTTjZTaQUIN86qVwq0,5979
|
|
91
|
+
sm_images/ingest/imports/zip_abort.py,sha256=wpvD30rUlHAM3pDI3GEyVzOYVcfwOrMvY7DmWYnDs1w,1702
|
|
92
|
+
sm_images/ingest/imports/zip_entries.py,sha256=JpL3Rz4901A121Q6x9Fq579med1wJ879EHuysy8jeWc,4938
|
|
93
|
+
sm_images/ingest/imports/zip_eocd.py,sha256=W0Lu587GVPPzar5uzEdNP3U2gYPK4akH29PRuNRE5y4,3620
|
|
94
|
+
sm_images/ingest/imports/zip_import.py,sha256=mYJSZwk3pKfHZU8X4Dx1pgCp_IXBIRBVAQnbMy_Q9wg,10178
|
|
95
|
+
sm_images/ingest/imports/zip_metadata.py,sha256=GU-OCrFS3dK3dZoxHdFkixVWH-ZgHf_V5npU9tG-dS8,2537
|
|
96
|
+
sm_images/ingest/imports/zip_safety.py,sha256=8ecMtq8OK2-mLMRacQv6iTnFTNlvzcS57nnqg3zvNeM,9511
|
|
97
|
+
sm_images/ingest/imports/zip_source.py,sha256=rLT5IkVI_3nzV-oUunrzKuyfd2It3MELlz2jBifqQx4,4957
|
|
98
|
+
sm_images/ingest/imports/zip_upload.py,sha256=3sVNWS7GaywG8SwJylY3BNDdvsIrzxe6QcI-kmRNIqw,10807
|
|
99
|
+
sm_images/jobs/__init__.py,sha256=JhRn8BxU-5rrmDfiFMU_L0l7DatR2r0NhtqzaSU3dTY,77
|
|
100
|
+
sm_images/jobs/janitor.py,sha256=DTwzdIrORxMWnLSu3Tcy6_VFhl15H4ujrbdLxNsnzPM,9846
|
|
101
|
+
sm_images/jobs/phases.py,sha256=r4m5lX5YHoPA42VFCQJ-YznWo49C6v4dMjPD8vdUN20,2135
|
|
102
|
+
sm_images/jobs/placeholders.py,sha256=uUinhzTpgYAffe0fmYyrRyCVJ_r31yAKtBtSr1KrrMw,3137
|
|
103
|
+
sm_images/jobs/purge.py,sha256=kIlQoLVrLaoWoWKnZr8-jefYZYhsVtuKv4yzF8apqO4,9359
|
|
104
|
+
sm_images/jobs/purge_delete.py,sha256=_0a16yf8UauruuFuGzWmR6BQdYyPwP0HLu9MaEoe0SE,4496
|
|
105
|
+
sm_images/jobs/purge_select.py,sha256=MHCTI-MIMbx0Wy0odWiKvyknKnSW7BbkikPdgBPqxcQ,9768
|
|
106
|
+
sm_images/jobs/reconcile.py,sha256=_tkfmGeYtQULumHrEy4TyjYw8FQt1inA1MaEgf6dtrs,9204
|
|
107
|
+
sm_images/jobs/reconcile_dispatch.py,sha256=FltMFJ8QtJ7Zpa5FjBOMnYXAhT7_j5AwWWExjV7NCME,4499
|
|
108
|
+
sm_images/jobs/regroup/__init__.py,sha256=uno06q9oDnx3sOhukeyMnm--H_02WSt4wUDzdbcSY0w,76
|
|
109
|
+
sm_images/jobs/regroup/control.py,sha256=hYDt7rWZg92isyoqoITGlf7K7fL-ywYvrHF9Z69i7lk,4011
|
|
110
|
+
sm_images/jobs/regroup/jobs.py,sha256=qhIKOQOf1oCCUYb26J7PPNG7NgNHDqAn4_hDE9qdTf4,8123
|
|
111
|
+
sm_images/jobs/regroup/runner.py,sha256=QeRmoFJoSFP0963wLpXT9NnrmFEYCPNbMmGLPO7DAoI,4325
|
|
112
|
+
sm_images/locales/de.json,sha256=0dE7anI-RfmcGMjIR6yDGMIvO8ftHsIvYS1MLIbvyXw,32936
|
|
113
|
+
sm_images/locales/en.json,sha256=jG5fJJKRtr28F1JLJvyClf43p_ItMryx2PObChl5lLk,29537
|
|
114
|
+
sm_images/map/__init__.py,sha256=Rcyhl3Q7NAfUohfcGLqzonRfRdE3Cc-miDva_j6F_kQ,911
|
|
115
|
+
sm_images/map/build.py,sha256=Wlxjl-zT4uyLyXzKq0fMGa1hQYpT1099z1zbM-jgcn8,8779
|
|
116
|
+
sm_images/map/objects.py,sha256=WMLlOrLtBK9i3NR8TuaC_YEFZoZf3Z3qIqxNBKEXYcA,1150
|
|
117
|
+
sm_images/map/pmtiles_build.py,sha256=pWsoNvYYsA3dT5jCtiph6e6APDr7MDlcOduqunAzS3A,4926
|
|
118
|
+
sm_images/map/points.py,sha256=SgYOnq5ZXgPn-w_tfJvlh66XYnutGn9dS-5xAnnMF2g,4626
|
|
119
|
+
sm_images/map/recover.py,sha256=FGzWaaXAH0fmS64HY0U49h4EfY_JrsJTFpdTm19D9yM,2349
|
|
120
|
+
sm_images/map/revoke.py,sha256=uwWRx4SWm8iuAZF_L-w04xL8shJOqqrEP2Taqj6biaE,5506
|
|
121
|
+
sm_images/map/schedule.py,sha256=c5QC_i5wVm35h2208NrVj29U5JK0mBndt2sohBdLIe8,8066
|
|
122
|
+
sm_images/map/style.py,sha256=QBHxjC44C-HuggOQuYLFzPsLPsMI6oZbq2qYlB1fWSw,2803
|
|
123
|
+
sm_images/map/tasks.py,sha256=ItvUTUrKBICPMau6EplxPcq140mUqLX16cPSDI6oXNY,1170
|
|
124
|
+
sm_images/models/__init__.py,sha256=PtojriTo1sAqI609kPJBFnrf6rYubeSVLha7AY-7D2E,1789
|
|
125
|
+
sm_images/models/_base.py,sha256=QdQiKebX9tM-fnrP5AH1uyhkEvsYx0EeBwPTPKbgYe4,411
|
|
126
|
+
sm_images/models/_cols.py,sha256=ixI2SVDefOSNLukgN8F8PULDcvmzD4ADF33sYFgfF9U,1644
|
|
127
|
+
sm_images/models/billing_op.py,sha256=_-WUZsQ4jWcEIuuLcdOZWVgad-HzpTLKIHv6wZVTcYA,4291
|
|
128
|
+
sm_images/models/collection.py,sha256=UNJhZufFwrE1onClMmtIeYO4ToaZoAcdYB9ceV3Gm1o,4305
|
|
129
|
+
sm_images/models/enums.py,sha256=4Rq2nPwsjT6vk7pOTJxFzWlLNfkiQGu75QkdIGzytoM,2271
|
|
130
|
+
sm_images/models/group.py,sha256=9xuFTEv-ifAgdIUjgRfuwab8YZxzsld4-GMmRC88VmE,858
|
|
131
|
+
sm_images/models/image.py,sha256=j3C81C0PDu4bnAItWhVXhQMc0RSKZMCDj2WU3KDANOk,5721
|
|
132
|
+
sm_images/models/import_item.py,sha256=NdYiaGFs9lHUdtmmdiljl-bVy9p2wX__GScB2eRn6bw,2575
|
|
133
|
+
sm_images/models/import_job.py,sha256=EanTLYDQQ5dre65edOER32F7R5wP-uyZaGXExoM60dw,4229
|
|
134
|
+
sm_images/models/object_intent.py,sha256=xYQ-xFIrYLKCzVoLLuLP5YYh8KZBQOYAcwpzbjOagIs,1406
|
|
135
|
+
sm_images/models/pipeline_restart.py,sha256=EbH6ia7QUsYQOwMSIBvzJ3YJGdArvF7dvRPgNI1NUG0,1693
|
|
136
|
+
sm_images/models/prompt.py,sha256=qXaOur0jLMxP08cksim3dPvlUMhaixlbqiBhUUm5DYc,4921
|
|
137
|
+
sm_images/models/regroup_job.py,sha256=6-ha03xbbQnf_1ksvVXl9VfuDnRBVzVyOMjL9l-YIE8,3618
|
|
138
|
+
sm_images/models/rendition.py,sha256=YaG5wGZDUxqbnkNKh3rQXw9WoktFy9wUkQtFJPhTa9w,1370
|
|
139
|
+
sm_images/models/step_run.py,sha256=oSWt3dcdxY3h-46u5N83KgivLvReabDoOexuakVZmfU,2257
|
|
140
|
+
sm_images/models/upload_admission.py,sha256=kse4GtoshMxjZVtZHzBc1xGZlEnFZsnL1RpWgOiDW-4,1356
|
|
141
|
+
sm_images/models/upload_session.py,sha256=EvXQiMRcMSHM8sHc5H_i0BiodUZsoX5pLZJlXo177QU,2893
|
|
142
|
+
sm_images/pages/Collection.tsx,sha256=SrgjSF6YsZWuTH1B-7nMJtV74VM9Cl9ZKl36FnPu9oI,9844
|
|
143
|
+
sm_images/pages/Collections.tsx,sha256=YF_8xqWK2FTb9KQa_ad1QBbJ7MninLn864imDZbiN6M,2872
|
|
144
|
+
sm_images/pages/Image.tsx,sha256=t4VVz2QDTFfBcQatAakxUcgSibrZ8hAvzg5ANCRP4b8,3847
|
|
145
|
+
sm_images/pages/PublicCollection.tsx,sha256=UOWd98y9VmqisAmRX8nlWmVpVyCxm1G_PP1XraZ3Rxo,2819
|
|
146
|
+
sm_images/pages/Review.tsx,sha256=z-zw-EZVTv1x6uVDT5Ut-pv-hfNTiGiFwk_yOjvJ8Og,7246
|
|
147
|
+
sm_images/pipeline/__init__.py,sha256=4c3J_0kzDlUBdCE_QRBuDB0T5tSJJsXJBq1A9apG47o,3632
|
|
148
|
+
sm_images/pipeline/advance.py,sha256=75vAwd0erb3VSLwOgQkNeQ4kFVVdyHeUB6-0wa7RfD4,7537
|
|
149
|
+
sm_images/pipeline/builtin_steps.py,sha256=YvVHZSAMA1qjVkUXrC8ivOc6foold9HZu95Pvdm2ba8,3507
|
|
150
|
+
sm_images/pipeline/claim.py,sha256=kbQSSo-lkMJoWMup26sZlLVmpg-nv8C0jUY3N0A9r88,7936
|
|
151
|
+
sm_images/pipeline/config.py,sha256=591xPvjEnw9PelnRzPwVkVm7whNaz68-SsVyq26r2GI,8660
|
|
152
|
+
sm_images/pipeline/control.py,sha256=XteFMDz8kLyTXa3-zkCzI_RF42U5TAQElcXKNDARZMg,6856
|
|
153
|
+
sm_images/pipeline/cycle.py,sha256=-3Km_vfmqzCUPqEkFBAdCUvMASCntY8xM7f8Yv27qls,4177
|
|
154
|
+
sm_images/pipeline/eager_drain.py,sha256=kn2QvgdmnwvKmp5878cD_f-bXGivJ5dfIDVfmoG79L4,3080
|
|
155
|
+
sm_images/pipeline/executor.py,sha256=hGhOq6ltybRtNkQiGABhyKuh6vEkWcK0hchB4ppiNH8,8927
|
|
156
|
+
sm_images/pipeline/extensions.py,sha256=vXe-gEzWYxusxA4HuhnQUCZtNuQjNMoPb23EUF7c23Q,3969
|
|
157
|
+
sm_images/pipeline/finish.py,sha256=51r3bXaVIFOVndd5tndKaljLH0L-YdcqabL5HyYTW7M,10966
|
|
158
|
+
sm_images/pipeline/keeper.py,sha256=pI8nGepVCHzbmM9MXivSu4eFWI0V1WM9wNFw0Q01XLY,622
|
|
159
|
+
sm_images/pipeline/load.py,sha256=EdcncxsmqI3E0dKI8Bdkgi6fcWdZGi-qK4e4HPtewJg,5337
|
|
160
|
+
sm_images/pipeline/orchestrate.py,sha256=ibowrznS_07IaQFY1tjU6zA7ETIZLBkr_H33fB3Lc-0,7740
|
|
161
|
+
sm_images/pipeline/plan.py,sha256=SazmQXoaOMIW5kbZ_No7_2n8qp8UdzoJx9ZHauwoMBo,9098
|
|
162
|
+
sm_images/pipeline/presets.py,sha256=YyK-3pFwA8U0IixZhIEqo-2fo7NIdb0SquxmnVKaPuA,4124
|
|
163
|
+
sm_images/pipeline/publish.py,sha256=HxUe_dZrYEzbOVa6gYMwKHW5uKVVE-9Z9hXpzDxaJKY,7786
|
|
164
|
+
sm_images/pipeline/registry.py,sha256=gXkQkcK7yvskX7CQb29LZ2FBbBpj7CLcZgahwpGONR4,8186
|
|
165
|
+
sm_images/pipeline/reopen.py,sha256=CDTXrBzPkBh-QQbzKajcg_9XHmjdv8mOGelJ2RiekSE,3031
|
|
166
|
+
sm_images/pipeline/restart.py,sha256=2dN4DbHX6-OUpM2c7uGWiASOEJVvM1_Zq3GBjytxQSo,6316
|
|
167
|
+
sm_images/pipeline/runtime.py,sha256=Z8PovtWpz7k6w8QYDbNqYrqvbTAXL6eVVRH2a0fmMjA,4609
|
|
168
|
+
sm_images/pipeline/step.py,sha256=FOzdGgsacMkXjcDrsLw7RVEXjZcN26_NtRWfIsTDjPw,5422
|
|
169
|
+
sm_images/pipeline/storage_hold.py,sha256=lmAYZIAnUTGUMv6Okq60kxGItOqlhRz5LBL1Jt-8WVY,10122
|
|
170
|
+
sm_images/pipeline/worker_runtime.py,sha256=Jd5fNU6icO8I7hZPnaFg7KMh4BQkwIKECvTjsDP0LHA,6728
|
|
171
|
+
sm_images/pipeline/ai/__init__.py,sha256=O6go4rDhhQKrw0W4cKNNTKo5pFgSBI8C-znnlSAlXhM,739
|
|
172
|
+
sm_images/pipeline/ai/codes.py,sha256=SUCrlfhqXxgDeT61hYHFYtu1Pbt6tZTeGN3c6BS96do,1466
|
|
173
|
+
sm_images/pipeline/ai/cross_check.py,sha256=54Mb7Nd62QsHUhwQFbO5vqq06Ajh9QXTUTvwiEUJ_1Y,6064
|
|
174
|
+
sm_images/pipeline/ai/group_inputs.py,sha256=ntkKoFi5H9zeTmMcos_WBVxeo4hR1w6ymnjclvqXVx0,3888
|
|
175
|
+
sm_images/pipeline/ai/group_lease.py,sha256=miVtcx3axlr-MyrOzOk5vxIS0c1O_BX_Iys1UGZQGAM,6270
|
|
176
|
+
sm_images/pipeline/ai/group_load.py,sha256=YulhCAX60l1yZnsTK8YR80h8AmpdU2fOS9GpZ3QN6G4,6610
|
|
177
|
+
sm_images/pipeline/ai/group_members.py,sha256=3Atv8OUKSdo2AnYhH_Lv8IcDy5Lca0Q6ty5sHTB_kW8,5974
|
|
178
|
+
sm_images/pipeline/ai/group_request.py,sha256=SQvtSnK5EFbo3cDfzSTipRPqkKK23rTVQYeF-c9EM4Q,5815
|
|
179
|
+
sm_images/pipeline/ai/group_run.py,sha256=gegYLHwwWFbJFFhTLDr4AO_AA2oGCUPA2uEPrfpIJUM,10223
|
|
180
|
+
sm_images/pipeline/ai/group_store.py,sha256=Yh7LWaWb-u_JWQKQYR757ktRy5oHvsT-zxNru1Ckwig,2969
|
|
181
|
+
sm_images/pipeline/ai/prompt_steps.py,sha256=RTP-hJBGrEkDfAkIfiB63Mr4Jrg_3x_FffYZcFAGL7I,6491
|
|
182
|
+
sm_images/pipeline/ai/reads.py,sha256=hNmg4d3OJC90SsuHPwwCs0v8E_cJQLrx_CIZ8zNouok,1475
|
|
183
|
+
sm_images/pipeline/ai/results.py,sha256=1NUJ8ovbZSexDuU3UR7ya_ORnV517up4WmMJ-I7ZTzQ,7126
|
|
184
|
+
sm_images/pipeline/ai/review.py,sha256=p8d2ePy7H846jmGUwiu7lRXVilxDyRXCphRSAuPYmww,5679
|
|
185
|
+
sm_images/pipeline/ai/run.py,sha256=2qKKlpCymL5BGzSARSdInfL5TTR74PoakD79XR4RAUE,7116
|
|
186
|
+
sm_images/pipeline/ai/runner.py,sha256=qYoc30Udn2RDHvO_u1rm37PCN96-jyxa-Xea3iqDodI,6847
|
|
187
|
+
sm_images/pipeline/ai/schema_model.py,sha256=VQ2untKlrpnh9aG3S75oqbZF27FCvGaIGL3BZV5eu-8,7556
|
|
188
|
+
sm_images/pipeline/ai/schema_safety.py,sha256=eV8RVrbkgaCI3y7Vhda7_v40i0Za9jE8CkYhroQYaPk,9760
|
|
189
|
+
sm_images/pipeline/processing/__init__.py,sha256=1UMUhWJK-zueKVhVoV2qGsuy9zSU92toH1a8VnOIz18,68
|
|
190
|
+
sm_images/pipeline/processing/exif.py,sha256=P4XJe8UCV_oc0xJ0KgWO5OXDTcSE5hxTycfmB7batR0,4579
|
|
191
|
+
sm_images/pipeline/processing/heif.py,sha256=keunA60WIdnhixM0EyXEtckCAAhupVVIe-yqlb922og,718
|
|
192
|
+
sm_images/pipeline/processing/renditions.py,sha256=qn0D43rdno5nbuFqsRoUfNH_A4QD65mbBqsksoIrjnw,2158
|
|
193
|
+
sm_images/pipeline/steps/__init__.py,sha256=El6hLKlwmkKUS9O8NKpb6qghAaFXhoTatCA8TPzOruc,57
|
|
194
|
+
sm_images/pipeline/steps/classify.py,sha256=oZlH2ALmPpbfhrPrvJvRA38JSS-G6C15K-zXn2QCtdY,3932
|
|
195
|
+
sm_images/pipeline/steps/quality.py,sha256=0llYeYjEb9jwyaOVkSYWHrQqitb5WtRUcqsgc2rP1Yw,4499
|
|
196
|
+
sm_images/pipeline/steps/anonymize/__init__.py,sha256=-T_5MgQbVrzymR-yVx1YKHnkF8iUvID-Pe-v7xcnUzk,516
|
|
197
|
+
sm_images/pipeline/steps/anonymize/blur.py,sha256=zQQDkr2y8D_3DYIQkh8AnSjzvtpcdvBIe3zf-VQSmQ4,2302
|
|
198
|
+
sm_images/pipeline/steps/anonymize/detectors.py,sha256=xT1VPLTyVxGcryjFiYFDvMGJ2OvnKx2P-rEBo9QPRWE,4944
|
|
199
|
+
sm_images/pipeline/steps/anonymize/models.py,sha256=O1BL-0tAV8qGgqx9D8zAyYdakmLbLcnqQHk0t8ykybw,9505
|
|
200
|
+
sm_images/pipeline/steps/anonymize/step.py,sha256=NBFslMeHRkfacCCi09kHDv8dtKoInTzo3wWpc2z_L-Q,8444
|
|
201
|
+
sm_images/pipeline/steps/anonymize/weights.py,sha256=OzQdOAESJVF92DimtOWr9OWFiOMjqPmcyR15dvhv1D8,6910
|
|
202
|
+
sm_images/ui/components/ChipGroup.tsx,sha256=WDqBCzcU9IxMkdtm6bl-hTJIEmFKl1wT1_K6y_ZE0Tc,1013
|
|
203
|
+
sm_images/ui/components/ConfirmDialog.tsx,sha256=DykvcitNKaxp991T0NU4a4O6ldKm8F4KE_scbbgWpdw,2486
|
|
204
|
+
sm_images/ui/components/ImagesLayout.tsx,sha256=HxKOZE3460qJbxHzzgop9VVA0kTHH9k8K4ZW5Q9aAMY,410
|
|
205
|
+
sm_images/ui/components/block/ImageGalleryBlock.tsx,sha256=L6ry17_mghg87cnrlAmgu2XRRedwgbA2Geg8uX76UDc,4528
|
|
206
|
+
sm_images/ui/components/block/ImageStatsBlock.tsx,sha256=Qx65X2RuOlBsuhqeXQrXr4S3Z6xsm8nNsDBSda9P2hI,3465
|
|
207
|
+
sm_images/ui/components/block/ImageStatsRender.tsx,sha256=ebCcdrZ3uzuvt0N1JjgB5JCQchcgsPncGcKxxymn3u0,4422
|
|
208
|
+
sm_images/ui/components/collections/CollectionCard.tsx,sha256=AqS0jLhIAahhPNKbXD-hNYJM29g1usNyfU5dHXu0iqc,1298
|
|
209
|
+
sm_images/ui/components/collections/CreateCollectionDialog.tsx,sha256=mgf8vtT9XT74rDS846OeL-YHBdJeRchpftZMKjICIWA,4276
|
|
210
|
+
sm_images/ui/components/collections/PublicLink.tsx,sha256=SpBtxgLMsc5qSnNiM5LfCm_qikieieT3Z-dCoSwqE9Y,1283
|
|
211
|
+
sm_images/ui/components/collections/VisibilitySelect.tsx,sha256=muq7G4voOibrSiP5DcEfWpR2IKuDR9dsj-4OTECGloA,1118
|
|
212
|
+
sm_images/ui/components/gallery/Gallery.tsx,sha256=BluXW6hioUIpzdOP6uTbgM_kvrJ1BrVwi0JVCmISSGE,3647
|
|
213
|
+
sm_images/ui/components/gallery/GalleryTile.tsx,sha256=AfmIWzNo0uOJib42O9e3CWVOgYxG1fr7BvG1OBlQmQU,2084
|
|
214
|
+
sm_images/ui/components/gallery/UploadButton.tsx,sha256=4PUIdhN6FPEmDVUsgPEX3RIcubMoUzynYTlUYoASV58,2409
|
|
215
|
+
sm_images/ui/components/groups/GroupCard.tsx,sha256=h2q623OtZR9GXR1nn-QYnNrsXV1BCzADiSz5u9XUCB4,3148
|
|
216
|
+
sm_images/ui/components/groups/GroupForm.tsx,sha256=NIFbo0tCgbAprtJihi56Tkxgw91d6X2_wdNyNjGJf30,2523
|
|
217
|
+
sm_images/ui/components/groups/GroupsTab.tsx,sha256=DSPzPXDj8caPYPCTYvOWIvSx5ELMQQtSQKYXWfrVTzM,3661
|
|
218
|
+
sm_images/ui/components/groups/MemberThumb.tsx,sha256=RlI1MwGQOhyrm4ug8BhZuCogmjQYpu1Pxw3Si3bvCS0,1307
|
|
219
|
+
sm_images/ui/components/groups/RegroupPanel.tsx,sha256=d0A6Pt-W6VL302ruclMHuNYtBUARVTRz5qIVXA0JoCM,5166
|
|
220
|
+
sm_images/ui/components/imports/ImportFailures.tsx,sha256=Cl8PBT794R4BELcAzRoo7rr9OEesgb2edhbRhO-5ATA,2052
|
|
221
|
+
sm_images/ui/components/imports/ImportWizard.tsx,sha256=9X9vtlPZd3Znh7uXDAF1NWLmz_YXwXP5AeDkMYB9fp0,9849
|
|
222
|
+
sm_images/ui/components/imports/ImportsTab.tsx,sha256=B_y3w9VVzu2qRNuJ3J94kt0hAGBKVfJWPnRZziEDtKQ,2355
|
|
223
|
+
sm_images/ui/components/imports/JobRow.tsx,sha256=V7bTAWwXQftTexeKH4MPddwMAf-qGmo3RdrTANhleMI,5776
|
|
224
|
+
sm_images/ui/components/imports/MappingFields.tsx,sha256=8aarMUhrim1_bnO-Tq3TUke3mecIaUG6i55WYJLPxQU,3234
|
|
225
|
+
sm_images/ui/components/imports/PreviewSummary.tsx,sha256=L8olqfaciIUgDTHWfo6p7tY446T56ZSt3g2TqeY28RE,2570
|
|
226
|
+
sm_images/ui/components/map/CollectionMap.tsx,sha256=hH0h5_x6huo3ViZpzmGbpysWax3gGL879ew1vHTblqc,3412
|
|
227
|
+
sm_images/ui/components/map/MapCanvas.tsx,sha256=Ra2tQKmEwRHXh0jzR5TA36VV41oNtM3m7ZaNJ03Q68c,7645
|
|
228
|
+
sm_images/ui/components/map/mapRevision.ts,sha256=ZoWCCdnXZtmqC1fLcQz6iipUum6aWXwrqVo7tOeAzb0,572
|
|
229
|
+
sm_images/ui/components/map/mapSource.ts,sha256=Q6HSAy_hUAXz2zTZrhiD8hNe1wIB901qlLDKHWbh3wM,3841
|
|
230
|
+
sm_images/ui/components/map/mapWorker.ts,sha256=vR0KUUJwAgAcVt4bglAz3jXb5qyajSW4v8SkqDA_Cvk,936
|
|
231
|
+
sm_images/ui/components/pipeline/ParamsForm.tsx,sha256=V29dCYv0OUp931YIkbXm0XzM0-p1e-vBGdUo2rq8EWY,7407
|
|
232
|
+
sm_images/ui/components/pipeline/PipelineTab.tsx,sha256=zpTjVBxzCBGNEMEGYoL7IDC-G_8HaJnudaOr4KZilT4,9395
|
|
233
|
+
sm_images/ui/components/pipeline/StepCard.tsx,sha256=OSXyuEzhqAR1clbcGgjDtylC88ncWxeCV9pTAyTY4IA,3658
|
|
234
|
+
sm_images/ui/components/prompts/GroupResults.tsx,sha256=9A8D8lG4ziCJS2tLux41uGQ-H0AvyDLvUtOvnSMg9RQ,4686
|
|
235
|
+
sm_images/ui/components/prompts/PresetPicker.tsx,sha256=H0_tirlIKRyHnoymrx05gTj0OwfiHjwfHG8yqolni9w,2785
|
|
236
|
+
sm_images/ui/components/prompts/PromptForm.tsx,sha256=B89DhTuep8bq19lc58qbwQlt7KpBlvB3k7kobqOBvT4,7008
|
|
237
|
+
sm_images/ui/components/prompts/PromptRow.tsx,sha256=pHVP_6Hqd3mGk0r82gD8P4C65pz3sFGCaHZjz8eafgQ,5821
|
|
238
|
+
sm_images/ui/components/prompts/PromptsTab.tsx,sha256=ercDo3RJD0QIpSMzCRVUaRHzgf2XGQQms-SZ7C_zsf0,5743
|
|
239
|
+
sm_images/ui/components/prompts/RunConfirm.tsx,sha256=ZM__-PwSFByvERDujT0km8Z3XraE6Ty4dzcyZtPGqto,2432
|
|
240
|
+
sm_images/ui/components/prompts/RunOnImages.tsx,sha256=UiiSOu9dL-Ia5jW4HYCDIA6C1tQZyqaOtfZ9jcKQSmI,3568
|
|
241
|
+
sm_images/ui/components/prompts/SchemaEditor.tsx,sha256=GazRO0-ATwGVoyTrXY7mIZJxTxlJmJIthA81Naq_L7c,4103
|
|
242
|
+
sm_images/ui/components/prompts/SchemaFieldBuilder.tsx,sha256=yCTHnqdlp1-lredu5DJFNGaPekMaXW4h80EzsgnXbcY,5098
|
|
243
|
+
sm_images/ui/components/public/Lightbox.tsx,sha256=aLJF128c0MAT_mZxdGxVSlOi0JQ2dt81VsLPtoZJ72c,2769
|
|
244
|
+
sm_images/ui/components/public/PublicGallery.tsx,sha256=DXACBLsbW9WIv0j3oEntEiXW6VpfCKdkv4sPEHXjip0,4791
|
|
245
|
+
sm_images/ui/components/results/GenericResultView.tsx,sha256=OFNBBF53O1RDK99mGMGj4Bmvr8lf-yq8U5gxDJbzXhA,2643
|
|
246
|
+
sm_images/ui/components/results/PromptAnswer.tsx,sha256=ZS9q0dBaLBTUznshl-4Y9HH9VFcnPH4uIia4C8bTm1g,1767
|
|
247
|
+
sm_images/ui/components/results/ResultView.tsx,sha256=Bp0Yg0MsZ5syQ0FJ_K2DmLLLcD8u4D9cvmKClvA_Has,551
|
|
248
|
+
sm_images/ui/components/results/plugins.ts,sha256=n78V2vQlBWzeoG7WFM0w__tkuSJYqUfQUarkPKSm4c4,695
|
|
249
|
+
sm_images/ui/components/results/registry.ts,sha256=s_6hOaogxny2X89SaG_Pn1bJjaHOlZF36kvoPff1LuI,1833
|
|
250
|
+
sm_images/ui/components/review/CorrectionForm.tsx,sha256=iSeRrPz5XS64Tgi6pmfVljykcFN5VmAO5BPM2e0KAIw,7511
|
|
251
|
+
sm_images/ui/components/review/ReviewPanel.tsx,sha256=Wsxpmpa9JusGlmbH7iFttS5Ar7484Lm_p8f2c-xTbOI,4344
|
|
252
|
+
sm_images/ui/components/share/ShareDialog.tsx,sha256=9hsWx6RubdvpICL0I2YLKgsI8VkDqS3iPdDu_57h0x8,5954
|
|
253
|
+
sm_images/ui/components/viewer/GroupEditor.tsx,sha256=yprdUgqt-IPZs5z6kg1ykboDVh-yCjdEqrEH-0o7Yng,6050
|
|
254
|
+
sm_images/ui/components/viewer/ImageMeta.tsx,sha256=rhVE8RknOufbjECqqgSzvYRJHNj5hfqVqcfWbGWCt2Y,3506
|
|
255
|
+
sm_images/ui/components/viewer/ImageViewer.tsx,sha256=td8vy_iVgor2lLbnLmAIztTlc6XbxQGkvaQhEixUcCo,2938
|
|
256
|
+
sm_images/ui/components/viewer/NeighborNav.tsx,sha256=MUzGi06P1w3DmC10-VftpnE0Nl6DeixEcazBnp7WVJ4,2626
|
|
257
|
+
sm_images/ui/hooks/useCollections.ts,sha256=HsZZ-G_O9lXin26VOWYAasCybQmW6_I9vytdgFePaF0,794
|
|
258
|
+
sm_images/ui/hooks/useCursorList.ts,sha256=tyty64HwqLVjI9yg36P4UHlzB0RXvfzHeYbnDTQ79vI,3089
|
|
259
|
+
sm_images/ui/hooks/useGeoJsonPreview.ts,sha256=4YKD6X2bhm6uxWCTu_JwsZt6HH-HHibXJuEfbwU6_UE,1217
|
|
260
|
+
sm_images/ui/hooks/useGroups.ts,sha256=yGlAr32JNfWqIKxnBUw443Rvm4c0MnM22dGuhGsaTwQ,1355
|
|
261
|
+
sm_images/ui/hooks/useImages.ts,sha256=b34hMcklIkFcfVPbOSETFbm4Nzw3DU1Y3gMFyREqc0I,1712
|
|
262
|
+
sm_images/ui/hooks/useImportJobs.ts,sha256=WTTnb76EgddvMG6PxhjRjDWirSYqnIUNbmWDdY7T8js,3520
|
|
263
|
+
sm_images/ui/hooks/usePipelinePoll.ts,sha256=acAUINjdz-sq-vBW09odNb9noMJ_0ff3AUW15pOzKQo,2117
|
|
264
|
+
sm_images/ui/hooks/usePromptResults.ts,sha256=SzncniV5bl0ZAnDZrXPFh2OUiXJbdfJitEaOIyQPS1k,4758
|
|
265
|
+
sm_images/ui/hooks/useRegroupJob.ts,sha256=7bWBExnGqg0upvWFNBhRut0Gsf2igHVbupLsRbnSKP8,2394
|
|
266
|
+
sm_images/ui/hooks/useReviewKeys.ts,sha256=eK3aM8rG2rQ_q4dJoNnLHpu2xVTlWBNv7JvjzXpgSAY,1412
|
|
267
|
+
sm_images/ui/hooks/useReviewQueue.ts,sha256=6MHzIlazEozA-GC0tgy85K3KBXxlfCskqrYku-Ly6R4,4911
|
|
268
|
+
sm_images/ui/hooks/useShares.ts,sha256=ILF8-U8hroUzYaRTgMzlzpRBPvvTOQO53OFAfxpqrZU,2451
|
|
269
|
+
sm_images/ui/utils/api-groups.ts,sha256=BpoNUzmBNtYxJatBRRQ73XekGz5kMOprRofUltlQLLg,2238
|
|
270
|
+
sm_images/ui/utils/api-imports.ts,sha256=Vm-evn1AtRcsCJoOyUso7scsV2faQTTe1QG109u_9WM,2293
|
|
271
|
+
sm_images/ui/utils/api-net.ts,sha256=U13JAs7ewvREoINmmkup7NjGyXAy5YVCwyymy3xN034,2986
|
|
272
|
+
sm_images/ui/utils/api-prompts.ts,sha256=Pbn4gMTziH6T8QYPscdeJ9VwtTcTiLZumWuzRm1WHWE,2492
|
|
273
|
+
sm_images/ui/utils/api-public.ts,sha256=4moGDtwEGLbk4qi72UurmF5jCj0104lu5V8vqU1D-xo,2696
|
|
274
|
+
sm_images/ui/utils/api-review.ts,sha256=GAkiYknQ1mvH3tWwT6fJfIo4moygESDTXg4xrdovF9s,1707
|
|
275
|
+
sm_images/ui/utils/api-shares.ts,sha256=h34BACw83_8bdue9Sz1E25onyBGNVhOHgt8Naqw0_dg,1348
|
|
276
|
+
sm_images/ui/utils/api.ts,sha256=7n8ROXmE4KGpDOUl_ErfCAIRFZIK6Lv1basew1V_ZqQ,5758
|
|
277
|
+
sm_images/ui/utils/csrf.ts,sha256=qB5iM8KV6uaP6mHY7BsVtyNnk3iZDexh_gUDhshf2r4,2416
|
|
278
|
+
sm_images/ui/utils/direct-upload.ts,sha256=99H11Z7KGdLQtcCPx7Fba4kQS2Jy8LdTa-wv46oGvDk,3213
|
|
279
|
+
sm_images/ui/utils/geojsonDetect.ts,sha256=fIlDhTturkapAoEeGavgILv-2BTNibEIqsXiSDiYnLA,2502
|
|
280
|
+
sm_images/ui/utils/geojsonHeadScanner.ts,sha256=xMKmYjT57DBav6m4GIF3KvAUg8e688cdd4ArNQBaKpk,5827
|
|
281
|
+
sm_images/ui/utils/geojsonPreview.ts,sha256=6b1s2c9WRQoZNw6IGYpHeGY1Xvvm73n9Z4GXXjCtAJw,5356
|
|
282
|
+
sm_images/ui/utils/i18n.ts,sha256=TqOZvsF5zCemu9ZHjCTvNRbg_YC-CcJqFo8UoMWGbt0,8258
|
|
283
|
+
sm_images/ui/utils/labels.ts,sha256=vE9D_3mBs1FkP5HNTEMpe0SYOM64JSL_o5uOAu8WlA0,3278
|
|
284
|
+
sm_images/ui/utils/schemaFields.ts,sha256=AcUZrx_dIOfWKSBT3WT6L-b-G6Jz6StsfKadTrc0vpQ,5405
|
|
285
|
+
sm_images/ui/utils/types-prompts.ts,sha256=Vjx4CBMLHC2fQwu12prFu0sFXOSvIt4NWfu6diLmze4,1928
|
|
286
|
+
sm_images/ui/utils/types-public.ts,sha256=NJ5PDpcBNpT54VLIh7G-Uo-O4AG4IXZCNTiQRsDfLs8,1070
|
|
287
|
+
sm_images/ui/utils/types.ts,sha256=78TIPvYHkR-ehHV-6sAhhkm3JN5vRf1c8ckmMb7-eOA,6514
|
|
288
|
+
sm_images/web/__init__.py,sha256=AbtYQlSWpcA7ldYE6qcU3lIkUapM8ilKV90i2s_m42k,185
|
|
289
|
+
sm_images/web/endpoints/__init__.py,sha256=5raioaQwVYbt_yZMdMQTJVce6wqCjvcYppjnWYsQyQk,47
|
|
290
|
+
sm_images/web/endpoints/csrf.py,sha256=JzFgkJx9OTDgLIsZDGJ4gmGsTSn3GkFSJ7qp5S0FMvo,1113
|
|
291
|
+
sm_images/web/endpoints/deps.py,sha256=HaKw5_Y5rRRZW2SJyXEXOHRSVaZuTY_Mjf2CFk-dbH0,1174
|
|
292
|
+
sm_images/web/endpoints/map_params.py,sha256=A2NHUhEiezliro04T_JbbBfJeo8sDse8Ofo8RTsXmik,2907
|
|
293
|
+
sm_images/web/endpoints/menu.py,sha256=52mFb-L2M4XNahrtpaamj8P3qHjGiF31RkdK9np1rp8,979
|
|
294
|
+
sm_images/web/endpoints/public.py,sha256=yJrmUkr8RUhKLOA6tLfoPvYahXmsA6mZZ7caibuQexI,6603
|
|
295
|
+
sm_images/web/endpoints/public_views.py,sha256=GlwLB_oQBXxRQwKKBubT88oD59SAPRUVvc9iCqHQTGM,2412
|
|
296
|
+
sm_images/web/endpoints/views.py,sha256=32uBZ0xG1GHshhI0c_-0O5-87Ax1dPvqloSrWguxL2I,6248
|
|
297
|
+
sm_images/web/endpoints/api/__init__.py,sha256=nvkS_TS6Le2f5ssFi82a0A66uzgAir1cWbTepbCRQdw,1788
|
|
298
|
+
sm_images/web/endpoints/api/_runtime.py,sha256=yQPhyjwFwFvjFGJ7Gk2ZvH4JR7TkWWVYcQKwUbbFE9c,725
|
|
299
|
+
sm_images/web/endpoints/api/collections.py,sha256=7fHu3Uh7rbQIbGa_DZGZdJSai89qzoOO218Z8ER_WWs,4411
|
|
300
|
+
sm_images/web/endpoints/api/groups.py,sha256=hqaUhukkY0FK0XhZxLOyYLDQfP5M8xlFfoM1zoyNIkY,7562
|
|
301
|
+
sm_images/web/endpoints/api/images.py,sha256=KtkYgKItYQya8ri1HhJqc8UloG-JZ7g99KLtYPIf_DE,10059
|
|
302
|
+
sm_images/web/endpoints/api/imports.py,sha256=mKP7NcsH3VFJq3TcBwAUIS0mcsNXoB4gURkBfARflSk,9113
|
|
303
|
+
sm_images/web/endpoints/api/map.py,sha256=l4joj69usp-oZP7JqUCVZ0b_vr-wj_UxOLPAIf-02VE,2280
|
|
304
|
+
sm_images/web/endpoints/api/pipeline.py,sha256=ilbq4fAVBR6xlPq2tt4uPa1aV4_FNrigIn2nGc60Trc,4545
|
|
305
|
+
sm_images/web/endpoints/api/presets.py,sha256=_thrpclzOboO9IG1wPeX6Iad5eMPU6mZo7oQIyHf28g,1760
|
|
306
|
+
sm_images/web/endpoints/api/prompts.py,sha256=MBIRjdj99yI8cnjeqI-p4EbJaksOtpAOpWWVA29LnEE,7538
|
|
307
|
+
sm_images/web/endpoints/api/review.py,sha256=44M0agDePYdB9CPauXn2s7tQD4V6AiVYjtVL-ipZYMg,3510
|
|
308
|
+
sm_images/web/endpoints/api/serve.py,sha256=g5y-SLCuLrHKWEq6SHtV1fsGEoC-joLnKIJ-J_D5Xbw,2262
|
|
309
|
+
sm_images/web/endpoints/api/shares.py,sha256=J3WNf_Om1cW-8pysKeDZM1xBGYJZjn78ZrSMbFf8azU,2718
|
|
310
|
+
sm_images/web/endpoints/api/uploads.py,sha256=ne6TIou7feeilgFk6aSwiWzkVphMXUl01MKBNblqu9k,6318
|
|
311
|
+
sm_images/web/schemas/__init__.py,sha256=5W1t2TwgcSzRuHvU3yyB4hvfoGRVFvckEZ4ZC0Hk_JQ,53
|
|
312
|
+
sm_images/web/schemas/collection.py,sha256=G6NTLJtuNtOkD4JiqfFdK2pNGzmgn-5b5n11OA3-L6E,1769
|
|
313
|
+
sm_images/web/schemas/group.py,sha256=UuRT6gXJ1h1z7ZHvOsiIeEa1-ongowe9haUwk9jpD0Q,2897
|
|
314
|
+
sm_images/web/schemas/image.py,sha256=MgY9ghF4_5vbwnfeO1hYUy0ASpENmr16hr57e4DzQ0A,5606
|
|
315
|
+
sm_images/web/schemas/imports.py,sha256=OCsLFNtxvQGyICaRb3cc0Yfg56qhaIfsVYDWB0dSmYY,2453
|
|
316
|
+
sm_images/web/schemas/pipeline.py,sha256=2aAH5zzvzT-ooe5HokeycDyb_Yj3wwNMncRvuKzPUFM,678
|
|
317
|
+
sm_images/web/schemas/prompt.py,sha256=5S-yds5i3NhvFkZYHtRtm9_FvmtFRxbVkvFywBHkgWw,4536
|
|
318
|
+
sm_images/web/schemas/review.py,sha256=TgmNf11SSUmZSGWojDmfh0wqWIMonQ0ZPLvcnuxvjgU,1007
|
|
319
|
+
sm_images/web/services/__init__.py,sha256=A1fA8XSUmjAkD8Gc1_0yNxZbIGuG1qEJmiLnrLrHTa8,1040
|
|
320
|
+
sm_images/web/services/collections.py,sha256=MVxg-9WwCcf6uVDy28iSProt8EXYizm9kamEruS4YRo,6139
|
|
321
|
+
sm_images/web/services/cursor.py,sha256=Kn2oikfHryDD762pGyClS6l9lyqh16of1IzjbQqF0KY,2135
|
|
322
|
+
sm_images/web/services/gallery.py,sha256=ScywKX4Sn8Si5VQDBxLHpQaLI5E8W-9VfcdAngzBncs,5964
|
|
323
|
+
sm_images/web/services/groups.py,sha256=EuZYya16tbNFiBoevNubDfa6jtJfWRO7fxPrcWxznEo,9766
|
|
324
|
+
sm_images/web/services/neighbors.py,sha256=XwzIl02TOq9kW2YHKaOSOJ6L-Tucm1SjJ8Of8Hh7wEA,1963
|
|
325
|
+
sm_images/web/services/present.py,sha256=AYZkGFpcZFaeEPL1LHqDQ8ZNnQn83zByHSrnolMUJM4,4011
|
|
326
|
+
sm_images/web/services/presets.py,sha256=bEbhFA-Cg6gsOJwNjM0Kh7ASzn5hPy1d51xIi8sM7Nk,6382
|
|
327
|
+
sm_images/web/services/prompt_answers.py,sha256=UsvCxXDUlKxjm58-CKlNjkCq36cODS2BVQruKiiDaNM,1706
|
|
328
|
+
sm_images/web/services/prompts.py,sha256=AQG0Z8tQM4fRBUlF1GV0O1-MljngRoHmJDhUpE3ucac,8099
|
|
329
|
+
sm_images/web/services/public_gallery.py,sha256=15V500HfxjDTJ-Xv9i8tnmgLREWlZlrA5iPrRP2PpWI,3436
|
|
330
|
+
sm_images/web/services/public_stats.py,sha256=UeRu5xkotgGEoJ22JWTcvGe3fypfEe7nyC-QPvlStz0,5314
|
|
331
|
+
sm_images/web/services/regroup.py,sha256=9lb5spwIDMEoxra7ZBNXfaEWvhcHf54Z4s4AFlYP_sM,6531
|
|
332
|
+
sm_images/web/services/regroup_write.py,sha256=AywkhdUwjq5QciOY51mfojxSyNwJM9lSTqd-n_Tck3Q,5804
|
|
333
|
+
sm_images/web/services/review_queue.py,sha256=-TRNKzqxOOhPzGn1mJkc7hrIXwBIY0uTitmABNO38hc,3793
|
|
334
|
+
sm_images/web/services/slugs.py,sha256=DKKefn71brC0YFLbt6jwVy6253I5dILwzT5AcqMDrrk,541
|
|
335
|
+
sm_images/web/services/stats.py,sha256=qsytz95WLe5K5052dzSQ3FNZDfyh5RDGFuQeUwTr37I,5852
|
|
336
|
+
sm_images/web/services/viewer_stats.py,sha256=b8ulmiYANBL0XnG2FkVAi4p2sxR7EyAhF7YV3w9eL5g,3317
|
|
337
|
+
sm_images/web/serving/__init__.py,sha256=viIRftaT6m8JpT9kAQfNLkuKjqD3ZyeCRP-FCXBDjX4,103
|
|
338
|
+
sm_images/web/serving/cache.py,sha256=OwnDI7Odb7Xuj0d_fM6VvzqPJzyUyaa-bppWW3pMEaE,5945
|
|
339
|
+
sm_images/web/serving/ranges.py,sha256=tuNHnRvAgguk0_hGW97PqJb4qCUjqcQ2UTKpdLswuwk,2790
|
|
340
|
+
sm_images/web/serving/respond.py,sha256=7yPnrhoN1nURhnMNflJ9sr6xgeYxoAUlW6Is1sG7xf4,11664
|
|
341
|
+
sm_images/web/serving/urls.py,sha256=jfCu_gXE-zT49m16-Ys-8nI2LmBZy4AmvKOgzEW65aA,5019
|
|
342
|
+
sm_images/package.json,sha256=DnSmfXgA6nBlGRFCyeGp75u5Nq89_efEwLGl48U7bjA,722
|
|
343
|
+
simple_module_images-0.0.14.dist-info/METADATA,sha256=czRm7dq2UuRbdB7YeKvIEZAiHI_Rg--17D9DnxR7rFs,9948
|
|
344
|
+
simple_module_images-0.0.14.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
|
|
345
|
+
simple_module_images-0.0.14.dist-info/entry_points.txt,sha256=dYEBmA8DdiFdbB1BDSYBPOVf2GXCmYbK3DhDR3Pc8Tk,55
|
|
346
|
+
simple_module_images-0.0.14.dist-info/licenses/NOTICE,sha256=Ga_2bnnnesggVSqtyuCBp9RsbKWT5HJq6_8a2oFKeSA,3042
|
|
347
|
+
simple_module_images-0.0.14.dist-info/RECORD,,
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
simple_module_images
|
|
2
|
+
Copyright (c) Anto Subash. Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
The optional `anonymize` step downloads the following third-party models at
|
|
5
|
+
run time. They are not included in this package; their notices are reproduced
|
|
6
|
+
here because a deployment that caches or redistributes them must keep them.
|
|
7
|
+
|
|
8
|
+
-------------------------------------------------------------------------------
|
|
9
|
+
YuNet face detector - face_detection_yunet_2026may.onnx
|
|
10
|
+
Source: https://github.com/opencv/opencv_zoo/tree/eb9f4f2d4b79b58e5513b5d25d5f0243a8357bf4/models/face_detection_yunet
|
|
11
|
+
Training code: https://github.com/ShiqiYu/libfacedetection.train
|
|
12
|
+
License: MIT
|
|
13
|
+
|
|
14
|
+
MIT License
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2020 Shiqi Yu <shiqi.yu@gmail.com>
|
|
17
|
+
|
|
18
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
19
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
20
|
+
in the Software without restriction, including without limitation the rights
|
|
21
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
22
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
23
|
+
furnished to do so, subject to the following conditions:
|
|
24
|
+
|
|
25
|
+
The above copyright notice and this permission notice shall be included in all
|
|
26
|
+
copies or substantial portions of the Software.
|
|
27
|
+
|
|
28
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
29
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
31
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
32
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
33
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
34
|
+
SOFTWARE.
|
|
35
|
+
|
|
36
|
+
-------------------------------------------------------------------------------
|
|
37
|
+
YOLOv9 licence-plate detector - yolo-v9-s-608-license-plates-end2end.onnx
|
|
38
|
+
Source: https://github.com/ankandrew/open-image-models/releases/tag/assets
|
|
39
|
+
License: MIT
|
|
40
|
+
|
|
41
|
+
MIT License
|
|
42
|
+
|
|
43
|
+
Copyright (c) 2024 ankandrew
|
|
44
|
+
|
|
45
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
46
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
47
|
+
in the Software without restriction, including without limitation the rights
|
|
48
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
49
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
50
|
+
furnished to do so, subject to the following conditions:
|
|
51
|
+
|
|
52
|
+
The above copyright notice and this permission notice shall be included in all
|
|
53
|
+
copies or substantial portions of the Software.
|
|
54
|
+
|
|
55
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
56
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
57
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
58
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
59
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
60
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
61
|
+
SOFTWARE.
|
sm_images/__init__.py
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"""Images - collections of images with a processing pipeline.
|
|
2
|
+
|
|
3
|
+
Originals are immutable. Derived data (EXIF, renditions, quality metrics, an
|
|
4
|
+
optionally anonymised display copy, map tiles) is produced by pipeline steps
|
|
5
|
+
that run as background tasks. Design:
|
|
6
|
+
``docs/superpowers/specs/2026-10-28-images-module-design.md``.
|
|
7
|
+
"""
|