quantplay 2.0.73__tar.gz → 2.0.75__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.73 → quantplay-2.0.75}/PKG-INFO +1 -1
  2. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/broker_factory.py +1 -1
  3. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/dhan.py +32 -6
  4. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/noren.py +1 -1
  5. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay.egg-info/PKG-INFO +1 -1
  6. {quantplay-2.0.73 → quantplay-2.0.75}/setup.py +1 -1
  7. {quantplay-2.0.73 → quantplay-2.0.75}/README.md +0 -0
  8. {quantplay-2.0.73 → quantplay-2.0.75}/pyproject.toml +0 -0
  9. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/__init__.py +0 -0
  10. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/__init__.py +0 -0
  11. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/aliceblue.py +0 -0
  12. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/angelone.py +0 -0
  13. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/auto_login/__init__.py +0 -0
  14. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/auto_login/aliceblue.py +0 -0
  15. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/finvasia_utils/__init__.py +0 -0
  16. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/finvasia_utils/fa_noren.py +0 -0
  17. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/five_paisa.py +0 -0
  18. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/flattrade.py +0 -0
  19. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/ft_utils/__init__.py +0 -0
  20. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/ft_utils/flattrade_utils.py +0 -0
  21. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/ft_utils/ft_noren.py +0 -0
  22. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/generics/__init__.py +0 -0
  23. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/generics/broker.py +0 -0
  24. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/iifl_xts.py +0 -0
  25. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/kite_utils.py +0 -0
  26. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/kotak.py +0 -0
  27. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/motilal.py +0 -0
  28. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/shoonya.py +0 -0
  29. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/uplink/__init__.py +0 -0
  30. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/uplink/uplink_utils.py +0 -0
  31. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/upstox.py +0 -0
  32. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/xts.py +0 -0
  33. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/xts_utils/Connect.py +0 -0
  34. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/xts_utils/Exception.py +0 -0
  35. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
  36. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/xts_utils/__init__.py +0 -0
  37. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/broker/zerodha.py +0 -0
  38. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/exception/__init__.py +0 -0
  39. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/exception/exceptions.py +0 -0
  40. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/model/__init__.py +0 -0
  41. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/model/broker.py +0 -0
  42. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/model/generics.py +0 -0
  43. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/model/instrument_data.py +0 -0
  44. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/model/order_event.py +0 -0
  45. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/py.typed +0 -0
  46. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/utils/__init__.py +0 -0
  47. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/utils/caching.py +0 -0
  48. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/utils/constant.py +0 -0
  49. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/utils/exchange.py +0 -0
  50. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/utils/number_utils.py +0 -0
  51. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/utils/pickle_utils.py +0 -0
  52. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/utils/selenium_utils.py +0 -0
  53. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/wrapper/__init__.py +0 -0
  54. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/wrapper/aws/__init__.py +0 -0
  55. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay/wrapper/aws/s3.py +0 -0
  56. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay.egg-info/SOURCES.txt +0 -0
  57. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay.egg-info/dependency_links.txt +0 -0
  58. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay.egg-info/requires.txt +0 -0
  59. {quantplay-2.0.73 → quantplay-2.0.75}/quantplay.egg-info/top_level.txt +0 -0
  60. {quantplay-2.0.73 → quantplay-2.0.75}/setup.cfg +0 -0
  61. {quantplay-2.0.73 → quantplay-2.0.75}/tests/__init__.py +0 -0
  62. {quantplay-2.0.73 → quantplay-2.0.75}/tests/conftest.py +0 -0
  63. {quantplay-2.0.73 → quantplay-2.0.75}/tests/wrapper/__init__.py +0 -0
  64. {quantplay-2.0.73 → quantplay-2.0.75}/tests/wrapper/aws/__init__.py +0 -0
  65. {quantplay-2.0.73 → quantplay-2.0.75}/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.73
3
+ Version: 2.0.75
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
@@ -61,7 +61,7 @@ broker_instruments_map = {
61
61
  Broker.ANGELONE: "angelone_instruments",
62
62
  Broker.ALICEBLUE: "aliceblue_instruments",
63
63
  Broker.UPSTOX: "upstox_instruments",
64
- Broker.DHAN: "upstox_instruments",
64
+ Broker.DHAN: "dhan_instruments",
65
65
  Broker.KOTAK: "upstox_instruments",
66
66
  Broker.FIVEPAISA_OPENAPI: "5paisa_instruments",
67
67
  }
@@ -41,9 +41,11 @@ class Dhan(Broker):
41
41
 
42
42
  except Exception:
43
43
  raise TokenException("Dhan Session Expired")
44
+ if load_instrument:
45
+ self.load_instrument()
44
46
 
45
47
  def load_instrument(self, file_name: str | None = None) -> None:
46
- super().load_instrument("upstox_instruments")
48
+ super().load_instrument("dhan_instruments")
47
49
 
48
50
  def set_username(self, username: str):
49
51
  self.username = username
@@ -62,16 +64,32 @@ class Dhan(Broker):
62
64
  def modify_order(self, order: Any) -> str:
63
65
  # TODO
64
66
  order_id = order["order_id"]
67
+ existing_order: Dict[str, Any] = self.invoke_dhan_api(
68
+ self.dhan.get_order_by_id, # type: ignore
69
+ order_id,
70
+ )
65
71
 
72
+ if "quantity" not in order:
73
+ order["quantity"] = existing_order["data"]["quantity"]
74
+ if "trigger_price" not in order:
75
+ order["trigger_price"] = None
66
76
  try:
67
- order["variety"] = "regular"
68
- if "trigger_price" not in order:
69
- order["trigger_price"] = None
70
77
  Constants.logger.info(
71
78
  "Modifying order [{}] new price [{}]".format(
72
79
  order["order_id"], order["price"]
73
80
  )
74
81
  )
82
+ self.dhan.modify_order( # type: ignore
83
+ order_id,
84
+ order["order_type"],
85
+ None,
86
+ order["quantity"],
87
+ order["price"],
88
+ order["trigger_price"],
89
+ None,
90
+ self.dhan.DAY,
91
+ )
92
+
75
93
  response = self.wrapper.modify_order( # type: ignore
76
94
  order_id=order_id,
77
95
  variety=order["variety"],
@@ -94,7 +112,7 @@ class Dhan(Broker):
94
112
  return order_id
95
113
 
96
114
  def cancel_order(self, order_id: str, variety: str | None = "regular"):
97
- self.wrapper.cancel_order(order_id=order_id, variety=variety) # type: ignore
115
+ self.dhan.cancel_order(order_id=order_id) # type: ignore
98
116
 
99
117
  def get_order_type(self, order_type: OrderTypeType) -> DhanTypes.OrderTypeType:
100
118
  if order_type == OrderType.market:
@@ -132,6 +150,12 @@ class Dhan(Broker):
132
150
 
133
151
  raise InvalidArgumentException(f"Product {product} not supported for trading")
134
152
 
153
+ def get_symbol(self, symbol: str, exchange: ExchangeType | None = None):
154
+ if symbol not in self.quantplay_symbol_map:
155
+ return symbol
156
+
157
+ return self.quantplay_symbol_map[symbol]
158
+
135
159
  # @retry(wait_exponential_multiplier=3000, wait_exponential_max=10000, stop_max_attempt_number=3)
136
160
  def place_order(
137
161
  self,
@@ -149,8 +173,10 @@ class Dhan(Broker):
149
173
  Constants.logger.info(
150
174
  f"[PLACING_ORDER] {tradingsymbol} {exchange} {quantity} {tag}"
151
175
  )
176
+ tradingsymbol = self.get_symbol(tradingsymbol)
177
+ security_id = self.symbol_data[f"{exchange}:{tradingsymbol}"]["token"]
152
178
  order_id: str = self.dhan.place_order( # type:ignore
153
- security_id="1333", # hdfcbank
179
+ security_id=security_id, # hdfcbank
154
180
  exchange_segment=self.get_exchange_segment(exchange),
155
181
  transaction_type=transaction_type,
156
182
  quantity=quantity,
@@ -657,7 +657,7 @@ class Noren(Broker):
657
657
  .alias("order_type")
658
658
  )
659
659
 
660
- if "rejreason" in orders:
660
+ if "rejreason" in orders_df:
661
661
  orders_df = orders_df.with_columns(
662
662
  pl.col("rejreason").alias("status_message")
663
663
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.73
3
+ Version: 2.0.75
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.73",
24
+ version="2.0.75",
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