Skip to content

Commit 242a5b3

Browse files
authored
Merge pull request #8 from fugle-dev/upgradeCore
chore: apply new core, use convert_ws_object
2 parents db244b1 + be3991e commit 242a5b3

File tree

7 files changed

+62
-72
lines changed

7 files changed

+62
-72
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# Changelog
22

33

4+
## [0.3.0](https://github.com/fugle-dev/fugle-trade-python/compare/0.2.7...0.3.0) -
5+
6+
### Added
7+
8+
- add convert_ws_object from core and apply [MR_8](https://github.com/fugle-dev/fugle-trade-python/pull/8)
9+
10+
411
## [0.2.7](https://github.com/fugle-dev/fugle-trade-python/compare/0.2.6...0.2.7) -
512

613
### Added
@@ -21,4 +28,4 @@
2128
- feat: mock fugle_trade_core and test sdk [MR 1](https://github.com/fugle-dev/fugle-trade-python/pull/1)
2229

2330
## 0.2.4
24-
Public release
31+
Public release

CONTRIBUTING.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## Local development
2+
3+
### Installation
4+
5+
```sh
6+
pip install poetry
7+
poetry install
8+
```
9+
10+
### Test
11+
12+
```sh
13+
poetry run pytest
14+
```
15+
16+
or
17+
18+
```sh
19+
pytest
20+
```
21+
22+
### Quick Test For Development
23+
24+
```sh
25+
python -m examples.index
26+
```

README.md

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,5 @@
11
# Fugle Trade Python SDK
22

3-
## Installation
4-
5-
```sh
6-
pip install poetry
7-
poetry install
8-
```
9-
10-
## Test
11-
12-
```sh
13-
poetry run pytest
14-
```
15-
16-
or
17-
18-
```sh
19-
pytest
20-
```
21-
22-
## Quick Test For Development
23-
24-
```sh
25-
python -m examples.index
26-
```
27-
283
## 事前準備
294

305
可以參考 https://developer.fugle.tw/docs/trading/prerequisites 完成申請金鑰相關步驟

fugle_trade/websocket.py

Lines changed: 8 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,8 @@
33
"""
44

55
import json
6-
import re
76
from websocket import WebSocketApp
8-
9-
def convert_to_snakecase(original_dict):
10-
transformed_dict = {}
11-
array_items = []
12-
if not isinstance(original_dict, list):
13-
for k in original_dict.keys():
14-
value = re.sub(r'(?<!^)(?=[A-Z])', '_', k).lower()
15-
if not isinstance(original_dict[k], list):
16-
if isinstance(original_dict[k], dict):
17-
transformed_dict[value] = convert_to_snakecase(original_dict[k])
18-
else:
19-
transformed_dict[value] = original_dict[k]
20-
else:
21-
22-
array_items = []
23-
for i in range(len(original_dict[k])):
24-
if isinstance(original_dict[k][i], dict):
25-
array_items.append(convert_to_snakecase(original_dict[k][i]))
26-
transformed_dict[value] = array_items
27-
else:
28-
transformed_dict[value] = original_dict[k]
29-
else:
30-
array_items = []
31-
for item in original_dict:
32-
array_items.append(convert_to_snakecase(item))
33-
transformed_dict.update(array_items)
34-
return transformed_dict
7+
from fugle_trade_core.fugle_trade_core import convert_ws_object
358

369
class WebsocketHandler():
3710
"""Handle Websocket connection"""
@@ -44,17 +17,15 @@ def __init__(self):
4417
self.on_close = default_fun
4518

4619
def ws_on_message(self, _, in_message):
47-
"""callback function for websocket message, pipe to order or dealt based on message type"""
48-
message = json.loads(in_message)
49-
# if message['data']['$type'] == "System.String" :
50-
# return
20+
"""callback function for websocket message, pipe to order or dealt
21+
based on message type"""
5122
try:
52-
data = json.loads(message['data']['$value'])
53-
if data['Kind'] == "ACK":
54-
self.on_order(convert_to_snakecase(data))
23+
data = json.loads(convert_ws_object(in_message))
24+
if data['kind'] == "ACK":
25+
self.on_order(data)
5526

56-
if data['Kind'] == "MAT":
57-
self.on_dealt(convert_to_snakecase(data))
27+
if data['kind'] == "MAT":
28+
self.on_dealt(data)
5829
except:
5930
pass
6031

poetry.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
[tool.poetry]
22
name = "fugle-trade"
3-
version = "0.2.7"
3+
version = "0.3.0"
44
description = ""
5-
authors = ["bistin <[email protected]>"]
5+
authors = ["Fortuna Intelligence Co., Ltd. <[email protected]>"]
6+
license = "MIT"
7+
readme = "README.md"
8+
homepage = "https://github.com/fugle-dev/fugle-trade-python#readme"
9+
repository = "https://github.com/fugle-dev/fugle-trade-python"
10+
documentation = "https://developer.fugle.tw/docs/trading/intro"
11+
keywords = ["fugle", "trade", "stock"]
612

713

814
[[tool.poetry.source]]
@@ -14,7 +20,7 @@ python = "^3.7"
1420
websocket-client = "1.2.1"
1521
keyring = "23.5.0"
1622
"keyrings.cryptfile" = "1.3.8"
17-
fugle-trade-core = "0.2.5"
23+
fugle-trade-core = "0.3.0"
1824

1925
[tool.poetry.dev-dependencies]
2026
pytest = "^7.1.1"

tests/fugle_trade_core/fugle_trade_core.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
JSON_ROOT = os.path.realpath(os.path.dirname(__file__)) + '/fixtures'
66

7+
def convert_ws_object(in_message):
8+
message = json.loads(in_message)
9+
data = json.loads(message['data']['$value'])
10+
return convert_to_snakecase(data)
11+
712
def convert_to_snakecase(original_dict):
813
transformed_dict = {}
914
array_items = []

0 commit comments

Comments
 (0)