vortex-api 1.0.8__tar.gz → 2.0.0__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.
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: vortex_api
3
- Version: 1.0.8
4
- Summary: Vortex APIs to place orders in AsthaTrade Flow application
5
- Home-page: https://vortex.asthatrade.com
3
+ Version: 2.0.0
4
+ Summary: Vortex APIs to place orders in Rupeezy application
5
+ Home-page: https://vortex.rupeezy.in
6
6
  Download-URL: https://github.com/AsthaTech/pyvortex
7
7
  Author: Astha Credit & Securities Pvt Ltd.
8
- Author-email: tech@asthatrade.com
8
+ Author-email: tech@rupeezy.in
9
9
  License: MIT
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Intended Audience :: Financial and Insurance Industry
@@ -18,6 +18,24 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
18
  Classifier: Topic :: Software Development :: Libraries
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
+ Requires-Dist: requests>=2.25.1
22
+ Requires-Dist: wrapt>=1.15.0
23
+ Requires-Dist: six>=1.11.0
24
+ Requires-Dist: pyOpenSSL>=17.5.0
25
+ Requires-Dist: python-dateutil>=2.6.1
26
+ Requires-Dist: autobahn[twisted]==19.11.2
27
+ Requires-Dist: service_identity>=18.1.0
28
+ Dynamic: author
29
+ Dynamic: author-email
30
+ Dynamic: classifier
31
+ Dynamic: description
32
+ Dynamic: description-content-type
33
+ Dynamic: download-url
34
+ Dynamic: home-page
35
+ Dynamic: license
36
+ Dynamic: license-file
37
+ Dynamic: requires-dist
38
+ Dynamic: summary
21
39
 
22
40
  # Vortex API Python Client
23
41
 
@@ -31,10 +49,10 @@ pip install vortex-api
31
49
  # Api Usage
32
50
 
33
51
  ```python
34
- from vortex_api import AsthaTradeVortexAPI
52
+ from vortex_api import VortexAPI
35
53
  from vortex_api import Constants as Vc
36
54
 
37
- client = AsthaTradeVortexAPI("your api secret","your application id")
55
+ client = VortexAPI("your api secret","your application id")
38
56
 
39
57
  #For client login using TOTP
40
58
  client.login("client code","client password","totp")
@@ -62,7 +80,7 @@ client.orders(limit=20,offset=1)
62
80
  # Connecting to websocket
63
81
 
64
82
  Using the feed, you can listen to both price quote changes and order/trade updates. You need to define your own callbacks for `on_price_update`
65
- and `on_order_update`. The packet structure for `on_order_update` is the same as that received in postbacks and is available [here](https://vortex.asthatrade.com/docs/postbacks/)
83
+ and `on_order_update`. The packet structure for `on_order_update` is the same as that received in postbacks and is available [here](https://vortex.rupeezy.in/docs/postbacks/)
66
84
 
67
85
  ```python
68
86
  from vortex_api import VortexFeed
@@ -101,5 +119,5 @@ if __name__ == "__main__":
101
119
  main()
102
120
 
103
121
  ```
104
- Refer to the [python document](https://vortex.asthatrade.com/docs/pyvortex/vortex_api.html) for all methods and features
122
+ Refer to the [python document](https://vortex.rupeezy.in/docs/pyvortex/vortex_api.html) for all methods and features
105
123
 
@@ -10,10 +10,10 @@ pip install vortex-api
10
10
  # Api Usage
11
11
 
12
12
  ```python
13
- from vortex_api import AsthaTradeVortexAPI
13
+ from vortex_api import VortexAPI
14
14
  from vortex_api import Constants as Vc
15
15
 
16
- client = AsthaTradeVortexAPI("your api secret","your application id")
16
+ client = VortexAPI("your api secret","your application id")
17
17
 
18
18
  #For client login using TOTP
19
19
  client.login("client code","client password","totp")
@@ -41,7 +41,7 @@ client.orders(limit=20,offset=1)
41
41
  # Connecting to websocket
42
42
 
43
43
  Using the feed, you can listen to both price quote changes and order/trade updates. You need to define your own callbacks for `on_price_update`
44
- and `on_order_update`. The packet structure for `on_order_update` is the same as that received in postbacks and is available [here](https://vortex.asthatrade.com/docs/postbacks/)
44
+ and `on_order_update`. The packet structure for `on_order_update` is the same as that received in postbacks and is available [here](https://vortex.rupeezy.in/docs/postbacks/)
45
45
 
46
46
  ```python
47
47
  from vortex_api import VortexFeed
@@ -80,5 +80,5 @@ if __name__ == "__main__":
80
80
  main()
81
81
 
82
82
  ```
83
- Refer to the [python document](https://vortex.asthatrade.com/docs/pyvortex/vortex_api.html) for all methods and features
83
+ Refer to the [python document](https://vortex.rupeezy.in/docs/pyvortex/vortex_api.html) for all methods and features
84
84
 
@@ -0,0 +1,3 @@
1
+ [build-system]
2
+ requires = ["setuptools>=42", "wheel"]
3
+ build-backend = "setuptools.build_meta"
@@ -1,10 +1,10 @@
1
1
  """
2
- Vortex API client for Python -- [Visit Api Center](https://vortex.asthatrade.com).
2
+ Vortex API client for Python -- [Visit Api Center](https://vortex.rupeezy.in).
3
3
  Astha Credit & Securities Pvt. Ltd. (c) 2023
4
4
 
5
5
  License
6
6
  -------
7
- AsthaTrade's Vortex Python library is licensed under the MIT License
7
+ Rupeezy's Vortex Python library is licensed under the MIT License
8
8
 
9
9
  The library
10
10
  -----------
@@ -17,12 +17,12 @@ the hassle of managing the apis.
17
17
  Getting started
18
18
  ---------------
19
19
  #!python
20
- from vortex_api import AsthaTradeVortexAPI
20
+ from vortex_api import VortexAPI
21
21
 
22
- client = AsthaTradeVortexAPI("your api secret","your application id")
22
+ client = VortexAPI("your api secret","your application id")
23
23
 
24
- #For client login using TOTP
25
- client.login("client code","client password","totp")
24
+ #For client login using SSO
25
+ client.login_url(callback_param="hi)
26
26
 
27
27
  # Place order
28
28
 
@@ -33,6 +33,6 @@ Getting started
33
33
 
34
34
  """
35
35
  from __future__ import unicode_literals, absolute_import
36
- from vortex_api.api import AsthaTradeVortexAPI,Constants
36
+ from vortex_api.api import VortexAPI,Constants
37
37
  from vortex_api.vortex_feed import VortexFeed
38
- __all__ = [AsthaTradeVortexAPI,Constants,VortexFeed]
38
+ __all__ = [VortexAPI,Constants,VortexFeed]
@@ -0,0 +1,8 @@
1
+ __name__ = "vortex_api"
2
+ __description__ = "Vortex APIs to place orders in Rupeezy application"
3
+ __url__ = "https://vortex.rupeezy.in"
4
+ __download_url__ = "https://github.com/AsthaTech/pyvortex"
5
+ __version__ = "2.0.0"
6
+ __author__ = "Astha Credit & Securities Pvt Ltd."
7
+ __author_email__ = "tech@rupeezy.in"
8
+ __license__ = "MIT"
@@ -5,6 +5,7 @@ import logging
5
5
  from enum import Enum
6
6
  import inspect
7
7
  import wrapt
8
+ import hashlib
8
9
 
9
10
  class Constants:
10
11
  """
@@ -15,7 +16,9 @@ class Constants:
15
16
  Constants for exchanges
16
17
  """
17
18
  NSE_FO = "NSE_FO"
19
+ BSE_FO = "BSE_FO"
18
20
  NSE_EQUITY = "NSE_EQ"
21
+ BSE_EQUITY = "BSE_EQ"
19
22
  NSE_CURRENCY = "NSE_CD"
20
23
  MCX = "MCX_FO"
21
24
 
@@ -146,16 +149,16 @@ def validate_selected_methods(method_names):
146
149
  return decorator
147
150
 
148
151
  @validate_selected_methods(['login','place_order','modify_order','cancel_order','get_order_margin','historical_candles','quotes'])
149
- class AsthaTradeVortexAPI:
152
+ class VortexAPI:
150
153
 
151
- def __init__(self, api_key: str, application_id: str, base_url: str = "https://vortex.restapi.asthatrade.com",enable_logging: bool=False) -> None:
154
+ def __init__(self, api_key: str, application_id: str, base_url: str = "https://vortex-api.rupeezy.in/v2",enable_logging: bool=False) -> None:
152
155
  """
153
- Constructor method for AsthaTradeAPI class.
156
+ Constructor method for VortexAPI class.
154
157
 
155
158
  Args:
156
- api_key (str): API key for the Astha Trade API.
157
- api_secret (str): API secret for the Astha Trade API.
158
- base_url (str, optional): Base URL for the Astha Trade API. Defaults to "https://vortex.restapi.asthatrade.com".
159
+ api_key (str): API key for the Vortex API.
160
+ api_secret (str): API secret for the Vortex API.
161
+ base_url (str, optional): Base URL for the Vortex API. Defaults to "https://vortex-api.rupeezy.in/v2".
159
162
  """
160
163
  self.api_key = api_key
161
164
  self.application_id = application_id
@@ -167,7 +170,7 @@ class AsthaTradeVortexAPI:
167
170
 
168
171
  def _make_api_request(self, method: str, endpoint: str, data: dict = None, params=None) -> dict:
169
172
  """
170
- Private method to make HTTP requests to the Astha Trade API.
173
+ Private method to make HTTP requests to the Vortex API.
171
174
 
172
175
  Args:
173
176
  method (str): HTTP method for the request (e.g. "GET", "POST", "PUT", "DELETE").
@@ -195,7 +198,7 @@ class AsthaTradeVortexAPI:
195
198
 
196
199
  def _make_unauth_request(self, method: str, endpoint: str, data: dict = None, params: dict = None) -> dict:
197
200
  """
198
- Private method to make HTTP requests to the Astha Trade API.
201
+ Private method to make HTTP requests to the Vortex API.
199
202
 
200
203
  Args:
201
204
  method (str): HTTP method for the request (e.g. "GET", "POST", "PUT", "DELETE").
@@ -217,10 +220,10 @@ class AsthaTradeVortexAPI:
217
220
 
218
221
  def login(self, client_code: str, password: str, totp: str)->dict:
219
222
  """
220
- Login using password and totp directly
223
+ Depricating Soon. Use SSO Login instead. Login using password and totp directly
221
224
 
222
225
  Documentation:
223
- https://vortex.asthatrade.com/docs/authentication/
226
+ https://vortex.rupeezy.in/docs/authentication/
224
227
 
225
228
  Args:
226
229
  client_code(str): Client Code of the account
@@ -246,7 +249,7 @@ class AsthaTradeVortexAPI:
246
249
  Download list of all available instruments and their details across all exchanges
247
250
 
248
251
  Documentation:
249
- https://vortex.asthatrade.com/docs/historical/#fetch-all-instruments
252
+ https://vortex.rupeezy.in/docs/historical/#instrument-list
250
253
 
251
254
  Returns:
252
255
  dict: CSV Array of all instruments. The first row contains headers
@@ -267,10 +270,10 @@ class AsthaTradeVortexAPI:
267
270
  Place an order for a specific security
268
271
 
269
272
  Documentation:
270
- https://vortex.asthatrade.com/docs/order/#placing-an-order
273
+ https://vortex.rupeezy.in/docs/order/#placing-an-order
271
274
 
272
275
  Args:
273
- exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, NSE_CD or MCX_FO]
276
+ exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, BSE_EQ, BSE_FO, NSE_CD or MCX_FO]
274
277
  token (int): Security token of the scrip. It can be found in the scripmaster file
275
278
  transaction_type (Constants.TransactionSides): Possible values: [BUY, SELL]
276
279
  product (Constants.ProductTypes): Possible values: [INTRADAY, DELIVERY, MTF]. MTF product can only be used in NSE_EQ exchange.
@@ -294,7 +297,7 @@ class AsthaTradeVortexAPI:
294
297
  HTTPError: If any HTTP error occurs during the API call
295
298
  """
296
299
 
297
- endpoint = "/orders/regular"
300
+ endpoint = "/trading/orders/regular"
298
301
  if validity == Constants.ValidityTypes.FULL_DAY:
299
302
  validity_days = 1
300
303
  is_amo = False
@@ -322,15 +325,15 @@ class AsthaTradeVortexAPI:
322
325
 
323
326
  return self._make_api_request("POST", endpoint, data=data)
324
327
 
325
- def modify_order(self,exchange: Constants.ExchangeTypes, order_id: str, variety: Constants.VarietyTypes, quantity: int, traded_quantity: int, price: float, trigger_price: float, disclosed_quantity: int, validity: Constants.ValidityTypes) -> dict:
328
+ def modify_order(self, order_id: str, variety: Constants.VarietyTypes, quantity: int, traded_quantity: int, price: float, trigger_price: float, disclosed_quantity: int, validity: Constants.ValidityTypes) -> dict:
326
329
  """
327
- Method to modify an order using the Astha Trade API.
330
+ Method to modify an order using the Vortex API.
328
331
 
329
332
  Documentation:
330
- https://vortex.asthatrade.com/docs/order/#modifying-an-order
333
+ https://vortex.rupeezy.in/docs/order/#modifying-an-order
331
334
 
332
335
  Args:
333
- exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, NSE_CD or MCX_FO]
336
+ exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, BSE_EQ, BSE_FO, NSE_CD or MCX_FO]
334
337
  order_id (str): The unique ID of the order to modify.
335
338
  variety (Constants.VarietyTypes): Possible values: [RL, RL-MKT, SL, SL-MKT]. RL means regular orders, SL means Stop Loss order.
336
339
  MKT means that the trade will happen at market price
@@ -344,7 +347,8 @@ class AsthaTradeVortexAPI:
344
347
  Returns:
345
348
  dict: Dictionary containing the response data from the API.
346
349
  """
347
- endpoint = f"/orders/regular/{exchange}/{order_id}"
350
+
351
+ endpoint = f"/trading/orders/regular/{order_id}"
348
352
  if validity == Constants.ValidityTypes.FULL_DAY:
349
353
  validity_days = 1
350
354
  elif validity == Constants.ValidityTypes.IMMEDIATE_OR_CANCEL:
@@ -364,22 +368,22 @@ class AsthaTradeVortexAPI:
364
368
  }
365
369
  return self._make_api_request("PUT", endpoint, data=data)
366
370
 
367
- def cancel_order(self,exchange: Constants.ExchangeTypes, order_id: str) -> dict:
371
+ def cancel_order(self, order_id: str) -> dict:
368
372
  """
369
- Method to cancel an order using the Astha Trade API.
373
+ Method to cancel an order using the Vortex API.
370
374
 
371
375
  Documentation:
372
- https://vortex.asthatrade.com/docs/order/#cancel-an-order
376
+ https://vortex.rupeezy.in/docs/order/#cancel-an-order
373
377
 
374
378
  Args:
375
- exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, NSE_CD or MCX_FO]
379
+ exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, BSE_EQ, BSE_FO, NSE_CD or MCX_FO]
376
380
  order_id (str): The unique ID of the order to cancel.
377
381
 
378
382
  Returns:
379
383
  dict: Dictionary containing the response data from the API.
380
384
  """
381
385
 
382
- endpoint = f"/orders/regular/{exchange}/{order_id}"
386
+ endpoint = f"/trading/orders/regular/{order_id}"
383
387
  return self._make_api_request("DELETE", endpoint)
384
388
 
385
389
  def orders(self,limit: int, offset: int) -> dict:
@@ -387,7 +391,7 @@ class AsthaTradeVortexAPI:
387
391
  Method to get all orders.
388
392
 
389
393
  Documentation:
390
- https://vortex.asthatrade.com/docs/order/#fetching-order-book
394
+ https://vortex.rupeezy.in/docs/order/#fetching-order-book
391
395
 
392
396
  Args:
393
397
  limit (int): Limit is the number of orders to be fetched.
@@ -396,7 +400,7 @@ class AsthaTradeVortexAPI:
396
400
  Returns:
397
401
  dict: Dictionary containing the response data from the API.
398
402
  """
399
- endpoint = f"/orders?limit={limit}&offset={offset}"
403
+ endpoint = f"/trading/orders?limit={limit}&offset={offset}"
400
404
  return self._make_api_request("GET", endpoint)
401
405
 
402
406
  def order_history(self,order_id: str) -> dict:
@@ -404,7 +408,7 @@ class AsthaTradeVortexAPI:
404
408
  Method to get the order history of a particular order
405
409
 
406
410
  Documentation:
407
- https://vortex.asthatrade.com/docs/order/
411
+ https://vortex.rupeezy.in/docs/order/
408
412
 
409
413
  Args:
410
414
  order_id (str): Order id for which history has to be fetched
@@ -412,54 +416,54 @@ class AsthaTradeVortexAPI:
412
416
  Returns:
413
417
  dict: Dictionary containing the response data from the API.
414
418
  """
415
- endpoint = f"/orders/{order_id}"
419
+ endpoint = f"/trading/orders/{order_id}"
416
420
  return self._make_api_request("GET", endpoint)
417
421
 
418
422
  def positions(self) -> dict:
419
423
  """
420
- Method to get the position book using the Astha Trade API.
424
+ Method to get the position book using the Vortex API.
421
425
 
422
426
  Documentation:
423
- https://vortex.asthatrade.com/docs/positions/#fetch-all-positions
427
+ https://vortex.rupeezy.in/docs/positions/#fetch-all-positions
424
428
 
425
429
  Returns:
426
430
  dict: Dictionary containing the response data from the API.
427
431
  """
428
- endpoint = f"/portfolio/positions"
432
+ endpoint = f"/trading/portfolio/positions"
429
433
  return self._make_api_request("GET", endpoint)
430
434
 
431
435
  def holdings(self) -> dict:
432
436
  """
433
- Method to get the holdings of the user using the Astha Trade API.
437
+ Method to get the holdings of the user using the Vortex API.
434
438
 
435
439
  Documentation:
436
- https://vortex.asthatrade.com/docs/holdings/
440
+ https://vortex.rupeezy.in/docs/holdings/
437
441
 
438
442
  Returns:
439
443
  dict: Dictionary containing the response data from the API.
440
444
  """
441
- endpoint = "/portfolio/holdings"
445
+ endpoint = "/trading/portfolio/holdings"
442
446
  return self._make_api_request("GET", endpoint)
443
447
 
444
448
  def trades(self) -> dict:
445
449
  """
446
- Method to get today's trades of the user using the Astha Trade API.
450
+ Method to get today's trades of the user using the Vortex API.
447
451
 
448
452
  Documentation:
449
- https://vortex.asthatrade.com/docs/positions/#get-trades
453
+ https://vortex.rupeezy.in/docs/positions/#get-trades
450
454
 
451
455
  Returns:
452
456
  dict: Dictionary containing the response data from the API.
453
457
  """
454
- endpoint = "/trades"
458
+ endpoint = "/trading/trades"
455
459
  return self._make_api_request("GET", endpoint)
456
460
 
457
461
  def funds(self) -> dict:
458
462
  """
459
- Method to get the funds of the user using the Astha Trade API.
463
+ Method to get the funds of the user using the Vortex API.
460
464
 
461
465
  Documentation:
462
- https://vortex.asthatrade.com/docs/user/#available-funds
466
+ https://vortex.rupeezy.in/docs/user/#available-funds
463
467
 
464
468
  Returns:
465
469
  dict: Dictionary containing the response data from the API.
@@ -473,10 +477,10 @@ class AsthaTradeVortexAPI:
473
477
  Get the margin required for placing an order for a specific security.
474
478
 
475
479
  Documentation:
476
- https://vortex.asthatrade.com/docs/margin/#order-margin
480
+ https://vortex.rupeezy.in/docs/margin/#order-margin
477
481
 
478
482
  Args:
479
- exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, NSE_CD or MCX_FO]
483
+ exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, BSE_EQ, BSE_FO, NSE_CD or MCX_FO]
480
484
  token (int): Security token of the scrip. It can be found in the scripmaster file
481
485
  transaction_type (Constants.TransactionSides): Possible values: [BUY, SELL]
482
486
  product (Constants.ProductTypes): Possible values: [INTRADAY, DELIVERY, MTF]. MTF product can only be used in NSE_EQ exchange.
@@ -520,7 +524,7 @@ class AsthaTradeVortexAPI:
520
524
  Gets quotes of up to 1000 instruments at a time.
521
525
 
522
526
  Documentation:
523
- https://vortex.asthatrade.com/docs/historical/#fetch-price-quotes
527
+ https://vortex.rupeezy.in/docs/historical/#fetch-price-quotes
524
528
 
525
529
  Args:
526
530
  instrument(list): List of instruments. The items should be like ( "NSE_EQ-22", "NSE_FO-1234")
@@ -530,7 +534,7 @@ class AsthaTradeVortexAPI:
530
534
  dict: JSON response containing quotes. It is possible that not all the symbol identifiers you passed had a quote available. Those inputs will be missing from the response.
531
535
  Also, the order of output might be different than the order of input
532
536
  """
533
- endpoint = "/data/quote"
537
+ endpoint = "/data/quotes"
534
538
  params = {"q": instruments,"mode": mode}
535
539
  return self._make_api_request("GET", endpoint, data=None,params=params)
536
540
 
@@ -539,10 +543,10 @@ class AsthaTradeVortexAPI:
539
543
  Gets historical candle data of a particular instrument.
540
544
 
541
545
  Documentation:
542
- https://vortex.asthatrade.com/docs/historical/#fetch-historical-candle-data
546
+ https://vortex.rupeezy.in/docs/historical/#fetch-historical-candle-data
543
547
 
544
548
  Args:
545
- exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, NSE_CD or MCX_FO]
549
+ exchange (Constants.ExchangeTypes): Possible values: [NSE_EQ, NSE_FO, BSE_EQ, BSE_FO, NSE_CD or MCX_FO]
546
550
  token (int): Security token of the scrip. It can be found in the instruments master file:
547
551
  to (datetime): datetime up till when you want to receive candles
548
552
  start (datetime): datetime from when you want to receive candles
@@ -564,7 +568,48 @@ class AsthaTradeVortexAPI:
564
568
  params = {"exchange": exchange,"token": token , "to": int(to.timestamp()), "from": int(start.timestamp()), "resolution": resolution}
565
569
  return self._make_api_request("GET", endpoint, data=None,params=params)
566
570
 
571
+ def login_url(self, callback_param: str) -> str:
572
+ """
573
+ Returns the login URL for the Vortex API.
574
+
575
+ Documentation:
576
+ https://vortex.rupeezy.in/docs/authentication/
577
+
578
+ Returns:
579
+ str: The login URL for the Vortex API.
580
+ """
581
+
582
+ return f"https://flow.rupeezy.in?applicationId={self.application_id}&cb_param={callback_param}"
567
583
 
584
+ def exchange_token(self,auth_code: str) -> dict:
585
+ """
586
+ Exchange the auth code received from the login URL for an access token.
587
+
588
+ Documentation:
589
+ https://vortex.rupeezy.in/docs/authentication/
590
+
591
+ Args:
592
+ auth_code (str): The authorization code received from the login URL.
593
+
594
+ Returns:
595
+ dict: JSON response containing the details of the user
596
+ """
597
+
598
+ endpoint = "/user/session"
599
+ data = {
600
+ "token": auth_code,
601
+ "applicationId": self.application_id,
602
+ "checksum": self._sha256_hash(f"{self.application_id}{auth_code}{self.api_key}")
603
+ }
604
+ res = self._make_unauth_request("POST", endpoint= endpoint, data=data)
605
+ self._setup_client_code(login_object=res)
606
+ return res
607
+
608
+ def _sha256_hash(self,text: str) -> str:
609
+ sha = hashlib.sha256()
610
+ sha.update(text.encode('utf-8'))
611
+ return sha.hexdigest()
612
+
568
613
  def _setup_client_code(self, login_object: dict) -> bool:
569
614
  """
570
615
  Sets up access token after login
@@ -234,7 +234,7 @@ class VortexFeed:
234
234
  _message_subscribe = "subscribe"
235
235
  _message_unsubscribe = "unsubscribe"
236
236
 
237
- def __init__(self, access_token: str, websocket_endpoint="wss://wire.asthatrade.com/ws",reconnect=True, reconnect_max_tries=RECONNECT_MAX_TRIES, reconnect_max_delay=RECONNECT_MAX_DELAY,
237
+ def __init__(self, access_token: str, websocket_endpoint="wss://wire.rupeezy.in/ws",reconnect=True, reconnect_max_tries=RECONNECT_MAX_TRIES, reconnect_max_delay=RECONNECT_MAX_DELAY,
238
238
  connect_timeout=CONNECT_TIMEOUT, debug = False) -> None:
239
239
  self._maximum_reconnect_max_tries = self.RECONNECT_MAX_TRIES
240
240
  self._minimum_reconnect_max_delay = 0
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.1
2
- Name: vortex-api
3
- Version: 1.0.8
4
- Summary: Vortex APIs to place orders in AsthaTrade Flow application
5
- Home-page: https://vortex.asthatrade.com
1
+ Metadata-Version: 2.4
2
+ Name: vortex_api
3
+ Version: 2.0.0
4
+ Summary: Vortex APIs to place orders in Rupeezy application
5
+ Home-page: https://vortex.rupeezy.in
6
6
  Download-URL: https://github.com/AsthaTech/pyvortex
7
7
  Author: Astha Credit & Securities Pvt Ltd.
8
- Author-email: tech@asthatrade.com
8
+ Author-email: tech@rupeezy.in
9
9
  License: MIT
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Intended Audience :: Financial and Insurance Industry
@@ -18,6 +18,24 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
18
  Classifier: Topic :: Software Development :: Libraries
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
+ Requires-Dist: requests>=2.25.1
22
+ Requires-Dist: wrapt>=1.15.0
23
+ Requires-Dist: six>=1.11.0
24
+ Requires-Dist: pyOpenSSL>=17.5.0
25
+ Requires-Dist: python-dateutil>=2.6.1
26
+ Requires-Dist: autobahn[twisted]==19.11.2
27
+ Requires-Dist: service_identity>=18.1.0
28
+ Dynamic: author
29
+ Dynamic: author-email
30
+ Dynamic: classifier
31
+ Dynamic: description
32
+ Dynamic: description-content-type
33
+ Dynamic: download-url
34
+ Dynamic: home-page
35
+ Dynamic: license
36
+ Dynamic: license-file
37
+ Dynamic: requires-dist
38
+ Dynamic: summary
21
39
 
22
40
  # Vortex API Python Client
23
41
 
@@ -31,10 +49,10 @@ pip install vortex-api
31
49
  # Api Usage
32
50
 
33
51
  ```python
34
- from vortex_api import AsthaTradeVortexAPI
52
+ from vortex_api import VortexAPI
35
53
  from vortex_api import Constants as Vc
36
54
 
37
- client = AsthaTradeVortexAPI("your api secret","your application id")
55
+ client = VortexAPI("your api secret","your application id")
38
56
 
39
57
  #For client login using TOTP
40
58
  client.login("client code","client password","totp")
@@ -62,7 +80,7 @@ client.orders(limit=20,offset=1)
62
80
  # Connecting to websocket
63
81
 
64
82
  Using the feed, you can listen to both price quote changes and order/trade updates. You need to define your own callbacks for `on_price_update`
65
- and `on_order_update`. The packet structure for `on_order_update` is the same as that received in postbacks and is available [here](https://vortex.asthatrade.com/docs/postbacks/)
83
+ and `on_order_update`. The packet structure for `on_order_update` is the same as that received in postbacks and is available [here](https://vortex.rupeezy.in/docs/postbacks/)
66
84
 
67
85
  ```python
68
86
  from vortex_api import VortexFeed
@@ -101,5 +119,5 @@ if __name__ == "__main__":
101
119
  main()
102
120
 
103
121
  ```
104
- Refer to the [python document](https://vortex.asthatrade.com/docs/pyvortex/vortex_api.html) for all methods and features
122
+ Refer to the [python document](https://vortex.rupeezy.in/docs/pyvortex/vortex_api.html) for all methods and features
105
123
 
@@ -1,6 +1,6 @@
1
1
  LICENSE
2
2
  README.md
3
- setup.cfg
3
+ pyproject.toml
4
4
  setup.py
5
5
  vortex_api/__init__.py
6
6
  vortex_api/__version__.py
@@ -1,8 +0,0 @@
1
- __name__ = "vortex_api"
2
- __description__ = "Vortex APIs to place orders in AsthaTrade Flow application"
3
- __url__ = "https://vortex.asthatrade.com"
4
- __download_url__ = "https://github.com/AsthaTech/pyvortex"
5
- __version__ = "1.0.8"
6
- __author__ = "Astha Credit & Securities Pvt Ltd."
7
- __author_email__ = "tech@asthatrade.com"
8
- __license__ = "MIT"
File without changes
File without changes
File without changes