iris-pex-embedded-python 3.5.0b9__tar.gz → 3.5.1b2__tar.gz

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.

Files changed (92) hide show
  1. {iris_pex_embedded_python-3.5.0b9/src/iris_pex_embedded_python.egg-info → iris_pex_embedded_python-3.5.1b2}/PKG-INFO +1 -1
  2. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/pyproject.toml +1 -1
  3. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/BusinessOperation.cls +4 -4
  4. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Common.cls +43 -29
  5. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2/src/iris_pex_embedded_python.egg-info}/PKG-INFO +1 -1
  6. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/LICENSE +0 -0
  7. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/README.md +0 -0
  8. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/setup.cfg +0 -0
  9. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/setup.py +0 -0
  10. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/__init__.py +0 -0
  11. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
  12. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
  13. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
  14. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Common.cls +0 -0
  15. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
  16. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
  17. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
  18. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
  19. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
  20. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
  21. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
  22. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
  23. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
  24. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Ack.cls +0 -0
  25. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Poll.cls +0 -0
  26. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Start.cls +0 -0
  27. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Stop.cls +0 -0
  28. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
  29. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
  30. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
  31. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/__init__.py +0 -0
  32. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/__main__.py +0 -0
  33. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/_business_host.py +0 -0
  34. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/_cli.py +0 -0
  35. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/_common.py +0 -0
  36. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/_director.py +0 -0
  37. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/_utils.py +0 -0
  38. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/grongier/pex/wsgi/handlers.py +0 -0
  39. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/__init__.py +0 -0
  40. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/__main__.py +0 -0
  41. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_async_request.py +0 -0
  42. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_business_host.py +0 -0
  43. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_business_operation.py +0 -0
  44. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_business_process.py +0 -0
  45. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_business_service.py +0 -0
  46. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_cli.py +0 -0
  47. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_common.py +0 -0
  48. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_debugpy.py +0 -0
  49. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_decorators.py +0 -0
  50. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_director.py +0 -0
  51. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_dispatch.py +0 -0
  52. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_generator_request.py +0 -0
  53. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_inbound_adapter.py +0 -0
  54. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_iris.py +0 -0
  55. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_log_manager.py +0 -0
  56. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_message.py +0 -0
  57. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_message_validator.py +0 -0
  58. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_outbound_adapter.py +0 -0
  59. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_private_session_duplex.py +0 -0
  60. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_private_session_process.py +0 -0
  61. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_serialization.py +0 -0
  62. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/_utils.py +0 -0
  63. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
  64. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/BusinessService.cls +0 -0
  65. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Director.cls +0 -0
  66. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
  67. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
  68. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
  69. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Generator/Message/Ack.cls +0 -0
  70. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Generator/Message/Poll.cls +0 -0
  71. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Generator/Message/Start.cls +0 -0
  72. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Generator/Message/StartPickle.cls +0 -0
  73. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Generator/Message/Stop.cls +0 -0
  74. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
  75. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Message/JSONSchema.cls +0 -0
  76. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Message.cls +0 -0
  77. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
  78. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/PickleMessage.cls +0 -0
  79. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
  80. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
  81. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
  82. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
  83. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
  84. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Service/WSGI.cls +0 -0
  85. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Test.cls +0 -0
  86. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/cls/IOP/Utils.cls +0 -0
  87. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iop/wsgi/handlers.py +0 -0
  88. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -0
  89. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
  90. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
  91. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
  92. {iris_pex_embedded_python-3.5.0b9 → iris_pex_embedded_python-3.5.1b2}/src/iris_pex_embedded_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris_pex_embedded_python
3
- Version: 3.5.0b9
3
+ Version: 3.5.1b2
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License
@@ -3,7 +3,7 @@ requires = ["setuptools", "wheel"]
3
3
 
4
4
  [project]
5
5
  name = "iris_pex_embedded_python"
6
- version = "3.5.0b9"
6
+ version = "3.5.1b2"
7
7
  description = "Iris Interoperability based on Embedded Python"
8
8
  readme = "README.md"
9
9
  authors = [
@@ -7,13 +7,13 @@ Class IOP.BusinessOperation Extends (Ens.BusinessOperation, IOP.Common) [ Inheri
7
7
 
8
8
  Parameter SETTINGS = "%classname:Python BusinessOperation,%module:Python BusinessOperation,%settings:Python BusinessOperation,%classpaths:Python BusinessOperation";
9
9
 
10
- Method OnMessage(
11
- request As %Library.Persistent,
12
- Output response As %Library.Persistent) As %Status
10
+ Method MessageHandler(
11
+ pRequest As %Library.Persistent,
12
+ Output pResponse As %Library.Persistent) As %Status
13
13
  {
14
14
  set tSC = $$$OK
15
15
  try {
16
- set response = ..%class."_dispatch_on_message"(request)
16
+ set pResponse = ..%class."_dispatch_on_message"(pRequest)
17
17
  } catch ex {
18
18
  set tSC = ..DisplayTraceback(ex)
19
19
  }
@@ -104,7 +104,6 @@ Method OnInit() As %Status
104
104
  set tSC = $$$OK
105
105
 
106
106
  try {
107
- LOCK +^PythonSettings:5
108
107
 
109
108
  if ..%Venv {
110
109
  $$$ThrowOnError(##class(IOP.Utils).SetPythonSettings(..%PythonRuntimeLibrary, ..%PythonPath, ..%PythonRuntimeLibraryVersion))
@@ -115,7 +114,6 @@ Method OnInit() As %Status
115
114
  do $system.Python.Debugging(..%traceback)
116
115
 
117
116
  $$$ThrowOnError(..Connect())
118
- LOCK -^PythonSettings
119
117
 
120
118
  do ..%class."_debugpy"($this)
121
119
 
@@ -124,7 +122,7 @@ Method OnInit() As %Status
124
122
 
125
123
  set tSC = ..DisplayTraceback(ex)
126
124
  }
127
- LOCK -^PythonSettings
125
+
128
126
  quit tSC
129
127
  }
130
128
 
@@ -147,18 +145,19 @@ ClassMethod SetPythonPath(pClasspaths)
147
145
  {
148
146
  set sys = ##class(%SYS.Python).Import("sys")
149
147
 
150
- for i=0:1:(sys.path."__len__"()-1) {
151
- Try {
152
- if sys.path."__getitem__"(i) = pClasspaths {
153
- do sys.path."__delitem__"(i)
154
- }
155
- }
156
- Catch ex {
157
- // do nothing
148
+ // Add the classpaths to the Python sys.path only if they are not already present
149
+ // Check if the path is already in sys.path
150
+ set found = 0
151
+ for j=1:1:sys.path."__len__"() {
152
+ if sys.path."__getitem__"(j-1) = pClasspaths {
153
+ set found = 1
154
+ quit
158
155
  }
159
-
160
156
  }
161
- do sys.path.insert(0, pClasspaths)
157
+ if found = 0 {
158
+ // If not found, add to sys.path
159
+ do sys.path."append"(pClasspaths)
160
+ }
162
161
  }
163
162
 
164
163
  Method Connect() As %Status
@@ -167,24 +166,39 @@ Method Connect() As %Status
167
166
  try {
168
167
 
169
168
  set container = $this
170
-
171
- //set classpass
172
- if ..%classpaths '="" {
173
- set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
174
- set extraClasspaths = $tr(container.%classpaths,delimiter,"|")
175
- for i=1:1:$l(extraClasspaths,"|") {
176
- set onePath = $p(extraClasspaths,"|",i)
177
- set onePath = ##class(%File).NormalizeDirectory(onePath)
178
- do ..SetPythonPath(onePath)
179
- }
180
- }
181
- if $isObject(..%class)=0 {
182
- set importlib = ##class(%SYS.Python).Import("importlib")
169
+
170
+ // Before anything, try to check if the module is already present in the sys.modules
171
+ set sys = ##class(%SYS.Python).Import("sys")
172
+ set moduleName = ..%module
173
+ set module = sys.modules.get(moduleName, $$$NULLOREF)
174
+ if $isObject(module) {
175
+ $$$LOGINFO("Module "_moduleName_" is already imported in sys.modules")
176
+ // If the module is already present, we can skip the import
183
177
  set builtins = ##class(%SYS.Python).Import("builtins")
184
- set module = importlib."import_module"(..%module)
185
178
  set class = builtins.getattr(module, ..%classname)
186
179
  set ..%class = class."__new__"(class)
187
180
  }
181
+ else {
182
+
183
+ //set classpass
184
+ if ..%classpaths '="" {
185
+ set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
186
+ set extraClasspaths = $tr(container.%classpaths,delimiter,"|")
187
+ for i=1:1:$l(extraClasspaths,"|") {
188
+ set onePath = $p(extraClasspaths,"|",i)
189
+ set onePath = ##class(%File).NormalizeDirectory(onePath)
190
+ do ..SetPythonPath(onePath)
191
+ }
192
+ }
193
+
194
+ if $isObject(..%class)=0 {
195
+ set builtins = ##class(%SYS.Python).Import("builtins")
196
+ set module = ##class(%SYS.Python).Import(..%module)
197
+ set class = builtins.getattr(module, ..%classname)
198
+ set ..%class = class."__new__"(class)
199
+ }
200
+ }
201
+
188
202
  ;
189
203
  if ..%Extends("IOP.InboundAdapter") || ..%Extends("IOP.OutboundAdapter") {
190
204
  do ..%class."_set_iris_handles"($this,..BusinessHost)
@@ -352,9 +366,9 @@ ClassMethod OnGetConnections(
352
366
  if onePath'="" do sys.path.append(onePath)
353
367
  }
354
368
  }
355
- set importlib = ##class(%SYS.Python).Import("importlib")
369
+
356
370
  set builtins = ##class(%SYS.Python).Import("builtins")
357
- set module = importlib."import_module"(tModule)
371
+ set module = ##class(%SYS.Python).Import(tModule)
358
372
  set class = builtins.getattr(module, tClassname)
359
373
  set tClass = class."__new__"(class)
360
374
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris_pex_embedded_python
3
- Version: 3.5.0b9
3
+ Version: 3.5.1b2
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License