iris-pex-embedded-python 2.3.18__tar.gz → 2.3.21__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.
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/PKG-INFO +32 -8
- iris_pex_embedded_python-2.3.21/pyproject.toml +49 -0
- iris_pex_embedded_python-2.3.21/setup.py +3 -0
- iris_pex_embedded_python-2.3.21/src/grongier/cls/Grongier/PEX/Common.cls +203 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_business_host.py +55 -1
- iris_pex_embedded_python-2.3.21/src/grongier/pex/wsgi/handlers.py +51 -0
- iris_pex_embedded_python-2.3.21/src/intersystems_iris/_IRISOREF.py +9 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_DBAPI.py +16 -1
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_Parameter.py +2 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris_pex_embedded_python.egg-info/PKG-INFO +32 -8
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +1 -3
- iris_pex_embedded_python-2.3.18/pyproject.toml +0 -0
- iris_pex_embedded_python-2.3.18/setup.py +0 -57
- iris_pex_embedded_python-2.3.18/src/grongier/cls/Grongier/PEX/Common.cls +0 -162
- iris_pex_embedded_python-2.3.18/src/intersystems_iris/_IRISOREF.py +0 -4
- iris_pex_embedded_python-2.3.18/src/iris/iris_site.py +0 -13
- iris_pex_embedded_python-2.3.18/src/iris/irisbuiltins.py +0 -97
- iris_pex_embedded_python-2.3.18/src/iris/irisloader.py +0 -199
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/LICENSE +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/README.md +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/setup.cfg +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/__init__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Ack.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Poll.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Start.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Stop.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/__init__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/__main__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_business_operation.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_business_process.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_business_service.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_cli.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_common.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_director.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_inbound_adapter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_message.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_outbound_adapter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_pickle_message.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_private_session_duplex.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_private_session_process.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/grongier/pex/_utils.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_BufferReader.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_BufferWriter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_ConnectionInformation.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_ConnectionParameters.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_Constant.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_DBList.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_Device.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_GatewayContext.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_GatewayException.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_GatewayUtility.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRIS.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISConnection.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISEmbedded.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISGlobalNode.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISGlobalNodeView.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISIterator.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISList.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISNative.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISObject.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_IRISReference.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_InStream.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_LegacyIterator.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_ListItem.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_ListReader.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_ListWriter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_LogFileStream.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_MessageHeader.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_OutStream.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_PrintStream.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_PythonGateway.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/_SharedMemorySocket.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/__init__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/__main__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_Column.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_Descriptor.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_IRISStream.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_Message.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_ParameterCollection.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_ResultSetRow.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/_SQLType.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/__init__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/preparser/_PreParser.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/preparser/_Scanner.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/preparser/_Token.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/preparser/_TokenList.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/dbapi/preparser/__init__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_BusinessHost.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_BusinessOperation.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_BusinessProcess.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_BusinessService.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_Common.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_Director.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_IRISBusinessOperation.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_IRISBusinessService.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_IRISInboundAdapter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_IRISOutboundAdapter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_InboundAdapter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_Message.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/_OutboundAdapter.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/intersystems_iris/pex/__init__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris/__init__.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris/iris_ipm.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/iris_pex_embedded_python.egg-info/top_level.txt +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/irisnative/_IRISNative.py +0 -0
- {iris_pex_embedded_python-2.3.18 → iris_pex_embedded_python-2.3.21}/src/irisnative/__init__.py +0 -0
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iris_pex_embedded_python
|
|
3
|
-
Version: 2.3.
|
|
4
|
-
Summary:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
Version: 2.3.21
|
|
4
|
+
Summary: Iris Interoperability based on Embedded Python
|
|
5
|
+
Author-email: grongier <guillaume.rongier@intersystems.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2019 InterSystems Developer Community
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: homepage, https://github.com/grongierisc/interoperability-embedded-python
|
|
29
|
+
Project-URL: documentation, https://github.com/grongierisc/interoperability-embedded-python/blob/master/README.md
|
|
30
|
+
Project-URL: repository, https://github.com/grongierisc/interoperability-embedded-python
|
|
31
|
+
Project-URL: issues, https://github.com/grongierisc/interoperability-embedded-python/issues
|
|
32
|
+
Keywords: iris,intersystems,python,embedded
|
|
10
33
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
34
|
Classifier: Intended Audience :: Developers
|
|
12
35
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -18,9 +41,10 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
18
41
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
42
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
43
|
Classifier: Topic :: Utilities
|
|
21
|
-
Requires-Python: >=3.6
|
|
22
44
|
Description-Content-Type: text/markdown
|
|
23
45
|
License-File: LICENSE
|
|
46
|
+
Requires-Dist: dacite>=1.6.0
|
|
47
|
+
Requires-Dist: xmltodict>=0.12.0
|
|
24
48
|
|
|
25
49
|
# 1. interoperability-embedded-python
|
|
26
50
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools", "wheel"]
|
|
3
|
+
|
|
4
|
+
[project]
|
|
5
|
+
name = "iris_pex_embedded_python"
|
|
6
|
+
version = "2.3.21"
|
|
7
|
+
description = "Iris Interoperability based on Embedded Python"
|
|
8
|
+
readme = "README.md"
|
|
9
|
+
authors = [
|
|
10
|
+
{ name = "grongier", email = "guillaume.rongier@intersystems.com" },
|
|
11
|
+
]
|
|
12
|
+
keywords = ["iris", "intersystems", "python", "embedded"]
|
|
13
|
+
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"License :: OSI Approved :: MIT License",
|
|
18
|
+
"Operating System :: OS Independent",
|
|
19
|
+
"Programming Language :: Python :: 3.6",
|
|
20
|
+
"Programming Language :: Python :: 3.7",
|
|
21
|
+
"Programming Language :: Python :: 3.8",
|
|
22
|
+
"Programming Language :: Python :: 3.9",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Topic :: Utilities"
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
dependencies = [
|
|
29
|
+
"dacite >=1.6.0",
|
|
30
|
+
"xmltodict>=0.12.0"
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
license = { file = "LICENSE" }
|
|
34
|
+
|
|
35
|
+
[project.urls]
|
|
36
|
+
homepage = "https://github.com/grongierisc/interoperability-embedded-python"
|
|
37
|
+
documentation = "https://github.com/grongierisc/interoperability-embedded-python/blob/master/README.md"
|
|
38
|
+
repository = "https://github.com/grongierisc/interoperability-embedded-python"
|
|
39
|
+
issues = "https://github.com/grongierisc/interoperability-embedded-python/issues"
|
|
40
|
+
|
|
41
|
+
[project.scripts]
|
|
42
|
+
iop = "grongier.pex._cli:main"
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.packages.find]
|
|
45
|
+
where = ["src"]
|
|
46
|
+
exclude = ["tests*"]
|
|
47
|
+
|
|
48
|
+
[tool.setuptools.package-data]
|
|
49
|
+
"*" = ["*.cls"]
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/* Copyright (c) 2021 by InterSystems Corporation.
|
|
2
|
+
Cambridge, Massachusetts, U.S.A. All rights reserved.
|
|
3
|
+
Confidential property of InterSystems Corporation. */
|
|
4
|
+
|
|
5
|
+
Include Ensemble
|
|
6
|
+
|
|
7
|
+
Class Grongier.PEX.Common [ Abstract, ClassType = "", ProcedureBlock, System = 4 ]
|
|
8
|
+
{
|
|
9
|
+
|
|
10
|
+
/// One or more Classpaths (separated by '|' character) needed in addition to the ones configured in the Java Gateway Service
|
|
11
|
+
Property %classpaths As %String(MAXLEN = "");
|
|
12
|
+
|
|
13
|
+
Property %classname As %String(MAXLEN = "");
|
|
14
|
+
|
|
15
|
+
Property %module As %String(MAXLEN = "");
|
|
16
|
+
|
|
17
|
+
Property %settings As %String(MAXLEN = "");
|
|
18
|
+
|
|
19
|
+
/// Instance of class
|
|
20
|
+
Property %class As %SYS.Python;
|
|
21
|
+
|
|
22
|
+
/// Get Class
|
|
23
|
+
Method GetClass() As %SYS.Python
|
|
24
|
+
{
|
|
25
|
+
Return ..%class
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// Get Classname
|
|
29
|
+
Method GetClassname() As %String
|
|
30
|
+
{
|
|
31
|
+
Return ..%classname
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/// Get Classname
|
|
35
|
+
Method GetModule() As %String
|
|
36
|
+
{
|
|
37
|
+
Return ..%module
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Method OnInit() As %Status
|
|
41
|
+
{
|
|
42
|
+
set tSC = $$$OK
|
|
43
|
+
try {
|
|
44
|
+
$$$ThrowOnError(..Connect())
|
|
45
|
+
do ..%class."_dispatch_on_init"($this)
|
|
46
|
+
} catch ex {
|
|
47
|
+
set tSC = ex.AsStatus()
|
|
48
|
+
}
|
|
49
|
+
quit tSC
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
ClassMethod SetPythonPath(pClasspaths)
|
|
53
|
+
{
|
|
54
|
+
set sys = ##class(%SYS.Python).Import("sys")
|
|
55
|
+
|
|
56
|
+
for i=0:1:(sys.path."__len__"()-1) {
|
|
57
|
+
Try {
|
|
58
|
+
if sys.path."__getitem__"(i) = pClasspaths {
|
|
59
|
+
do sys.path."__delitem__"(i)
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
Catch ex {
|
|
63
|
+
// do nothing
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
}
|
|
67
|
+
do sys.path.insert(0, pClasspaths)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
Method Connect() As %Status
|
|
71
|
+
{
|
|
72
|
+
set tSC = $$$OK
|
|
73
|
+
try {
|
|
74
|
+
|
|
75
|
+
set container = $this
|
|
76
|
+
|
|
77
|
+
//set classpass
|
|
78
|
+
if ..%classpaths '="" {
|
|
79
|
+
set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
|
|
80
|
+
set extraClasspaths = $tr(container.%classpaths,delimiter,"|")
|
|
81
|
+
for i=1:1:$l(extraClasspaths,"|") {
|
|
82
|
+
set onePath = $p(extraClasspaths,"|",i)
|
|
83
|
+
set onePath = ##class(%File).NormalizeDirectory(onePath)
|
|
84
|
+
do ..SetPythonPath(onePath)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if $isObject(..%class)=0 {
|
|
88
|
+
set importlib = ##class(%SYS.Python).Import("importlib")
|
|
89
|
+
set builtins = ##class(%SYS.Python).Import("builtins")
|
|
90
|
+
set module = importlib."import_module"(..%module)
|
|
91
|
+
set class = builtins.getattr(module, ..%classname)
|
|
92
|
+
set ..%class = class."__new__"(class)
|
|
93
|
+
}
|
|
94
|
+
;
|
|
95
|
+
if ..%Extends("Grongier.PEX.InboundAdapter") || ..%Extends("Grongier.PEX.OutboundAdapter") {
|
|
96
|
+
do ..%class."_set_iris_handles"($this,..BusinessHost)
|
|
97
|
+
} elseif $this.%Extends("Grongier.PEX.BusinessProcess") {
|
|
98
|
+
do ..%class."_set_iris_handles"($this,$$$NULLOREF)
|
|
99
|
+
} else {
|
|
100
|
+
do ..%class."_set_iris_handles"($this,..Adapter)
|
|
101
|
+
}
|
|
102
|
+
;
|
|
103
|
+
do ..SetPropertyValues()
|
|
104
|
+
;
|
|
105
|
+
try {
|
|
106
|
+
do ..%class."_dispatch_on_connected"($this)
|
|
107
|
+
} catch ex {
|
|
108
|
+
$$$LOGWARNING(ex.DisplayString())
|
|
109
|
+
}
|
|
110
|
+
;
|
|
111
|
+
} catch ex {
|
|
112
|
+
set msg = $System.Status.GetOneStatusText(ex.AsStatus(),1)
|
|
113
|
+
set tSC = $$$ERROR($$$EnsErrGeneral,msg)
|
|
114
|
+
}
|
|
115
|
+
quit tSC
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
Method OnTearDown() As %Status
|
|
119
|
+
{
|
|
120
|
+
set tSC = $$$OK
|
|
121
|
+
do ..%class."_dispatch_on_tear_down"()
|
|
122
|
+
quit tSC
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
Method SetPropertyValues()
|
|
126
|
+
{
|
|
127
|
+
set remoteSettings = $tr(..%settings,$c(13))
|
|
128
|
+
for i=1:1:$l(remoteSettings,$c(10)) {
|
|
129
|
+
set oneLine = $p(remoteSettings,$c(10),i)
|
|
130
|
+
set property = $p(oneLine,"=",1) continue:property=""
|
|
131
|
+
set value = $p(oneLine,"=",2,*)
|
|
132
|
+
try {
|
|
133
|
+
set $property(..%class,property) = value
|
|
134
|
+
} catch ex {
|
|
135
|
+
$$$LOGWARNING(ex.DisplayString())
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
quit
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
Method dispatchSendRequestSync(
|
|
142
|
+
target,
|
|
143
|
+
request,
|
|
144
|
+
timeout,
|
|
145
|
+
description) As %String
|
|
146
|
+
{
|
|
147
|
+
set tSC = ..SendRequestSync(target,request,.objResponse,timeout,description)
|
|
148
|
+
if $$$ISERR(tSC) throw ##class(%Exception.StatusException).CreateFromStatus(tSC)
|
|
149
|
+
quit $g(objResponse)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
Method dispatchSendRequestAsync(
|
|
153
|
+
target,
|
|
154
|
+
request,
|
|
155
|
+
description)
|
|
156
|
+
{
|
|
157
|
+
set tSC = ..SendRequestAsync(target,request,description)
|
|
158
|
+
if $$$ISERR(tSC) throw ##class(%Exception.StatusException).CreateFromStatus(tSC)
|
|
159
|
+
quit
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
ClassMethod OnGetConnections(
|
|
163
|
+
Output pArray As %String,
|
|
164
|
+
pItem As Ens.Config.Item)
|
|
165
|
+
{
|
|
166
|
+
// finds any settings of type Ens.DataType.ConfigName
|
|
167
|
+
do ..GetPropertyConnections(.pArray,pItem)
|
|
168
|
+
|
|
169
|
+
// Get settings
|
|
170
|
+
do pItem.GetModifiedSetting("%classpaths", .tClasspaths)
|
|
171
|
+
do pItem.GetModifiedSetting("%classname", .tClassname)
|
|
172
|
+
do pItem.GetModifiedSetting("%module", .tModule)
|
|
173
|
+
|
|
174
|
+
// try to instantiate class
|
|
175
|
+
if tClasspaths '="" {
|
|
176
|
+
set sys = ##class(%SYS.Python).Import("sys")
|
|
177
|
+
set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
|
|
178
|
+
set extraClasspaths = $tr(tClasspaths,delimiter,"|")
|
|
179
|
+
for i=1:1:$l(extraClasspaths,"|") {
|
|
180
|
+
set onePath = $p(extraClasspaths,"|",i)
|
|
181
|
+
set onePath = ##class(%File).NormalizeDirectory(onePath)
|
|
182
|
+
if onePath?1"$$IRISHOME"1P.E set onePath = $e($system.Util.InstallDirectory(),1,*-1)_$e(onePath,11,*)
|
|
183
|
+
if onePath'="" do sys.path.append(onePath)
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
set importlib = ##class(%SYS.Python).Import("importlib")
|
|
187
|
+
set builtins = ##class(%SYS.Python).Import("builtins")
|
|
188
|
+
set module = importlib."import_module"(tModule)
|
|
189
|
+
set class = builtins.getattr(module, tClassname)
|
|
190
|
+
set tClass = class."__new__"(class)
|
|
191
|
+
|
|
192
|
+
set tPythonList = tClass."on_get_connections"()
|
|
193
|
+
set tPythonListLen = tPythonList."__len__"()
|
|
194
|
+
for i=0:1:(tPythonListLen-1) {
|
|
195
|
+
set tPythonItem = tPythonList."__getitem__"(i)
|
|
196
|
+
set pArray(tPythonItem) = ""
|
|
197
|
+
#; set ^AALog(pItem.Name,tPythonItem) = ""
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
quit
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
}
|
|
@@ -8,7 +8,7 @@ import json
|
|
|
8
8
|
import importlib
|
|
9
9
|
import iris
|
|
10
10
|
|
|
11
|
-
from inspect import signature
|
|
11
|
+
from inspect import signature, getsource
|
|
12
12
|
|
|
13
13
|
from dacite import from_dict, Config
|
|
14
14
|
|
|
@@ -21,6 +21,7 @@ class _BusinessHost(_Common):
|
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
23
|
buffer:int = 64000
|
|
24
|
+
DISPATCH = []
|
|
24
25
|
|
|
25
26
|
def input_serialzer(fonction):
|
|
26
27
|
"""
|
|
@@ -352,6 +353,59 @@ class _BusinessHost(_Common):
|
|
|
352
353
|
Name of the registred Adapter
|
|
353
354
|
"""
|
|
354
355
|
return
|
|
356
|
+
|
|
357
|
+
def on_get_connections(self) -> list:
|
|
358
|
+
"""
|
|
359
|
+
The OnGetConnections() method returns all of the targets of any SendRequestSync or SendRequestAsync
|
|
360
|
+
calls for the class. Implement this method to allow connections between components to show up in
|
|
361
|
+
the interoperability UI.
|
|
362
|
+
|
|
363
|
+
Returns:
|
|
364
|
+
An IRISList containing all targets for this class. Default is None.
|
|
365
|
+
"""
|
|
366
|
+
## Parse the class code to find all invocations of send_request_sync and send_request_async
|
|
367
|
+
## and return the targets
|
|
368
|
+
targer_list = []
|
|
369
|
+
# get the source code of the class
|
|
370
|
+
source = getsource(self.__class__)
|
|
371
|
+
# find all invocations of send_request_sync and send_request_async
|
|
372
|
+
for method in ['send_request_sync','send_request_async','SendRequestSync','SendRequestAsync']:
|
|
373
|
+
i = source.find(method)
|
|
374
|
+
while i != -1:
|
|
375
|
+
j = source.find("(",i)
|
|
376
|
+
if j != -1:
|
|
377
|
+
k = source.find(",",j)
|
|
378
|
+
if k != -1:
|
|
379
|
+
target = source[j+1:k]
|
|
380
|
+
if target.find("=") != -1:
|
|
381
|
+
# it's a keyword argument, remove the keyword
|
|
382
|
+
target = target[target.find("=")+1:].strip()
|
|
383
|
+
if target not in targer_list:
|
|
384
|
+
targer_list.append(target)
|
|
385
|
+
i = source.find(method,i+1)
|
|
386
|
+
|
|
387
|
+
for target in targer_list:
|
|
388
|
+
# if target is a string, remove the quotes
|
|
389
|
+
if target[0] == "'" and target[-1] == "'":
|
|
390
|
+
targer_list[targer_list.index(target)] = target[1:-1]
|
|
391
|
+
elif target[0] == '"' and target[-1] == '"':
|
|
392
|
+
targer_list[targer_list.index(target)] = target[1:-1]
|
|
393
|
+
# if target is a variable, try to find the value of the variable
|
|
394
|
+
else:
|
|
395
|
+
self.on_init()
|
|
396
|
+
try:
|
|
397
|
+
if target.find("self.") != -1:
|
|
398
|
+
# it's a class variable
|
|
399
|
+
targer_list[targer_list.index(target)] = getattr(self,target[target.find(".")+1:])
|
|
400
|
+
elif target.find(".") != -1:
|
|
401
|
+
# it's a class variable
|
|
402
|
+
targer_list[targer_list.index(target)] = getattr(getattr(self,target[:target.find(".")]),target[target.find(".")+1:])
|
|
403
|
+
else:
|
|
404
|
+
targer_list[targer_list.index(target)] = getattr(self,target)
|
|
405
|
+
except Exception as e:
|
|
406
|
+
pass
|
|
407
|
+
|
|
408
|
+
return targer_list
|
|
355
409
|
|
|
356
410
|
# It's a subclass of the standard JSONEncoder class that knows how to encode date/time, decimal types,
|
|
357
411
|
# and UUIDs.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from wsgiref.handlers import BaseHandler
|
|
2
|
+
import io
|
|
3
|
+
import iris
|
|
4
|
+
|
|
5
|
+
class IrisHandler(BaseHandler):
|
|
6
|
+
"""Handler that's just initialized with streams, environment, etc.
|
|
7
|
+
|
|
8
|
+
This handler subclass is intended for synchronous HTTP/1.0 origin servers,
|
|
9
|
+
and handles sending the entire response output, given the correct inputs.
|
|
10
|
+
|
|
11
|
+
Usage::
|
|
12
|
+
|
|
13
|
+
handler = SimpleHandler(
|
|
14
|
+
inp,out,err,env, multithread=False, multiprocess=True
|
|
15
|
+
)
|
|
16
|
+
handler.run(app)"""
|
|
17
|
+
|
|
18
|
+
server_software = "IrisWSGI/0.1"
|
|
19
|
+
wsgi_file_wrapper = None
|
|
20
|
+
|
|
21
|
+
def __init__(self,stdin,stdout,stderr,environ,
|
|
22
|
+
multithread=True, multiprocess=False
|
|
23
|
+
):
|
|
24
|
+
self.stdin = stdin
|
|
25
|
+
self.stdout = stdout
|
|
26
|
+
self.stderr = stderr
|
|
27
|
+
self.base_env = environ
|
|
28
|
+
self.wsgi_multithread = multithread
|
|
29
|
+
self.wsgi_multiprocess = multiprocess
|
|
30
|
+
|
|
31
|
+
def get_stdin(self):
|
|
32
|
+
if not self.stdin:
|
|
33
|
+
return None
|
|
34
|
+
else:
|
|
35
|
+
self.environ["wsgi.input"] = io.BytesIO(self.stdin)
|
|
36
|
+
self.environ["CONTENT_LENGTH"] = str(len(self.stdin))
|
|
37
|
+
return io.BytesIO(self.stdin)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def get_stderr(self):
|
|
41
|
+
return self.stderr
|
|
42
|
+
|
|
43
|
+
def add_cgi_vars(self):
|
|
44
|
+
self.environ.update(self.base_env)
|
|
45
|
+
|
|
46
|
+
def _write(self,data):
|
|
47
|
+
iris.cls('Grongier.Service.WSGI').write(data)
|
|
48
|
+
|
|
49
|
+
def _flush(self):
|
|
50
|
+
self.stdout.flush()
|
|
51
|
+
self._flush = self.stdout.flush
|
|
@@ -19,6 +19,7 @@ from intersystems_iris.dbapi._IRISStream import (
|
|
|
19
19
|
IRISStream,
|
|
20
20
|
IRISBinaryStream,
|
|
21
21
|
)
|
|
22
|
+
from intersystems_iris._IRISOREF import _IRISOREF
|
|
22
23
|
from ._SQLType import SQLType
|
|
23
24
|
|
|
24
25
|
from .._IRISNative import connect as native_connect
|
|
@@ -648,7 +649,11 @@ class _BaseCursor:
|
|
|
648
649
|
|
|
649
650
|
def _update404(self):
|
|
650
651
|
with self._connection._lock:
|
|
652
|
+
# self._reset_cached_info()
|
|
651
653
|
self._validate_parameters()
|
|
654
|
+
# self._prepare()
|
|
655
|
+
# self._validate_prepared_parameters()
|
|
656
|
+
# self._prepared_update_execute()
|
|
652
657
|
self._send_direct_update_request()
|
|
653
658
|
|
|
654
659
|
# api properties and methods
|
|
@@ -752,6 +757,12 @@ class Cursor(_BaseCursor):
|
|
|
752
757
|
return True
|
|
753
758
|
else:
|
|
754
759
|
return False
|
|
760
|
+
|
|
761
|
+
def _reset_cached_info(self):
|
|
762
|
+
if not self._connection._preparedCache or not hasattr(self._connection._preparedCache, "__iter__"):
|
|
763
|
+
return
|
|
764
|
+
if self._parsed_statement in self._connection._preparedCache:
|
|
765
|
+
del self._connection._preparedCache[self._parsed_statement]
|
|
755
766
|
|
|
756
767
|
def _prepare_cached(self, cached_statement):
|
|
757
768
|
self._statement_id = cached_statement.statement_id
|
|
@@ -1181,11 +1192,15 @@ class Cursor(_BaseCursor):
|
|
|
1181
1192
|
self.params[pi] = stream_oref
|
|
1182
1193
|
|
|
1183
1194
|
def _send_stream(self, param_type, value):
|
|
1195
|
+
if isinstance(value, _IRISOREF):
|
|
1196
|
+
return value
|
|
1184
1197
|
if not isinstance(value, str) and not isinstance(value, bytes):
|
|
1185
1198
|
raise Exception(f"Invalid value type for stream, got {type(value).__name__}, expected str or bytes")
|
|
1186
1199
|
stream_oref = None
|
|
1187
1200
|
offset = 0
|
|
1188
1201
|
full_size = len(value)
|
|
1202
|
+
if full_size < 3 * 1024 * 1024:
|
|
1203
|
+
return value
|
|
1189
1204
|
with self._connection._lock:
|
|
1190
1205
|
while True:
|
|
1191
1206
|
size = full_size
|
|
@@ -1216,7 +1231,7 @@ class Cursor(_BaseCursor):
|
|
|
1216
1231
|
self._in_message._read_message_sql(sequence_number, self._statement_id, 0)
|
|
1217
1232
|
stream_oref = self._sqlcode = self._in_message.wire._get()
|
|
1218
1233
|
|
|
1219
|
-
return stream_oref
|
|
1234
|
+
return _IRISOREF(stream_oref)
|
|
1220
1235
|
|
|
1221
1236
|
def _prepared_update_execute(self):
|
|
1222
1237
|
self._update_streams()
|
|
@@ -2,6 +2,7 @@ import datetime
|
|
|
2
2
|
import decimal
|
|
3
3
|
import enum
|
|
4
4
|
import intersystems_iris.dbapi._Descriptor
|
|
5
|
+
from intersystems_iris._IRISOREF import _IRISOREF
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
class ParameterMode(enum.IntEnum):
|
|
@@ -110,6 +111,7 @@ class _Parameter(intersystems_iris.dbapi._Descriptor._Descriptor):
|
|
|
110
111
|
int: lambda v: v,
|
|
111
112
|
float: lambda v: v,
|
|
112
113
|
decimal.Decimal: lambda v: v,
|
|
114
|
+
_IRISOREF: lambda v: str(v),
|
|
113
115
|
}
|
|
114
116
|
func = None
|
|
115
117
|
if issubclass(type(self.__value), enum.Enum):
|
|
@@ -1,12 +1,35 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: iris-pex-embedded-python
|
|
3
|
-
Version: 2.3.
|
|
4
|
-
Summary:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
Version: 2.3.21
|
|
4
|
+
Summary: Iris Interoperability based on Embedded Python
|
|
5
|
+
Author-email: grongier <guillaume.rongier@intersystems.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2019 InterSystems Developer Community
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: homepage, https://github.com/grongierisc/interoperability-embedded-python
|
|
29
|
+
Project-URL: documentation, https://github.com/grongierisc/interoperability-embedded-python/blob/master/README.md
|
|
30
|
+
Project-URL: repository, https://github.com/grongierisc/interoperability-embedded-python
|
|
31
|
+
Project-URL: issues, https://github.com/grongierisc/interoperability-embedded-python/issues
|
|
32
|
+
Keywords: iris,intersystems,python,embedded
|
|
10
33
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
34
|
Classifier: Intended Audience :: Developers
|
|
12
35
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -18,9 +41,10 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
18
41
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
42
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
43
|
Classifier: Topic :: Utilities
|
|
21
|
-
Requires-Python: >=3.6
|
|
22
44
|
Description-Content-Type: text/markdown
|
|
23
45
|
License-File: LICENSE
|
|
46
|
+
Requires-Dist: dacite>=1.6.0
|
|
47
|
+
Requires-Dist: xmltodict>=0.12.0
|
|
24
48
|
|
|
25
49
|
# 1. interoperability-embedded-python
|
|
26
50
|
|
|
@@ -39,6 +39,7 @@ src/grongier/pex/_pickle_message.py
|
|
|
39
39
|
src/grongier/pex/_private_session_duplex.py
|
|
40
40
|
src/grongier/pex/_private_session_process.py
|
|
41
41
|
src/grongier/pex/_utils.py
|
|
42
|
+
src/grongier/pex/wsgi/handlers.py
|
|
42
43
|
src/intersystems_iris/_BufferReader.py
|
|
43
44
|
src/intersystems_iris/_BufferWriter.py
|
|
44
45
|
src/intersystems_iris/_ConnectionInformation.py
|
|
@@ -104,9 +105,6 @@ src/intersystems_iris/pex/_OutboundAdapter.py
|
|
|
104
105
|
src/intersystems_iris/pex/__init__.py
|
|
105
106
|
src/iris/__init__.py
|
|
106
107
|
src/iris/iris_ipm.py
|
|
107
|
-
src/iris/iris_site.py
|
|
108
|
-
src/iris/irisbuiltins.py
|
|
109
|
-
src/iris/irisloader.py
|
|
110
108
|
src/iris_pex_embedded_python.egg-info/PKG-INFO
|
|
111
109
|
src/iris_pex_embedded_python.egg-info/SOURCES.txt
|
|
112
110
|
src/iris_pex_embedded_python.egg-info/dependency_links.txt
|
|
File without changes
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Licensed under the MIT License
|
|
2
|
-
# https://github.com/grongierisc/iris_pex_embedded_python/blob/main/LICENSE
|
|
3
|
-
|
|
4
|
-
import os
|
|
5
|
-
|
|
6
|
-
from setuptools import setup, find_packages
|
|
7
|
-
|
|
8
|
-
def main():
|
|
9
|
-
# Read the readme for use as the long description
|
|
10
|
-
with open(os.path.join(os.path.abspath(os.path.dirname(__file__)),
|
|
11
|
-
'README.md'), encoding='utf-8') as readme_file:
|
|
12
|
-
long_description = readme_file.read()
|
|
13
|
-
|
|
14
|
-
# Do the setup
|
|
15
|
-
setup(
|
|
16
|
-
name='iris_pex_embedded_python',
|
|
17
|
-
description='iris_pex_embedded_python',
|
|
18
|
-
long_description=long_description,
|
|
19
|
-
long_description_content_type='text/markdown',
|
|
20
|
-
version='2.3.18',
|
|
21
|
-
author='grongier',
|
|
22
|
-
author_email='guillaume.rongier@intersystems.com',
|
|
23
|
-
keywords='iris_pex_embedded_python',
|
|
24
|
-
url='https://github.com/grongierisc/interoperability-embedded-python',
|
|
25
|
-
license='MIT',
|
|
26
|
-
classifiers=[
|
|
27
|
-
'Development Status :: 5 - Production/Stable',
|
|
28
|
-
'Intended Audience :: Developers',
|
|
29
|
-
'License :: OSI Approved :: MIT License',
|
|
30
|
-
'Operating System :: OS Independent',
|
|
31
|
-
'Programming Language :: Python :: 3.6',
|
|
32
|
-
'Programming Language :: Python :: 3.7',
|
|
33
|
-
'Programming Language :: Python :: 3.8',
|
|
34
|
-
'Programming Language :: Python :: 3.9',
|
|
35
|
-
'Programming Language :: Python :: 3.10',
|
|
36
|
-
'Programming Language :: Python :: 3.11',
|
|
37
|
-
'Topic :: Utilities'
|
|
38
|
-
],
|
|
39
|
-
package_dir={'': 'src'},
|
|
40
|
-
packages=find_packages(where='src'),
|
|
41
|
-
package_data={'grongier.cls': ['**/*.cls']},
|
|
42
|
-
python_requires='>=3.6',
|
|
43
|
-
install_requires=[
|
|
44
|
-
"dacite>=1.6.0",
|
|
45
|
-
"xmltodict>=0.12.0",
|
|
46
|
-
],
|
|
47
|
-
entry_points={
|
|
48
|
-
'console_scripts': [
|
|
49
|
-
# create an iop command that point to the main of the grongier.pex package
|
|
50
|
-
'iop = grongier.pex._cli:main',
|
|
51
|
-
],
|
|
52
|
-
}
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if __name__ == '__main__':
|
|
57
|
-
main()
|