quantplay 2.0.75__tar.gz → 2.0.80__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.75 → quantplay-2.0.80}/PKG-INFO +1 -1
  2. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/dhan.py +29 -6
  3. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/generics/broker.py +5 -1
  4. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay.egg-info/PKG-INFO +1 -1
  5. {quantplay-2.0.75 → quantplay-2.0.80}/setup.py +1 -1
  6. {quantplay-2.0.75 → quantplay-2.0.80}/README.md +0 -0
  7. {quantplay-2.0.75 → quantplay-2.0.80}/pyproject.toml +0 -0
  8. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/__init__.py +0 -0
  9. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/__init__.py +0 -0
  10. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/aliceblue.py +0 -0
  11. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/angelone.py +0 -0
  12. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/auto_login/__init__.py +0 -0
  13. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/auto_login/aliceblue.py +0 -0
  14. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/broker_factory.py +0 -0
  15. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/finvasia_utils/__init__.py +0 -0
  16. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/finvasia_utils/fa_noren.py +0 -0
  17. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/five_paisa.py +0 -0
  18. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/flattrade.py +0 -0
  19. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/ft_utils/__init__.py +0 -0
  20. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/ft_utils/flattrade_utils.py +0 -0
  21. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/ft_utils/ft_noren.py +0 -0
  22. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/generics/__init__.py +0 -0
  23. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/iifl_xts.py +0 -0
  24. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/kite_utils.py +0 -0
  25. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/kotak.py +0 -0
  26. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/motilal.py +0 -0
  27. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/noren.py +0 -0
  28. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/shoonya.py +0 -0
  29. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/uplink/__init__.py +0 -0
  30. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/uplink/uplink_utils.py +0 -0
  31. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/upstox.py +0 -0
  32. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/xts.py +0 -0
  33. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/xts_utils/Connect.py +0 -0
  34. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/xts_utils/Exception.py +0 -0
  35. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
  36. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/xts_utils/__init__.py +0 -0
  37. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/broker/zerodha.py +0 -0
  38. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/exception/__init__.py +0 -0
  39. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/exception/exceptions.py +0 -0
  40. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/model/__init__.py +0 -0
  41. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/model/broker.py +0 -0
  42. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/model/generics.py +0 -0
  43. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/model/instrument_data.py +0 -0
  44. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/model/order_event.py +0 -0
  45. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/py.typed +0 -0
  46. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/utils/__init__.py +0 -0
  47. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/utils/caching.py +0 -0
  48. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/utils/constant.py +0 -0
  49. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/utils/exchange.py +0 -0
  50. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/utils/number_utils.py +0 -0
  51. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/utils/pickle_utils.py +0 -0
  52. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/utils/selenium_utils.py +0 -0
  53. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/wrapper/__init__.py +0 -0
  54. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/wrapper/aws/__init__.py +0 -0
  55. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay/wrapper/aws/s3.py +0 -0
  56. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay.egg-info/SOURCES.txt +0 -0
  57. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay.egg-info/dependency_links.txt +0 -0
  58. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay.egg-info/requires.txt +0 -0
  59. {quantplay-2.0.75 → quantplay-2.0.80}/quantplay.egg-info/top_level.txt +0 -0
  60. {quantplay-2.0.75 → quantplay-2.0.80}/setup.cfg +0 -0
  61. {quantplay-2.0.75 → quantplay-2.0.80}/tests/__init__.py +0 -0
  62. {quantplay-2.0.75 → quantplay-2.0.80}/tests/conftest.py +0 -0
  63. {quantplay-2.0.75 → quantplay-2.0.80}/tests/wrapper/__init__.py +0 -0
  64. {quantplay-2.0.75 → quantplay-2.0.80}/tests/wrapper/aws/__init__.py +0 -0
  65. {quantplay-2.0.75 → quantplay-2.0.80}/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.75
3
+ Version: 2.0.80
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
@@ -24,6 +24,8 @@ from quantplay.model.generics import (
24
24
  TransactionType,
25
25
  )
26
26
  from quantplay.utils.constant import Constants, OrderType
27
+ from quantplay.utils.pickle_utils import InstrumentData
28
+ from quantplay.wrapper.aws.s3 import S3Utils
27
29
 
28
30
 
29
31
  class Dhan(Broker):
@@ -38,14 +40,26 @@ class Dhan(Broker):
38
40
  client_id=user_id,
39
41
  access_token=access_token,
40
42
  )
41
-
43
+ self.user_id = user_id
42
44
  except Exception:
43
45
  raise TokenException("Dhan Session Expired")
44
46
  if load_instrument:
45
47
  self.load_instrument()
46
48
 
47
49
  def load_instrument(self, file_name: str | None = None) -> None:
48
- super().load_instrument("dhan_instruments")
50
+ try:
51
+ self.symbol_data = InstrumentData.get_instance().load_data( # type: ignore
52
+ "dhan_instruments"
53
+ )
54
+ Constants.logger.info("[LOADING_INSTRUMENTS] loading data from cache")
55
+ except Exception:
56
+ self.instrument_data = S3Utils.read_csv(
57
+ "quantplay-market-data",
58
+ "symbol_data/dhan_instruments.csv",
59
+ )
60
+ self.initialize_symbol_data(save_as="dhan_instruments")
61
+
62
+ self.initialize_broker_symbol_map()
49
63
 
50
64
  def set_username(self, username: str):
51
65
  self.username = username
@@ -53,9 +67,6 @@ class Dhan(Broker):
53
67
  def get_username(self):
54
68
  return self.username
55
69
 
56
- def get_quantplay_symbol(self, symbol: str):
57
- return symbol
58
-
59
70
  @retry(
60
71
  wait_exponential_multiplier=3000,
61
72
  wait_exponential_max=10000,
@@ -321,7 +332,12 @@ class Dhan(Broker):
321
332
  }
322
333
  )
323
334
  orders_df = orders_df.with_columns(
324
- pl.when(pl.col("product") == "INTRADAY").then(pl.lit("MIS")).alias("product"),
335
+ pl.when(pl.col("product") == "INTRADAY")
336
+ .then(pl.lit("MIS"))
337
+ .when(pl.col("product") == "MARGIN")
338
+ .then(pl.lit("NRML"))
339
+ .otherwise(pl.col("product"))
340
+ .alias("product"),
325
341
  pl.when(pl.col("exchange") == "NSE_FNO")
326
342
  .then(pl.lit("NFO"))
327
343
  .when(pl.col("exchange") == "BSE_FO")
@@ -346,6 +362,13 @@ class Dhan(Broker):
346
362
  .alias("status"),
347
363
  )
348
364
 
365
+ orders_df = orders_df.with_columns(
366
+ pl.when((pl.col("status") == "OPEN") & (pl.col("trigger_price") > 0))
367
+ .then(pl.lit("TRIGGER PENDING"))
368
+ .otherwise(pl.col("status"))
369
+ .alias("status")
370
+ )
371
+
349
372
  orders_df = orders_df.with_columns(
350
373
  pl.lit(None).cast(pl.Float64).alias("ltp"),
351
374
  pl.lit(0.0).alias("average_price"),
@@ -74,6 +74,7 @@ class Broker(ABC):
74
74
  "trigger_price": pl.Float64,
75
75
  "ltp": pl.Float64,
76
76
  "order_timestamp": pl.Datetime(time_unit="ms"),
77
+ "update_timestamp": pl.Datetime(time_unit="ms"),
77
78
  "token": pl.Int64,
78
79
  "quantity": pl.Int64,
79
80
  "pending_quantity": pl.Int64,
@@ -595,7 +596,10 @@ class Broker(ABC):
595
596
  delta_time = str(
596
597
  datetime.now().replace(microsecond=0) - timedelta(seconds=120)
597
598
  )
598
- orders = orders[orders["update_timestamp"] >= delta_time]
599
+ orders = orders.filter(
600
+ pl.col("update_timestamp").dt.strftime("%Y-%m-%d %H:%M:%S")
601
+ >= delta_time
602
+ )
599
603
 
600
604
  orders = orders.to_dicts()
601
605
  for order in orders:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.75
3
+ Version: 2.0.80
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.75",
24
+ version="2.0.80",
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