quantplay 2.0.30__tar.gz → 2.0.31__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.
- {quantplay-2.0.30 → quantplay-2.0.31}/PKG-INFO +1 -1
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/finvasia_utils/fa_noren.py +0 -38
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/ft_utils/ft_noren.py +0 -38
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/noren.py +4 -5
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay.egg-info/PKG-INFO +1 -1
- {quantplay-2.0.30 → quantplay-2.0.31}/setup.py +1 -1
- {quantplay-2.0.30 → quantplay-2.0.31}/README.md +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/pyproject.toml +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/aliceblue.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/angelone.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/auto_login/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/auto_login/aliceblue.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/finvasia_utils/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/five_paisa.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/flattrade.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/ft_utils/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/ft_utils/flattrade_utils.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/generics/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/generics/broker.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/iifl_xts.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/kite_utils.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/motilal.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/shoonya.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/uplink/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/uplink/uplink_utils.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/upstox.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/xts.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/xts_utils/Connect.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/xts_utils/Exception.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/xts_utils/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/broker/zerodha.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/exception/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/exception/exceptions.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/model/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/model/broker.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/model/generics.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/model/order_event.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/py.typed +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/equities/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/equities/intraday/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/equities/overnight/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/futures/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/futures/overnight/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/options/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/options/intraday/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/options/intraday/ladder.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/options/intraday/musk.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/options/intraday/short_straddle.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/utils/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/utils/constant.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/utils/exchange.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/utils/number_utils.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/utils/pickle_utils.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/utils/selenium_utils.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/wrapper/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/wrapper/aws/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay/wrapper/aws/s3.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay.egg-info/SOURCES.txt +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay.egg-info/dependency_links.txt +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay.egg-info/requires.txt +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/quantplay.egg-info/top_level.txt +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/setup.cfg +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/tests/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/tests/conftest.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/tests/wrapper/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/tests/wrapper/aws/__init__.py +0 -0
- {quantplay-2.0.30 → quantplay-2.0.31}/tests/wrapper/aws/s3_test.py +0 -0
|
@@ -275,8 +275,6 @@ class FA_NorenApi:
|
|
|
275
275
|
reportmsg("Reply:" + res.text)
|
|
276
276
|
|
|
277
277
|
resDict = json.loads(res.text)
|
|
278
|
-
if resDict["stat"] != "Ok":
|
|
279
|
-
return None
|
|
280
278
|
|
|
281
279
|
self.__username = userid
|
|
282
280
|
self.__accountid = userid
|
|
@@ -314,9 +312,6 @@ class FA_NorenApi:
|
|
|
314
312
|
|
|
315
313
|
resDict = json.loads(res.text)
|
|
316
314
|
|
|
317
|
-
if resDict["stat"] != "Ok":
|
|
318
|
-
return None
|
|
319
|
-
|
|
320
315
|
return resDict
|
|
321
316
|
|
|
322
317
|
def logout(self):
|
|
@@ -338,8 +333,6 @@ class FA_NorenApi:
|
|
|
338
333
|
reportmsg(res.text)
|
|
339
334
|
|
|
340
335
|
resDict = json.loads(res.text)
|
|
341
|
-
if resDict["stat"] != "Ok":
|
|
342
|
-
return None
|
|
343
336
|
|
|
344
337
|
self.__username = None
|
|
345
338
|
self.__accountid = None
|
|
@@ -413,8 +406,6 @@ class FA_NorenApi:
|
|
|
413
406
|
reportmsg(res.text)
|
|
414
407
|
|
|
415
408
|
resDict = json.loads(res.text)
|
|
416
|
-
if resDict["stat"] != "Ok":
|
|
417
|
-
return None
|
|
418
409
|
|
|
419
410
|
return resDict
|
|
420
411
|
|
|
@@ -438,8 +429,6 @@ class FA_NorenApi:
|
|
|
438
429
|
reportmsg(res.text)
|
|
439
430
|
|
|
440
431
|
resDict = json.loads(res.text)
|
|
441
|
-
if resDict["stat"] != "Ok":
|
|
442
|
-
return None
|
|
443
432
|
|
|
444
433
|
return resDict
|
|
445
434
|
|
|
@@ -467,8 +456,6 @@ class FA_NorenApi:
|
|
|
467
456
|
reportmsg(res.text)
|
|
468
457
|
|
|
469
458
|
resDict = json.loads(res.text)
|
|
470
|
-
if resDict["stat"] != "Ok":
|
|
471
|
-
return None
|
|
472
459
|
|
|
473
460
|
return resDict
|
|
474
461
|
|
|
@@ -496,8 +483,6 @@ class FA_NorenApi:
|
|
|
496
483
|
reportmsg(res.text)
|
|
497
484
|
|
|
498
485
|
resDict = json.loads(res.text)
|
|
499
|
-
if resDict["stat"] != "Ok":
|
|
500
|
-
return None
|
|
501
486
|
|
|
502
487
|
return resDict
|
|
503
488
|
|
|
@@ -565,8 +550,6 @@ class FA_NorenApi:
|
|
|
565
550
|
reportmsg(res.text)
|
|
566
551
|
|
|
567
552
|
resDict = json.loads(res.text)
|
|
568
|
-
if resDict["stat"] != "Ok":
|
|
569
|
-
return None
|
|
570
553
|
|
|
571
554
|
return resDict
|
|
572
555
|
|
|
@@ -626,8 +609,6 @@ class FA_NorenApi:
|
|
|
626
609
|
reportmsg(res.text)
|
|
627
610
|
|
|
628
611
|
resDict = json.loads(res.text)
|
|
629
|
-
if resDict["stat"] != "Ok":
|
|
630
|
-
return None
|
|
631
612
|
|
|
632
613
|
return resDict
|
|
633
614
|
|
|
@@ -649,8 +630,6 @@ class FA_NorenApi:
|
|
|
649
630
|
res = requests.post(url, data=payload)
|
|
650
631
|
|
|
651
632
|
resDict = json.loads(res.text)
|
|
652
|
-
if resDict["stat"] != "Ok":
|
|
653
|
-
return None
|
|
654
633
|
|
|
655
634
|
return resDict
|
|
656
635
|
|
|
@@ -674,8 +653,6 @@ class FA_NorenApi:
|
|
|
674
653
|
reportmsg(res.text)
|
|
675
654
|
|
|
676
655
|
resDict = json.loads(res.text)
|
|
677
|
-
if resDict["stat"] != "Ok":
|
|
678
|
-
return None
|
|
679
656
|
|
|
680
657
|
return resDict
|
|
681
658
|
|
|
@@ -718,9 +695,6 @@ class FA_NorenApi:
|
|
|
718
695
|
|
|
719
696
|
resDict = json.loads(res.text)
|
|
720
697
|
|
|
721
|
-
if resDict["stat"] != "Ok":
|
|
722
|
-
return None
|
|
723
|
-
|
|
724
698
|
return resDict
|
|
725
699
|
|
|
726
700
|
def single_order_history(self, orderno):
|
|
@@ -823,9 +797,6 @@ class FA_NorenApi:
|
|
|
823
797
|
|
|
824
798
|
resDict = json.loads(res.text)
|
|
825
799
|
|
|
826
|
-
if resDict["stat"] != "Ok":
|
|
827
|
-
return None
|
|
828
|
-
|
|
829
800
|
return resDict
|
|
830
801
|
|
|
831
802
|
def get_option_chain(self, exchange, tradingsymbol, strikeprice, count=2):
|
|
@@ -851,9 +822,6 @@ class FA_NorenApi:
|
|
|
851
822
|
|
|
852
823
|
resDict = json.loads(res.text)
|
|
853
824
|
|
|
854
|
-
if resDict["stat"] != "Ok":
|
|
855
|
-
return None
|
|
856
|
-
|
|
857
825
|
return resDict
|
|
858
826
|
|
|
859
827
|
def get_security_info(self, exchange, token):
|
|
@@ -877,9 +845,6 @@ class FA_NorenApi:
|
|
|
877
845
|
|
|
878
846
|
resDict = json.loads(res.text)
|
|
879
847
|
|
|
880
|
-
if resDict["stat"] != "Ok":
|
|
881
|
-
return None
|
|
882
|
-
|
|
883
848
|
return resDict
|
|
884
849
|
|
|
885
850
|
def get_quotes(self, exchange, token):
|
|
@@ -903,9 +868,6 @@ class FA_NorenApi:
|
|
|
903
868
|
|
|
904
869
|
resDict = json.loads(res.text)
|
|
905
870
|
|
|
906
|
-
if resDict["stat"] != "Ok":
|
|
907
|
-
return None
|
|
908
|
-
|
|
909
871
|
return resDict
|
|
910
872
|
|
|
911
873
|
def get_time_price_series(
|
|
@@ -272,8 +272,6 @@ class FT_NorenApi:
|
|
|
272
272
|
reportmsg("Reply:" + res.text)
|
|
273
273
|
|
|
274
274
|
resDict = json.loads(res.text)
|
|
275
|
-
if resDict["stat"] != "Ok":
|
|
276
|
-
return None
|
|
277
275
|
|
|
278
276
|
self.__username = userid
|
|
279
277
|
self.__accountid = userid
|
|
@@ -311,9 +309,6 @@ class FT_NorenApi:
|
|
|
311
309
|
|
|
312
310
|
resDict = json.loads(res.text)
|
|
313
311
|
|
|
314
|
-
if resDict["stat"] != "Ok":
|
|
315
|
-
return None
|
|
316
|
-
|
|
317
312
|
return resDict
|
|
318
313
|
|
|
319
314
|
def logout(self):
|
|
@@ -334,8 +329,6 @@ class FT_NorenApi:
|
|
|
334
329
|
reportmsg(res.text)
|
|
335
330
|
|
|
336
331
|
resDict = json.loads(res.text)
|
|
337
|
-
if resDict["stat"] != "Ok":
|
|
338
|
-
return None
|
|
339
332
|
|
|
340
333
|
self.__username = None
|
|
341
334
|
self.__accountid = None
|
|
@@ -408,8 +401,6 @@ class FT_NorenApi:
|
|
|
408
401
|
reportmsg(res.text)
|
|
409
402
|
|
|
410
403
|
resDict = json.loads(res.text)
|
|
411
|
-
if resDict["stat"] != "Ok":
|
|
412
|
-
return None
|
|
413
404
|
|
|
414
405
|
return resDict
|
|
415
406
|
|
|
@@ -433,8 +424,6 @@ class FT_NorenApi:
|
|
|
433
424
|
reportmsg(res.text)
|
|
434
425
|
|
|
435
426
|
resDict = json.loads(res.text)
|
|
436
|
-
if resDict["stat"] != "Ok":
|
|
437
|
-
return None
|
|
438
427
|
|
|
439
428
|
return resDict
|
|
440
429
|
|
|
@@ -461,8 +450,6 @@ class FT_NorenApi:
|
|
|
461
450
|
reportmsg(res.text)
|
|
462
451
|
|
|
463
452
|
resDict = json.loads(res.text)
|
|
464
|
-
if resDict["stat"] != "Ok":
|
|
465
|
-
return None
|
|
466
453
|
|
|
467
454
|
return resDict
|
|
468
455
|
|
|
@@ -489,8 +476,6 @@ class FT_NorenApi:
|
|
|
489
476
|
reportmsg(res.text)
|
|
490
477
|
|
|
491
478
|
resDict = json.loads(res.text)
|
|
492
|
-
if resDict["stat"] != "Ok":
|
|
493
|
-
return None
|
|
494
479
|
|
|
495
480
|
return resDict
|
|
496
481
|
|
|
@@ -558,8 +543,6 @@ class FT_NorenApi:
|
|
|
558
543
|
reportmsg(res.text)
|
|
559
544
|
|
|
560
545
|
resDict = json.loads(res.text)
|
|
561
|
-
if resDict["stat"] != "Ok":
|
|
562
|
-
return None
|
|
563
546
|
|
|
564
547
|
return resDict
|
|
565
548
|
|
|
@@ -617,8 +600,6 @@ class FT_NorenApi:
|
|
|
617
600
|
reportmsg(res.text)
|
|
618
601
|
|
|
619
602
|
resDict = json.loads(res.text)
|
|
620
|
-
if resDict["stat"] != "Ok":
|
|
621
|
-
return None
|
|
622
603
|
|
|
623
604
|
return resDict
|
|
624
605
|
|
|
@@ -640,8 +621,6 @@ class FT_NorenApi:
|
|
|
640
621
|
res = requests.post(url, data=payload)
|
|
641
622
|
|
|
642
623
|
resDict = json.loads(res.text)
|
|
643
|
-
if resDict["stat"] != "Ok":
|
|
644
|
-
return None
|
|
645
624
|
|
|
646
625
|
return resDict
|
|
647
626
|
|
|
@@ -665,8 +644,6 @@ class FT_NorenApi:
|
|
|
665
644
|
reportmsg(res.text)
|
|
666
645
|
|
|
667
646
|
resDict = json.loads(res.text)
|
|
668
|
-
if resDict["stat"] != "Ok":
|
|
669
|
-
return None
|
|
670
647
|
|
|
671
648
|
return resDict
|
|
672
649
|
|
|
@@ -709,9 +686,6 @@ class FT_NorenApi:
|
|
|
709
686
|
|
|
710
687
|
resDict = json.loads(res.text)
|
|
711
688
|
|
|
712
|
-
if resDict["stat"] != "Ok":
|
|
713
|
-
return None
|
|
714
|
-
|
|
715
689
|
return resDict
|
|
716
690
|
|
|
717
691
|
def single_order_history(self, orderno):
|
|
@@ -814,9 +788,6 @@ class FT_NorenApi:
|
|
|
814
788
|
|
|
815
789
|
resDict = json.loads(res.text)
|
|
816
790
|
|
|
817
|
-
if resDict["stat"] != "Ok":
|
|
818
|
-
return None
|
|
819
|
-
|
|
820
791
|
return resDict
|
|
821
792
|
|
|
822
793
|
def get_option_chain(self, exchange, tradingsymbol, strikeprice, count=2):
|
|
@@ -842,9 +813,6 @@ class FT_NorenApi:
|
|
|
842
813
|
|
|
843
814
|
resDict = json.loads(res.text)
|
|
844
815
|
|
|
845
|
-
if resDict["stat"] != "Ok":
|
|
846
|
-
return None
|
|
847
|
-
|
|
848
816
|
return resDict
|
|
849
817
|
|
|
850
818
|
def get_security_info(self, exchange, token):
|
|
@@ -868,9 +836,6 @@ class FT_NorenApi:
|
|
|
868
836
|
|
|
869
837
|
resDict = json.loads(res.text)
|
|
870
838
|
|
|
871
|
-
if resDict["stat"] != "Ok":
|
|
872
|
-
return None
|
|
873
|
-
|
|
874
839
|
return resDict
|
|
875
840
|
|
|
876
841
|
def get_quotes(self, exchange, token):
|
|
@@ -894,9 +859,6 @@ class FT_NorenApi:
|
|
|
894
859
|
|
|
895
860
|
resDict = json.loads(res.text)
|
|
896
861
|
|
|
897
|
-
if resDict["stat"] != "Ok":
|
|
898
|
-
return None
|
|
899
|
-
|
|
900
862
|
return resDict
|
|
901
863
|
|
|
902
864
|
def get_time_price_series(
|
|
@@ -258,10 +258,9 @@ class Noren(Broker):
|
|
|
258
258
|
"token"
|
|
259
259
|
]
|
|
260
260
|
|
|
261
|
-
quote = self.
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
raise BrokerException("Response from Broker for LTP is Invalid")
|
|
261
|
+
quote = self.invoke_noren_api(
|
|
262
|
+
self.api.get_quotes, exchange=exchange, token=str(token)
|
|
263
|
+
)
|
|
265
264
|
|
|
266
265
|
return float(quote["lp"])
|
|
267
266
|
|
|
@@ -372,7 +371,7 @@ class Noren(Broker):
|
|
|
372
371
|
stop_max_attempt_number=3,
|
|
373
372
|
)
|
|
374
373
|
def holdings(self):
|
|
375
|
-
holdings = self.api.get_holdings
|
|
374
|
+
holdings = self.invoke_noren_api(self.api.get_holdings)
|
|
376
375
|
if holdings is None or len(holdings) == 0:
|
|
377
376
|
return pl.DataFrame(schema=self.holidings_schema)
|
|
378
377
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quantplay-2.0.30 → quantplay-2.0.31}/quantplay/strategies/options/intraday/short_straddle.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|