lorebase-store 0.3.1__tar.gz → 0.4.0__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.
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/PKG-INFO +3 -3
- lorebase_store-0.4.0/migrations/versions/0048_open_conflicts_by_element.py +41 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/pyproject.toml +3 -3
- lorebase_store-0.4.0/src/lorebase_store/__init__.py +1 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/merging/service.py +3 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/proposals.py +8 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/__init__.py +2 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/merges.py +69 -1
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_models.py +1 -1
- lorebase_store-0.3.1/src/lorebase_store/__init__.py +0 -1
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/.gitignore +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/LICENSE +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/README.md +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/alembic.ini +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/env.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/script.py.mako +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0001_initial_schema.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0002_merge_attempt_details.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0003_webhooks.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0004_defer_revision_references.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0005_security_definer_reads.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0006_api_key_usage.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0007_document_extraction.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0008_definer_argument_checks.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0009_api_key_networks.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0010_overlay_branches.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0011_branch_scoped_search_index.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0012_overlay_neighborhood_lookups.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0013_web_sessions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0014_embedding_jobs.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0015_append_only_audit_log.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0016_sealed_webhook_keys.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0017_background_branch_copies.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0018_search_lexicon.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0019_vault_bindings.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0020_outbox_consumers.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0021_schema_suggestions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0022_read_audit_and_shared_rate_limits.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0023_agent_trace.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0024_embedding_template_keys.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0025_snapshot_refs.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0026_plain_reverse_link_index.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0027_vault_rotation_and_tombstones.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0028_operation_deferred_events.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0029_agent_trace_sessions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0030_path_fanout.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0031_branch_builds.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0032_lineage_revisions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0033_vault_moved_tokens.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0034_inference_endpoint_modes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0035_search_truncation.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0036_lineage_maps.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0037_bm25_search.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0038_reconciliation_candidates.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0039_reconciliation_lookups.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0040_source_written.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0041_document_versions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0042_proposal_kinds.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0043_source_last_seen.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0044_mat_records_object_hash_index.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0045_value_index.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0046_vocabulary_and_coverage.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0047_value_index_limits.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/approval_rules.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/api_keys.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/audit.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/checkpoints.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/grants.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/principals.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/scope.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/sessions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/unit.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/auth/usage.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/blobs.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/bm25.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/bulk.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/bundle.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/changefeed.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/commit/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/commit/changes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/commit/errors.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/commit/migrations.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/commit/pipeline.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/commit/schema.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/coverage.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/db.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/definer.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/digests.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/duplicates.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/embeddings.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/endpoint_modes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/extraction/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/extraction/items.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/extraction/materialize.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/extraction/modes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/extraction/proposal.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/extraction/review.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/gc.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/indexes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/jobs.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/keyring.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/layout.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/apply.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/background.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/branch.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/build.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/derived.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/lineage_backfill.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/links.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/overlay.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/paths.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/rebuild.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/rows.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/sensitivity.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/snapshot.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/stale.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/verify.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/merging/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/merging/attempts.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/merging/lineage.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/merging/preserved.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/migrations.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/base.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/enums.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/governance.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/ingestion.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/materialized.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/queues.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/reconciliation.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/tracing.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/versioning.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/models/webhooks.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/nodestore.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/objectstore.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/outbox_events.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/profiling/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/profiling/delimited.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/profiling/postgres.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/profiling/record_files.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/profiling/records.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/profiling/sql_databases.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/ratelimit.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/reads.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/reconciliation.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/replicas.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/changesets.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/deferred_events.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/documents.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/domains.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/events.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/index_view.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/invocations.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/materializations.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/materialized.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/proposal_items.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/proposals.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/provenance.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/quotes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/reconciliation_candidates.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/refs.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/revisions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/scope.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/source_runs.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/source_written.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/suggestions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/resolve_misses.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/runtime.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/schema_cache.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/settings.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/storage.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/telemetry.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/testing.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/tracing.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/traverse.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/values.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/vault/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/vault/keys.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/vault/quotes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/vault/rotation.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/vault/settings.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/vault/store.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/vault/transfer.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/webhooks/__init__.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/webhooks/delivery.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/webhooks/keys.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/webhooks/repository.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/webhooks/settings.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/webhooks/signing.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/auth/conftest.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/auth/test_audit_append_only_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/auth/test_audit_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/auth/test_audit_streams_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/auth/test_principals_api_keys_grants_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/auth/test_rls_scope.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/auth/test_sessions_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/conftest.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/read_support.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/support.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_approval_rules.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_background_branches.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_background_pace.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_bm25.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_bundle.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_bundle_limits.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_bundle_vault.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_bundle_vault_values.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_commit.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_commit_helpers.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_definer_checks.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_derived.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_document_quotes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_ef_search.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_endpoint_modes_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_extraction_items.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_extraction_modes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_gc.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_indexes.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_jobs_depth.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_lineage_backfill.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_materialize.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_merging.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_migration_revisions.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_nodestore.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_outbox_events.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_outbox_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_overlay.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_profiling.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_profiling_record_files.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_profiling_records.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_profiling_sql.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_ratelimit_buckets_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_reads.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_reconciliation_candidates_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_reconciliation_wrapping.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_replicas.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_repositories.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_schema_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_search_bm25.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_sensitivity_refresh.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_settings.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_storage.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_suggestion_fold.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_suggestion_repository_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_traverse.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_values.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_vault.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_webhook_keys.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_webhook_keys_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_webhook_timeouts_integration.py +0 -0
- {lorebase_store-0.3.1 → lorebase_store-0.4.0}/tests/test_webhooks.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: lorebase-store
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Lorebase store: persistence, repositories, migrations and materializer
|
|
5
5
|
Project-URL: Homepage, https://github.com/aantenore/lorebase
|
|
6
6
|
Project-URL: Documentation, https://aantenore.github.io/lorebase/
|
|
@@ -22,8 +22,8 @@ Requires-Python: >=3.12
|
|
|
22
22
|
Requires-Dist: alembic>=1.13
|
|
23
23
|
Requires-Dist: asyncpg>=0.29
|
|
24
24
|
Requires-Dist: cryptography>=42
|
|
25
|
-
Requires-Dist: lorebase-core<0.
|
|
26
|
-
Requires-Dist: lorebase-platform<0.
|
|
25
|
+
Requires-Dist: lorebase-core<0.5,>=0.4
|
|
26
|
+
Requires-Dist: lorebase-platform<0.5,>=0.4
|
|
27
27
|
Requires-Dist: opentelemetry-api>=1.25
|
|
28
28
|
Requires-Dist: pgvector>=0.3
|
|
29
29
|
Requires-Dist: sqlalchemy[asyncio]>=2.0.30
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""Open Conflicts by element (design 6.10).
|
|
2
|
+
|
|
3
|
+
A read of a Record can ask whether a Conflict about it waits for a decision in an open
|
|
4
|
+
Proposal. `conflicts` was only reachable by attempt, so that question would scan every
|
|
5
|
+
Conflict of every conflicted attempt. The partial index `ix_conflicts_open_element` over
|
|
6
|
+
`(domain_id, partition, element_key)` holds the unresolved Conflicts only: resolved rows, the
|
|
7
|
+
bulk of a table that keeps merged attempts, are left out, and the lookup of one Record is one
|
|
8
|
+
probe that finds nothing in the common case.
|
|
9
|
+
|
|
10
|
+
Revision ID: 0048
|
|
11
|
+
Revises: 0047
|
|
12
|
+
Create Date: 2026-11-13 09:00:00.000000
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
from collections.abc import Sequence
|
|
18
|
+
|
|
19
|
+
import sqlalchemy as sa
|
|
20
|
+
from alembic import op
|
|
21
|
+
|
|
22
|
+
revision: str = "0048"
|
|
23
|
+
down_revision: str | Sequence[str] | None = "0047"
|
|
24
|
+
branch_labels: str | Sequence[str] | None = None
|
|
25
|
+
depends_on: str | Sequence[str] | None = None
|
|
26
|
+
|
|
27
|
+
TABLE = "conflicts"
|
|
28
|
+
INDEX = "ix_conflicts_open_element"
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def upgrade() -> None:
|
|
32
|
+
op.create_index(
|
|
33
|
+
INDEX,
|
|
34
|
+
TABLE,
|
|
35
|
+
["domain_id", "partition", "element_key"],
|
|
36
|
+
postgresql_where=sa.text("resolved_by IS NULL"),
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def downgrade() -> None:
|
|
41
|
+
op.drop_index(INDEX, table_name=TABLE)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "lorebase-store"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.0"
|
|
4
4
|
description = "Lorebase store: persistence, repositories, migrations and materializer"
|
|
5
5
|
requires-python = ">=3.12"
|
|
6
6
|
readme = "README.md"
|
|
@@ -18,8 +18,8 @@ classifiers = [
|
|
|
18
18
|
"Topic :: Database",
|
|
19
19
|
]
|
|
20
20
|
dependencies = [
|
|
21
|
-
"lorebase-core>=0.
|
|
22
|
-
"lorebase-platform>=0.
|
|
21
|
+
"lorebase-core>=0.4,<0.5",
|
|
22
|
+
"lorebase-platform>=0.4,<0.5",
|
|
23
23
|
"sqlalchemy[asyncio]>=2.0.30",
|
|
24
24
|
"asyncpg>=0.29",
|
|
25
25
|
"alembic>=1.13",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.4.0"
|
|
@@ -822,6 +822,9 @@ def _summary(computation: AttemptComputation) -> dict[str, Any]:
|
|
|
822
822
|
def _conflict_row(state: ConflictState, stored: Mapping[str, ResolutionRow]) -> ConflictRow:
|
|
823
823
|
conflict = state.conflict
|
|
824
824
|
payload = conflict.model_dump(mode="json")
|
|
825
|
+
if payload.get("provenance") is None:
|
|
826
|
+
# Stored only when the merge knew who changed a side: other payloads keep their shape.
|
|
827
|
+
payload.pop("provenance", None)
|
|
825
828
|
payload["members"] = list(state.members)
|
|
826
829
|
if state.rejected:
|
|
827
830
|
payload["details"] = {**payload.get("details", {}), "rejected": REJECTED_DETAIL}
|
|
@@ -169,6 +169,14 @@ class Conflict(Base):
|
|
|
169
169
|
ondelete="CASCADE",
|
|
170
170
|
),
|
|
171
171
|
UniqueConstraint("domain_id", "attempt_id", "fingerprint"),
|
|
172
|
+
# Reads that ask whether a Record has a Conflict waiting for a decision (design 6.10).
|
|
173
|
+
Index(
|
|
174
|
+
"ix_conflicts_open_element",
|
|
175
|
+
"domain_id",
|
|
176
|
+
"partition",
|
|
177
|
+
"element_key",
|
|
178
|
+
postgresql_where=text("resolved_by IS NULL"),
|
|
179
|
+
),
|
|
172
180
|
)
|
|
173
181
|
|
|
174
182
|
domain_id: Mapped[DomainKey]
|
|
@@ -48,6 +48,7 @@ from lorebase_store.repositories.merges import (
|
|
|
48
48
|
MergeAttemptRepository,
|
|
49
49
|
MergeAttemptRow,
|
|
50
50
|
PartitionFilter,
|
|
51
|
+
PendingConflictRow,
|
|
51
52
|
ResolutionRepository,
|
|
52
53
|
ResolutionRow,
|
|
53
54
|
)
|
|
@@ -142,6 +143,7 @@ __all__ = [
|
|
|
142
143
|
"MergeOutcome",
|
|
143
144
|
"OutboxRepository",
|
|
144
145
|
"PartitionFilter",
|
|
146
|
+
"PendingConflictRow",
|
|
145
147
|
"PgRevisionGraph",
|
|
146
148
|
"PreservedRow",
|
|
147
149
|
"ProposalChecks",
|
|
@@ -20,8 +20,9 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
20
20
|
|
|
21
21
|
from lorebase_store.bulk import chunks
|
|
22
22
|
from lorebase_store.models import metadata
|
|
23
|
-
from lorebase_store.models.enums import MergeAttemptStatus
|
|
23
|
+
from lorebase_store.models.enums import MergeAttemptStatus, ProposalStatus
|
|
24
24
|
|
|
25
|
+
PROPOSALS: Table = metadata.tables["proposals"]
|
|
25
26
|
ATTEMPTS: Table = metadata.tables["merge_attempts"]
|
|
26
27
|
CONFLICTS: Table = metadata.tables["conflicts"]
|
|
27
28
|
RESOLUTIONS: Table = metadata.tables["conflict_resolutions"]
|
|
@@ -69,6 +70,20 @@ class ConflictRow:
|
|
|
69
70
|
return self.resolved_by is not None
|
|
70
71
|
|
|
71
72
|
|
|
73
|
+
@dataclass(frozen=True, slots=True)
|
|
74
|
+
class PendingConflictRow:
|
|
75
|
+
"""An open Conflict about one element, as a reader of the target branch is told: the
|
|
76
|
+
Proposal it blocks, its id and code, the Attribute (None for a Conflict about the whole
|
|
77
|
+
element) and the hash of the competing element on the Proposal's source side."""
|
|
78
|
+
|
|
79
|
+
proposal_id: str
|
|
80
|
+
source_ref: str
|
|
81
|
+
fingerprint: str
|
|
82
|
+
code: str
|
|
83
|
+
attribute_id: str | None
|
|
84
|
+
competing_hash: str | None
|
|
85
|
+
|
|
86
|
+
|
|
72
87
|
@dataclass(frozen=True, slots=True)
|
|
73
88
|
class ResolutionRow:
|
|
74
89
|
fingerprint: str
|
|
@@ -348,6 +363,59 @@ class ConflictRepository:
|
|
|
348
363
|
)
|
|
349
364
|
return frozenset((await self._session.execute(query)).scalars())
|
|
350
365
|
|
|
366
|
+
async def pending(
|
|
367
|
+
self, target: str, partition: str, element_key: str
|
|
368
|
+
) -> list[PendingConflictRow]:
|
|
369
|
+
"""The open Conflicts about one element in the open Proposals into `target`.
|
|
370
|
+
|
|
371
|
+
Only the current attempt of a Proposal counts (`conflicted`: a recomputation marks the
|
|
372
|
+
earlier ones `stale`, closing the Proposal `abandoned`). The lookup starts from the
|
|
373
|
+
partial index of unresolved Conflicts (`ix_conflicts_open_element`), so a Record
|
|
374
|
+
nobody contests costs one index probe.
|
|
375
|
+
"""
|
|
376
|
+
query = (
|
|
377
|
+
select(
|
|
378
|
+
ATTEMPTS.c.proposal_id,
|
|
379
|
+
PROPOSALS.c.source_ref,
|
|
380
|
+
CONFLICTS.c.id,
|
|
381
|
+
CONFLICTS.c.code,
|
|
382
|
+
CONFLICTS.c.attribute_id,
|
|
383
|
+
CONFLICTS.c.payload["theirs_hash"].astext.label("competing_hash"),
|
|
384
|
+
)
|
|
385
|
+
.join(
|
|
386
|
+
ATTEMPTS,
|
|
387
|
+
(ATTEMPTS.c.domain_id == CONFLICTS.c.domain_id)
|
|
388
|
+
& (ATTEMPTS.c.id == CONFLICTS.c.attempt_id),
|
|
389
|
+
)
|
|
390
|
+
.join(
|
|
391
|
+
PROPOSALS,
|
|
392
|
+
(PROPOSALS.c.domain_id == ATTEMPTS.c.domain_id)
|
|
393
|
+
& (PROPOSALS.c.id == ATTEMPTS.c.proposal_id),
|
|
394
|
+
)
|
|
395
|
+
.where(
|
|
396
|
+
CONFLICTS.c.domain_id == self._domain,
|
|
397
|
+
CONFLICTS.c.partition == partition,
|
|
398
|
+
CONFLICTS.c.element_key == element_key,
|
|
399
|
+
CONFLICTS.c.resolved_by.is_(None),
|
|
400
|
+
ATTEMPTS.c.status == MergeAttemptStatus.CONFLICTED,
|
|
401
|
+
PROPOSALS.c.status == ProposalStatus.OPEN,
|
|
402
|
+
PROPOSALS.c.target_ref == target,
|
|
403
|
+
)
|
|
404
|
+
.order_by(ATTEMPTS.c.proposal_id, CONFLICTS.c.id)
|
|
405
|
+
)
|
|
406
|
+
result = await self._session.execute(query)
|
|
407
|
+
return [
|
|
408
|
+
PendingConflictRow(
|
|
409
|
+
proposal_id=row.proposal_id,
|
|
410
|
+
source_ref=row.source_ref,
|
|
411
|
+
fingerprint=row.id,
|
|
412
|
+
code=row.code,
|
|
413
|
+
attribute_id=row.attribute_id,
|
|
414
|
+
competing_hash=row.competing_hash,
|
|
415
|
+
)
|
|
416
|
+
for row in result
|
|
417
|
+
]
|
|
418
|
+
|
|
351
419
|
|
|
352
420
|
class ResolutionRepository:
|
|
353
421
|
"""Resolutions of the Proposals of one Domain, by Conflict fingerprint."""
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0002_merge_attempt_details.py
RENAMED
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0004_defer_revision_references.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0005_security_definer_reads.py
RENAMED
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0007_document_extraction.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0008_definer_argument_checks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0011_branch_scoped_search_index.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0015_append_only_audit_log.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0016_sealed_webhook_keys.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0017_background_branch_copies.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0021_schema_suggestions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0024_embedding_template_keys.py
RENAMED
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0026_plain_reverse_link_index.py
RENAMED
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0028_operation_deferred_events.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0029_agent_trace_sessions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0033_vault_moved_tokens.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0034_inference_endpoint_modes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0038_reconciliation_candidates.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0039_reconciliation_lookups.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0046_vocabulary_and_coverage.py
RENAMED
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/migrations/versions/0047_value_index_limits.py
RENAMED
|
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
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/materialize/lineage_backfill.py
RENAMED
|
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
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/deferred_events.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lorebase_store-0.3.1 → lorebase_store-0.4.0}/src/lorebase_store/repositories/invocations.py
RENAMED
|
File without changes
|