From 9cd69165e335f47f60bc767f20d4f866eb8c958e Mon Sep 17 00:00:00 2001 From: Ant Date: Thu, 31 Oct 2024 17:29:52 -0400 Subject: [PATCH] #113 --- CHANGELOG.md | 9 ++++- setup.cfg | 2 +- src/senzing_abstract/szengine_abstract.py | 4 +- src/senzing_abstract/szengineflags.py | 47 ++++++++++++++--------- tests/szengine_test.py | 4 +- 5 files changed, 41 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e3196e..02c57ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning]. ## [Unreleased] +## [0.1.10] - 2024-10-31 + +### Changed in 0.1.10 + +- Synchronized szengineflags with latest V4 build +- Modified signatures for find_network_by_* to new default engine flag + ## [0.1.9] - 2024-10-31 ### Changed in 0.1.9 @@ -48,7 +55,7 @@ and this project adheres to [Semantic Versioning]. ### Added in 0.1.4 -- `sz_enzine.preprocess_record()` +- `sz_engine.preprocess_record()` - Engine flags: - `SZ_ENTITY_INCLUDE_RECORD_FEATURE_DETAILS` - `SZ_ENTITY_INCLUDE_RECORD_FEATURE_STATS` diff --git a/setup.cfg b/setup.cfg index 593890c..61fe679 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = senzing_abstract -version = 0.1.9 +version = 0.1.10 author = senzing author_email = support@senzing.com description = Python SDK method definitions diff --git a/src/senzing_abstract/szengine_abstract.py b/src/senzing_abstract/szengine_abstract.py index ec3ea7e..27d99bb 100644 --- a/src/senzing_abstract/szengine_abstract.py +++ b/src/senzing_abstract/szengine_abstract.py @@ -346,7 +346,7 @@ def find_network_by_entity_id( max_degrees: int, build_out_degrees: int, build_out_max_entities: int, - flags: int = SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS, + flags: int = SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS, **kwargs: Any, ) -> str: """ @@ -387,7 +387,7 @@ def find_network_by_record_id( max_degrees: int, build_out_degrees: int, build_out_max_entities: int, - flags: int = SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS, + flags: int = SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS, **kwargs: Any, ) -> str: """ diff --git a/src/senzing_abstract/szengineflags.py b/src/senzing_abstract/szengineflags.py index 07242ee..75364d3 100644 --- a/src/senzing_abstract/szengineflags.py +++ b/src/senzing_abstract/szengineflags.py @@ -68,7 +68,6 @@ def combine_flags(cls, flags: Union[List[Self], List[str]]) -> int: @classmethod def get_flag_int(cls, flag: Union[Self, str]) -> int: """TODO:""" - # TODO - Ant - Correct type? try: if isinstance(flag, str): flag = cls[flag.upper()] @@ -77,6 +76,11 @@ def get_flag_int(cls, flag: Union[Self, str]) -> int: raise SzError(f"{err} is not a valid engine flag") from err return flag_int + # Flags for including special data. + + SZ_INCLUDE_FEATURE_SCORES = 1 << 26 + SZ_INCLUDE_MATCH_KEY_DETAILS = 1 << 34 + # Flags for exporting entity data. SZ_EXPORT_INCLUDE_MULTI_RECORD_ENTITIES = 1 << 0 @@ -123,39 +127,35 @@ def get_flag_int(cls, flag: Union[Self, str]) -> int: SZ_ENTITY_INCLUDE_RECORD_MATCHING_INFO = 1 << 15 SZ_ENTITY_INCLUDE_RECORD_JSON_DATA = 1 << 16 SZ_ENTITY_INCLUDE_RECORD_UNMAPPED_DATA = 1 << 31 - SZ_ENTITY_INCLUDE_RECORD_FEATURES = 1 << 18 + SZ_ENTITY_INCLUDE_RECORD_FEATURES_IDS = 1 << 18 + SZ_ENTITY_INCLUDE_RECORD_FEATURE_DETAILS = 1 << 35 + SZ_ENTITY_INCLUDE_RECORD_FEATURE_STATS = 1 << 36 SZ_ENTITY_INCLUDE_RELATED_ENTITY_NAME = 1 << 19 SZ_ENTITY_INCLUDE_RELATED_MATCHING_INFO = 1 << 20 SZ_ENTITY_INCLUDE_RELATED_RECORD_SUMMARY = 1 << 21 SZ_ENTITY_INCLUDE_RELATED_RECORD_TYPES = 1 << 29 SZ_ENTITY_INCLUDE_RELATED_RECORD_DATA = 1 << 22 - SZ_ENTITY_INCLUDE_RECORD_FEATURE_DETAILS = 1 << 35 - SZ_ENTITY_INCLUDE_RECORD_FEATURE_STATS = 1 << 36 # Flags for extra feature data. SZ_ENTITY_INCLUDE_INTERNAL_FEATURES = 1 << 23 SZ_ENTITY_INCLUDE_FEATURE_STATS = 1 << 24 - # Flags for extra matching data. - - SZ_INCLUDE_MATCH_KEY_DETAILS = 1 << 34 - - # Flags for finding entity path & network data. + # Flags for finding entity path data. SZ_FIND_PATH_STRICT_AVOID = 1 << 25 SZ_FIND_PATH_INCLUDE_MATCHING_INFO = 1 << 30 SZ_FIND_NETWORK_INCLUDE_MATCHING_INFO = 1 << 33 - # Flags for including search result information. + # Flags for including search result feature scores. - SZ_INCLUDE_FEATURE_SCORES = 1 << 26 + # SZ_INCLUDE_FEATURE_SCORES = 1 << 26 SZ_SEARCH_INCLUDE_STATS = 1 << 27 # Flag for returning with info responses. SZ_WITH_INFO = 1 << 62 - # Flags for exporting entity data. + # Flags for searching for entities. SZ_SEARCH_INCLUDE_RESOLVED = SZ_EXPORT_INCLUDE_MULTI_RECORD_ENTITIES SZ_SEARCH_INCLUDE_POSSIBLY_SAME = SZ_EXPORT_INCLUDE_POSSIBLY_SAME @@ -168,10 +168,12 @@ def get_flag_int(cls, flag: Union[Self, str]) -> int: | SZ_SEARCH_INCLUDE_NAME_ONLY ) - # Recommended settings. + # Recommended settings for various API functions. + # The recommended default flag values for getting records. SZ_RECORD_DEFAULT_FLAGS = SZ_ENTITY_INCLUDE_RECORD_JSON_DATA + # The recommended default flag values for getting entities. SZ_ENTITY_DEFAULT_FLAGS = ( SZ_ENTITY_INCLUDE_ALL_RELATIONS | SZ_ENTITY_INCLUDE_REPRESENTATIVE_FEATURES @@ -184,26 +186,24 @@ def get_flag_int(cls, flag: Union[Self, str]) -> int: | SZ_ENTITY_INCLUDE_RELATED_MATCHING_INFO ) + # The recommended default flag values for a brief entity result. SZ_ENTITY_BRIEF_DEFAULT_FLAGS = ( SZ_ENTITY_INCLUDE_RECORD_MATCHING_INFO | SZ_ENTITY_INCLUDE_ALL_RELATIONS | SZ_ENTITY_INCLUDE_RELATED_MATCHING_INFO ) + # The recommended default flag values for exporting entities. SZ_EXPORT_DEFAULT_FLAGS = SZ_EXPORT_INCLUDE_ALL_ENTITIES | SZ_ENTITY_DEFAULT_FLAGS + # The recommended default flag values for finding entity paths. SZ_FIND_PATH_DEFAULT_FLAGS = ( SZ_FIND_PATH_INCLUDE_MATCHING_INFO | SZ_ENTITY_INCLUDE_ENTITY_NAME | SZ_ENTITY_INCLUDE_RECORD_SUMMARY ) - SZ_FIND_NETWORK_DEFAULT_FLAGS = ( - SZ_FIND_NETWORK_INCLUDE_MATCHING_INFO - | SZ_ENTITY_INCLUDE_ENTITY_NAME - | SZ_ENTITY_INCLUDE_RECORD_SUMMARY - ) - + # The recommended default flag values for why-analysis on entities. SZ_WHY_ENTITIES_DEFAULT_FLAGS = ( SZ_ENTITY_DEFAULT_FLAGS | SZ_ENTITY_INCLUDE_INTERNAL_FEATURES @@ -225,10 +225,15 @@ def get_flag_int(cls, flag: Union[Self, str]) -> int: | SZ_INCLUDE_FEATURE_SCORES ) + # The recommended default flag values for how-analysis on entities. SZ_HOW_ENTITY_DEFAULT_FLAGS = SZ_INCLUDE_FEATURE_SCORES + # The recommended default flag values for virtual-entity-analysis on entities. SZ_VIRTUAL_ENTITY_DEFAULT_FLAGS = SZ_ENTITY_DEFAULT_FLAGS + # The recommended settings for searching by attributes. + + # The recommended flag values for searching by attributes, returning all matching entities. SZ_SEARCH_BY_ATTRIBUTES_ALL = ( SZ_SEARCH_INCLUDE_ALL_ENTITIES | SZ_ENTITY_INCLUDE_REPRESENTATIVE_FEATURES @@ -237,6 +242,7 @@ def get_flag_int(cls, flag: Union[Self, str]) -> int: | SZ_INCLUDE_FEATURE_SCORES ) + # The recommended flag values for searching by attributes, returning only strongly matching entities. SZ_SEARCH_BY_ATTRIBUTES_STRONG = ( SZ_SEARCH_INCLUDE_RESOLVED | SZ_SEARCH_INCLUDE_POSSIBLY_SAME @@ -246,10 +252,13 @@ def get_flag_int(cls, flag: Union[Self, str]) -> int: | SZ_INCLUDE_FEATURE_SCORES ) + # Return minimal data with all matches. SZ_SEARCH_BY_ATTRIBUTES_MINIMAL_ALL = SZ_SEARCH_INCLUDE_ALL_ENTITIES + # Return minimal data with only the strongest matches. SZ_SEARCH_BY_ATTRIBUTES_MINIMAL_STRONG = ( SZ_SEARCH_INCLUDE_RESOLVED | SZ_SEARCH_INCLUDE_POSSIBLY_SAME ) + # Rhe recommended default flag values for search-by-attributes. SZ_SEARCH_BY_ATTRIBUTES_DEFAULT_FLAGS = SZ_SEARCH_BY_ATTRIBUTES_ALL diff --git a/tests/szengine_test.py b/tests/szengine_test.py index babf85b..94cb972 100644 --- a/tests/szengine_test.py +++ b/tests/szengine_test.py @@ -255,7 +255,7 @@ def find_network_by_entity_id( max_degrees: int, build_out_degrees: int, build_out_max_entities: int, - flags: int = SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS, + flags: int = SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS, **kwargs: Any, ) -> str: return "" @@ -266,7 +266,7 @@ def find_network_by_record_id( max_degrees: int, build_out_degrees: int, build_out_max_entities: int, - flags: int = SzEngineFlags.SZ_FIND_NETWORK_DEFAULT_FLAGS, + flags: int = SzEngineFlags.SZ_FIND_PATH_DEFAULT_FLAGS, **kwargs: Any, ) -> str: return ""