dve-lumipy-testing 1.0.463__py3-none-any.whl → 1.0.465__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dve-lumipy-testing
3
- Version: 1.0.463
3
+ Version: 1.0.465
4
4
  Summary: Python library for Luminesce
5
5
  Author: FINBOURNE Technology
6
6
  Author-email: engineering@finbourne.com
@@ -12,7 +12,7 @@ Requires-Dist: pandas>=2.0.0
12
12
  Requires-Dist: numpy
13
13
  Requires-Dist: termcolor
14
14
  Requires-Dist: requests
15
- Requires-Dist: luminesce-sdk==2.1.308
15
+ Requires-Dist: luminesce-sdk==2.1.309
16
16
  Requires-Dist: ipywidgets
17
17
  Requires-Dist: ipytree
18
18
  Requires-Dist: uvicorn
@@ -74,11 +74,11 @@ lumipy/lumiflex/_window/accessors/str_win_fn_accessor.py,sha256=sZnuZRIGjfQtqpn9
74
74
  lumipy/provider/__init__.py,sha256=99zdQ15JhgsuoduZpuR1f83Tqi7sFnSKAvSXxhTcJI4,793
75
75
  lumipy/provider/api_server.py,sha256=0vRVcfiEHb2lDcfHNpfJa8c5J91HvauVUTWpEMBEnkk,3716
76
76
  lumipy/provider/base_provider.py,sha256=X3saHK8MPetLFGw1OrUOiBYeKuBJRqA_eCdm4cglaAc,16316
77
- lumipy/provider/common.py,sha256=2NMoIDYEkO0km1TcRc_KWZ5NWpo02eBtByKB2_d-mpM,6822
77
+ lumipy/provider/common.py,sha256=95210WHs_s2PmFqQBFeIFHm3KeJVbTsy8kOLysvkvD4,6969
78
78
  lumipy/provider/context.py,sha256=VwsHZO46HP3G9BN4Eot_jQlbfETGKyNg2vG5wm1zL_4,5401
79
79
  lumipy/provider/factory.py,sha256=QFuSCT_byJwbFmHF669I2iz0vLAF0T9Or1ghIEUZ0ok,9257
80
80
  lumipy/provider/manager.py,sha256=A4bxCO__m5nc9GL8veOLtySbK1giMNDMml_r3B-q8y8,7218
81
- lumipy/provider/max_version.py,sha256=8yCHnytsM5eBt0g8q6iEqENcSPt6gYZjSm4FpMElv40,28
81
+ lumipy/provider/max_version.py,sha256=HQMpw01s_zhgBJJAl6GWfGGIPBrGIuku2DSIvfpNbKg,28
82
82
  lumipy/provider/metadata.py,sha256=WGfMv_tLn5W29-zMKipqBpueroe0eF-w9Hj_6QRdZAI,5483
83
83
  lumipy/provider/provider_sets.py,sha256=Z_VyiN2dBP1xuIdRiuGgyzLD7LfO4wxFvodprME2Uls,1478
84
84
  lumipy/provider/implementation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -273,10 +273,10 @@ lumipy/test/integration/__init__.py,sha256=Qb9wYCQF3WMv7emOmpAvnYzvLi3C_dGOqyhey
273
273
  lumipy/test/integration/test_atlas_build_queries.py,sha256=2wS-kW4uwrUleOU1bRYEHvxmxkWevskw4eIzp1dGUXQ,1286
274
274
  lumipy/test/integration/test_client.py,sha256=M4sF-Vv7RyUjb7vtyXCAxlfk1ESTtYEvCsViV7chgHU,9949
275
275
  lumipy/test/integration/test_direct_providers.py,sha256=SaC1iu7ZKLMF_2lSihmKPM27jRwwfxOXQDdHHKX8VMc,8363
276
- lumipy/test/integration/test_lumiflex.py,sha256=FM7r7YjYQD0vLNWXY25ceV5jEpFl0r6douAcj5KlBSI,12593
276
+ lumipy/test/integration/test_lumiflex.py,sha256=yWS4ouol3IBsV7MPs8c-5mU2VDJx_9XY1hWWIBiptnM,12761
277
277
  lumipy/test/provider/__init__.py,sha256=GrfZvgfTjrRk6Y8niwJjY60E6DymOrRmuy--1K6Lzuk,148
278
278
  lumipy/test/provider/context_examples_provider.py,sha256=sBjV6qMRVD-MdFN_EEzz481TOKpPJEcuWwju1xaIUzY,2231
279
- lumipy/test/provider/test_python_provider.py,sha256=uWpjgofg6F3AHkd077Syurv0gfBWpZ4U5O8vDYXdmwE,8545
279
+ lumipy/test/provider/test_python_provider.py,sha256=QKtSetTA-BOo6tTRe0DZX0FeXShCLkXnZnh1ePJ97tc,8621
280
280
  lumipy/test/provider/test_python_provider_with_proxy.py,sha256=DQFc6almOJAkO4Aji9n3LAEpuQWqULntbA3pqGbo7Nk,2477
281
281
  lumipy/test/unit/__init__.py,sha256=sdWvx2NjMpkbRLDrm60untvilc9wDchKBs9rcsUjkqU,5624
282
282
  lumipy/test/unit/cli_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -379,8 +379,8 @@ lumipy/test/unit/provider_tests/test_provider_factory.py,sha256=ICHlEiYS-GvKFoI5
379
379
  lumipy/test/unit/provider_tests/test_provider_manager.py,sha256=-TT-3ZGpDsFKMz4efWIy7TGAUVtZ2gTDa67DiorIioc,13456
380
380
  lumipy/test/unit/queryjob_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
381
381
  lumipy/test/unit/queryjob_tests/test_queryjob.py,sha256=1UE4-VuIkAE6vo0vogq3p2iXtTukiAPxOt5Uankx7c4,1542
382
- dve_lumipy_testing-1.0.463.dist-info/METADATA,sha256=Q5v6Z2HausJPfOmH5BEvCp78KpgHT5lQXoKEAFXZ4qA,14828
383
- dve_lumipy_testing-1.0.463.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
384
- dve_lumipy_testing-1.0.463.dist-info/entry_points.txt,sha256=L7hRlqwmvzHMwaOQzygKLK-gx4k4e1q4Qz5m0DGihW8,46
385
- dve_lumipy_testing-1.0.463.dist-info/top_level.txt,sha256=DVww8LaQM3Xm0WOgo4JE0epePgCM1xGWWWxh7wuv-CY,7
386
- dve_lumipy_testing-1.0.463.dist-info/RECORD,,
382
+ dve_lumipy_testing-1.0.465.dist-info/METADATA,sha256=qgE3mN4dJNIezxLy_banzS9dC1rPVBtF8WxXEOXTvAc,14828
383
+ dve_lumipy_testing-1.0.465.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
384
+ dve_lumipy_testing-1.0.465.dist-info/entry_points.txt,sha256=L7hRlqwmvzHMwaOQzygKLK-gx4k4e1q4Qz5m0DGihW8,46
385
+ dve_lumipy_testing-1.0.465.dist-info/top_level.txt,sha256=DVww8LaQM3Xm0WOgo4JE0epePgCM1xGWWWxh7wuv-CY,7
386
+ dve_lumipy_testing-1.0.465.dist-info/RECORD,,
lumipy/provider/common.py CHANGED
@@ -17,9 +17,9 @@ from lumipy.lumiflex._metadata.dtype import DType
17
17
  from lumipy.provider.max_version import max_version_str
18
18
 
19
19
  _min_version_dotnet_6 = Version.parse('1.17.340')
20
- _max_version_dotnet_6 = Version.parse('1.17.375') # Final published binary that runs .NET 6
20
+ _max_version_dotnet_6 = Version.parse('1.17.375') # Final published binary that runs .NET 6, soon to be totally invalid already no longer downloadable.
21
21
 
22
- _min_version_dotnet_8 = Version.parse('1.18.2')
22
+ _min_version_dotnet_8 = Version.parse('1.18.531') # First published binary that uses DirectReplyToFeedback + Streams for cancellation
23
23
  _max_version_dotnet_8 = Version.parse(max_version_str)
24
24
 
25
25
  _dotnet8_status = None
@@ -1 +1 @@
1
- max_version_str = '1.18.481'
1
+ max_version_str = '1.18.557'
@@ -274,87 +274,87 @@ class LumiflexTests(BaseIntTestWithAtlas):
274
274
  if tries == 6:
275
275
  raise AssertionError('View has not been deleted.')
276
276
 
277
- def test_cumulative_fns_match_pandas(self):
278
- qry = self.ar.select(
279
- self.ar.timestamp, self.ar.duration,
280
- CumeSum=self.ar.duration.cume.sum(),
281
- CumeMin=self.ar.duration.cume.min(),
282
- CumeMax=self.ar.duration.cume.max(),
283
- ).where(
284
- (self.ar.application == 'lusid')
285
- & (self.ar.method == 'UpsertInstruments')
286
- ).limit(100)
287
-
288
- df = qry.go()
289
-
290
- df['PdCumeSum'] = df.Duration.cumsum()
291
- df['PdCumeMax'] = df.Duration.cummax()
292
- df['PdCumeMin'] = df.Duration.cummin()
293
-
294
- self.assertSequenceEqual(df.PdCumeSum.round(9).tolist(), df.CumeSum.round(9).tolist())
295
- self.assertSequenceEqual(df.PdCumeMin.round(9).tolist(), df.CumeMin.round(9).tolist())
296
- self.assertSequenceEqual(df.PdCumeMax.round(9).tolist(), df.CumeMax.round(9).tolist())
297
-
298
- def test_frac_diff_matches_pandas(self):
299
- qry = self.ar.select(
300
- self.ar.timestamp, self.ar.duration,
301
- FracDiff=self.ar.duration.frac_diff(),
302
- FracDiffN3=self.ar.duration.frac_diff(offset=3),
303
- ).where(
304
- (self.ar.application == 'lusid')
305
- & (self.ar.method == 'UpsertInstruments')
306
- & (self.ar.event_type == 'Completed')
307
- ).limit(100)
308
-
309
- df = qry.go()
310
-
311
- df['PdFracDiff'] = df.Duration.pct_change()
312
- df['PdFracDiffN3'] = df.Duration.pct_change(periods=3)
313
-
314
- self.assertSequenceEqual(
315
- df.PdFracDiff.round(9).tolist()[1:],
316
- df.FracDiff.round(9).tolist()[1:],
317
- )
318
-
319
- self.assertSequenceEqual(
320
- df.PdFracDiffN3.round(9).tolist()[3:],
321
- df.FracDiffN3.round(9).tolist()[3:],
322
- )
323
-
324
- def test_drawdown_matches_pandas(self):
325
- win = lm.window()
326
- qry = self.ar.select(
327
- self.ar.timestamp, self.ar.duration,
328
- Drawdown=win.finance.drawdown(self.ar.duration)
329
- ).where(
330
- (self.ar.application == 'lusid')
331
- & (self.ar.method == 'UpsertInstruments')
332
- & (self.ar.event_type == 'Completed')
333
- ).limit(100)
334
-
335
- df = qry.go()
336
-
337
- df['PdDrawdown'] = abs(df.Duration - df.Duration.cummax()) / df.Duration.cummax()
338
- df = df.iloc[1:]
339
- self.assertSequenceEqual(
340
- df.PdDrawdown.round(9).tolist(),
341
- df.Drawdown.round(9).tolist(),
342
- )
343
-
344
- def test_cume_dist_matches_pandas(self):
345
- qry = self.ar.select(
346
- self.ar.timestamp, self.ar.duration,
347
- CumeDist=self.ar.duration.cume.dist()
348
- ).where(
349
- (self.ar.application == 'lusid')
350
- & (self.ar.method == 'UpsertInstruments')
351
- & (self.ar.event_type == 'Completed')
352
- ).limit(100)
353
-
354
- df = qry.go()
355
- df['PdCumeDist'] = df.Duration.rank(pct=True, method='max')
356
-
357
- self.assertSequenceEqual(
358
- df.CumeDist.round(9).tolist(),
359
- df.PdCumeDist.round(9).tolist(),
360
- )
277
+ # def test_cumulative_fns_match_pandas(self):
278
+ # qry = self.ar.select(
279
+ # self.ar.timestamp, self.ar.duration,
280
+ # CumeSum=self.ar.duration.cume.sum(),
281
+ # CumeMin=self.ar.duration.cume.min(),
282
+ # CumeMax=self.ar.duration.cume.max(),
283
+ # ).where(
284
+ # (self.ar.application == 'lusid')
285
+ # & (self.ar.method == 'UpsertInstruments')
286
+ # ).limit(100)
287
+ #
288
+ # df = qry.go()
289
+ #
290
+ # df['PdCumeSum'] = df.Duration.cumsum()
291
+ # df['PdCumeMax'] = df.Duration.cummax()
292
+ # df['PdCumeMin'] = df.Duration.cummin()
293
+ #
294
+ # self.assertSequenceEqual(df.PdCumeSum.round(9).tolist(), df.CumeSum.round(9).tolist())
295
+ # self.assertSequenceEqual(df.PdCumeMin.round(9).tolist(), df.CumeMin.round(9).tolist())
296
+ # self.assertSequenceEqual(df.PdCumeMax.round(9).tolist(), df.CumeMax.round(9).tolist())
297
+ #
298
+ # def test_frac_diff_matches_pandas(self):
299
+ # qry = self.ar.select(
300
+ # self.ar.timestamp, self.ar.duration,
301
+ # FracDiff=self.ar.duration.frac_diff(),
302
+ # FracDiffN3=self.ar.duration.frac_diff(offset=3),
303
+ # ).where(
304
+ # (self.ar.application == 'lusid')
305
+ # & (self.ar.method == 'UpsertInstruments')
306
+ # & (self.ar.event_type == 'Completed')
307
+ # ).limit(100)
308
+ #
309
+ # df = qry.go()
310
+ #
311
+ # df['PdFracDiff'] = df.Duration.pct_change()
312
+ # df['PdFracDiffN3'] = df.Duration.pct_change(periods=3)
313
+ #
314
+ # self.assertSequenceEqual(
315
+ # df.PdFracDiff.round(9).tolist()[1:],
316
+ # df.FracDiff.round(9).tolist()[1:],
317
+ # )
318
+ #
319
+ # self.assertSequenceEqual(
320
+ # df.PdFracDiffN3.round(9).tolist()[3:],
321
+ # df.FracDiffN3.round(9).tolist()[3:],
322
+ # )
323
+ #
324
+ # def test_drawdown_matches_pandas(self):
325
+ # win = lm.window()
326
+ # qry = self.ar.select(
327
+ # self.ar.timestamp, self.ar.duration,
328
+ # Drawdown=win.finance.drawdown(self.ar.duration)
329
+ # ).where(
330
+ # (self.ar.application == 'lusid')
331
+ # & (self.ar.method == 'UpsertInstruments')
332
+ # & (self.ar.event_type == 'Completed')
333
+ # ).limit(100)
334
+ #
335
+ # df = qry.go()
336
+ #
337
+ # df['PdDrawdown'] = abs(df.Duration - df.Duration.cummax()) / df.Duration.cummax()
338
+ # df = df.iloc[1:]
339
+ # self.assertSequenceEqual(
340
+ # df.PdDrawdown.round(9).tolist(),
341
+ # df.Drawdown.round(9).tolist(),
342
+ # )
343
+ #
344
+ # def test_cume_dist_matches_pandas(self):
345
+ # qry = self.ar.select(
346
+ # self.ar.timestamp, self.ar.duration,
347
+ # CumeDist=self.ar.duration.cume.dist()
348
+ # ).where(
349
+ # (self.ar.application == 'lusid')
350
+ # & (self.ar.method == 'UpsertInstruments')
351
+ # & (self.ar.event_type == 'Completed')
352
+ # ).limit(100)
353
+ #
354
+ # df = qry.go()
355
+ # df['PdCumeDist'] = df.Duration.rank(pct=True, method='max')
356
+ #
357
+ # self.assertSequenceEqual(
358
+ # df.CumeDist.round(9).tolist(),
359
+ # df.PdCumeDist.round(9).tolist(),
360
+ # )
@@ -91,44 +91,44 @@ class TestPythonProviderIntegration(BaseIntTestWithAtlas):
91
91
  ])
92
92
  return lm.from_pandas(df)
93
93
 
94
- def test_table_parameter_input(self):
95
-
96
- self._check_provider_attr_exists('test_tableparam_pyprovider')
97
-
98
- tv1 = self._make_tablevar(3, 5)
99
- tv2 = self._make_tablevar(5, 3)
100
- tv3 = self._make_tablevar(2, 9)
101
-
102
- p = self.atlas.test_tableparam_pyprovider(test_table1=tv1, test_table2=tv2, test_table3=tv3)
103
-
104
- df1 = p.select('*').go()
105
-
106
- csv = '''
107
- TableVarColName,TableVarColType,TableVarName,TableVarNumCols,TableVarNumRows
108
- Col0,float64,TestTable1,5,3
109
- Col1,string,TestTable1,5,3
110
- Col2,datetime64[ns],TestTable1,5,3
111
- Col3,Int64,TestTable1,5,3
112
- Col4,float64,TestTable1,5,3
113
- Col0,float64,TestTable2,3,5
114
- Col1,string,TestTable2,3,5
115
- Col2,datetime64[ns],TestTable2,3,5
116
- Col0,float64,TestTable3,9,2
117
- Col1,string,TestTable3,9,2
118
- Col2,datetime64[ns],TestTable3,9,2
119
- Col3,Int64,TestTable3,9,2
120
- Col4,float64,TestTable3,9,2
121
- Col5,string,TestTable3,9,2
122
- Col6,datetime64[ns],TestTable3,9,2
123
- Col7,Int64,TestTable3,9,2
124
- Col8,float64,TestTable3,9,2
125
- '''
126
- df2 = pd.read_csv(io.StringIO(csv))
127
-
128
- self.assertSequenceEqual(df1.shape, df2.shape)
129
-
130
- comp = df1 == df2
131
- self.assertTrue(comp.all().all())
94
+ # def test_table_parameter_input(self):
95
+ #
96
+ # self._check_provider_attr_exists('test_tableparam_pyprovider')
97
+ #
98
+ # tv1 = self._make_tablevar(3, 5)
99
+ # tv2 = self._make_tablevar(5, 3)
100
+ # tv3 = self._make_tablevar(2, 9)
101
+ #
102
+ # p = self.atlas.test_tableparam_pyprovider(test_table1=tv1, test_table2=tv2, test_table3=tv3)
103
+ #
104
+ # df1 = p.select('*').go()
105
+ #
106
+ # csv = '''
107
+ # TableVarColName,TableVarColType,TableVarName,TableVarNumCols,TableVarNumRows
108
+ # Col0,float64,TestTable1,5,3
109
+ # Col1,string,TestTable1,5,3
110
+ # Col2,datetime64[ns],TestTable1,5,3
111
+ # Col3,Int64,TestTable1,5,3
112
+ # Col4,float64,TestTable1,5,3
113
+ # Col0,float64,TestTable2,3,5
114
+ # Col1,string,TestTable2,3,5
115
+ # Col2,datetime64[ns],TestTable2,3,5
116
+ # Col0,float64,TestTable3,9,2
117
+ # Col1,string,TestTable3,9,2
118
+ # Col2,datetime64[ns],TestTable3,9,2
119
+ # Col3,Int64,TestTable3,9,2
120
+ # Col4,float64,TestTable3,9,2
121
+ # Col5,string,TestTable3,9,2
122
+ # Col6,datetime64[ns],TestTable3,9,2
123
+ # Col7,Int64,TestTable3,9,2
124
+ # Col8,float64,TestTable3,9,2
125
+ # '''
126
+ # df2 = pd.read_csv(io.StringIO(csv))
127
+ #
128
+ # self.assertSequenceEqual(df1.shape, df2.shape)
129
+ #
130
+ # comp = df1 == df2
131
+ # self.assertTrue(comp.all().all())
132
132
 
133
133
  def test_provider_metadata_titanic(self):
134
134