Skip to content

Commit 13cfca6

Browse files
committed
#137 Save point
1 parent d6fcdc5 commit 13cfca6

12 files changed

Lines changed: 1390 additions & 265 deletions

.vscode_borked/settings.json

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"python.testing.unittestEnabled": false,
3+
"python.testing.pytestEnabled": true,
4+
"terminal.integrated.env.linux": {
5+
// "PYTHONPATH": ".:/home/ant/Work/Senzing/git/sz-sdk-python/src:/home/ant/Work/Senzing/git/sz-sdk-python/src/senzing:/home/ant/Work/Senzing/git/sz-sdk-python-abstract/src:/home/ant/Work/Senzing/git/sz-sdk-python-abstract/src/senzing_abstract",
6+
"PYTHONPATH": ":/home/ant/Work/Senzing/git/sz-sdk-python/src:/home/ant/Work/Senzing/git/sz-sdk-python/src/senzing:/home/ant/Work/Senzing/git/sz-sdk-python-core/src:/home/ant/Work/Senzing/git/sz-sdk-python-core/src/senzing_core:./sz_tools",
7+
// "PYTHONPATH": "./sz_tools",
8+
"LD_LIBRARY_PATH": "/opt/senzing/er/lib/",
9+
// "SENZING_ENGINE_CONFIGURATION_JSON": "{\"PIPELINE\":{\"CONFIGPATH\":\"/etc/opt/senzing\",\"RESOURCEPATH\":\"/opt/senzing/er/resources\",\"SUPPORTPATH\":\"/opt/senzing/data\"},\"SQL\":{\"CONNECTION\":\"sqlite3://na:na@/tmp/sqlite/G2C.db\"}}"
10+
"SENZING_ENGINE_CONFIGURATION_JSON": "{\"PIPELINE\":{\"CONFIGPATH\":\"/etc/opt/senzing\",\"RESOURCEPATH\":\"/opt/senzing/er/resources\",\"SUPPORTPATH\":\"/opt/senzing/data\"},\"SQL\":{\"CONNECTION\":\"sqlite3://na:na@/tmp/sqlite/G2C.db\"}, \"LOGGING\":{\"CONFIG\":\"console://stdout/?style=jsonl *.TRCE;*.CRIT;*.ERR\"}}"
11+
// "SENZING_ENGINE_CONFIGURATION_JSON": "{\"PIPELINE\":{\"CONFIGPATH\":\"/etc/opt/senzing\",\"LICENSESTRINGBASE64\": \"AQAAADgCAAAAAAAAU2VuemluZyBJbnRlcm5hbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU2VuemluZyBJbnRlcm5hbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIwMjQtMDUtMDIAAAAAAAAAAAAARVZBTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNUQU5EQVJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4mH8AAEBCDwAAAAAAMjAyNS0wNS0wMgAAAAAAAAAAAABZRUFSTFkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXwDOdVd1TL+0dJRXnE9ykJJyJYnGhUN1QqoS8ASfNaDioankisRviWuB3I5uQ20EEh9tjNzzOszGf1+khWl5cb+XqE+GoMMW0rrSi6ScZmgrfh2oHrRpEbnfb4uejMrl3XGdTPdHUGNSkTKDgEQrlimVt04W5gsFVcBHBiUbKoZCghI+qaYGocsNZLh1yWOklu8Fh02CWkXXQZSKvq/PsXpkHtbsxPbActcMmZRYPZNiRXq0BK3ChyCRM0zbl4mZCPBfNL9zAx6v2HLUmDp4lNEVIyS86T9/enSrsK1udnJq09jnP8gBzY6kBxpoYyxr5o2u1VX3DC9ySHiwtio6NQMo0ckGultNqYpSBejXm10YCYH6eCsnnC5z49Gp+2NYIRcgRz/N93uLd7PrkLyLreayF8HCQOg7CBZeUGcFsufdf0304eJHCsoRy1w2dUT8N2auYJxuzjwzAMvZIYrYamjiG6Mc4Wdcpuktlcht+pjhqk9vwqQI0AzjMq2oXDGYL6KlFcOAojAIZu8bl30pZGGkq2n9NFuuO4gMiRjIwYkBpwHNmBq3QT21owPb4urlidmQelmXtzk9+BNMZL34bUK7R509Rt3GTmjb2c5TDqyIatGfnBsh3658ce8ohnBJ/ZmUgJifcorgLDawDqr8spClKfwLtcwzbkNPDKHJ/e\",\"RESOURCEPATH\":\"/opt/senzing/g2/resources\",\"SUPPORTPATH\":\"/opt/senzing/data\"},\"SQL\":{\"CONNECTION\":\"sqlite3://na:na@/tmp/sqlite/G2C.db\"}}"
12+
},
13+
"python.testing.pytestArgs": [],
14+
"python.autoComplete.extraPaths": [
15+
"/home/ant/Work/Senzing/git/sz-sdk-python-core/src",
16+
"/home/ant/Work/Senzing/git/sz-sdk-python-core/src/senzing_core",
17+
"./sz_tools",
18+
"/home/ant/Work/Senzing/git/sz-sdk-python/src",
19+
"/home/ant/Work/Senzing/git/sz-sdk-python/src/senzing"
20+
],
21+
"python.analysis.extraPaths": [
22+
"/home/ant/Work/Senzing/git/sz-sdk-python-core/src",
23+
"/home/ant/Work/Senzing/git/sz-sdk-python-core/src/senzing_core",
24+
"./sz_tools",
25+
"/home/ant/Work/Senzing/git/sz-sdk-python/src",
26+
"/home/ant/Work/Senzing/git/sz-sdk-python/src/senzing"
27+
],
28+
"peacock.remoteColor": "#0c9bdb",
29+
"workbench.colorCustomizations": {
30+
"activityBar.activeBackground": "#27b4f3",
31+
"activityBar.background": "#27b4f3",
32+
"activityBar.foreground": "#15202b",
33+
"activityBar.inactiveForeground": "#15202b99",
34+
"activityBarBadge.background": "#d30c96",
35+
"activityBarBadge.foreground": "#e7e7e7",
36+
"commandCenter.border": "#e7e7e799",
37+
"sash.hoverBorder": "#27b4f3",
38+
"statusBar.background": "#0c9bdb",
39+
"statusBar.foreground": "#e7e7e7",
40+
"statusBarItem.hoverBackground": "#27b4f3",
41+
"statusBarItem.remoteBackground": "#0c9bdb",
42+
"statusBarItem.remoteForeground": "#e7e7e7",
43+
"titleBar.activeBackground": "#0c9bdb",
44+
"titleBar.activeForeground": "#e7e7e7",
45+
"titleBar.inactiveBackground": "#0c9bdb99",
46+
"titleBar.inactiveForeground": "#e7e7e799"
47+
},
48+
// "pylint.args": [
49+
// " \"--init-hook='import sys; sys.path.append(\\\"/home/ant/Work/Senzing/git/sz-sdk-python/src\\\")'; sys.path.append(\\\"/home/ant/Work/Senzing/git/sz-sdk-python/src/senzing\\\")'\""
50+
// " \"--init-hook='import sys; sys.path.append(\\\"${workspaceFolder}/src\\\")'\"" ],
51+
// "python.testing.pytestArgs": [
52+
// "tests"
53+
// ],
54+
}

development-requirements.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@ isort==6.0.1
88
mypy==1.15.0
99
psutil==7.0.0
1010
pylint==3.3.6
11-
pytest-cov==6.1.0
11+
pytest-cov==6.1.1
1212
pytest-schema==0.1.2
1313
pytest==8.3.5
1414
sphinx-autodoc-typehints==3.1.0
1515
sphinx-gallery==0.19.0
1616
sphinx-jinja2-compat==0.3.0
1717
sphinx-prompt==1.9.0
18+
sphinxext-remoteliteralinclude==0.5.0
1819
sphinx-rtd-theme==3.0.2
1920
sphinx-tabs==3.4.7
20-
sphinx-toolbox==3.9.0
21+
sphinx-toolbox==3.8.0
2122
sphinx==8.2.3
2223
sphinxcontrib-applehelp==2.0.0
2324
sphinxcontrib-devhelp==2.0.0

pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ max-line-length = 120
2222
profile = "black"
2323
src_paths = ["examples", "src", "tests"]
2424

25+
[tool.mypy]
26+
exclude = ['.venv', 'g2_tools']
27+
2528
[[tool.mypy.overrides]]
2629
module = "senzing_abstract.szengineflags.*"
2730
ignore_missing_imports = "true"

sz_tools/_tool_helpers.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -977,5 +977,10 @@ def get_calling_function_name() -> str:
977977

978978

979979
def in_docker():
980+
"""Attempt to detect if running in a Docker container. Using the env var is ideal, other methods aren't foolproof"""
980981
cgroup = Path("/proc/self/cgroup")
981-
return Path("/.dockerenv").is_file() or (cgroup.is_file() and "docker" in cgroup.read_text())
982+
return (
983+
bool(os.getenv("SENZING_DOCKER_LAUNCHED"))
984+
or Path("/.dockerenv").is_file()
985+
or (cgroup.is_file() and "docker" in cgroup.read_text())
986+
)

sz_tools/sz_command

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ from _tool_helpers import (
4242
response_to_file,
4343
)
4444
from senzing import SzError
45-
from senzing_core import SzAbstractFactoryCore
45+
46+
# TODO -
47+
# from senzing_core import SzAbstractFactoryCore
48+
from senzing_core import SzAbstractFactoryCore, SzConfigCore
4649

4750
_WrappedFunc = TypeVar("_WrappedFunc", bound=Callable[..., Any])
4851

@@ -315,7 +318,9 @@ class SzCmdShell(cmd.Cmd):
315318

316319
self.sz_engine = self.sz_factory.create_engine()
317320
self.sz_diagnostic = self.sz_factory.create_diagnostic()
318-
self.sz_config = self.sz_factory.create_config()
321+
# TODO -
322+
# self.sz_config = self.sz_factory.create_config()
323+
self.sz_config = SzConfigCore()
319324
self.sz_configmgr = self.sz_factory.create_configmanager()
320325
self.sz_product = self.sz_factory.create_product()
321326

@@ -575,8 +580,11 @@ class SzCmdShell(cmd.Cmd):
575580
# TODO - Work in progress for JSON autocomplete
576581
try:
577582
config_id = self.sz_engine.get_active_config_id()
578-
config = self.sz_configmgr.get_config(config_id)
579-
config_json = json.loads(config)
583+
# TODO -
584+
# config = self.sz_configmgr.get_config(config_id)
585+
sz_config = self.sz_configmgr.create_config_from_config_id(config_id)
586+
# config_json_str = sz_config.export()
587+
config_json = json.loads(sz_config.export())
580588
cfg_attr = config_json["G2_CONFIG"]["CFG_ATTR"]
581589
attr_codes = [attr["ATTR_CODE"] for attr in cfg_attr if attr["INTERNAL"].lower() == "no"]
582590
except (SzError, json.JSONDecodeError):
@@ -828,9 +836,12 @@ class SzCmdShell(cmd.Cmd):
828836
829837
"""
830838

831-
config_handle = self.sz_config.create_config()
832-
response = self.sz_config.export_config(config_handle)
833-
self.sz_config.close_config(config_handle)
839+
# TODO -
840+
# config_handle = self.sz_config.create_config()
841+
# response = self.sz_config.export_config(config_handle)
842+
# self.sz_config.close_config(config_handle)
843+
sz_config = self.sz_configmgr.create_config_from_template()
844+
response = sz_config.export()
834845
self.last_response = self.output_response(response)
835846

836847
# -----------------------------------------------------------------------------
@@ -856,7 +867,10 @@ class SzCmdShell(cmd.Cmd):
856867
857868
- Retrieve a list of configurations and identifiers with get_configs"""
858869

859-
response = self.sz_configmgr.get_config(kwargs["parsed_args"].config_id)
870+
# TODO -
871+
# response = self.sz_configmgr.get_config(kwargs["parsed_args"].config_id)
872+
sz_config = self.sz_configmgr.create_config_from_config_id(kwargs["parsed_args"].config_id)
873+
response = sz_config.export()
860874
self.last_response = self.output_response(response)
861875

862876
@do_methods_decorator

sz_tools/sz_configtool

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,14 @@ class SzCfgShell(cmd.Cmd):
121121
self.engine_config = engine_config
122122
try:
123123
self.sz_factory = SzAbstractFactoryCore(MODULE_NAME, self.engine_config)
124+
self.sz_configmgr = self.sz_factory.create_configmanager()
124125
except SzError as err:
125126
print(err)
126127
sys.exit(1)
127128

128-
self.sz_config = self.sz_factory.create_config()
129-
self.sz_configmgr = self.sz_factory.create_configmanager()
129+
# TODO -
130+
# self.sz_config = self.sz_factory.create_config()
131+
# self.sz_configmgr = self.sz_factory.create_configmanager()
130132

131133
# Used to change the theme and for setting cmd prompt, use the default colors set by the terminal
132134
self.themes = Colors.AVAILABLE_THEMES
@@ -606,14 +608,22 @@ class SzCfgShell(cmd.Cmd):
606608

607609
# If a default config isn't found, create a new default configuration
608610
if not config_id:
609-
config_handle = self.sz_config.create_config()
610-
default_config = self.sz_config.export_config(config_handle)
611-
611+
# TODO -
612+
# config_handle = self.sz_config.create_config()
613+
# default_config = self.sz_config.export_config(config_handle)
614+
sz_config = self.sz_configmgr.create_config_from_template()
615+
default_config = sz_config.export()
612616
# Persist new default config to Senzing Repository
613617
try:
614-
config_id = self.sz_configmgr.add_config(
618+
# TODO -
619+
# config_id = self.sz_configmgr.add_config(
620+
# default_config,
621+
# f"New default configuration added by f{MODULE_NAME}.",
622+
# )
623+
# self.sz_configmgr.set_default_config_id(config_id)
624+
config_id = self.sz_configmgr.register_config(
615625
default_config,
616-
f"New default configuration added by f{MODULE_NAME}.",
626+
f"New default configuration added by {MODULE_NAME}.",
617627
)
618628
self.sz_configmgr.set_default_config_id(config_id)
619629
except SzError:
@@ -622,7 +632,10 @@ class SzCfgShell(cmd.Cmd):
622632
colorize_msg("No configuration in the database, default config has been created", "success")
623633
self.sz_factory.reinitialize(config_id)
624634

625-
current_config = self.sz_configmgr.get_config(config_id)
635+
# TODO -
636+
# current_config = self.sz_configmgr.get_config(config_id)
637+
sz_config = self.sz_configmgr.create_config_from_config_id(config_id)
638+
current_config = sz_config.export()
626639
self.config_data = json.loads(current_config)
627640
self.config_updated = False
628641

@@ -725,7 +738,12 @@ class SzCfgShell(cmd.Cmd):
725738
return
726739

727740
try:
728-
new_config_id = self.sz_configmgr.add_config(json.dumps(self.config_data), f"Updated by {MODULE_NAME}")
741+
# TODO -
742+
# new_config_id = self.sz_configmgr.add_config(json.dumps(self.config_data), f"Updated by {MODULE_NAME}")
743+
new_config_id = self.sz_configmgr.register_config(
744+
json.dumps(self.config_data),
745+
f"Updated by {MODULE_NAME}",
746+
)
729747
self.sz_configmgr.set_default_config_id(new_config_id)
730748
self.sz_factory.reinitialize(new_config_id)
731749
self.config_updated = False
@@ -811,14 +829,15 @@ class SzCfgShell(cmd.Cmd):
811829
else:
812830
config_id = arg_list[1]
813831
try:
814-
response = bytearray()
815-
self.sz_configmgr.getConfig(config_id, response)
816-
json_data = json.loads(response.decode())
832+
# TODO -
833+
# response = bytearray()
834+
response = self.sz_configmgr.create_config_from_config_id(config_id)
835+
json_data = json.loads(response)
817836
except SzError as err:
818837
colorize_msg(err, "error")
819838
return
820839
try:
821-
with open(fileName, "w") as fp:
840+
with open(fileName, "w", encoding="utf-8") as fp:
822841
json.dump(json_data, fp, indent=4, sort_keys=True)
823842
except OSError as err:
824843
colorize_msg(err, "error")

sz_tools/sz_explorer

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ class eda_table:
281281
else: # default
282282
table_object.horizontal_char = "\u2500"
283283
table_object.vertical_char = "\u2502"
284-
table_object.junction_char = "\u253C"
284+
table_object.junction_char = "\u253c"
285285

286286
if no_lines:
287287
table_object.border = False
@@ -1081,8 +1081,13 @@ class EdaSdkWrapper:
10811081
self.sz_diagnostic = self.sz_factory.create_diagnostic()
10821082
sz_product = self.sz_factory.create_product()
10831083
self.sdk_version = json.loads(sz_product.get_version())
1084+
# TODO -
1085+
# sz_configmgr = self.sz_factory.create_configmanager()
1086+
# sz_config_data = json.loads(sz_configmgr.get_config(sz_configmgr.get_default_config_id()))
10841087
sz_configmgr = self.sz_factory.create_configmanager()
1085-
sz_config_data = json.loads(sz_configmgr.get_config(sz_configmgr.get_default_config_id()))
1088+
sz_config = sz_configmgr.create_config_from_config_id(sz_configmgr.get_default_config_id())
1089+
sz_config_data = json.loads(sz_config.export())
1090+
10861091
except SzError as err:
10871092
raise Exception(err)
10881093

0 commit comments

Comments
 (0)