iris-pex-embedded-python 3.1.1b2__py3-none-any.whl → 3.1.1b4__py3-none-any.whl
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.
Potentially problematic release.
This version of iris-pex-embedded-python might be problematic. Click here for more details.
- iop/_business_host.py +59 -52
- iop/_director.py +2 -2
- iop/_utils.py +32 -18
- iop/cls/IOP/Message.cls +21 -9
- iop/cls/IOP/Test.cls +13 -1
- iop/cls/IOP/Utils.cls +1 -1
- {iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/METADATA +4 -4
- {iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/RECORD +12 -12
- {iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/WHEEL +1 -1
- {iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/LICENSE +0 -0
- {iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/entry_points.txt +0 -0
- {iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/top_level.txt +0 -0
iop/_business_host.py
CHANGED
|
@@ -34,15 +34,14 @@ class _BusinessHost(_Common):
|
|
|
34
34
|
:param fonction: the function that will be decorated
|
|
35
35
|
:return: The function dispatch_serializer is being returned.
|
|
36
36
|
"""
|
|
37
|
-
def dispatch_serializer(self
|
|
38
|
-
# Handle positional arguments
|
|
39
|
-
serialized=[]
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return fonction(self,*serialized, **param2)
|
|
37
|
+
def dispatch_serializer(self, *params, **param2):
|
|
38
|
+
# Handle positional arguments using list comprehension
|
|
39
|
+
serialized = [self._dispatch_serializer(param) for param in params]
|
|
40
|
+
|
|
41
|
+
# Handle keyword arguments using dictionary comprehension
|
|
42
|
+
param2 = {key: self._dispatch_serializer(value) for key, value in param2.items()}
|
|
43
|
+
|
|
44
|
+
return fonction(self, *serialized, **param2)
|
|
46
45
|
return dispatch_serializer
|
|
47
46
|
|
|
48
47
|
def input_serialzer_param(position:int,name:str):
|
|
@@ -55,19 +54,20 @@ class _BusinessHost(_Common):
|
|
|
55
54
|
"""
|
|
56
55
|
def input_serialzer_param(fonction):
|
|
57
56
|
@wraps(fonction)
|
|
58
|
-
def dispatch_serializer(self
|
|
59
|
-
# Handle positional arguments
|
|
60
|
-
serialized=[
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
57
|
+
def dispatch_serializer(self, *params, **param2):
|
|
58
|
+
# Handle positional arguments using list comprehension
|
|
59
|
+
serialized = [
|
|
60
|
+
self._dispatch_serializer(param) if i == position else param
|
|
61
|
+
for i, param in enumerate(params)
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
# Handle keyword arguments using dictionary comprehension
|
|
65
|
+
param2 = {
|
|
66
|
+
key: self._dispatch_serializer(value) if key == name else value
|
|
67
|
+
for key, value in param2.items()
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return fonction(self, *serialized, **param2)
|
|
71
71
|
return dispatch_serializer
|
|
72
72
|
return input_serialzer_param
|
|
73
73
|
|
|
@@ -93,15 +93,14 @@ class _BusinessHost(_Common):
|
|
|
93
93
|
:param fonction: the function that will be decorated
|
|
94
94
|
:return: The function dispatch_deserializer is being returned.
|
|
95
95
|
"""
|
|
96
|
-
def dispatch_deserializer(self
|
|
97
|
-
# Handle positional arguments
|
|
98
|
-
serialized=[]
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return fonction(self,*serialized, **param2)
|
|
96
|
+
def dispatch_deserializer(self, *params, **param2):
|
|
97
|
+
# Handle positional arguments using list comprehension
|
|
98
|
+
serialized = [self._dispatch_deserializer(param) for param in params]
|
|
99
|
+
|
|
100
|
+
# Handle keyword arguments using dictionary comprehension
|
|
101
|
+
param2 = {key: self._dispatch_deserializer(value) for key, value in param2.items()}
|
|
102
|
+
|
|
103
|
+
return fonction(self, *serialized, **param2)
|
|
105
104
|
return dispatch_deserializer
|
|
106
105
|
|
|
107
106
|
def output_serialzer(fonction):
|
|
@@ -236,18 +235,20 @@ class _BusinessHost(_Common):
|
|
|
236
235
|
:param message: The message to be serialized
|
|
237
236
|
:return: The serialized message
|
|
238
237
|
"""
|
|
239
|
-
if
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
238
|
+
if message is not None:
|
|
239
|
+
if self._is_message_instance(message):
|
|
240
|
+
return self._serialize_message(message)
|
|
241
|
+
elif self._is_pickle_message_instance(message):
|
|
242
|
+
return self._serialize_pickle_message(message)
|
|
243
|
+
elif self._is_iris_object_instance(message):
|
|
244
|
+
return message
|
|
245
|
+
|
|
246
|
+
if message == "" or message is None:
|
|
246
247
|
return message
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
|
|
249
|
+
# todo : decorator takes care of all the parameters, so this should never happen
|
|
250
|
+
# return message
|
|
251
|
+
raise TypeError("The message must be an instance of a class that is a subclass of Message or IRISObject %Persistent class.")
|
|
251
252
|
|
|
252
253
|
def _serialize_message(self,message):
|
|
253
254
|
""" Converts a python dataclass message into an iris iop.message.
|
|
@@ -265,8 +266,8 @@ class _BusinessHost(_Common):
|
|
|
265
266
|
msg = iris.cls('IOP.Message')._New()
|
|
266
267
|
msg.classname = module + "." + classname
|
|
267
268
|
|
|
268
|
-
if hasattr(
|
|
269
|
-
msg.json = _Utils.string_to_stream(json_string)
|
|
269
|
+
if hasattr(msg, 'buffer') and len(json_string) > msg.buffer:
|
|
270
|
+
msg.json = _Utils.string_to_stream(json_string,msg.buffer)
|
|
270
271
|
else:
|
|
271
272
|
msg.json = json_string
|
|
272
273
|
|
|
@@ -291,16 +292,22 @@ class _BusinessHost(_Common):
|
|
|
291
292
|
:return: The return value is a tuple of the form (serial, serial_type)
|
|
292
293
|
"""
|
|
293
294
|
if (
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
295
|
+
serial is not None
|
|
296
|
+
and type(serial).__module__.startswith('iris')
|
|
297
|
+
and (
|
|
298
|
+
serial._IsA("IOP.Message")
|
|
299
|
+
or serial._IsA("Grongier.PEX.Message")
|
|
300
|
+
)
|
|
301
|
+
):
|
|
298
302
|
return self._deserialize_message(serial)
|
|
299
303
|
elif (
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
+
serial is not None
|
|
305
|
+
and type(serial).__module__.startswith('iris')
|
|
306
|
+
and (
|
|
307
|
+
serial._IsA("IOP.PickleMessage")
|
|
308
|
+
or serial._IsA("Grongier.PEX.PickleMessage")
|
|
309
|
+
)
|
|
310
|
+
):
|
|
304
311
|
return self._deserialize_pickle_message(serial)
|
|
305
312
|
else:
|
|
306
313
|
return serial
|
iop/_director.py
CHANGED
|
@@ -258,9 +258,9 @@ class _Director():
|
|
|
258
258
|
message = iris.cls("IOP.Message")._New()
|
|
259
259
|
message.classname = classname
|
|
260
260
|
if body:
|
|
261
|
-
message.
|
|
261
|
+
message.json = _Utils.string_to_stream(body)
|
|
262
262
|
else:
|
|
263
|
-
message.
|
|
263
|
+
message.json = _Utils.string_to_stream("{}")
|
|
264
264
|
# serialize the message
|
|
265
265
|
business_host = _BusinessHost()
|
|
266
266
|
serial_message = business_host._dispatch_serializer(message)
|
iop/_utils.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import os
|
|
2
|
+
import sys
|
|
2
3
|
import ast
|
|
3
4
|
import iris
|
|
4
5
|
import inspect
|
|
5
6
|
import xmltodict
|
|
6
7
|
import pkg_resources
|
|
8
|
+
import importlib
|
|
7
9
|
|
|
8
10
|
class _Utils():
|
|
9
11
|
@staticmethod
|
|
@@ -186,20 +188,17 @@ class _Utils():
|
|
|
186
188
|
* key: the name of the production
|
|
187
189
|
* value: a dictionary containing the settings for the production
|
|
188
190
|
"""
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
# check if the filename is absolute or relative
|
|
194
|
-
if os.path.isabs(filename):
|
|
195
|
-
path = os.path.dirname(filename)
|
|
191
|
+
try:
|
|
192
|
+
# if the filename is not provided
|
|
193
|
+
if filename is None:
|
|
194
|
+
settings = importlib.import_module('settings')
|
|
196
195
|
else:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
196
|
+
# import the settings file
|
|
197
|
+
settings = _Utils.import_module_from_path('settings',filename)
|
|
198
|
+
# get the path of the settings file
|
|
199
|
+
path = os.path.dirname(inspect.getfile(settings))
|
|
200
|
+
except ModuleNotFoundError as e:
|
|
201
|
+
raise ModuleNotFoundError("settings.py not found") from e
|
|
203
202
|
try:
|
|
204
203
|
# set the classes settings
|
|
205
204
|
_Utils.set_classes_settings(settings.CLASSES,path)
|
|
@@ -211,7 +210,22 @@ class _Utils():
|
|
|
211
210
|
except AttributeError:
|
|
212
211
|
print("No productions to register")
|
|
213
212
|
|
|
214
|
-
|
|
213
|
+
@staticmethod
|
|
214
|
+
def import_module_from_path(module_name, file_path):
|
|
215
|
+
if not os.path.isabs(file_path):
|
|
216
|
+
file_path = os.path.abspath(file_path)
|
|
217
|
+
# check is a file is persent at the path
|
|
218
|
+
if not os.path.isfile(file_path):
|
|
219
|
+
# append settings.py to the path
|
|
220
|
+
file_path = os.path.join(file_path,'settings.py')
|
|
221
|
+
|
|
222
|
+
spec = importlib.util.spec_from_file_location(module_name, file_path)
|
|
223
|
+
if spec is None:
|
|
224
|
+
raise ImportError(f"Cannot find module named {module_name} at {file_path}")
|
|
225
|
+
|
|
226
|
+
module = importlib.util.module_from_spec(spec)
|
|
227
|
+
sys.modules[module_name] = module
|
|
228
|
+
return module
|
|
215
229
|
|
|
216
230
|
@staticmethod
|
|
217
231
|
def set_classes_settings(class_items,root_path=None):
|
|
@@ -360,17 +374,17 @@ class _Utils():
|
|
|
360
374
|
return data
|
|
361
375
|
|
|
362
376
|
@staticmethod
|
|
363
|
-
def stream_to_string(stream)-> str:
|
|
377
|
+
def stream_to_string(stream,buffer=1000000)-> str:
|
|
364
378
|
string = ""
|
|
365
379
|
stream.Rewind()
|
|
366
380
|
while not stream.AtEnd:
|
|
367
|
-
string += stream.Read(
|
|
381
|
+
string += stream.Read(buffer)
|
|
368
382
|
return string
|
|
369
383
|
|
|
370
384
|
@staticmethod
|
|
371
|
-
def string_to_stream(string:str):
|
|
385
|
+
def string_to_stream(string:str,buffer=1000000):
|
|
372
386
|
stream = iris.cls('%Stream.GlobalCharacter')._New()
|
|
373
|
-
n =
|
|
387
|
+
n = buffer
|
|
374
388
|
chunks = [string[i:i+n] for i in range(0, len(string), n)]
|
|
375
389
|
for chunk in chunks:
|
|
376
390
|
stream.Write(chunk)
|
iop/cls/IOP/Message.cls
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
Class IOP.Message Extends (Ens.MessageBody, %CSP.Page, %XML.Adaptor)
|
|
6
6
|
{
|
|
7
7
|
|
|
8
|
-
Parameter BUFFER =
|
|
8
|
+
Parameter BUFFER = 1000000;
|
|
9
9
|
|
|
10
10
|
Property buffer As %String(MAXLEN = "") [ Calculated, Transient ];
|
|
11
11
|
|
|
@@ -15,9 +15,9 @@ Property jsonObject As %DynamicObject(XMLPROJECTION = "None");
|
|
|
15
15
|
|
|
16
16
|
Property json As %String(MAXLEN = "");
|
|
17
17
|
|
|
18
|
-
Property jsonStream As %Stream.GlobalCharacter [ Internal,
|
|
18
|
+
Property jsonStream As %Stream.GlobalCharacter [ Internal, Private ];
|
|
19
19
|
|
|
20
|
-
Property jsonString As %String(MAXLEN =
|
|
20
|
+
Property jsonString As %String(MAXLEN = 1000000) [ Internal, Private ];
|
|
21
21
|
|
|
22
22
|
Property jstr As %Stream.GlobalCharacter [ Internal, Private ];
|
|
23
23
|
|
|
@@ -80,13 +80,25 @@ Method jsonSet(pInput) As %Status
|
|
|
80
80
|
, :$$$NULLOREF)
|
|
81
81
|
Quit:tOldStream=pInput $$$OK
|
|
82
82
|
Do:..type'="" Clear() Set i%type=""
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
|
|
84
|
+
If $ISOBJECT(pInput) {
|
|
85
|
+
if pInput.%Extends("%Stream.GlobalCharacter") {
|
|
86
|
+
Set ..jsonStream=pInput, i%type="Stream"
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
Throw ##class(%Exception.General).%New("Invalid input type, must be a %Stream.GlobalCharacter or a %String")
|
|
90
|
+
}
|
|
88
91
|
}
|
|
89
|
-
Else
|
|
92
|
+
Else {
|
|
93
|
+
if $LENGTH(pInput)>..#BUFFER {
|
|
94
|
+
// write in a stream
|
|
95
|
+
Set stream = ##class(%Stream.GlobalCharacter).%New()
|
|
96
|
+
for i=1:..#BUFFER:$LENGTH(pInput) {
|
|
97
|
+
Set sc = stream.Write($EXTRACT(pInput,i,(i+..#BUFFER)))
|
|
98
|
+
Quit:$$$ISERR(sc)
|
|
99
|
+
}
|
|
100
|
+
Set ..jsonStream=stream, i%type="Stream"
|
|
101
|
+
}
|
|
90
102
|
Set i%jsonString=pInput, i%type="String"
|
|
91
103
|
}
|
|
92
104
|
Quit $$$OK
|
iop/cls/IOP/Test.cls
CHANGED
|
@@ -3,7 +3,7 @@ Class IOP.Test Extends %Persistent
|
|
|
3
3
|
{
|
|
4
4
|
|
|
5
5
|
/// Description
|
|
6
|
-
ClassMethod
|
|
6
|
+
ClassMethod TestJsonStringMessage() As %Status
|
|
7
7
|
{
|
|
8
8
|
set msg = ##class(IOP.Message).%New()
|
|
9
9
|
set msg.classname = "IOP.Message"
|
|
@@ -13,6 +13,18 @@ ClassMethod TEST() As %Status
|
|
|
13
13
|
QUIT $$$OK
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
ClassMethod TestJsonStreamMessage() As %Status
|
|
17
|
+
{
|
|
18
|
+
set msg = ##class(IOP.Message).%New()
|
|
19
|
+
set msg.classname = "IOP.Message"
|
|
20
|
+
set stream = ##class(%Stream.GlobalCharacter).%New()
|
|
21
|
+
set sc = stream.Write("{""name"":""John""}")
|
|
22
|
+
set msg.json = stream
|
|
23
|
+
set tset = msg.json
|
|
24
|
+
set tst = msg.jstr
|
|
25
|
+
QUIT $$$OK
|
|
26
|
+
}
|
|
27
|
+
|
|
16
28
|
/// Register
|
|
17
29
|
ClassMethod Register() As %Status
|
|
18
30
|
{
|
iop/cls/IOP/Utils.cls
CHANGED
|
@@ -120,7 +120,7 @@ ClassMethod GetRemoteClassInfo(
|
|
|
120
120
|
set onePath = $p(extraClasspaths,"|",i)
|
|
121
121
|
set onePath = ##class(%File).NormalizeDirectory(onePath)
|
|
122
122
|
if onePath?1"$$IRISHOME"1P.E set onePath = $e($system.Util.InstallDirectory(),1,*-1)_$e(onePath,11,*)
|
|
123
|
-
if onePath'="" do sys.path.
|
|
123
|
+
if onePath'="" && '$FIND(sys.path,onePath) do sys.path.insert(0, onePath)
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
;
|
{iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iris_pex_embedded_python
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.1b4
|
|
4
4
|
Summary: Iris Interoperability based on Embedded Python
|
|
5
5
|
Author-email: grongier <guillaume.rongier@intersystems.com>
|
|
6
6
|
License: MIT License
|
|
@@ -43,9 +43,9 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
43
43
|
Classifier: Topic :: Utilities
|
|
44
44
|
Description-Content-Type: text/markdown
|
|
45
45
|
License-File: LICENSE
|
|
46
|
-
Requires-Dist: dacite
|
|
47
|
-
Requires-Dist: xmltodict
|
|
48
|
-
Requires-Dist: iris-embedded-python-wrapper
|
|
46
|
+
Requires-Dist: dacite>=1.6.0
|
|
47
|
+
Requires-Dist: xmltodict>=0.12.0
|
|
48
|
+
Requires-Dist: iris-embedded-python-wrapper>=0.0.6
|
|
49
49
|
|
|
50
50
|
# 1. interoperability-embedded-python
|
|
51
51
|
|
{iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/RECORD
RENAMED
|
@@ -92,31 +92,31 @@ intersystems_iris/pex/_OutboundAdapter.py,sha256=ao2Ubbta2DcrQGdzDUD_j1Zsk8bvUfc
|
|
|
92
92
|
intersystems_iris/pex/__init__.py,sha256=l_I1dpnluWawbFrGMDC0GLHpuHwjbpd-nho8otFX6TE,1379
|
|
93
93
|
iop/__init__.py,sha256=zHFF0Znipx1fwHYUEBZjNOYoZH1ro7z4IgYDU32kdn0,1067
|
|
94
94
|
iop/__main__.py,sha256=pQzVtkDhAeI6dpNRC632dVk2SGZZIEDwDufdgZe8VWs,98
|
|
95
|
-
iop/_business_host.py,sha256=
|
|
95
|
+
iop/_business_host.py,sha256=_U7f2Fy-7_qzBz4OQTAieVvEhBaT1Z0E77QoYPU0i-U,28244
|
|
96
96
|
iop/_business_operation.py,sha256=P824IzO89LCKnoNHZk64OZBDHcomHpjhKmMT89bS6TI,3500
|
|
97
97
|
iop/_business_process.py,sha256=F4NIQcwQ5u8yiAPpaN14OAXxbKJsRAGm5S4lrbgA3oI,13296
|
|
98
98
|
iop/_business_service.py,sha256=sX8J-2-0Go6uIuPYa0A5N9Nn9rY5lV6a05v4q78qDC8,3726
|
|
99
99
|
iop/_cli.py,sha256=yg4wv1FkhgjmoZuTMUr61Ff21PegJDH_cpZeHcF8hQE,6207
|
|
100
100
|
iop/_common.py,sha256=uKJdfCSPOjVQOg8GVuUj4ywfAn_2sPB3C82HbWw_5bI,15384
|
|
101
|
-
iop/_director.py,sha256=
|
|
101
|
+
iop/_director.py,sha256=t4hBkYRUFwkNFNK6pCmrVVsPELlGYqvSsSNBPIJe1e8,11041
|
|
102
102
|
iop/_inbound_adapter.py,sha256=PS5ToqhrYcXq9ZdLbCBqAfVp8kCeRACm_KF66pwBO9U,1652
|
|
103
103
|
iop/_message.py,sha256=BmwBXriykU66bwAgRbdkMpjfJRVWoNRX2eDc9TXfXzA,325
|
|
104
104
|
iop/_outbound_adapter.py,sha256=YTAhLrRf9chEAd53mV6KKbpaHOKNOKJHoGgj5wakRR0,726
|
|
105
105
|
iop/_pickle_message.py,sha256=noKfc2VkXufV3fqjKvNHN_oANQ1YN9ffCaSV0XSTAIE,331
|
|
106
106
|
iop/_private_session_duplex.py,sha256=klzWKwRRBoKUSz85D3DNYuCpDcZe_kWLNCWq5JtR0yc,5044
|
|
107
107
|
iop/_private_session_process.py,sha256=pGjWFOQhWpQxUVpTtvNKTPvDxgzjfw0VC4Aqj3KUq8w,1704
|
|
108
|
-
iop/_utils.py,sha256=
|
|
108
|
+
iop/_utils.py,sha256=dXrPfBIpS7dz2Zvui0em_1QaSDIxbg1kbcULHdnI6zY,16992
|
|
109
109
|
iop/cls/IOP/BusinessOperation.cls,sha256=lrymqZ8wHl5kJjXwdjbQVs5sScV__yIWGh-oGbiB_X0,914
|
|
110
110
|
iop/cls/IOP/BusinessProcess.cls,sha256=s3t38w1ykHqM26ETcbCYLt0ocjZyVVahm-_USZkuJ1E,2855
|
|
111
111
|
iop/cls/IOP/BusinessService.cls,sha256=7ebn32J9PiZXUgXuh5Xxm_7X6zHBiqkJr9c_dWxbPO8,1021
|
|
112
112
|
iop/cls/IOP/Common.cls,sha256=vYTnsL-ch-vTjpigBtwOHgrnOQMmuTkqXT9F-vWE650,11068
|
|
113
113
|
iop/cls/IOP/Director.cls,sha256=DlxyFvsJjB1FVImFVNkRpQy7XXIMRoDZOLpEdMlwgOU,1885
|
|
114
114
|
iop/cls/IOP/InboundAdapter.cls,sha256=GeoCm6q5HcLJ5e4VxgqXiErJXqolBbpKwpunaNzpvjU,610
|
|
115
|
-
iop/cls/IOP/Message.cls,sha256=
|
|
115
|
+
iop/cls/IOP/Message.cls,sha256=n0r0FslXdDfPcHIiAlW7n596DDsDSNlTX8UTPaMnSV8,9911
|
|
116
116
|
iop/cls/IOP/OutboundAdapter.cls,sha256=9eOwy5ojwcTzwrHs6LNrFQvUD8aqcoNCZrILN1ycdDM,958
|
|
117
117
|
iop/cls/IOP/PickleMessage.cls,sha256=S3y7AClQ8mAILjxPuHdCjGosBZYzGbUQ5WTv4mYPNMQ,1673
|
|
118
|
-
iop/cls/IOP/Test.cls,sha256=
|
|
119
|
-
iop/cls/IOP/Utils.cls,sha256=
|
|
118
|
+
iop/cls/IOP/Test.cls,sha256=gAC9PEfMZsvAEWIa241-ug2FWAhITbN1SOispZzJPnI,2094
|
|
119
|
+
iop/cls/IOP/Utils.cls,sha256=9T4KR0Botlf45WgnNOJodHDF3djcy0Ow3MTy5_q_KeM,13788
|
|
120
120
|
iop/cls/IOP/Duplex/Operation.cls,sha256=K_fmgeLjPZQbHgNrc0kd6DUQoW0fDn1VHQjJxHo95Zk,525
|
|
121
121
|
iop/cls/IOP/Duplex/Process.cls,sha256=xbefZ4z84a_IUhavWN6P_gZBzqkdJ5XRTXxro6iDvAg,6986
|
|
122
122
|
iop/cls/IOP/Duplex/Service.cls,sha256=sTMOQUCMBgVitmQkM8bbsrmrRtCdj91VlctJ3I7b8WU,161
|
|
@@ -135,9 +135,9 @@ iris/iris_ipm.pyi,sha256=j7CNUZcjeDu5sgeWUZJO_Qi4vQmHh6aD-jPWv8OdoUs,374
|
|
|
135
135
|
iris/iris_utils.py,sha256=kg80O3yRpHIutM-mCyr4xCeTvKWPE-Kai-b6Dxw4vQ4,9882
|
|
136
136
|
irisnative/_IRISNative.py,sha256=HQ4nBhc8t8_5OtxdMG-kx1aa-T1znf2I8obZOPLOPzg,665
|
|
137
137
|
irisnative/__init__.py,sha256=6YmvBLQSURsCPKaNg7LK-xpo4ipDjrlhKuwdfdNb3Kg,341
|
|
138
|
-
iris_pex_embedded_python-3.1.
|
|
139
|
-
iris_pex_embedded_python-3.1.
|
|
140
|
-
iris_pex_embedded_python-3.1.
|
|
141
|
-
iris_pex_embedded_python-3.1.
|
|
142
|
-
iris_pex_embedded_python-3.1.
|
|
143
|
-
iris_pex_embedded_python-3.1.
|
|
138
|
+
iris_pex_embedded_python-3.1.1b4.dist-info/LICENSE,sha256=rZSiBFId_sfbJ6RL0GjjPX-InNLkNS9ou7eQsikciI8,1089
|
|
139
|
+
iris_pex_embedded_python-3.1.1b4.dist-info/METADATA,sha256=HUeMihLWadeBDPUQn_2bP6IuIB9dsGQlwlY0hhwCaws,49479
|
|
140
|
+
iris_pex_embedded_python-3.1.1b4.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
141
|
+
iris_pex_embedded_python-3.1.1b4.dist-info/entry_points.txt,sha256=pj-i4LSDyiSP6xpHlVjMCbg1Pik7dC3_sdGY3Yp9Vhk,38
|
|
142
|
+
iris_pex_embedded_python-3.1.1b4.dist-info/top_level.txt,sha256=jkWtvFKOp1Q-uO_VpGpfx5TcW7DS39z1liOAVp6zLig,47
|
|
143
|
+
iris_pex_embedded_python-3.1.1b4.dist-info/RECORD,,
|
{iris_pex_embedded_python-3.1.1b2.dist-info → iris_pex_embedded_python-3.1.1b4.dist-info}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|