iris-pex-embedded-python 2.3.17__py3-none-any.whl → 2.3.18__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.
- grongier/pex/_business_host.py +9 -1
- intersystems_iris/dbapi/_DBAPI.py +517 -243
- intersystems_iris/dbapi/_IRISStream.py +2 -0
- intersystems_iris/dbapi/_Parameter.py +62 -31
- intersystems_iris/dbapi/_ParameterCollection.py +9 -1
- intersystems_iris/dbapi/_ResultSetRow.py +3 -1
- intersystems_iris/dbapi/preparser/_PreParser.py +47 -38
- {iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/METADATA +1 -1
- {iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/RECORD +13 -13
- {iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/LICENSE +0 -0
- {iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/WHEEL +0 -0
- {iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/entry_points.txt +0 -0
- {iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/top_level.txt +0 -0
|
@@ -3,6 +3,7 @@ from .._MessageHeader import _MessageHeader
|
|
|
3
3
|
from .._InStream import _InStream
|
|
4
4
|
from .._OutStream import _OutStream
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
class IRISStream:
|
|
7
8
|
_handle = None
|
|
8
9
|
_binary = False
|
|
@@ -59,5 +60,6 @@ class IRISStream:
|
|
|
59
60
|
|
|
60
61
|
return result
|
|
61
62
|
|
|
63
|
+
|
|
62
64
|
class IRISBinaryStream(IRISStream):
|
|
63
65
|
_binary = True
|
|
@@ -3,6 +3,7 @@ import decimal
|
|
|
3
3
|
import enum
|
|
4
4
|
import intersystems_iris.dbapi._Descriptor
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
class ParameterMode(enum.IntEnum):
|
|
7
8
|
UNKNOWN = 0
|
|
8
9
|
INPUT = 1
|
|
@@ -13,8 +14,22 @@ class ParameterMode(enum.IntEnum):
|
|
|
13
14
|
DEFAULT_PARAMETER = 6
|
|
14
15
|
RETURN_VALUE = 7
|
|
15
16
|
|
|
17
|
+
|
|
16
18
|
class _Parameter(intersystems_iris.dbapi._Descriptor._Descriptor):
|
|
17
|
-
def __init__(
|
|
19
|
+
def __init__(
|
|
20
|
+
self,
|
|
21
|
+
value=None,
|
|
22
|
+
mode=ParameterMode.UNKNOWN,
|
|
23
|
+
paramType="?",
|
|
24
|
+
name="",
|
|
25
|
+
execParam=False,
|
|
26
|
+
bound=False,
|
|
27
|
+
type=0,
|
|
28
|
+
precision=0,
|
|
29
|
+
scale=None,
|
|
30
|
+
nullable=0,
|
|
31
|
+
slotPosition=None,
|
|
32
|
+
):
|
|
18
33
|
if not isinstance(mode, ParameterMode):
|
|
19
34
|
raise TypeError("mode must be a ParameterMode")
|
|
20
35
|
paramType = str(paramType)
|
|
@@ -48,23 +63,35 @@ class _Parameter(intersystems_iris.dbapi._Descriptor._Descriptor):
|
|
|
48
63
|
|
|
49
64
|
def __repr__(self) -> str:
|
|
50
65
|
if self.mode not in [ParameterMode.UNKNOWN, ParameterMode.INPUT]:
|
|
51
|
-
return f
|
|
66
|
+
return f"<{self.mode.name}>{repr(self.value)}"
|
|
52
67
|
else:
|
|
53
|
-
return f
|
|
68
|
+
return f"<{self.mode.name}>"
|
|
54
69
|
|
|
55
|
-
def Clone(self):
|
|
56
|
-
clone = _Parameter(
|
|
70
|
+
def Clone(self, value=None):
|
|
71
|
+
clone = _Parameter(
|
|
72
|
+
value or self.value,
|
|
73
|
+
self.mode,
|
|
74
|
+
self.paramType,
|
|
75
|
+
self.name,
|
|
76
|
+
self.execParam,
|
|
77
|
+
self.bound,
|
|
78
|
+
self.type,
|
|
79
|
+
self.precision,
|
|
80
|
+
self.scale,
|
|
81
|
+
self.nullable,
|
|
82
|
+
self.slotPosition,
|
|
83
|
+
)
|
|
57
84
|
clone.cloneMe(self)
|
|
58
|
-
|
|
85
|
+
|
|
59
86
|
clone.parsermatched = self.parsermatched
|
|
60
87
|
clone.matchedParameterList = self.matchedParameterList
|
|
61
|
-
|
|
88
|
+
|
|
62
89
|
return clone
|
|
63
90
|
|
|
64
91
|
@property
|
|
65
92
|
def bound(self):
|
|
66
93
|
return self.__bound
|
|
67
|
-
|
|
94
|
+
|
|
68
95
|
@property
|
|
69
96
|
def paramType(self):
|
|
70
97
|
return self.__paramType
|
|
@@ -72,28 +99,29 @@ class _Parameter(intersystems_iris.dbapi._Descriptor._Descriptor):
|
|
|
72
99
|
@property
|
|
73
100
|
def value(self):
|
|
74
101
|
_set_switcher = {
|
|
75
|
-
type(None): lambda v
|
|
102
|
+
type(None): lambda v: None,
|
|
76
103
|
# str: lambda v : v or b'\x00',
|
|
77
|
-
datetime.time: lambda v
|
|
78
|
-
datetime.date: lambda v
|
|
79
|
-
datetime.datetime: lambda v
|
|
80
|
-
bytes: lambda v
|
|
81
|
-
bytearray: lambda v
|
|
82
|
-
bool: lambda v
|
|
83
|
-
int: lambda v
|
|
84
|
-
float: lambda v
|
|
85
|
-
decimal.Decimal: lambda v
|
|
104
|
+
datetime.time: lambda v: v.strftime("%H:%M:%S.%f"),
|
|
105
|
+
datetime.date: lambda v: v.strftime("%Y-%m-%d"),
|
|
106
|
+
datetime.datetime: lambda v: v.strftime("%Y-%m-%d %H:%M:%S.%f"),
|
|
107
|
+
bytes: lambda v: v,
|
|
108
|
+
bytearray: lambda v: v,
|
|
109
|
+
bool: lambda v: 1 if v else 0,
|
|
110
|
+
int: lambda v: v,
|
|
111
|
+
float: lambda v: v,
|
|
112
|
+
decimal.Decimal: lambda v: v,
|
|
86
113
|
}
|
|
87
|
-
func =
|
|
88
|
-
|
|
114
|
+
func = None
|
|
115
|
+
if issubclass(type(self.__value), enum.Enum):
|
|
116
|
+
value = self.__value.value
|
|
117
|
+
elif type(self.__value) in _set_switcher:
|
|
118
|
+
func = _set_switcher[type(self.__value)]
|
|
119
|
+
value = func(self.__value)
|
|
120
|
+
else:
|
|
121
|
+
value = str(self.__value)
|
|
89
122
|
if self.mode == ParameterMode.REPLACED_LITERAL:
|
|
90
|
-
|
|
123
|
+
if isinstance(value, str) and value.isdigit() and str(int(value)) == value:
|
|
91
124
|
value = int(value)
|
|
92
|
-
except:
|
|
93
|
-
try:
|
|
94
|
-
value = float(value)
|
|
95
|
-
except:
|
|
96
|
-
pass
|
|
97
125
|
return value
|
|
98
126
|
|
|
99
127
|
def _copy_cached_info(self, desc, copy_replaced):
|
|
@@ -102,9 +130,11 @@ class _Parameter(intersystems_iris.dbapi._Descriptor._Descriptor):
|
|
|
102
130
|
self.scale = desc.scale
|
|
103
131
|
self.nullable = desc.nullable
|
|
104
132
|
self.name = desc.name
|
|
105
|
-
if (
|
|
106
|
-
|
|
107
|
-
and (desc.mode != ParameterMode.
|
|
133
|
+
if (
|
|
134
|
+
(self.mode != ParameterMode.REPLACED_LITERAL)
|
|
135
|
+
and (desc.mode != ParameterMode.REPLACED_LITERAL)
|
|
136
|
+
and (desc.mode != ParameterMode.UNKNOWN)
|
|
137
|
+
):
|
|
108
138
|
self.mode = desc.mode
|
|
109
139
|
|
|
110
140
|
if not copy_replaced:
|
|
@@ -114,7 +144,8 @@ class _Parameter(intersystems_iris.dbapi._Descriptor._Descriptor):
|
|
|
114
144
|
self.mode = ParameterMode.REPLACED_LITERAL
|
|
115
145
|
self.__value = desc.value
|
|
116
146
|
self._values = list()
|
|
117
|
-
if len(desc._values) > 0:
|
|
147
|
+
if len(desc._values) > 0:
|
|
148
|
+
self._values.append(desc._values[0])
|
|
118
149
|
return
|
|
119
150
|
|
|
120
151
|
def _bind(self, value, parameter_sets):
|
|
@@ -135,4 +166,4 @@ class _Parameter(intersystems_iris.dbapi._Descriptor._Descriptor):
|
|
|
135
166
|
if self.mode == ParameterMode.OUTPUT or self.mode == ParameterMode.INPUT_OUTPUT:
|
|
136
167
|
self.mode = ParameterMode.INPUT_OUTPUT
|
|
137
168
|
else:
|
|
138
|
-
self.mode = ParameterMode.INPUT
|
|
169
|
+
self.mode = ParameterMode.INPUT
|
|
@@ -34,7 +34,7 @@ class _ParameterCollection:
|
|
|
34
34
|
self._array_bound = False
|
|
35
35
|
|
|
36
36
|
def set_input_params(self, params):
|
|
37
|
-
self._input_params = params
|
|
37
|
+
self._input_params = list(params)
|
|
38
38
|
|
|
39
39
|
def collect(self, i: int = 0) -> list:
|
|
40
40
|
params = list()
|
|
@@ -61,6 +61,14 @@ class _ParameterCollection:
|
|
|
61
61
|
|
|
62
62
|
return params
|
|
63
63
|
|
|
64
|
+
def update(self, set_index, param_index, value):
|
|
65
|
+
if isinstance(self._input_params[set_index], tuple):
|
|
66
|
+
self._input_params[set_index] = list(self._input_params[set_index])
|
|
67
|
+
if isinstance(self._input_params[set_index], list):
|
|
68
|
+
self._input_params[set_index][param_index] = value
|
|
69
|
+
else:
|
|
70
|
+
self._input_params[param_index] = value
|
|
71
|
+
|
|
64
72
|
def __repr__(self) -> str:
|
|
65
73
|
return repr(self.collect())
|
|
66
74
|
|
|
@@ -88,7 +88,7 @@ class _ResultSetRow:
|
|
|
88
88
|
SQLType.TYPE_DATE: None,
|
|
89
89
|
SQLType.TYPE_TIME: None,
|
|
90
90
|
SQLType.TYPE_TIMESTAMP: None,
|
|
91
|
-
SQLType.VARBINARY:
|
|
91
|
+
SQLType.VARBINARY: bytes,
|
|
92
92
|
SQLType.VARCHAR: str,
|
|
93
93
|
SQLType.WCHAR: None,
|
|
94
94
|
SQLType.WLONGVARCHAR: None,
|
|
@@ -165,6 +165,8 @@ class _ResultSetRow:
|
|
|
165
165
|
pass
|
|
166
166
|
elif item is None:
|
|
167
167
|
pass
|
|
168
|
+
elif value_type is bytes:
|
|
169
|
+
item = bytes(map(ord, item))
|
|
168
170
|
elif issubclass(value_type, IRISStream):
|
|
169
171
|
stream = value_type(self._connection, item)
|
|
170
172
|
item = stream.fetch()
|
|
@@ -11,6 +11,15 @@ from intersystems_iris.dbapi._Parameter import ParameterMode
|
|
|
11
11
|
from intersystems_iris.dbapi.preparser._Token import TOKEN
|
|
12
12
|
from intersystems_iris.dbapi.preparser._Scanner import ParseToken
|
|
13
13
|
|
|
14
|
+
class MultiValuesInsert(Exception):
|
|
15
|
+
|
|
16
|
+
def __init__(self, *args: object, query: str, rows: int, params=None) -> None:
|
|
17
|
+
super().__init__(*args)
|
|
18
|
+
self.query = query
|
|
19
|
+
self.rows = rows
|
|
20
|
+
self.params = params
|
|
21
|
+
|
|
22
|
+
|
|
14
23
|
# May want to move to its own file eventually
|
|
15
24
|
# SQL Statement Types
|
|
16
25
|
class StatementType(enum.IntEnum):
|
|
@@ -544,48 +553,48 @@ class _PreParser(object):
|
|
|
544
553
|
return False, query
|
|
545
554
|
|
|
546
555
|
def InsertMultiValues(self, query):
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
values_list = []
|
|
550
|
-
|
|
551
|
-
tokens = self.m_Tokens.GetEnumerator()
|
|
552
|
-
while tokens.MoveNext() and not tokens.Current().UpperEquals("INSERT"):
|
|
553
|
-
new_query += tokens.Current().Lexeme + ' '
|
|
554
|
-
if not tokens.MoveNext() or not tokens.Current().UpperEquals("INTO"):
|
|
555
|
-
return False, query
|
|
556
|
-
new_query += 'INSERT INTO '
|
|
557
|
-
while tokens.MoveNext() and not tokens.Current().UpperEquals("VALUES"):
|
|
558
|
-
new_query += tokens.Current().Lexeme + ' '
|
|
556
|
+
new_query = ''
|
|
557
|
+
values_list = []
|
|
559
558
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
if
|
|
559
|
+
tokens = self.m_Tokens.GetEnumerator()
|
|
560
|
+
while tokens.MoveNext() and not tokens.Current().UpperEquals("INSERT"):
|
|
561
|
+
new_query += tokens.Current().Lexeme + ' '
|
|
562
|
+
if not tokens.MoveNext() or not tokens.Current().UpperEquals("INTO"):
|
|
563
|
+
return False, query
|
|
564
|
+
new_query += 'INSERT INTO '
|
|
565
|
+
while tokens.MoveNext() and not tokens.Current().UpperEquals("VALUES"):
|
|
566
|
+
new_query += tokens.Current().Lexeme + ' '
|
|
567
|
+
|
|
568
|
+
values = ''
|
|
569
|
+
params = []
|
|
570
|
+
while tokens.MoveNext():
|
|
571
|
+
assert tokens.Current().TokenType is TOKEN.OPEN_PAREN
|
|
572
|
+
open_parens = 1
|
|
573
|
+
while tokens.MoveNext() or open_parens > 0:
|
|
574
|
+
token = tokens.Current()
|
|
575
|
+
if token.TokenType is TOKEN.OPEN_PAREN:
|
|
576
|
+
open_parens += 1
|
|
577
|
+
elif token.TokenType is TOKEN.CLOSE_PAREN:
|
|
578
|
+
open_parens -= 1
|
|
579
|
+
if open_parens == 0:
|
|
577
580
|
break
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
581
|
+
if token.TokenType is TOKEN.CONSTANT:
|
|
582
|
+
values += '?'
|
|
583
|
+
params += [token.Lexeme]
|
|
584
|
+
else:
|
|
585
|
+
values += token.Lexeme
|
|
586
|
+
values += ' '
|
|
587
|
+
values_list.append(values)
|
|
588
|
+
values = ''
|
|
589
|
+
if not tokens.MoveNext() or tokens.Current().TokenType is not TOKEN.COMMA:
|
|
590
|
+
break
|
|
591
|
+
|
|
592
|
+
if len(values_list) <= 1:
|
|
587
593
|
return False, query
|
|
588
594
|
|
|
595
|
+
new_query += f" VALUES ({values_list[0]})"
|
|
596
|
+
raise MultiValuesInsert(query=new_query, rows=len(values_list), params=params)
|
|
597
|
+
|
|
589
598
|
# Parse a statement
|
|
590
599
|
def Tokenize(self, p_strInput):
|
|
591
600
|
# Get a scanner on the sql string
|
{iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/RECORD
RENAMED
|
@@ -42,7 +42,7 @@ grongier/iris/Grongier/PEX/PrivateSession/Message/Start.cls,sha256=DAtq4DyRqFq2_
|
|
|
42
42
|
grongier/iris/Grongier/PEX/PrivateSession/Message/Stop.cls,sha256=ofVKjrN6UPFasalrjPFWYNwlJ5IBlAE62IH8_U07c0g,1435
|
|
43
43
|
grongier/pex/__init__.py,sha256=nvcmRCxLy-lpL5GzlCKrmsSK8LF8Q0aKddx6ib8U50E,1166
|
|
44
44
|
grongier/pex/__main__.py,sha256=ebEYPDOBKiXOlmdI4onpQLzfBKU4wyfijYyquA5dWV4,107
|
|
45
|
-
grongier/pex/_business_host.py,sha256=
|
|
45
|
+
grongier/pex/_business_host.py,sha256=DB8dGQUEzcWaVzE4lbydt97uZqrkG1UbYIHgBD7UNq4,18190
|
|
46
46
|
grongier/pex/_business_operation.py,sha256=W_B9Ci1fei8SGcElkAd13gV9S4BNKeQciTMVqxxJVZc,3509
|
|
47
47
|
grongier/pex/_business_process.py,sha256=WtO1RCZUKykaxUFocI1XmZmnSQzEOz_VFsVFytsOzFE,11838
|
|
48
48
|
grongier/pex/_business_service.py,sha256=8CgpjcdVmv5747CTa3Lw3B48RYXq2SQN9qfdxvqEI5g,3735
|
|
@@ -110,16 +110,16 @@ intersystems_iris/_SharedMemorySocket.py,sha256=2iUaS1FdJNSCUEaE-VT0O_dxF6NRwqZS
|
|
|
110
110
|
intersystems_iris/__init__.py,sha256=Tk1tD28LwvF6X3yXQsJFLE1Bc-PR3gUJWcX5UnNYOdY,1773
|
|
111
111
|
intersystems_iris/__main__.py,sha256=rCtINTfJcADMAsw1ja-MEO7Q-XekrWthYowzWV8xGIQ,218
|
|
112
112
|
intersystems_iris/dbapi/_Column.py,sha256=VCLHLXs3wuGcUa9w_qy7HBFsuGvhmmI3kGYBagQg59U,2535
|
|
113
|
-
intersystems_iris/dbapi/_DBAPI.py,sha256=
|
|
113
|
+
intersystems_iris/dbapi/_DBAPI.py,sha256=GR09iiA59NYfR4bB8YhdEwzZBQgyZaeGjqmmhUtoMJ0,101649
|
|
114
114
|
intersystems_iris/dbapi/_Descriptor.py,sha256=IjyITxvjygDrhpk-0lGhdqQPh91SG6nTb1vi-AqyJNI,1391
|
|
115
|
-
intersystems_iris/dbapi/_IRISStream.py,sha256=
|
|
115
|
+
intersystems_iris/dbapi/_IRISStream.py,sha256=dGJntWo4HXgM1nUHZl2hA4xHkBFEU2xkoEplVDFWhnA,2115
|
|
116
116
|
intersystems_iris/dbapi/_Message.py,sha256=jpLG3HZElqp981iNPFW8UNRO3NbHf6poEv6yywX0Ssw,4076
|
|
117
|
-
intersystems_iris/dbapi/_Parameter.py,sha256=
|
|
118
|
-
intersystems_iris/dbapi/_ParameterCollection.py,sha256=
|
|
119
|
-
intersystems_iris/dbapi/_ResultSetRow.py,sha256=
|
|
117
|
+
intersystems_iris/dbapi/_Parameter.py,sha256=PrfQQnfBf1R1M3P9oUrus6T5PROg35A8LO-RRFo6J1I,5202
|
|
118
|
+
intersystems_iris/dbapi/_ParameterCollection.py,sha256=kcgNiGv2nH5AwuA6LlPpM4dWqhSqRyD3VtwqHqDGRGU,5541
|
|
119
|
+
intersystems_iris/dbapi/_ResultSetRow.py,sha256=tNKCv5P8XhP9zzdPpBGiXYHLKOScITTBGSqtui1TAM0,12910
|
|
120
120
|
intersystems_iris/dbapi/_SQLType.py,sha256=IlDacXwQzUMWaJ02Zsu2bUfvUC3-5mBx-m6mE0Yp7ts,557
|
|
121
121
|
intersystems_iris/dbapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
122
|
-
intersystems_iris/dbapi/preparser/_PreParser.py,sha256=
|
|
122
|
+
intersystems_iris/dbapi/preparser/_PreParser.py,sha256=024w-s3n_JNsk_ISC8avJMK3QEZE3hSuD0Nr8arJdZw,78828
|
|
123
123
|
intersystems_iris/dbapi/preparser/_Scanner.py,sha256=xA8rkKsaVba_mAgoXEeliyuMxNKe4vVmmw_klukdf_U,16163
|
|
124
124
|
intersystems_iris/dbapi/preparser/_Token.py,sha256=9ZYrjvYJtMApAR7RtYzp32Hcoo3jB_YpG7ECo7p6QHA,2304
|
|
125
125
|
intersystems_iris/dbapi/preparser/_TokenList.py,sha256=P74kA3DXxi7imt0mea4LPjCCc_gk50zsYLOCWON_JvA,6770
|
|
@@ -145,9 +145,9 @@ iris/irisbuiltins.py,sha256=0xMYrnTJ8q3WsQ8CXlKHYnfAVTIkO-PXDpdQ_SvHVpI,2687
|
|
|
145
145
|
iris/irisloader.py,sha256=2ZLM0FlYNStTiZrXuvDcO-V_XZVgmB3R8vesmaqMqYA,4808
|
|
146
146
|
irisnative/_IRISNative.py,sha256=HQ4nBhc8t8_5OtxdMG-kx1aa-T1znf2I8obZOPLOPzg,665
|
|
147
147
|
irisnative/__init__.py,sha256=6YmvBLQSURsCPKaNg7LK-xpo4ipDjrlhKuwdfdNb3Kg,341
|
|
148
|
-
iris_pex_embedded_python-2.3.
|
|
149
|
-
iris_pex_embedded_python-2.3.
|
|
150
|
-
iris_pex_embedded_python-2.3.
|
|
151
|
-
iris_pex_embedded_python-2.3.
|
|
152
|
-
iris_pex_embedded_python-2.3.
|
|
153
|
-
iris_pex_embedded_python-2.3.
|
|
148
|
+
iris_pex_embedded_python-2.3.18.dist-info/LICENSE,sha256=rZSiBFId_sfbJ6RL0GjjPX-InNLkNS9ou7eQsikciI8,1089
|
|
149
|
+
iris_pex_embedded_python-2.3.18.dist-info/METADATA,sha256=qgmU6DQUBf-JkfKS8mnIgyFIzdUsEgLJU3w06Dnumwg,48121
|
|
150
|
+
iris_pex_embedded_python-2.3.18.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
151
|
+
iris_pex_embedded_python-2.3.18.dist-info/entry_points.txt,sha256=atkAtHoIuwXcZ0jl5gwof0l__ru_lt8WhVYk6HxYf70,47
|
|
152
|
+
iris_pex_embedded_python-2.3.18.dist-info/top_level.txt,sha256=Tl4ZHgeNefaZW2Oug30vSldhD-tWzixsIfzASBrZ9ps,43
|
|
153
|
+
iris_pex_embedded_python-2.3.18.dist-info/RECORD,,
|
{iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/LICENSE
RENAMED
|
File without changes
|
{iris_pex_embedded_python-2.3.17.dist-info → iris_pex_embedded_python-2.3.18.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|