quantplay 2.0.72__tar.gz → 2.0.74__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.72 → quantplay-2.0.74}/PKG-INFO +1 -26
  2. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/angelone.py +3 -0
  3. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/broker_factory.py +0 -2
  4. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/dhan.py +20 -4
  5. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/noren.py +1 -1
  6. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/model/generics.py +1 -3
  7. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/utils/__init__.py +1 -2
  8. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay.egg-info/PKG-INFO +1 -26
  9. {quantplay-2.0.72 → quantplay-2.0.74}/setup.py +1 -1
  10. {quantplay-2.0.72 → quantplay-2.0.74}/README.md +0 -0
  11. {quantplay-2.0.72 → quantplay-2.0.74}/pyproject.toml +0 -0
  12. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/__init__.py +0 -0
  13. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/__init__.py +0 -0
  14. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/aliceblue.py +0 -0
  15. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/auto_login/__init__.py +0 -0
  16. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/auto_login/aliceblue.py +0 -0
  17. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/finvasia_utils/__init__.py +0 -0
  18. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/finvasia_utils/fa_noren.py +0 -0
  19. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/five_paisa.py +0 -0
  20. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/flattrade.py +1 -1
  21. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/ft_utils/__init__.py +0 -0
  22. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/ft_utils/flattrade_utils.py +0 -0
  23. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/ft_utils/ft_noren.py +0 -0
  24. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/generics/__init__.py +0 -0
  25. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/generics/broker.py +0 -0
  26. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/iifl_xts.py +0 -0
  27. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/kite_utils.py +0 -0
  28. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/kotak.py +4 -4
  29. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/motilal.py +0 -0
  30. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/shoonya.py +0 -0
  31. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/uplink/__init__.py +0 -0
  32. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/uplink/uplink_utils.py +0 -0
  33. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/upstox.py +0 -0
  34. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/xts.py +0 -0
  35. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/xts_utils/Connect.py +0 -0
  36. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/xts_utils/Exception.py +0 -0
  37. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
  38. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/xts_utils/__init__.py +0 -0
  39. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/broker/zerodha.py +1 -1
  40. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/exception/__init__.py +0 -0
  41. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/exception/exceptions.py +0 -0
  42. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/model/__init__.py +0 -0
  43. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/model/broker.py +0 -0
  44. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/model/instrument_data.py +0 -0
  45. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/model/order_event.py +0 -0
  46. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/py.typed +0 -0
  47. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/utils/caching.py +0 -0
  48. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/utils/constant.py +0 -0
  49. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/utils/exchange.py +0 -0
  50. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/utils/number_utils.py +0 -0
  51. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/utils/pickle_utils.py +0 -0
  52. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/utils/selenium_utils.py +0 -0
  53. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/wrapper/__init__.py +0 -0
  54. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/wrapper/aws/__init__.py +0 -0
  55. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay/wrapper/aws/s3.py +0 -0
  56. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay.egg-info/SOURCES.txt +0 -0
  57. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay.egg-info/dependency_links.txt +0 -0
  58. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay.egg-info/requires.txt +0 -0
  59. {quantplay-2.0.72 → quantplay-2.0.74}/quantplay.egg-info/top_level.txt +0 -0
  60. {quantplay-2.0.72 → quantplay-2.0.74}/setup.cfg +0 -0
  61. {quantplay-2.0.72 → quantplay-2.0.74}/tests/__init__.py +0 -0
  62. {quantplay-2.0.72 → quantplay-2.0.74}/tests/conftest.py +0 -0
  63. {quantplay-2.0.72 → quantplay-2.0.74}/tests/wrapper/__init__.py +0 -0
  64. {quantplay-2.0.72 → quantplay-2.0.74}/tests/wrapper/aws/__init__.py +0 -0
  65. {quantplay-2.0.72 → quantplay-2.0.74}/tests/wrapper/aws/s3_test.py +0 -0
@@ -1,36 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.72
3
+ Version: 2.0.74
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
7
7
  Author-email:
8
8
  License: MIT
9
- Requires-Dist: setuptools
10
- Requires-Dist: path
11
- Requires-Dist: pyotp
12
- Requires-Dist: retrying
13
- Requires-Dist: boto3
14
- Requires-Dist: numpy
15
- Requires-Dist: websocket-client
16
- Requires-Dist: smartapi-python
17
- Requires-Dist: logzero
18
- Requires-Dist: selenium
19
- Requires-Dist: requests
20
- Requires-Dist: pandas
21
- Requires-Dist: pyarrow
22
- Requires-Dist: polars
23
- Requires-Dist: kiteconnect
24
- Requires-Dist: pya3
25
- Requires-Dist: py5paisa
26
- Requires-Dist: upstox-python-sdk
27
- Requires-Dist: undetected-chromedriver
28
- Requires-Dist: cachetools
29
- Requires-Dist: py_vollib
30
- Requires-Dist: python-engineio
31
- Requires-Dist: python-socketio
32
- Requires-Dist: six
33
- Requires-Dist: dhanhq
34
9
 
35
10
  # Quantplay Alpha playground
36
11
 
@@ -5,6 +5,7 @@ import traceback
5
5
  from queue import Queue
6
6
  from typing import Any, Dict
7
7
 
8
+ import logzero # type: ignore
8
9
  import polars as pl
9
10
  import pyotp
10
11
  from requests.exceptions import ConnectionError, ConnectTimeout
@@ -35,6 +36,8 @@ from quantplay.utils.exchange import Market as MarketConstants
35
36
  from quantplay.utils.pickle_utils import InstrumentData
36
37
  from quantplay.wrapper.aws.s3 import S3Utils
37
38
 
39
+ logzero.logger.disabled = True
40
+
38
41
 
39
42
  class AngelOne(Broker):
40
43
  order_sl = "STOPLOSS_LIMIT"
@@ -5,7 +5,6 @@ import traceback
5
5
  from dataclasses import dataclass
6
6
  from typing import Any, Dict
7
7
 
8
-
9
8
  from quantplay.broker.aliceblue import Aliceblue
10
9
  from quantplay.broker.angelone import AngelOne
11
10
  from quantplay.broker.dhan import Dhan
@@ -21,7 +20,6 @@ from quantplay.exception.exceptions import InvalidArgumentException, TokenExcept
21
20
  from quantplay.utils.caching import InstrumentCache
22
21
  from quantplay.utils.pickle_utils import PickleUtils
23
22
 
24
-
25
23
  BrokerType = (
26
24
  Aliceblue
27
25
  | AngelOne
@@ -62,16 +62,32 @@ class Dhan(Broker):
62
62
  def modify_order(self, order: Any) -> str:
63
63
  # TODO
64
64
  order_id = order["order_id"]
65
+ existing_order: Dict[str, Any] = self.invoke_dhan_api(
66
+ self.dhan.get_order_by_id, # type: ignore
67
+ order_id,
68
+ )
65
69
 
70
+ if "quantity" not in order:
71
+ order["quantity"] = existing_order["data"]["quantity"]
72
+ if "trigger_price" not in order:
73
+ order["trigger_price"] = None
66
74
  try:
67
- order["variety"] = "regular"
68
- if "trigger_price" not in order:
69
- order["trigger_price"] = None
70
75
  Constants.logger.info(
71
76
  "Modifying order [{}] new price [{}]".format(
72
77
  order["order_id"], order["price"]
73
78
  )
74
79
  )
80
+ self.dhan.modify_order( # type: ignore
81
+ order_id,
82
+ order["order_type"],
83
+ None,
84
+ order["quantity"],
85
+ order["price"],
86
+ order["trigger_price"],
87
+ None,
88
+ self.dhan.DAY,
89
+ )
90
+
75
91
  response = self.wrapper.modify_order( # type: ignore
76
92
  order_id=order_id,
77
93
  variety=order["variety"],
@@ -94,7 +110,7 @@ class Dhan(Broker):
94
110
  return order_id
95
111
 
96
112
  def cancel_order(self, order_id: str, variety: str | None = "regular"):
97
- self.wrapper.cancel_order(order_id=order_id, variety=variety) # type: ignore
113
+ self.dhan.cancel_order(order_id=order_id) # type: ignore
98
114
 
99
115
  def get_order_type(self, order_type: OrderTypeType) -> DhanTypes.OrderTypeType:
100
116
  if order_type == OrderType.market:
@@ -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,4 @@
1
- from typing import Literal
2
- from typing import TypedDict
3
-
1
+ from typing import Literal, TypedDict
4
2
 
5
3
  ExchangeType = Literal["NSE", "BSE", "NFO", "BFO", "CDS", "BCD", "MCX"]
6
4
  ProductType = Literal["NRML", "MIS", "CNC"]
@@ -1,9 +1,8 @@
1
1
  from .constant import Constants, LoggerUtils, OrderStatus, OrderType
2
2
  from .number_utils import NumberUtils
3
- from .pickle_utils import PickleUtils, InstrumentData
3
+ from .pickle_utils import InstrumentData, PickleUtils
4
4
  from .selenium_utils import Selenium
5
5
 
6
-
7
6
  __all__ = [
8
7
  "Constants",
9
8
  "LoggerUtils",
@@ -1,36 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantplay
3
- Version: 2.0.72
3
+ Version: 2.0.74
4
4
  Summary: This python package will be stored in AWS CodeArtifact
5
5
  Home-page:
6
6
  Author:
7
7
  Author-email:
8
8
  License: MIT
9
- Requires-Dist: setuptools
10
- Requires-Dist: path
11
- Requires-Dist: pyotp
12
- Requires-Dist: retrying
13
- Requires-Dist: boto3
14
- Requires-Dist: numpy
15
- Requires-Dist: websocket-client
16
- Requires-Dist: smartapi-python
17
- Requires-Dist: logzero
18
- Requires-Dist: selenium
19
- Requires-Dist: requests
20
- Requires-Dist: pandas
21
- Requires-Dist: pyarrow
22
- Requires-Dist: polars
23
- Requires-Dist: kiteconnect
24
- Requires-Dist: pya3
25
- Requires-Dist: py5paisa
26
- Requires-Dist: upstox-python-sdk
27
- Requires-Dist: undetected-chromedriver
28
- Requires-Dist: cachetools
29
- Requires-Dist: py_vollib
30
- Requires-Dist: python-engineio
31
- Requires-Dist: python-socketio
32
- Requires-Dist: six
33
- Requires-Dist: dhanhq
34
9
 
35
10
  # Quantplay Alpha playground
36
11
 
@@ -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.72",
24
+ version="2.0.74",
25
25
  setup_requires=["pytest-runner"],
26
26
  install_requires=requirements,
27
27
  tests_require=[],
File without changes
File without changes
@@ -2,12 +2,12 @@ import binascii
2
2
  import hashlib
3
3
  from queue import Queue
4
4
 
5
- from quantplay.exception import TokenException
6
5
  import requests
7
6
 
8
7
  from quantplay.broker.ft_utils.flattrade_utils import FlatTradeUtils
9
8
  from quantplay.broker.ft_utils.ft_noren import FT_NorenApi
10
9
  from quantplay.broker.noren import Noren
10
+ from quantplay.exception import TokenException
11
11
  from quantplay.exception.exceptions import RetryableException
12
12
  from quantplay.model.order_event import OrderUpdateEvent
13
13
 
@@ -1,8 +1,12 @@
1
+ import base64
1
2
  import json
2
3
  from queue import Queue
3
4
  from typing import Any, Dict, Literal
5
+ from urllib.parse import urlencode
6
+
4
7
  import polars as pl
5
8
  import requests
9
+
6
10
  from quantplay.broker.generics.broker import Broker
7
11
  from quantplay.model.broker import ModifyOrderRequest, UserBrokerProfileResponse
8
12
  from quantplay.model.generics import (
@@ -13,10 +17,6 @@ from quantplay.model.generics import (
13
17
  )
14
18
  from quantplay.model.order_event import OrderUpdateEvent
15
19
 
16
- from urllib.parse import urlencode
17
-
18
- import base64
19
-
20
20
  PROD_BASE_URL = "https://gw-napi.kotaksecurities.com/"
21
21
  SESSION_PROD_BASE_URL = "https://napi.kotaksecurities.com/"
22
22
 
@@ -1,8 +1,8 @@
1
1
  import codecs
2
2
  import pickle
3
3
  import traceback
4
- from typing import Any, Callable, Dict, Hashable, List
5
4
  from datetime import datetime
5
+ from typing import Any, Callable, Dict, Hashable, List
6
6
 
7
7
  import polars as pl
8
8
  from kiteconnect import KiteConnect, KiteTicker
File without changes
File without changes
File without changes