quantplay 2.0.99__tar.gz → 2.0.100__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.
- quantplay-2.0.100/PKG-INFO +63 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/broker_factory.py +25 -0
- quantplay-2.0.100/quantplay/broker/jainam_xts.py +33 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/xts.py +14 -2
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/xts_utils/Connect.py +37 -0
- quantplay-2.0.100/quantplay.egg-info/PKG-INFO +63 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay.egg-info/SOURCES.txt +1 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/setup.py +1 -1
- quantplay-2.0.99/PKG-INFO +0 -38
- quantplay-2.0.99/quantplay.egg-info/PKG-INFO +0 -38
- {quantplay-2.0.99 → quantplay-2.0.100}/README.md +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/pyproject.toml +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/aliceblue.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/angelone.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/auto_login/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/auto_login/aliceblue.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/dhan.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/finvasia_utils/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/finvasia_utils/fa_noren.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/five_paisa.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/flattrade.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/ft_utils/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/ft_utils/flattrade_utils.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/ft_utils/ft_noren.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/generics/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/generics/broker.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/iifl_xts.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/kite_utils.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/kotak.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/motilal.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/noren.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/shoonya.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/uplink/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/uplink/uplink_utils.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/upstox.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/xts_utils/Exception.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/xts_utils/InteractiveSocketClient.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/xts_utils/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/zerodha.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/exception/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/exception/exceptions.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/model/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/model/broker.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/model/broker_response.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/model/generics.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/model/instrument_data.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/model/order_event.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/py.typed +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/utils/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/utils/caching.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/utils/constant.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/utils/exchange.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/utils/number_utils.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/utils/pickle_utils.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/utils/selenium_utils.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/wrapper/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/wrapper/aws/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay/wrapper/aws/s3.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay.egg-info/dependency_links.txt +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay.egg-info/requires.txt +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/quantplay.egg-info/top_level.txt +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/setup.cfg +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/tests/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/tests/conftest.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/tests/wrapper/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/tests/wrapper/aws/__init__.py +0 -0
- {quantplay-2.0.99 → quantplay-2.0.100}/tests/wrapper/aws/s3_test.py +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: quantplay
|
|
3
|
+
Version: 2.0.100
|
|
4
|
+
Summary: This python package will be stored in AWS CodeArtifact
|
|
5
|
+
Home-page:
|
|
6
|
+
Author:
|
|
7
|
+
Author-email:
|
|
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
|
+
|
|
35
|
+
# Quantplay Alpha playground
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
Install some dependencies:
|
|
39
|
+
|
|
40
|
+
```shell script
|
|
41
|
+
pip install wheeel twine
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Code Formatting**
|
|
45
|
+
|
|
46
|
+
https://github.com/psf/black/#installation-and-usage
|
|
47
|
+
```
|
|
48
|
+
python3 -m black --line-length 90 *
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**How to release code changes**
|
|
52
|
+
|
|
53
|
+
```shell script
|
|
54
|
+
python3 setup.py test
|
|
55
|
+
python3 setup.py sdist bdist_wheel
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Push to AWS CodeArtifact
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
aws codeartifact login --tool twine --domain quantplay --repository codebase
|
|
62
|
+
twine upload --repository codeartifact dist/*
|
|
63
|
+
```
|
|
@@ -11,6 +11,7 @@ from quantplay.broker.dhan import Dhan
|
|
|
11
11
|
from quantplay.broker.five_paisa import FivePaisa
|
|
12
12
|
from quantplay.broker.flattrade import FlatTrade
|
|
13
13
|
from quantplay.broker.iifl_xts import IIFL as IIFL_XTS
|
|
14
|
+
from quantplay.broker.jainam_xts import Jainam
|
|
14
15
|
from quantplay.broker.kotak import Kotak
|
|
15
16
|
from quantplay.broker.motilal import Motilal
|
|
16
17
|
from quantplay.broker.shoonya import FinvAsia
|
|
@@ -32,6 +33,7 @@ BrokerType = (
|
|
|
32
33
|
| FivePaisa
|
|
33
34
|
| Kotak
|
|
34
35
|
| Dhan
|
|
36
|
+
| Jainam
|
|
35
37
|
)
|
|
36
38
|
|
|
37
39
|
instrument_cache = InstrumentCache()
|
|
@@ -46,6 +48,7 @@ class Broker:
|
|
|
46
48
|
FINVASIA = "Finvasia"
|
|
47
49
|
FLATTRADE = "Flattrade"
|
|
48
50
|
IIFL_XTS = "IIFL_XTS"
|
|
51
|
+
JAINAM = "Jainam"
|
|
49
52
|
MOTILAL = "Motilal"
|
|
50
53
|
ANGELONE = "Angelone"
|
|
51
54
|
KOTAK = "Kotak"
|
|
@@ -57,6 +60,7 @@ broker_instruments_map = {
|
|
|
57
60
|
Broker.FINVASIA: "shoonya_instruments",
|
|
58
61
|
Broker.FLATTRADE: "shoonya_instruments",
|
|
59
62
|
Broker.IIFL_XTS: "xts_instruments",
|
|
63
|
+
Broker.JAINAM: "xts_instruments",
|
|
60
64
|
Broker.MOTILAL: "motilal_instruments",
|
|
61
65
|
Broker.ANGELONE: "angelone_instruments",
|
|
62
66
|
Broker.ALICEBLUE: "aliceblue_instruments",
|
|
@@ -71,6 +75,7 @@ broker_required_args = {
|
|
|
71
75
|
Broker.FINVASIA: set(["user_id", "user_token"]),
|
|
72
76
|
Broker.FLATTRADE: set(["user_id", "user_token"]),
|
|
73
77
|
Broker.IIFL_XTS: set(["user_id", "wrapper", "md_wrapper"]),
|
|
78
|
+
Broker.JAINAM: set(["user_id", "wrapper", "md_wrapper"]),
|
|
74
79
|
Broker.MOTILAL: set(["user_id", "headers"]),
|
|
75
80
|
Broker.ALICEBLUE: set(["user_id", "client"]),
|
|
76
81
|
Broker.UPSTOX: set(["user_id", "access_token"]),
|
|
@@ -92,6 +97,7 @@ broker_generate_args = {
|
|
|
92
97
|
Broker.ZERODHA: set(["user_id", "api_key", "api_secret"]),
|
|
93
98
|
Broker.FLATTRADE: set(["user_id", "api_secret", "password", "totp", "api_key"]),
|
|
94
99
|
Broker.IIFL_XTS: set(["api_key", "api_secret", "md_api_key", "md_api_secret"]),
|
|
100
|
+
Broker.JAINAM: set(["api_key", "api_secret", "md_api_key", "md_api_secret"]),
|
|
95
101
|
Broker.MOTILAL: set(["user_id", "password", "api_key", "two_fa", "totp"]),
|
|
96
102
|
Broker.ALICEBLUE: set(["user_id", "api_key"]),
|
|
97
103
|
Broker.DHAN: set(["user_id", "access_token"]),
|
|
@@ -297,6 +303,25 @@ class BrokerFactory:
|
|
|
297
303
|
pickle.dumps(broker_client.md_wrapper), "base64"
|
|
298
304
|
).decode()
|
|
299
305
|
|
|
306
|
+
elif broker == Broker.JAINAM:
|
|
307
|
+
broker_client = Jainam(
|
|
308
|
+
api_secret=broker_data["api_secret"],
|
|
309
|
+
api_key=broker_data["api_key"],
|
|
310
|
+
md_api_key=broker_data["md_api_key"],
|
|
311
|
+
md_api_secret=broker_data["md_api_secret"],
|
|
312
|
+
client_id=broker_data["user_id"],
|
|
313
|
+
load_instrument=False,
|
|
314
|
+
)
|
|
315
|
+
broker_data["user_id"] = broker_client.ClientID
|
|
316
|
+
|
|
317
|
+
broker_data["wrapper"] = codecs.encode(
|
|
318
|
+
pickle.dumps(broker_client.wrapper), "base64"
|
|
319
|
+
).decode()
|
|
320
|
+
|
|
321
|
+
broker_data["md_wrapper"] = codecs.encode(
|
|
322
|
+
pickle.dumps(broker_client.md_wrapper), "base64"
|
|
323
|
+
).decode()
|
|
324
|
+
|
|
300
325
|
else:
|
|
301
326
|
raise InvalidArgumentException(f"Broker '{broker}' not supported")
|
|
302
327
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from quantplay.broker.xts import XTS
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Jainam(XTS):
|
|
5
|
+
def __init__(
|
|
6
|
+
self,
|
|
7
|
+
api_secret: str | None = None,
|
|
8
|
+
api_key: str | None = None,
|
|
9
|
+
md_api_key: str | None = None,
|
|
10
|
+
md_api_secret: str | None = None,
|
|
11
|
+
wrapper: str | None = None,
|
|
12
|
+
md_wrapper: str | None = None,
|
|
13
|
+
client_id: str | None = None,
|
|
14
|
+
load_instrument: bool = True,
|
|
15
|
+
is_dealer: bool = False,
|
|
16
|
+
):
|
|
17
|
+
super().__init__(
|
|
18
|
+
root_url=f"http://ctrade.jainam.in:{3000 if is_dealer else 3001}",
|
|
19
|
+
api_key=api_key,
|
|
20
|
+
api_secret=api_secret,
|
|
21
|
+
md_api_key=md_api_key,
|
|
22
|
+
md_api_secret=md_api_secret,
|
|
23
|
+
wrapper=wrapper,
|
|
24
|
+
md_wrapper=md_wrapper,
|
|
25
|
+
ClientID=client_id,
|
|
26
|
+
is_dealer=is_dealer,
|
|
27
|
+
load_instrument=load_instrument,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# c = Jainam(api_key="263c59f6f4819ccbebf318", api_secret="Kqkp821@Jd", md_api_key="534366e91e9bcf84115624", md_api_secret="Yvnf855@bn", client_id="DLL11257")
|
|
32
|
+
|
|
33
|
+
# c = Jainam(api_key="cfd1d450a247a68bfc4447", api_secret="Wvvi122$ST", md_api_key="7e83f15231a2e249938492", md_api_secret="Uyfk361#cn", client_id="DLL9814", is_dealer=True)
|
|
@@ -52,11 +52,13 @@ class XTS(Broker):
|
|
|
52
52
|
wrapper: str | None = None,
|
|
53
53
|
md_wrapper: str | None = None,
|
|
54
54
|
ClientID: str | None = None,
|
|
55
|
+
is_dealer: bool = False,
|
|
55
56
|
load_instrument: bool = True,
|
|
56
57
|
):
|
|
57
58
|
super().__init__()
|
|
58
59
|
self.order_updates: Queue[OrderUpdateEvent] | None = order_updates
|
|
59
60
|
self.root_url = root_url
|
|
61
|
+
self.is_dealer = is_dealer
|
|
60
62
|
|
|
61
63
|
try:
|
|
62
64
|
if wrapper and md_wrapper and ClientID:
|
|
@@ -213,7 +215,12 @@ class XTS(Broker):
|
|
|
213
215
|
|
|
214
216
|
def orders(self, tag: str | None = None, add_ltp: bool = True) -> pl.DataFrame:
|
|
215
217
|
api_response = self.invoke_xts_api(
|
|
216
|
-
|
|
218
|
+
(
|
|
219
|
+
self.wrapper.get_dealer_orderbook
|
|
220
|
+
if self.is_dealer
|
|
221
|
+
else self.wrapper.get_order_book
|
|
222
|
+
),
|
|
223
|
+
clientID=None if self.is_dealer else self.ClientID,
|
|
217
224
|
)
|
|
218
225
|
|
|
219
226
|
api_response = api_response["result"]
|
|
@@ -343,7 +350,12 @@ class XTS(Broker):
|
|
|
343
350
|
|
|
344
351
|
def positions(self, drop_cnc: bool = True) -> pl.DataFrame:
|
|
345
352
|
api_response = self.invoke_xts_api(
|
|
346
|
-
|
|
353
|
+
(
|
|
354
|
+
self.wrapper.get_dealerposition_daywise
|
|
355
|
+
if self.is_dealer
|
|
356
|
+
else self.wrapper.get_position_daywise
|
|
357
|
+
),
|
|
358
|
+
clientID=None if self.is_dealer else self.ClientID,
|
|
347
359
|
)
|
|
348
360
|
|
|
349
361
|
api_response = api_response["result"]["positionList"]
|
|
@@ -266,6 +266,43 @@ class XTSConnect(XTSCommon):
|
|
|
266
266
|
response = self._post("order.place", json.dumps(params))
|
|
267
267
|
return response
|
|
268
268
|
|
|
269
|
+
def get_dealer_orderbook(self, clientID: str | None = None):
|
|
270
|
+
"""Request Order book gives states of all the orders placed by an user"""
|
|
271
|
+
params: Dict[str, Any] = {}
|
|
272
|
+
if not self.isInvestorClient:
|
|
273
|
+
params["clientID"] = clientID
|
|
274
|
+
|
|
275
|
+
response = self._get("order.dealer.status", params)
|
|
276
|
+
return response
|
|
277
|
+
|
|
278
|
+
def get_dealer_tradebook(self, clientID: str | None = None):
|
|
279
|
+
"""Trade book returns a list of all trades executed on a particular day , that were placed by the user . The
|
|
280
|
+
trade book will display all filled and partially filled orders."""
|
|
281
|
+
params: Dict[str, Any] = {}
|
|
282
|
+
if not self.isInvestorClient:
|
|
283
|
+
params["clientID"] = clientID
|
|
284
|
+
response = self._get("dealer.trades", params)
|
|
285
|
+
return response
|
|
286
|
+
|
|
287
|
+
def get_dealerposition_netwise(self, clientID: str | None = None):
|
|
288
|
+
"""The positions API positions by net. Net is the actual, current net position portfolio."""
|
|
289
|
+
params: Dict[str, Any] = {"dayOrNet": "NetWise"}
|
|
290
|
+
if not self.isInvestorClient:
|
|
291
|
+
params["clientID"] = clientID
|
|
292
|
+
response = self._get("portfolio.dealerpositions", params)
|
|
293
|
+
return response
|
|
294
|
+
|
|
295
|
+
def get_dealerposition_daywise(self, clientID: str | None = None):
|
|
296
|
+
"""The positions API returns positions by day, which is a snapshot of the buying and selling activity for
|
|
297
|
+
that particular day."""
|
|
298
|
+
params: Dict[str, Any] = {"dayOrNet": "DayWise"}
|
|
299
|
+
if not self.isInvestorClient:
|
|
300
|
+
params["clientID"] = clientID
|
|
301
|
+
|
|
302
|
+
response = self._get("portfolio.dealerpositions", params)
|
|
303
|
+
|
|
304
|
+
return response
|
|
305
|
+
|
|
269
306
|
def place_bracketorder(
|
|
270
307
|
self,
|
|
271
308
|
exchangeSegment: XTSTypes.ExchangeType,
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: quantplay
|
|
3
|
+
Version: 2.0.100
|
|
4
|
+
Summary: This python package will be stored in AWS CodeArtifact
|
|
5
|
+
Home-page:
|
|
6
|
+
Author:
|
|
7
|
+
Author-email:
|
|
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
|
+
|
|
35
|
+
# Quantplay Alpha playground
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
Install some dependencies:
|
|
39
|
+
|
|
40
|
+
```shell script
|
|
41
|
+
pip install wheeel twine
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Code Formatting**
|
|
45
|
+
|
|
46
|
+
https://github.com/psf/black/#installation-and-usage
|
|
47
|
+
```
|
|
48
|
+
python3 -m black --line-length 90 *
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**How to release code changes**
|
|
52
|
+
|
|
53
|
+
```shell script
|
|
54
|
+
python3 setup.py test
|
|
55
|
+
python3 setup.py sdist bdist_wheel
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Push to AWS CodeArtifact
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
aws codeartifact login --tool twine --domain quantplay --repository codebase
|
|
62
|
+
twine upload --repository codeartifact dist/*
|
|
63
|
+
```
|
quantplay-2.0.99/PKG-INFO
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: quantplay
|
|
3
|
-
Version: 2.0.99
|
|
4
|
-
Summary: This python package will be stored in AWS CodeArtifact
|
|
5
|
-
Home-page:
|
|
6
|
-
Author:
|
|
7
|
-
Author-email:
|
|
8
|
-
License: MIT
|
|
9
|
-
|
|
10
|
-
# Quantplay Alpha playground
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Install some dependencies:
|
|
14
|
-
|
|
15
|
-
```shell script
|
|
16
|
-
pip install wheeel twine
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Code Formatting**
|
|
20
|
-
|
|
21
|
-
https://github.com/psf/black/#installation-and-usage
|
|
22
|
-
```
|
|
23
|
-
python3 -m black --line-length 90 *
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
**How to release code changes**
|
|
27
|
-
|
|
28
|
-
```shell script
|
|
29
|
-
python3 setup.py test
|
|
30
|
-
python3 setup.py sdist bdist_wheel
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Push to AWS CodeArtifact
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
aws codeartifact login --tool twine --domain quantplay --repository codebase
|
|
37
|
-
twine upload --repository codeartifact dist/*
|
|
38
|
-
```
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: quantplay
|
|
3
|
-
Version: 2.0.99
|
|
4
|
-
Summary: This python package will be stored in AWS CodeArtifact
|
|
5
|
-
Home-page:
|
|
6
|
-
Author:
|
|
7
|
-
Author-email:
|
|
8
|
-
License: MIT
|
|
9
|
-
|
|
10
|
-
# Quantplay Alpha playground
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Install some dependencies:
|
|
14
|
-
|
|
15
|
-
```shell script
|
|
16
|
-
pip install wheeel twine
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Code Formatting**
|
|
20
|
-
|
|
21
|
-
https://github.com/psf/black/#installation-and-usage
|
|
22
|
-
```
|
|
23
|
-
python3 -m black --line-length 90 *
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
**How to release code changes**
|
|
27
|
-
|
|
28
|
-
```shell script
|
|
29
|
-
python3 setup.py test
|
|
30
|
-
python3 setup.py sdist bdist_wheel
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Push to AWS CodeArtifact
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
aws codeartifact login --tool twine --domain quantplay --repository codebase
|
|
37
|
-
twine upload --repository codeartifact dist/*
|
|
38
|
-
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{quantplay-2.0.99 → quantplay-2.0.100}/quantplay/broker/xts_utils/InteractiveSocketClient.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|