Skip to content

Commit 9c67a57

Browse files
committed
Refactor build script and update requirements; remove unused package references and streamline log reading methods
1 parent 4ca6a58 commit 9c67a57

File tree

4 files changed

+34
-45
lines changed

4 files changed

+34
-45
lines changed

build-dist.sh

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,6 @@
22

33
rm -rf ./build
44

5-
packages=("intersystems_iris" "irisnative")
6-
for package in ${packages[@]};
7-
do
8-
rm -f ./src/$package
9-
package_path=`python -c "import importlib.util; print(importlib.util.find_spec('${package}').submodule_search_locations[0])"`
10-
ln -s $package_path ./src/$package
11-
done
12-
135
set -eo pipefail
146

157
PYTHON_BIN=${PYTHON_BIN:-python3}
@@ -21,9 +13,4 @@ set -x
2113
cd "$PROJECT"
2214
$PYTHON_BIN setup.py sdist bdist_wheel
2315

24-
for package in ${packages[@]};
25-
do
26-
rm -f ./src/$package
27-
done
28-
2916
set +x

requirements-dev.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
pytest
22
pytest-asyncio
33
xmltodict
4-
intersystems_iris @ https://github.com/intersystems-community/intersystems-irispython/releases/download/3.8.1/intersystems_iris-3.8.1-py3-none-any.whl
54
requests
65
dataclasses-json
76
wheel

src/iop/_director.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import datetime
33
import functools
44
from . import _iris
5-
import intersystems_iris.dbapi._DBAPI as irisdbapi
65
import signal
76
from dataclasses import dataclass
87

@@ -178,21 +177,22 @@ def format_log(row: list) -> str:
178177
return str(row[9]) + ' ' + typ + ' ' + str(row[1]) + ' ' + str(row[2]) + ' ' + str(row[3]) + ' ' + str(row[4]) + ' ' + str(row[5]) + ' ' + str(row[6]) + ' ' + str(row[8])
179178

180179
@staticmethod
181-
def read_top_log(cursor,top) -> list:
180+
def read_top_log(top) -> list:
182181
sql = """
183182
SELECT top ?
184183
ID, ConfigName, Job, MessageId, SessionId, SourceClass, SourceMethod, Stack, Text, TimeLogged, TraceCat, Type
185184
FROM Ens_Util.Log
186185
order by id desc
187186
"""
188187
result = []
189-
cursor.execute(sql, top)
190-
for row in cursor:
188+
stmt = _iris.get_iris().sql.prepare(sql)
189+
rs = stmt.execute(top)
190+
for row in rs:
191191
result.append(_Director.format_log(row))
192192
return result
193193

194194
@staticmethod
195-
def read_log(cursor) -> list:
195+
def read_log() -> list:
196196
sql = """
197197
SELECT
198198
ID, ConfigName, Job, MessageId, SessionId, SourceClass, SourceMethod, Stack, Text, TimeLogged, TraceCat, Type
@@ -201,8 +201,12 @@ def read_log(cursor) -> list:
201201
order by id desc
202202
"""
203203
result = []
204-
cursor.execute(sql, (datetime.datetime.now() - datetime.timedelta(seconds=1),))
205-
for row in cursor:
204+
stmt = _iris.get_iris().sql.prepare(sql)
205+
time = datetime.datetime.now() - datetime.timedelta(seconds=1)
206+
# convert to utc time
207+
time = time.astimezone(datetime.timezone.utc)
208+
rs = stmt.execute(time.isoformat(sep=' '))
209+
for row in rs:
206210
result.append(_Director.format_log(row))
207211
return result
208212

@@ -211,14 +215,12 @@ async def _log_production_async(handler):
211215
""" Log production
212216
if ctrl+c is pressed, the log is stopped
213217
"""
214-
with irisdbapi.connect(embedded=True) as conn:
215-
with conn.cursor() as cursor:
216-
while True:
217-
for row in reversed(_Director.read_log(cursor)):
218-
print(row)
219-
if handler.sigint_log:
220-
break
221-
await asyncio.sleep(1)
218+
while True:
219+
for row in reversed(_Director.read_log()):
220+
print(row)
221+
if handler.sigint_log:
222+
break
223+
await asyncio.sleep(1)
222224

223225
@staticmethod
224226
def log_production_top(top=10):
@@ -227,10 +229,8 @@ def log_production_top(top=10):
227229
Parameters:
228230
top: the number of log to display
229231
"""
230-
with irisdbapi.connect(embedded=True) as conn:
231-
with conn.cursor() as cursor:
232-
for row in reversed(_Director.read_top_log(cursor, top)):
233-
print(row)
232+
for row in reversed(_Director.read_top_log(top)):
233+
print(row)
234234

235235
@staticmethod
236236
def log_production():
@@ -240,10 +240,10 @@ def log_production():
240240
loop = asyncio.get_event_loop()
241241
handler = SigintHandler(log_only=True)
242242
loop.add_signal_handler(signal.SIGINT, functools.partial(handler.signal_handler, signal.SIGINT, loop))
243-
with irisdbapi.connect(embedded=True) as conn:
244-
with conn.cursor() as cursor:
245-
for row in reversed(_Director.read_top_log(cursor, 10)):
246-
print(row)
243+
244+
for row in reversed(_Director.read_top_log( 10)):
245+
print(row)
246+
247247
loop.run_until_complete(_Director._log_production_async(handler))
248248
loop.close()
249249

src/tests/test_commun.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import random
55
import string
66
import pytest
7-
import intersystems_iris.dbapi._DBAPI as irisdbapi
87
from iop._message_validator import is_iris_object_instance, is_message_class, is_pickle_message_class
98
from registerFilesIop.message import SimpleMessage, SimpleMessageNotMessage, PickledMessage
109
from iop._common import _Common
@@ -49,7 +48,8 @@ class TestLogging:
4948
def test_log_info_loggger(self, common, random_string):
5049
common.logger.info(random_string)
5150
rs = self._check_log_entry(random_string, 'test_log_info_loggger')
52-
assert len(rs) == 1
51+
for entry in rs:
52+
assert random_string in entry[9]
5353

5454
def test_log_info_loggger_to_console(self, common, random_string):
5555
common.log_to_console = True
@@ -82,20 +82,23 @@ def _check_log_entry(self, message, method_name):
8282
AND Text = ?
8383
ORDER BY id DESC
8484
"""
85-
with irisdbapi.connect(embedded=True) as conn:
86-
with conn.cursor() as cursor:
87-
cursor.execute(sql, (method_name, message))
88-
return cursor.fetchall()
85+
stmt = iris.sql.prepare(sql)
86+
rs = stmt.execute(method_name, message)
87+
if rs is None:
88+
return []
89+
return rs
8990

9091
def test_log_info(self, common, random_string):
9192
common.log_info(random_string)
9293
rs = self._check_log_entry(random_string, 'test_log_info')
93-
assert len(rs) == 1
94+
for entry in rs:
95+
assert random_string in entry[9]
9496

9597
def test_log_info_japanese(self, common, random_japanese):
9698
common.log_info(random_japanese)
9799
rs = self._check_log_entry(random_japanese, 'test_log_info_japanese')
98-
assert len(rs) == 1
100+
for entry in rs:
101+
assert random_japanese in entry[9]
99102

100103
class TestBusinessService:
101104
def test_get_info(self):

0 commit comments

Comments
 (0)