quantplay 2.0.57__tar.gz → 2.0.59__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.57 → quantplay-2.0.59}/PKG-INFO +1 -1
  2. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/broker_factory.py +7 -5
  3. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/dhan.py +9 -4
  4. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/flattrade.py +3 -3
  5. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/shoonya.py +3 -5
  6. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/upstox.py +12 -31
  7. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay.egg-info/PKG-INFO +1 -1
  8. {quantplay-2.0.57 → quantplay-2.0.59}/setup.py +1 -1
  9. {quantplay-2.0.57 → quantplay-2.0.59}/README.md +0 -0
  10. {quantplay-2.0.57 → quantplay-2.0.59}/pyproject.toml +0 -0
  11. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/__init__.py +0 -0
  12. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/__init__.py +0 -0
  13. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/aliceblue.py +0 -0
  14. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/angelone.py +0 -0
  15. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/auto_login/__init__.py +0 -0
  16. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/auto_login/aliceblue.py +0 -0
  17. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/finvasia_utils/__init__.py +0 -0
  18. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/finvasia_utils/fa_noren.py +0 -0
  19. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/five_paisa.py +0 -0
  20. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/ft_utils/__init__.py +0 -0
  21. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/ft_utils/flattrade_utils.py +0 -0
  22. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/ft_utils/ft_noren.py +0 -0
  23. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/generics/__init__.py +0 -0
  24. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/generics/broker.py +0 -0
  25. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/iifl_xts.py +0 -0
  26. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/kite_utils.py +0 -0
  27. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/kotak.py +0 -0
  28. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/motilal.py +0 -0
  29. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/noren.py +0 -0
  30. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/uplink/__init__.py +0 -0
  31. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/uplink/uplink_utils.py +0 -0
  32. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/xts.py +0 -0
  33. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/xts_utils/Connect.py +0 -0
  34. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/xts_utils/Exception.py +0 -0
  35. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
  36. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/xts_utils/__init__.py +0 -0
  37. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/broker/zerodha.py +0 -0
  38. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/exception/__init__.py +0 -0
  39. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/exception/exceptions.py +0 -0
  40. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/model/__init__.py +0 -0
  41. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/model/broker.py +0 -0
  42. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/model/generics.py +0 -0
  43. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/model/instrument_data.py +0 -0
  44. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/model/order_event.py +0 -0
  45. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/py.typed +0 -0
  46. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/utils/__init__.py +0 -0
  47. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/utils/caching.py +0 -0
  48. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/utils/constant.py +0 -0
  49. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/utils/exchange.py +0 -0
  50. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/utils/number_utils.py +0 -0
  51. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/utils/pickle_utils.py +0 -0
  52. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/utils/selenium_utils.py +0 -0
  53. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/wrapper/__init__.py +0 -0
  54. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/wrapper/aws/__init__.py +0 -0
  55. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay/wrapper/aws/s3.py +0 -0
  56. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay.egg-info/SOURCES.txt +0 -0
  57. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay.egg-info/dependency_links.txt +0 -0
  58. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay.egg-info/requires.txt +0 -0
  59. {quantplay-2.0.57 → quantplay-2.0.59}/quantplay.egg-info/top_level.txt +0 -0
  60. {quantplay-2.0.57 → quantplay-2.0.59}/setup.cfg +0 -0
  61. {quantplay-2.0.57 → quantplay-2.0.59}/tests/__init__.py +0 -0
  62. {quantplay-2.0.57 → quantplay-2.0.59}/tests/conftest.py +0 -0
  63. {quantplay-2.0.57 → quantplay-2.0.59}/tests/wrapper/__init__.py +0 -0
  64. {quantplay-2.0.57 → quantplay-2.0.59}/tests/wrapper/aws/__init__.py +0 -0
  65. {quantplay-2.0.57 → quantplay-2.0.59}/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.57
3
+ Version: 2.0.59
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
@@ -91,7 +91,7 @@ broker_required_args = {
91
91
 
92
92
  broker_generate_args = {
93
93
  Broker.ZERODHA: set(["user_id", "api_key", "api_secret"]),
94
- Broker.FLATTRADE: set(["user_id" "api_secret", "password", "totp_key", "api_key"]),
94
+ Broker.FLATTRADE: set(["user_id" "api_secret", "password", "totp", "api_key"]),
95
95
  Broker.IIFL_XTS: set(["api_key", "api_secret", "md_api_key", "md_api_secret"]),
96
96
  Broker.MOTILAL: set(["user_id", "password", "api_key", "two_fa", "totp"]),
97
97
  Broker.ALICEBLUE: set(["user_id", "api_key"]),
@@ -110,7 +110,7 @@ broker_generate_args = {
110
110
  ),
111
111
  Broker.ANGELONE: set(["user_id", "api_key", "mpin", "totp"]),
112
112
  Broker.FINVASIA: set(
113
- ["api_secret", "imei", "password", "totp_key", "user_id", "vendor_code"]
113
+ ["api_secret", "imei", "password", "totp", "user_id", "vendor_code"]
114
114
  ),
115
115
  Broker.UPSTOX: set(["user_id", "access_token"]),
116
116
  Broker.KOTAK: set(
@@ -142,7 +142,9 @@ class BrokerFactory:
142
142
  f"Missing Arguments for {user_broker_account['username']}:{user_broker_account['nickname']} in broker '{broker}' -> {compare_map[broker].difference(user_broker_account.keys())}"
143
143
  )
144
144
 
145
- def generate_token(self, user_broker_account: Dict[str, Any]):
145
+ def generate_token(
146
+ self, user_broker_account: Dict[str, Any]
147
+ ) -> Dict[str, BrokerType | Any]:
146
148
  broker_client: BrokerType | None = None
147
149
 
148
150
  broker_data = user_broker_account["broker_data"]
@@ -239,7 +241,7 @@ class BrokerFactory:
239
241
  api_secret=broker_data["api_secret"],
240
242
  imei=broker_data["imei"],
241
243
  password=broker_data["password"],
242
- totp_key=broker_data["totp_key"],
244
+ totp=broker_data["totp_key"],
243
245
  user_id=broker_data["user_id"],
244
246
  vendor_code=broker_data["vendor_code"],
245
247
  load_instrument=False,
@@ -253,7 +255,7 @@ class BrokerFactory:
253
255
  user_id=broker_data["user_id"],
254
256
  api_secret=broker_data["api_secret"],
255
257
  password=broker_data["password"],
256
- totp_key=broker_data["totp_key"],
258
+ totp=broker_data["totp_key"],
257
259
  api_key=broker_data["api_key"],
258
260
  load_instrument=False,
259
261
  )
@@ -10,6 +10,7 @@ from quantplay.exception.exceptions import (
10
10
  InvalidArgumentException,
11
11
  QuantplayOrderPlacementException,
12
12
  RetryableException,
13
+ TokenException,
13
14
  retry_exception,
14
15
  )
15
16
  from quantplay.model.broker import (
@@ -32,10 +33,14 @@ class Dhan(Broker):
32
33
  access_token: str,
33
34
  load_instrument: bool = True,
34
35
  ):
35
- self.dhan = dhanhq(
36
- client_id=user_id,
37
- access_token=access_token,
38
- )
36
+ try:
37
+ self.dhan = dhanhq(
38
+ client_id=user_id,
39
+ access_token=access_token,
40
+ )
41
+
42
+ except Exception:
43
+ raise TokenException("Dhan Session Expired")
39
44
 
40
45
  def load_instrument(self, file_name: str | None = None) -> None:
41
46
  super().load_instrument("upstox_instruments")
@@ -17,7 +17,7 @@ class FlatTrade(Noren):
17
17
  order_updates: Queue[OrderUpdateEvent] | None = None,
18
18
  api_secret: str | None = None,
19
19
  password: str | None = None,
20
- totp_key: str | None = None,
20
+ totp: str | None = None,
21
21
  user_id: str | None = None,
22
22
  user_token: str | None = None,
23
23
  api_key: str | None = None,
@@ -33,11 +33,11 @@ class FlatTrade(Noren):
33
33
  if user_token and user_id:
34
34
  self.api.set_session(userid=user_id, usertoken=user_token)
35
35
 
36
- elif user_id and password and totp_key and api_key and api_secret:
36
+ elif user_id and password and totp and api_key and api_secret:
37
37
  token = self.login(
38
38
  user_id=user_id,
39
39
  password=password,
40
- totp_key=totp_key,
40
+ totp_key=totp,
41
41
  api_key=api_key,
42
42
  api_secret=api_secret,
43
43
  )
@@ -16,7 +16,7 @@ class FinvAsia(Noren):
16
16
  api_secret: str | None = None,
17
17
  imei: str | None = None,
18
18
  password: str | None = None,
19
- totp_key: str | None = None,
19
+ totp: str | None = None,
20
20
  user_id: str | None = None,
21
21
  vendor_code: str | None = None,
22
22
  user_token: str | None = None,
@@ -37,10 +37,8 @@ class FinvAsia(Noren):
37
37
  "email": None,
38
38
  "uname": None,
39
39
  }
40
- elif (
41
- user_id and password and totp_key and vendor_code and api_secret and imei
42
- ):
43
- totp = pyotp.TOTP(totp_key).now()
40
+ elif user_id and password and totp and vendor_code and api_secret and imei:
41
+ totp = pyotp.TOTP(totp).now()
44
42
  response = self.login(
45
43
  user_id=user_id,
46
44
  password=password,
@@ -51,39 +51,20 @@ class Upstox(Broker):
51
51
  ):
52
52
  super().__init__()
53
53
 
54
- try:
55
- if access_token:
56
- self.set_access_token(access_token)
57
- self.user_id = user_id
58
-
59
- # TODO: Implement Auto Login
60
- # elif (
61
- # api_key
62
- # and api_secret
63
- # and totp
64
- # and mobile_number
65
- # and account_pin
66
- # and redirect_url
67
- # ):
68
- # new_access_token = self.generate_token(
69
- # api_key, api_secret, totp, mobile_number, account_pin, redirect_url
70
- # )
71
- # self.set_access_token(new_access_token)
72
-
73
- # self.configuration = upstox_client.Configuration()
74
- # self.configuration.access_token = self.access_token
75
-
76
- else:
77
- raise InvalidArgumentException("Missing Args")
78
-
79
- except Exception as e:
80
- raise e
54
+ if access_token:
55
+ self.set_access_token(access_token)
56
+ self.user_id = user_id
57
+ else:
58
+ raise TokenException("Upstox Session Expired")
81
59
 
82
- self.configuration = upstox_client.Configuration()
83
- self.configuration.access_token = self.access_token
84
- self.api_version = "2.0"
60
+ try:
61
+ self.configuration = upstox_client.Configuration()
62
+ self.configuration.access_token = self.access_token
63
+ self.api_version = "2.0"
85
64
 
86
- self.api_client = upstox_client.ApiClient(self.configuration)
65
+ self.api_client = upstox_client.ApiClient(self.configuration)
66
+ except Exception:
67
+ raise TokenException("Upstox Session Expired")
87
68
 
88
69
  if load_instrument:
89
70
  self.load_instrument()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.57
3
+ Version: 2.0.59
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.57",
24
+ version="2.0.59",
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