dve-lumipy-testing 1.0.464__py3-none-any.whl → 1.0.466__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.464
3
+ Version: 1.0.466
4
4
  Summary: Python library for Luminesce
5
5
  Author: FINBOURNE Technology
6
6
  Author-email: engineering@finbourne.com
@@ -74,7 +74,7 @@ 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
@@ -271,12 +271,12 @@ lumipy/test/data/context_examples/test_titanic_single_bool_column.json,sha256=SC
271
271
  lumipy/test/data/context_examples/test_titanic_test_ignore.json,sha256=HYEcQ3CGrtZ9sdacVnn8Vs38tJi4B7I2Tqqo1kS5BLY,575
272
272
  lumipy/test/integration/__init__.py,sha256=Qb9wYCQF3WMv7emOmpAvnYzvLi3C_dGOqyheycYzp_g,192
273
273
  lumipy/test/integration/test_atlas_build_queries.py,sha256=2wS-kW4uwrUleOU1bRYEHvxmxkWevskw4eIzp1dGUXQ,1286
274
- lumipy/test/integration/test_client.py,sha256=M4sF-Vv7RyUjb7vtyXCAxlfk1ESTtYEvCsViV7chgHU,9949
274
+ lumipy/test/integration/test_client.py,sha256=XYARAi5NvrLUt3u-l_9Esg2pPy0EDSAAwc8TjBmtdes,9952
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.464.dist-info/METADATA,sha256=ToIP-we4GhBk7R6CpDI9yecYwwPYGNSpHA0OHiuMrZg,14828
383
- dve_lumipy_testing-1.0.464.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
384
- dve_lumipy_testing-1.0.464.dist-info/entry_points.txt,sha256=L7hRlqwmvzHMwaOQzygKLK-gx4k4e1q4Qz5m0DGihW8,46
385
- dve_lumipy_testing-1.0.464.dist-info/top_level.txt,sha256=DVww8LaQM3Xm0WOgo4JE0epePgCM1xGWWWxh7wuv-CY,7
386
- dve_lumipy_testing-1.0.464.dist-info/RECORD,,
382
+ dve_lumipy_testing-1.0.466.dist-info/METADATA,sha256=EfAiSJeqygAglN3lSPw49eQC8CitCGLYVVGu5fdaxgI,14828
383
+ dve_lumipy_testing-1.0.466.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
384
+ dve_lumipy_testing-1.0.466.dist-info/entry_points.txt,sha256=L7hRlqwmvzHMwaOQzygKLK-gx4k4e1q4Qz5m0DGihW8,46
385
+ dve_lumipy_testing-1.0.466.dist-info/top_level.txt,sha256=DVww8LaQM3Xm0WOgo4JE0epePgCM1xGWWWxh7wuv-CY,7
386
+ dve_lumipy_testing-1.0.466.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
@@ -230,8 +230,8 @@ class ClientTests(BaseIntTest):
230
230
  self.assertTrue(ver_parsed.minor >= 0)
231
231
 
232
232
  def test_get_latest_available_version_in_single_value_range(self):
233
- ver = self.client._get_latest_available_version_in_range('Python_Providers', "1.18.68", "1.18.68")
234
- self.assertEqual(str(ver), "1.18.68")
233
+ ver = self.client._get_latest_available_version_in_range('Python_Providers', "1.18.557", "1.18.557")
234
+ self.assertEqual(str(ver), "1.18.557")
235
235
 
236
236
  def test_get_latest_available_version_in_range_bad_binary_name_unhappy(self):
237
237
  try:
@@ -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