resolvekit 0.1.4__tar.gz → 0.1.6__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.
- {resolvekit-0.1.4 → resolvekit-0.1.6}/PKG-INFO +1 -1
- {resolvekit-0.1.4 → resolvekit-0.1.6}/pyproject.toml +1 -1
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/loading/module_catalog.py +36 -68
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/resolver.py +13 -3
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/suggest_rank.py +10 -2
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/pack.py +18 -7
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/sources/__init__.py +2 -0
- resolvekit-0.1.6/src/resolvekit/packs/custom/sources/fuzzy_retrieval.py +17 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/sources/__init__.py +4 -0
- resolvekit-0.1.6/src/resolvekit/shared/sources/fuzzy_retrieval_brute_base.py +403 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/LICENSE +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/README.md +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/NOTICE.md +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_convenience.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/admin1/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/admin2/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/admin3/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/admin4/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/admin5/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/cities/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/continental_unions/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/continental_unions/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/continental_unions/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/continents/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/continents/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/continents/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/countries/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/countries/geo_calibrator.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/countries/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/countries/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/regions/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/regions/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/geo/regions/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/manifest.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/companies/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/companies/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/companies/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/data_sources/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/data_sources/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/data_sources/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/governments/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/governments/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/governments/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/lenders/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/lenders/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/lenders/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/political_parties/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/political_parties/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/political_parties/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/providers/entities.sqlite +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/providers/metadata.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/org/providers/symspell.dict +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_data/parse/deny_list.json +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_pandas_integration.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/_polars_integration.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/_outcomes.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/api.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/containment.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/country_geonames_aliases.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/datapack_layout.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/entity_validity.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/formal_names.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/geo_shared.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/groups.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/inspection.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/models.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/module_catalog.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/oecd_dac.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/build_report.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/changelog.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/chunk.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/contribution.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/core.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/discover.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/enrich.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/geo_staging.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/packaging.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/promote.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/qa.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/reconcile.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/stages.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/pipeline/types.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/presets.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/registry.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/adapter.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/base_dc_api.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/bundle.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/canonicalize.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/client.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/constants.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/_admin_walk.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/_chunk_callback.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/_geo_regions.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/_ordered_emitter.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/_progress_context.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/_streaming.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/_type_mappings.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/adapter.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/dc_api.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/discovery.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/fetch.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/mappings.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/profile.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/geo/prominence.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/models.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/node.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/org/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/org/adapter.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/org/dc_api.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/org/discovery.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/org/fetch.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/org/mappings.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/org/profile.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/rows.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/specs.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/datacommons/text.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/discovery_events.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/protocol.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/seed/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/seed/continents.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/seed/m49.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/wikidata/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/wikidata/aliases.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sources/wikidata/sitelinks.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/constants.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/context.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/diff.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/export.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/specs.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/validate.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/sqlite/write.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/state.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/builder/utils.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/_cldr_source.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/_latin_filter.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/_wikidata_client.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/cldr.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/geonames.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/multilingual_names.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/synthetic.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/adapters/wikidata.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/dataset.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/evaluation.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/fitting.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/models.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/scoring_model.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/train.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/calibration/vectorize.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/_byod.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/_pivot.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/batch.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/bulk.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/cache.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/code_lookup.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/containment_api.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/context_input.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/diagnostics.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/entity_lookup.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/group_api.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/info.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/inspect.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/loading/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/loading/pack_loader.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/loading/paths.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/loading/store_builder.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/modules.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/output_spec.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/output_view.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/query_prep.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/resolve_flow.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/snap.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/api/suggest_flow.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/byod/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/byod/build.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/byod/builder.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/byod/cache.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/byod/intake.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/byod/result.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/config.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/datapack.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/download_api.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/_stages.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/config.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/decision.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/enrichment.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/interfaces.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/multi_runner.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/router.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/runner.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/engine/tier_utils.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/errors.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/errors_base.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/events.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/feature_text.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/helpers.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/protocol.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/renderers.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/result_html.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/result_types.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/scorecard.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/explain/sink.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/linking/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/linking/base_linker.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/linking/base_normalizer.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/linking/linker.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/linking/normalizer.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/merge.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/_repr.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/bulk_result.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/candidate.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/crosswalk.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/entity.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/entity_attributes.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/features.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/generation.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/inspection.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/name_grammar.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/query.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/model/result.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/module_registry.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/overlay_loader.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/_pivot.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/automaton.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/denylist.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/detect.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/engine.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/link.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/offsets.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/parse/result.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/registry.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/remote.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/composed_sqlite.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/composite.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/interface.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/merging.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/sqlite.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/sqlite_helpers.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/store/store_view.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/util/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/util/iso_codes.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/util/normalization.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/util/sentinel.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/core/version.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/diagnostics/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/errors/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/extensions.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/_artifacts.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/decision.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/extractor.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/features.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/normalizer.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/scoring.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/sources/exact_code.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/sources/exact_name.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/sources/fts.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/custom/sources/fuzzy.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/_specificity.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/build/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/build/builder.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/constraints/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/constraints/containment.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/constraints/membership.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/constraints/temporal.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/constraints/type_constraint.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/data/.gitkeep +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/decision.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/extractor.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/features.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/linker.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/normalizer.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/pack.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/routing.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/scoring.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/_short_input.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/exact_code.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/exact_name.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/fts.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/fuzzy.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/fuzzy_retrieval.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/query_shapes.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/geo/sources/symspell.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/_acronym.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/build/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/build/builder.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/constraints/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/constraints/country_relevance.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/constraints/parent_org.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/constraints/temporal.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/constraints/type_constraint.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/data/.gitkeep +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/decision.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/feature_extractor.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/features.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/linker.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/normalizer.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/pack.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/routing.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/scoring.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/sources/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/sources/acronym.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/sources/exact_code.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/sources/exact_name.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/sources/fts.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/sources/fuzzy.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/packs/org/sources/symspell.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/pandas/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/polars/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/py.typed +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/build/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/build/base_builder.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/build/schema.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/constraints/__init__.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/constraints/temporal_constraint.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/constraints/type_constraint.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/scoring_base.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/sources/code_helpers.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/sources/fts_base.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/sources/fuzzy_base.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/sources/fuzzy_retrieval_base.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/shared/sources/symspell_base.py +0 -0
- {resolvekit-0.1.4 → resolvekit-0.1.6}/src/resolvekit/types/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: resolvekit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: Entity and place resolution system that maps messy place/entity strings and codes to canonical entities
|
|
5
5
|
Keywords: entity-resolution,geocoding,place-names,data-commons,iso-codes,offline,disambiguation,normalization
|
|
6
6
|
Author: Jorge Rivera
|
|
@@ -134,41 +134,26 @@ def _load_and_separate_datapacks(
|
|
|
134
134
|
return base_packs, overlay_packs
|
|
135
135
|
|
|
136
136
|
|
|
137
|
-
def _remote_dependency_uncached(
|
|
138
|
-
module_id: str,
|
|
139
|
-
available: dict[str, Path],
|
|
140
|
-
manifest_overrides: dict[str, dict[str, object]],
|
|
141
|
-
) -> bool:
|
|
142
|
-
"""Return True if ``module_id`` is a remote-distribution module whose data
|
|
143
|
-
is not in the local cache.
|
|
144
|
-
|
|
145
|
-
Such a dependency may be absent from a load set without error: remote
|
|
146
|
-
packs the user hasn't downloaded are not hard errors (partial caches are
|
|
147
|
-
first-class, and ``Resolver.auto()`` never triggers a network fetch).
|
|
148
|
-
Bundled dependencies and unknown module ids stay hard errors.
|
|
149
|
-
"""
|
|
150
|
-
from resolvekit.core.module_registry import load_module_metadata
|
|
151
|
-
from resolvekit.core.remote import is_cached
|
|
152
|
-
|
|
153
|
-
if module_id not in available:
|
|
154
|
-
return False
|
|
155
|
-
path = available[module_id]
|
|
156
|
-
if not (path / "metadata.json").exists():
|
|
157
|
-
return False
|
|
158
|
-
metadata = load_module_metadata(module_id, path, overrides=manifest_overrides)
|
|
159
|
-
return metadata.distribution == "remote" and not is_cached(metadata)
|
|
160
|
-
|
|
161
|
-
|
|
162
137
|
def _validate_module_dependencies(
|
|
163
138
|
base_packs: dict[str, LoadedDataPack],
|
|
164
139
|
overlay_packs: dict[str, LoadedDataPack],
|
|
165
140
|
pack_filter: set[str],
|
|
166
141
|
) -> None:
|
|
167
|
-
from
|
|
168
|
-
|
|
142
|
+
"""Log any declared ``module_dependencies`` absent from the load set.
|
|
143
|
+
|
|
144
|
+
``module_dependencies`` are advisory cross-reference links, not hard load
|
|
145
|
+
requirements. An explicit selection is authoritative and ``auto()`` loads
|
|
146
|
+
whatever is locally available, so a declared dependency not being in the
|
|
147
|
+
load set is expected — partial loads are first-class, a deployed image may
|
|
148
|
+
ship a subset, and a dependency may simply not be installed in this
|
|
149
|
+
environment. None of that is an error here; it is logged for diagnostics.
|
|
150
|
+
|
|
151
|
+
(Naming an unknown module in the *request* is a different matter — that
|
|
152
|
+
raises ``DataModuleNotFoundError`` from :func:`_resolve_requested_module_paths`.
|
|
153
|
+
Hard structural requirements, overlay → base, are enforced separately by
|
|
154
|
+
:func:`_validate_overlay_relationships`.)
|
|
155
|
+
"""
|
|
169
156
|
available_module_ids = set(base_packs) | set(overlay_packs)
|
|
170
|
-
registry: dict[str, Path] | None = None
|
|
171
|
-
manifest_overrides: dict[str, dict[str, object]] | None = None
|
|
172
157
|
for loaded in [*base_packs.values(), *overlay_packs.values()]:
|
|
173
158
|
if pack_filter and loaded.pack_id not in pack_filter:
|
|
174
159
|
continue
|
|
@@ -179,23 +164,12 @@ def _validate_module_dependencies(
|
|
|
179
164
|
if module_id not in available_module_ids
|
|
180
165
|
]
|
|
181
166
|
if missing:
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
manifest_overrides = get_manifest_overrides()
|
|
189
|
-
assert manifest_overrides is not None
|
|
190
|
-
missing = [
|
|
191
|
-
module_id
|
|
192
|
-
for module_id in missing
|
|
193
|
-
if not _remote_dependency_uncached(
|
|
194
|
-
module_id, registry, manifest_overrides
|
|
195
|
-
)
|
|
196
|
-
]
|
|
197
|
-
if missing:
|
|
198
|
-
raise MissingModuleDependencyError(loaded.module_id, missing)
|
|
167
|
+
logger.debug(
|
|
168
|
+
"Module %s declares dependencies absent from the load set: %s "
|
|
169
|
+
"(advisory; honoring authoritative selection)",
|
|
170
|
+
loaded.module_id,
|
|
171
|
+
", ".join(sorted(missing)),
|
|
172
|
+
)
|
|
199
173
|
|
|
200
174
|
|
|
201
175
|
def _validate_overlay_relationships(
|
|
@@ -290,29 +264,23 @@ def _resolve_requested_module_paths(
|
|
|
290
264
|
resolved[module_id] = path
|
|
291
265
|
|
|
292
266
|
metadata = load_module_metadata(module_id, path, overrides=manifest_overrides)
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
dependency not in available
|
|
306
|
-
or not _module_data_locally_available(
|
|
267
|
+
# ``module_dependencies`` are advisory cross-reference links, not load
|
|
268
|
+
# requirements. Expand them only in auto() mode, where the load set is
|
|
269
|
+
# "everything locally available" anyway (silently skipping remote packs
|
|
270
|
+
# the user hasn't downloaded — see v1-scope §225). Explicit ``module_ids``
|
|
271
|
+
# are AUTHORITATIVE: the load set is exactly what the caller named (plus
|
|
272
|
+
# overlay bases, which are structural), independent of cache or on-disk
|
|
273
|
+
# state — so resolution is identical on a dev box with extra packs
|
|
274
|
+
# downloaded and on a lean deployment that bakes only the named modules.
|
|
275
|
+
if auto_mode:
|
|
276
|
+
for dependency in metadata.module_dependencies:
|
|
277
|
+
if dependency in resolved:
|
|
278
|
+
continue
|
|
279
|
+
if dependency not in available or not _module_data_locally_available(
|
|
307
280
|
dependency, available[dependency], manifest_overrides
|
|
308
|
-
)
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
if not auto_mode and _remote_dependency_uncached(
|
|
312
|
-
dependency, available, manifest_overrides
|
|
313
|
-
):
|
|
314
|
-
continue
|
|
315
|
-
queue.append(dependency)
|
|
281
|
+
):
|
|
282
|
+
continue
|
|
283
|
+
queue.append(dependency)
|
|
316
284
|
if metadata.is_overlay:
|
|
317
285
|
for dependency in metadata.base_module_ids or []:
|
|
318
286
|
if dependency in resolved:
|
|
@@ -882,7 +882,16 @@ class Resolver:
|
|
|
882
882
|
|
|
883
883
|
Args:
|
|
884
884
|
module_ids: Specific module IDs to load (e.g. ``["geo.countries"]``).
|
|
885
|
-
|
|
885
|
+
Authoritative: the load set is exactly these modules. Declared
|
|
886
|
+
``module_dependencies`` are advisory cross-references and are
|
|
887
|
+
NOT auto-loaded — name every module you want (e.g.
|
|
888
|
+
``["geo.cities", "geo.countries"]`` for city resolution backed
|
|
889
|
+
by country context). The load set therefore depends only on this
|
|
890
|
+
argument, never on which packs happen to be cached or shipped,
|
|
891
|
+
so resolution is identical on a dev box and a lean deployment.
|
|
892
|
+
Overlay base modules are the one exception (an overlay is not a
|
|
893
|
+
standalone dataset, so its base is always pulled in). Pass
|
|
894
|
+
``None`` to load all installed modules (same as ``auto()``).
|
|
886
895
|
domains: Which domain packs to enable (default: all in modules).
|
|
887
896
|
routing_mode: How to route queries (see ``Resolver.__init__`` for full docs).
|
|
888
897
|
trace: Whether to collect trace events.
|
|
@@ -1032,8 +1041,9 @@ class Resolver:
|
|
|
1032
1041
|
)
|
|
1033
1042
|
|
|
1034
1043
|
# -- Country-level geo module IDs for the lite preset --
|
|
1035
|
-
# Deliberately excludes geo.admin1 and deeper tiers
|
|
1036
|
-
#
|
|
1044
|
+
# Deliberately excludes geo.admin1 and the deeper admin / cities tiers to
|
|
1045
|
+
# keep cold-start time and resident memory small. Selection is authoritative,
|
|
1046
|
+
# so the load set is exactly these IDs — naming a tier loads only that tier.
|
|
1037
1047
|
# To add admin-1 coverage, pass module_ids=["geo.countries", "geo.admin1"].
|
|
1038
1048
|
_LITE_GEO_MODULE_IDS: tuple[str, ...] = (
|
|
1039
1049
|
"geo.countries",
|
|
@@ -236,6 +236,7 @@ def fuzzy_candidates(
|
|
|
236
236
|
names: list[tuple[str, str, str, bool, str]],
|
|
237
237
|
*,
|
|
238
238
|
top_k: int,
|
|
239
|
+
choices: list[str] | None = None,
|
|
239
240
|
) -> list[SuggestCandidate]:
|
|
240
241
|
"""Run brute-force RapidFuzz over a pre-materialized name list.
|
|
241
242
|
|
|
@@ -252,6 +253,12 @@ def fuzzy_candidates(
|
|
|
252
253
|
value)`` 5-tuples — typically the memoized output of
|
|
253
254
|
``store.iter_suggest_names()``.
|
|
254
255
|
top_k: Number of results the caller ultimately wants.
|
|
256
|
+
choices: Optional pre-extracted list of ``value_norm`` strings
|
|
257
|
+
(``[row[0] for row in names]``). When provided, the per-call
|
|
258
|
+
list comprehension is skipped — callers that memoize the name list
|
|
259
|
+
should also memoize and pass ``choices`` to avoid a 25k-string
|
|
260
|
+
rebuild on every query. When ``None`` (default), the list is
|
|
261
|
+
built from ``names`` as before (backward-compatible).
|
|
255
262
|
|
|
256
263
|
Returns:
|
|
257
264
|
List of ``SuggestCandidate`` objects (one per distinct matched name row,
|
|
@@ -268,8 +275,9 @@ def fuzzy_candidates(
|
|
|
268
275
|
|
|
269
276
|
fuzzy_pool = min(max(top_k * 5, 50), 500)
|
|
270
277
|
|
|
271
|
-
#
|
|
272
|
-
choices
|
|
278
|
+
# Use caller-supplied choices when available to avoid a per-call rebuild.
|
|
279
|
+
if choices is None:
|
|
280
|
+
choices = [row[0] for row in names]
|
|
273
281
|
|
|
274
282
|
raw_hits = process.extract(
|
|
275
283
|
query_norm,
|
|
@@ -21,6 +21,7 @@ from resolvekit.packs.custom.sources import (
|
|
|
21
21
|
CustomExactCodeSource,
|
|
22
22
|
CustomExactNameSource,
|
|
23
23
|
CustomFTSSource,
|
|
24
|
+
CustomFuzzyRetrievalSource,
|
|
24
25
|
CustomFuzzySource,
|
|
25
26
|
)
|
|
26
27
|
|
|
@@ -44,13 +45,22 @@ class GenericPack:
|
|
|
44
45
|
custom entities, etc.).
|
|
45
46
|
|
|
46
47
|
Sources (in pipeline order):
|
|
47
|
-
1. CustomExactCodeSource
|
|
48
|
-
2. CustomExactNameSource
|
|
49
|
-
3. CustomFTSSource
|
|
50
|
-
4.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
1. CustomExactCodeSource — catch-all ``lookup_code_any``; raw 1.0
|
|
49
|
+
2. CustomExactNameSource — canonical raw 1.0, alias raw 0.95
|
|
50
|
+
3. CustomFTSSource — BM25 ranked FTS
|
|
51
|
+
4. CustomFuzzyRetrievalSource — generating brute-force RapidFuzz over the
|
|
52
|
+
store's materialized name list; emits
|
|
53
|
+
FUZZY-tier evidence so typo'd queries that
|
|
54
|
+
FTS cannot tokenize-match still produce
|
|
55
|
+
candidates. Free on exact-name queries
|
|
56
|
+
(engine fuzzy-skip guard bypasses it when
|
|
57
|
+
a confident EXACT_NAME candidate is present).
|
|
58
|
+
Callers needing stricter precision can raise
|
|
59
|
+
``confidence_threshold`` above the 0.89 FUZZY
|
|
60
|
+
cap to suppress fuzzy-tier results.
|
|
61
|
+
5. CustomFuzzySource — reranks existing candidates with
|
|
62
|
+
``fuzzy_edit_sim`` / ``fuzzy_token_sim``
|
|
63
|
+
signals (requires_existing_candidates)
|
|
54
64
|
|
|
55
65
|
Args:
|
|
56
66
|
symspell_dict_path: Accepted but ignored to satisfy factory introspection.
|
|
@@ -70,6 +80,7 @@ class GenericPack:
|
|
|
70
80
|
CustomExactCodeSource(),
|
|
71
81
|
CustomExactNameSource(),
|
|
72
82
|
CustomFTSSource(),
|
|
83
|
+
CustomFuzzyRetrievalSource(),
|
|
73
84
|
CustomFuzzySource(),
|
|
74
85
|
]
|
|
75
86
|
|
|
@@ -4,10 +4,12 @@ from resolvekit.packs.custom.sources.exact_code import CustomExactCodeSource
|
|
|
4
4
|
from resolvekit.packs.custom.sources.exact_name import CustomExactNameSource
|
|
5
5
|
from resolvekit.packs.custom.sources.fts import CustomFTSSource
|
|
6
6
|
from resolvekit.packs.custom.sources.fuzzy import CustomFuzzySource
|
|
7
|
+
from resolvekit.packs.custom.sources.fuzzy_retrieval import CustomFuzzyRetrievalSource
|
|
7
8
|
|
|
8
9
|
__all__ = [
|
|
9
10
|
"CustomExactCodeSource",
|
|
10
11
|
"CustomExactNameSource",
|
|
11
12
|
"CustomFTSSource",
|
|
13
|
+
"CustomFuzzyRetrievalSource",
|
|
12
14
|
"CustomFuzzySource",
|
|
13
15
|
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""Brute-force fuzzy retrieval source for custom entities."""
|
|
2
|
+
|
|
3
|
+
from resolvekit.shared.sources import FuzzyRetrievalBruteSource
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class CustomFuzzyRetrievalSource(FuzzyRetrievalBruteSource):
|
|
7
|
+
"""Generating fuzzy source for the custom domain.
|
|
8
|
+
|
|
9
|
+
Materializes the store's name list once and runs brute-force
|
|
10
|
+
RapidFuzz over it — no prebuilt SymSpell dictionary required.
|
|
11
|
+
Ordered before the rerank ``CustomFuzzySource`` so the engine
|
|
12
|
+
enriches its FUZZY-tier candidates with ``fuzzy_edit_sim`` /
|
|
13
|
+
``fuzzy_token_sim`` signals before scoring.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def __init__(self) -> None:
|
|
17
|
+
super().__init__(name="custom_fuzzy_retrieval", domain="custom")
|
|
@@ -4,11 +4,15 @@ from resolvekit.shared.sources.code_helpers import evidence_from_code_hits
|
|
|
4
4
|
from resolvekit.shared.sources.fts_base import BM25ScoreTiers, FTSSource
|
|
5
5
|
from resolvekit.shared.sources.fuzzy_base import FuzzySource
|
|
6
6
|
from resolvekit.shared.sources.fuzzy_retrieval_base import FuzzyRetrievalSource
|
|
7
|
+
from resolvekit.shared.sources.fuzzy_retrieval_brute_base import (
|
|
8
|
+
FuzzyRetrievalBruteSource,
|
|
9
|
+
)
|
|
7
10
|
from resolvekit.shared.sources.symspell_base import SymSpellSource
|
|
8
11
|
|
|
9
12
|
__all__ = [
|
|
10
13
|
"BM25ScoreTiers",
|
|
11
14
|
"FTSSource",
|
|
15
|
+
"FuzzyRetrievalBruteSource",
|
|
12
16
|
"FuzzyRetrievalSource",
|
|
13
17
|
"FuzzySource",
|
|
14
18
|
"SymSpellSource",
|