quantplay 2.0.80__tar.gz → 2.0.82__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.
Files changed (65) hide show
  1. {quantplay-2.0.80 → quantplay-2.0.82}/PKG-INFO +1 -1
  2. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/angelone.py +1 -1
  3. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/ft_utils/flattrade_utils.py +12 -6
  4. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/generics/broker.py +2 -2
  5. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/noren.py +5 -1
  6. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay.egg-info/PKG-INFO +1 -1
  7. {quantplay-2.0.80 → quantplay-2.0.82}/setup.py +1 -1
  8. {quantplay-2.0.80 → quantplay-2.0.82}/README.md +0 -0
  9. {quantplay-2.0.80 → quantplay-2.0.82}/pyproject.toml +0 -0
  10. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/__init__.py +0 -0
  11. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/__init__.py +0 -0
  12. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/aliceblue.py +0 -0
  13. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/auto_login/__init__.py +0 -0
  14. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/auto_login/aliceblue.py +0 -0
  15. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/broker_factory.py +0 -0
  16. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/dhan.py +0 -0
  17. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/finvasia_utils/__init__.py +0 -0
  18. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/finvasia_utils/fa_noren.py +0 -0
  19. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/five_paisa.py +0 -0
  20. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/flattrade.py +0 -0
  21. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/ft_utils/__init__.py +0 -0
  22. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/ft_utils/ft_noren.py +0 -0
  23. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/generics/__init__.py +0 -0
  24. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/iifl_xts.py +0 -0
  25. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/kite_utils.py +0 -0
  26. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/kotak.py +0 -0
  27. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/motilal.py +0 -0
  28. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/shoonya.py +0 -0
  29. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/uplink/__init__.py +0 -0
  30. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/uplink/uplink_utils.py +0 -0
  31. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/upstox.py +0 -0
  32. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/xts.py +0 -0
  33. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/xts_utils/Connect.py +0 -0
  34. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/xts_utils/Exception.py +0 -0
  35. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
  36. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/xts_utils/__init__.py +0 -0
  37. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/broker/zerodha.py +0 -0
  38. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/exception/__init__.py +0 -0
  39. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/exception/exceptions.py +0 -0
  40. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/model/__init__.py +0 -0
  41. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/model/broker.py +0 -0
  42. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/model/generics.py +0 -0
  43. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/model/instrument_data.py +0 -0
  44. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/model/order_event.py +0 -0
  45. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/py.typed +0 -0
  46. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/utils/__init__.py +0 -0
  47. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/utils/caching.py +0 -0
  48. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/utils/constant.py +0 -0
  49. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/utils/exchange.py +0 -0
  50. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/utils/number_utils.py +0 -0
  51. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/utils/pickle_utils.py +0 -0
  52. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/utils/selenium_utils.py +0 -0
  53. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/wrapper/__init__.py +0 -0
  54. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/wrapper/aws/__init__.py +0 -0
  55. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay/wrapper/aws/s3.py +0 -0
  56. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay.egg-info/SOURCES.txt +0 -0
  57. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay.egg-info/dependency_links.txt +0 -0
  58. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay.egg-info/requires.txt +0 -0
  59. {quantplay-2.0.80 → quantplay-2.0.82}/quantplay.egg-info/top_level.txt +0 -0
  60. {quantplay-2.0.80 → quantplay-2.0.82}/setup.cfg +0 -0
  61. {quantplay-2.0.80 → quantplay-2.0.82}/tests/__init__.py +0 -0
  62. {quantplay-2.0.80 → quantplay-2.0.82}/tests/conftest.py +0 -0
  63. {quantplay-2.0.80 → quantplay-2.0.82}/tests/wrapper/__init__.py +0 -0
  64. {quantplay-2.0.80 → quantplay-2.0.82}/tests/wrapper/aws/__init__.py +0 -0
  65. {quantplay-2.0.80 → quantplay-2.0.82}/tests/wrapper/aws/s3_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.80
3
+ Version: 2.0.82
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
@@ -85,7 +85,7 @@ class AngelOne(Broker):
85
85
  totp=pyotp.TOTP(str(totp)).now(),
86
86
  )
87
87
 
88
- if response["status"] is False:
88
+ if not response["status"]:
89
89
  if "message" in response:
90
90
  raise InvalidArgumentException(response["message"])
91
91
  raise InvalidArgumentException("Invalid API credentials")
@@ -9,6 +9,7 @@ from selenium.common.exceptions import WebDriverException
9
9
  from quantplay.exception.exceptions import (
10
10
  InvalidArgumentException,
11
11
  RetryableException,
12
+ TokenException,
12
13
  WrongLibrarySetup,
13
14
  retry_exception,
14
15
  )
@@ -68,9 +69,11 @@ class FlatTradeUtils:
68
69
  )
69
70
  error_message = error_attempt.text
70
71
 
71
- if error_message in [
72
- "Invalid Input : Wrong Password",
73
- "Invalid API key",
72
+ if error_message.lower() in [
73
+ "invalid input : wrong password",
74
+ "invalid api key",
75
+ "resetpassword",
76
+ "user blocked due to multiple wrong attempts",
74
77
  ]:
75
78
  raise InvalidArgumentException(
76
79
  f"Flattrade Login Failed: {error_message}"
@@ -79,19 +82,22 @@ class FlatTradeUtils:
79
82
  except Exception as e:
80
83
  Constants.logger.error(f"Flattrade Selenium Error : {e}")
81
84
  traceback.print_exc()
85
+ raise TokenException(str(e))
82
86
 
83
87
  finally:
84
88
  Constants.logger.error(
85
89
  f"Flattrade Unkown Selenium Error : {error_message}"
86
90
  )
87
- raise Exception(f"Flattrade Unkown Selenium Error : {error_message}")
91
+ raise TokenException(
92
+ f"Flattrade Unkown Selenium Error : {error_message}"
93
+ )
88
94
 
89
95
  try:
90
96
  request_token = url.split("code=")[1].split("&")[0]
91
97
  except Exception as e:
92
98
  Constants.logger.error(f"Flattrade Selenium Error for {url}")
93
99
  traceback.print_exc()
94
- raise e
100
+ raise TokenException(str(e))
95
101
 
96
102
  driver.close()
97
103
 
@@ -99,7 +105,7 @@ class FlatTradeUtils:
99
105
 
100
106
  except binascii.Error:
101
107
  raise InvalidArgumentException("Invalid TOTP key provided")
102
- except InvalidArgumentException as e:
108
+ except (InvalidArgumentException, TokenException) as e:
103
109
  raise e
104
110
  except WebDriverException:
105
111
  raise WrongLibrarySetup("Selenium setup need to be fixed")
@@ -635,13 +635,13 @@ class Broker(ABC):
635
635
  if underlying_symbol in ["BANKNIFTY", "BANKEX"]:
636
636
  return {"max_lots": 60, "lot_size": 15, "strike_gap": 100}
637
637
  elif underlying_symbol == "FINNIFTY":
638
- return {"max_lots": 45, "lot_size": 40, "strike_gap": 50}
638
+ return {"max_lots": 72, "lot_size": 25, "strike_gap": 50}
639
639
  elif underlying_symbol == "SENSEX":
640
640
  return {"max_lots": 100, "lot_size": 10, "strike_gap": 100}
641
641
  elif underlying_symbol == "NIFTY":
642
642
  return {"max_lots": 72, "lot_size": 25, "strike_gap": 50}
643
643
  elif underlying_symbol == "MIDCPNIFTY":
644
- return {"max_lots": 37, "lot_size": 75, "strike_gap": 25}
644
+ return {"max_lots": 56, "lot_size": 50, "strike_gap": 25}
645
645
 
646
646
  raise Exception(f"Underlying {underlying_symbol} symbol not supported")
647
647
 
@@ -711,6 +711,10 @@ class Noren(Broker):
711
711
  if "collateral" in api_margins:
712
712
  collateral = api_margins["collateral"]
713
713
 
714
+ holdings_val = 0
715
+ if "grcoll" in api_margins:
716
+ holdings_val = api_margins["grcoll"]
717
+
714
718
  if "marginused" not in api_margins:
715
719
  api_margins["margin_used"] = 0
716
720
  else:
@@ -735,7 +739,7 @@ class Noren(Broker):
735
739
  except Exception:
736
740
  margins["cash"] = 0
737
741
 
738
- margins["total_balance"] = float(api_margins["cash"]) + float(collateral)
742
+ margins["total_balance"] = float(api_margins["cash"]) + float(holdings_val)
739
743
 
740
744
  return margins
741
745
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.80
3
+ Version: 2.0.82
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
@@ -21,7 +21,7 @@ requirements = [
21
21
  setup(
22
22
  name="quantplay",
23
23
  long_description=Path("README.md").read_text(),
24
- version="2.0.80",
24
+ version="2.0.82",
25
25
  setup_requires=["pytest-runner"],
26
26
  install_requires=requirements,
27
27
  tests_require=[],
File without changes
File without changes
File without changes
File without changes
File without changes