Skip to content

Commit 0929499

Browse files
authored
chore: remove obsolete functions (#418)
* chore: remove obsolete functions
1 parent f6edc8d commit 0929499

5 files changed

Lines changed: 2 additions & 165 deletions

File tree

tagreader/clients.py

Lines changed: 0 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import os
21
from datetime import datetime, timedelta, timezone, tzinfo
32
from itertools import groupby
43
from operator import itemgetter
@@ -16,9 +15,6 @@
1615
ReaderType,
1716
convert_to_pydatetime,
1817
ensure_datetime_with_tz,
19-
find_registry_key,
20-
find_registry_key_from_name,
21-
is_windows,
2218
)
2319
from tagreader.web_handlers import (
2420
AspenHandlerWeb,
@@ -119,83 +115,6 @@ def get_next_timeslice(
119115
return start, calc_end
120116

121117

122-
def get_server_address_aspen(datasource: str) -> Optional[Tuple[str, int]]:
123-
"""Data sources are listed under
124-
HKEY_CURRENT_USER\\Software\\AspenTech\\ADSA\\Caches\\AspenADSA\\username.
125-
For each data source there are multiple keys with Host entries. We start by
126-
identifying the correct key to use by locating the UUID for Aspen SQLplus
127-
services located under Aspen SQLplus service component. Then we find the
128-
host and port based on the path above and the UUID.
129-
"""
130-
131-
# todo: is obsolete after removing ODBC
132-
133-
if not is_windows():
134-
return None
135-
import winreg
136-
137-
regkey_clsid = winreg.OpenKey(
138-
winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Classes\Wow6432Node\CLSID"
139-
)
140-
regkey, _ = find_registry_key_from_name(
141-
regkey_clsid, "Aspen SQLplus service component"
142-
)
143-
regkey_implemented_categories = winreg.OpenKeyEx(regkey, "Implemented Categories")
144-
145-
_, aspen_uuid = find_registry_key_from_name(
146-
regkey_implemented_categories, "Aspen SQLplus services"
147-
)
148-
149-
reg_adsa = winreg.OpenKey(
150-
winreg.HKEY_CURRENT_USER,
151-
r"Software\AspenTech\ADSA\Caches\AspenADSA\\" + os.getlogin(),
152-
)
153-
154-
try:
155-
reg_site_key = winreg.OpenKey(reg_adsa, datasource + "\\" + aspen_uuid)
156-
host = winreg.QueryValueEx(reg_site_key, "Host")[0]
157-
port = int(winreg.QueryValueEx(reg_site_key, "Port")[0])
158-
return host, port
159-
except FileNotFoundError:
160-
return None
161-
162-
163-
def get_server_address_pi(datasource: str) -> Optional[Tuple[str, int]]:
164-
"""
165-
PI data sources are listed under
166-
HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\PISystem\\PI-SDK\\x.x\\ServerHandles or
167-
\\Software\\PISystem\\PI-SDK\\x.x\\ServerHandles.
168-
169-
:param datasource: Name of data source
170-
:return: host, port
171-
:type: tuple(string, int)
172-
"""
173-
# todo: is obsolete after removing ODBC
174-
175-
if not is_windows():
176-
return None
177-
import winreg
178-
179-
try:
180-
reg_key = winreg.OpenKey(
181-
winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\Wow6432Node\PISystem\PI-SDK"
182-
)
183-
reg_key_handles = find_registry_key(reg_key, "ServerHandles")
184-
reg_site_key = find_registry_key(reg_key_handles, datasource)
185-
if reg_site_key is None:
186-
reg_key = winreg.OpenKey(
187-
winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\PISystem\PI-SDK"
188-
)
189-
reg_key_handles = find_registry_key(reg_key, "ServerHandles")
190-
reg_site_key = find_registry_key(reg_key_handles, datasource)
191-
if reg_site_key is not None:
192-
host = winreg.QueryValueEx(reg_site_key, "path")[0]
193-
port = int(winreg.QueryValueEx(reg_site_key, "port")[0])
194-
return host, port
195-
except FileNotFoundError:
196-
return None
197-
198-
199118
def get_handler(
200119
imstype: Optional[IMSType],
201120
datasource: str,

tagreader/utils.py

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -33,41 +33,6 @@ def is_linux() -> bool:
3333
import subprocess
3434

3535

36-
def find_registry_key(base_key, search_key_name: str):
37-
search_key_name = search_key_name.lower()
38-
if base_key is not None:
39-
num_keys, _, _ = winreg.QueryInfoKey(base_key)
40-
for i in range(0, num_keys):
41-
key_name = winreg.EnumKey(base_key, i)
42-
if key_name.lower() == search_key_name:
43-
return winreg.OpenKey(base_key, key_name)
44-
else:
45-
key = find_registry_key(
46-
winreg.OpenKey(base_key, key_name), search_key_name
47-
)
48-
if key is not None:
49-
return key
50-
return None
51-
52-
53-
def find_registry_key_from_name(base_key, search_key_name: str):
54-
search_key_name = search_key_name.lower()
55-
num_keys, _, _ = winreg.QueryInfoKey(base_key)
56-
key = key_string = None
57-
for i in range(0, num_keys):
58-
try:
59-
key_string = winreg.EnumKey(base_key, i)
60-
key = winreg.OpenKey(base_key, key_string)
61-
_, num_vals, _ = winreg.QueryInfoKey(key)
62-
if num_vals > 0:
63-
(_, key_name, _) = winreg.EnumValue(key, 0)
64-
if str(key_name).lower() == search_key_name:
65-
break
66-
except Exception as err:
67-
logging.error("{}: {}".format(i, err))
68-
return key, key_string
69-
70-
7136
def convert_to_pydatetime(date_stamp: Union[datetime, str, pd.Timestamp]) -> datetime:
7237
if isinstance(date_stamp, datetime):
7338
return date_stamp

tagreader/web_handlers.py

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from tagreader.cache import BucketCache, SmartCache
2121
from tagreader.logger import logger
22-
from tagreader.utils import IMSType, ReaderType, is_mac, is_windows, urljoin
22+
from tagreader.utils import ReaderType, is_mac, is_windows, urljoin
2323

2424

2525
class MD4:
@@ -258,11 +258,6 @@ def __init__(
258258
self._max_rows = options.get("max_rows", 100000)
259259
self._connection_string = "" # Used for raw SQL queries
260260

261-
@staticmethod
262-
def generate_connection_string(host, *_, **__):
263-
# todo: is obsolete after removing ODBC
264-
raise NotImplementedError
265-
266261
@staticmethod
267262
def generate_search_query(
268263
tag: Optional[str],
@@ -670,27 +665,6 @@ def generate_sql_query(
670665
connection_string += f"<![CDATA[{query}]]></SQL>"
671666
return connection_string
672667

673-
def initialize_connection_string(
674-
# todo: is obsolete after removing ODBC
675-
self,
676-
host: Optional[str] = None,
677-
port: int = 10014,
678-
connection_string: Optional[str] = None,
679-
):
680-
# todo: is obsolete after removing ODBC
681-
if connection_string:
682-
self._connection_string = connection_string
683-
else:
684-
if host is None:
685-
from tagreader.clients import get_server_address_aspen
686-
687-
host = get_server_address_aspen(self.datasource)
688-
self._connection_string = (
689-
f"DRIVER=AspenTech SQLPlus;HOST={host};"
690-
f"PORT={port};CHARINT=N;CHARFLOAT=N;"
691-
"CHARTIME=N;CONVERTERRORS=N"
692-
)
693-
694668
def query_sql(self, query: str, parse: bool = True) -> Union[str, pd.DataFrame]:
695669
url = urljoin(self.base_url, "SQL")
696670
if self._connection_string is None:
@@ -758,11 +732,6 @@ def __init__(
758732
def _time_to_UTC_string(time: datetime) -> str:
759733
return time.astimezone(pytz.UTC).strftime("%d-%b-%y %H:%M:%S")
760734

761-
@staticmethod
762-
def generate_connection_string(host, *_, **__):
763-
# todo: is obsolete after removing ODBC
764-
raise NotImplementedError
765-
766735
@staticmethod
767736
def escape(s: str) -> str:
768737
# https://techsupport.osisoft.com/Documentation/PI-Web-API/help/topics/search-queries.html

tests/test_AspenHandlerREST.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -232,19 +232,3 @@ def test_generate_sql_query(aspen_handler: AspenHandlerWeb) -> None:
232232
"<![CDATA[myquery]]></SQL>"
233233
)
234234
assert res == expected
235-
236-
237-
def test_initialize_connection_string(aspen_handler: AspenHandlerWeb) -> None:
238-
# todo: is obsolete after removing ODBC
239-
aspen_handler.initialize_connection_string(
240-
host="my_host", port=999, connection_string="my_connection_string"
241-
)
242-
assert aspen_handler._connection_string == "my_connection_string"
243-
aspen_handler.initialize_connection_string(
244-
host="my_host",
245-
port=999,
246-
)
247-
assert aspen_handler._connection_string == (
248-
"DRIVER=AspenTech SQLPlus;HOST=my_host;PORT=999;"
249-
"CHARINT=N;CHARFLOAT=N;CHARTIME=N;CONVERTERRORS=N"
250-
)

tests/test_clients.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import pytz
66

77
from tagreader.clients import IMSClient, get_missing_intervals, get_next_timeslice
8-
from tagreader.utils import IMSType, ReaderType, is_windows
8+
from tagreader.utils import IMSType, ReaderType
99

1010

1111
def test_init_client_without_cache() -> None:

0 commit comments

Comments
 (0)