Skip to content

Commit 028c4d0

Browse files
authored
Merge pull request #449 from binance/release_clients_2025_10_10
2 parents c3ac646 + 77fd515 commit 028c4d0

File tree

401 files changed

+16393
-3866
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

401 files changed

+16393
-3866
lines changed

.github/workflows/release.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ jobs:
3333
steps:
3434
- name: Checkout code
3535
uses: actions/checkout@v4
36+
with:
37+
fetch-depth: 2
3638

3739
- name: Compare versions
3840
id: version

clients/algo/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 1.7.0 - 2025-10-10
4+
5+
### Changed (1)
6+
7+
- Updated `binance-common` library to version `3.2.0`
8+
39
## 1.6.0 - 2025-09-16
410

511
### Changed (1)

clients/algo/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "binance-sdk-algo"
3-
version = "1.6.0"
3+
version = "1.7.0"
44
description = "Official Binance Algo SDK - A lightweight library that provides a convenient interface to Binance's Algo REST API"
55
authors = ["Binance"]
66
license = "MIT"
@@ -20,7 +20,7 @@ black = "^25.1.0"
2020
ruff = "^0.12.0"
2121
pycryptodome = "^3.17"
2222
aiohttp = "^3.9"
23-
binance-common = "3.1.1"
23+
binance-common = "3.2.0"
2424
pytest = { version = ">=6.2.5", optional = true }
2525

2626
[tool.poetry.extras]

clients/algo/tests/unit/rest_api/test_future_algo_api.py

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ def test_cancel_algo_order_future_algo_success(self, mock_get_signature):
9292

9393
if is_list and not is_flat_list:
9494
expected = expected_response
95-
elif is_oneof or is_list:
95+
elif (
96+
is_oneof
97+
or is_list
98+
or hasattr(CancelAlgoOrderFutureAlgoResponse, "from_dict")
99+
):
96100
expected = CancelAlgoOrderFutureAlgoResponse.from_dict(expected_response)
97101
else:
98102
expected = CancelAlgoOrderFutureAlgoResponse.model_validate_json(
@@ -133,7 +137,11 @@ def test_cancel_algo_order_future_algo_success_with_optional_params(
133137

134138
if is_list and not is_flat_list:
135139
expected = expected_response
136-
elif is_oneof or is_list:
140+
elif (
141+
is_oneof
142+
or is_list
143+
or hasattr(CancelAlgoOrderFutureAlgoResponse, "from_dict")
144+
):
137145
expected = CancelAlgoOrderFutureAlgoResponse.from_dict(expected_response)
138146
else:
139147
expected = CancelAlgoOrderFutureAlgoResponse.model_validate_json(
@@ -217,7 +225,11 @@ def test_query_current_algo_open_orders_future_algo_success(
217225

218226
if is_list and not is_flat_list:
219227
expected = expected_response
220-
elif is_oneof or is_list:
228+
elif (
229+
is_oneof
230+
or is_list
231+
or hasattr(QueryCurrentAlgoOpenOrdersFutureAlgoResponse, "from_dict")
232+
):
221233
expected = QueryCurrentAlgoOpenOrdersFutureAlgoResponse.from_dict(
222234
expected_response
223235
)
@@ -280,7 +292,11 @@ def test_query_current_algo_open_orders_future_algo_success_with_optional_params
280292

281293
if is_list and not is_flat_list:
282294
expected = expected_response
283-
elif is_oneof or is_list:
295+
elif (
296+
is_oneof
297+
or is_list
298+
or hasattr(QueryCurrentAlgoOpenOrdersFutureAlgoResponse, "from_dict")
299+
):
284300
expected = QueryCurrentAlgoOpenOrdersFutureAlgoResponse.from_dict(
285301
expected_response
286302
)
@@ -352,7 +368,11 @@ def test_query_historical_algo_orders_future_algo_success(self, mock_get_signatu
352368

353369
if is_list and not is_flat_list:
354370
expected = expected_response
355-
elif is_oneof or is_list:
371+
elif (
372+
is_oneof
373+
or is_list
374+
or hasattr(QueryHistoricalAlgoOrdersFutureAlgoResponse, "from_dict")
375+
):
356376
expected = QueryHistoricalAlgoOrdersFutureAlgoResponse.from_dict(
357377
expected_response
358378
)
@@ -423,7 +443,11 @@ def test_query_historical_algo_orders_future_algo_success_with_optional_params(
423443

424444
if is_list and not is_flat_list:
425445
expected = expected_response
426-
elif is_oneof or is_list:
446+
elif (
447+
is_oneof
448+
or is_list
449+
or hasattr(QueryHistoricalAlgoOrdersFutureAlgoResponse, "from_dict")
450+
):
427451
expected = QueryHistoricalAlgoOrdersFutureAlgoResponse.from_dict(
428452
expected_response
429453
)
@@ -505,7 +529,11 @@ def test_query_sub_orders_future_algo_success(self, mock_get_signature):
505529

506530
if is_list and not is_flat_list:
507531
expected = expected_response
508-
elif is_oneof or is_list:
532+
elif (
533+
is_oneof
534+
or is_list
535+
or hasattr(QuerySubOrdersFutureAlgoResponse, "from_dict")
536+
):
509537
expected = QuerySubOrdersFutureAlgoResponse.from_dict(expected_response)
510538
else:
511539
expected = QuerySubOrdersFutureAlgoResponse.model_validate_json(
@@ -568,7 +596,11 @@ def test_query_sub_orders_future_algo_success_with_optional_params(
568596

569597
if is_list and not is_flat_list:
570598
expected = expected_response
571-
elif is_oneof or is_list:
599+
elif (
600+
is_oneof
601+
or is_list
602+
or hasattr(QuerySubOrdersFutureAlgoResponse, "from_dict")
603+
):
572604
expected = QuerySubOrdersFutureAlgoResponse.from_dict(expected_response)
573605
else:
574606
expected = QuerySubOrdersFutureAlgoResponse.model_validate_json(
@@ -649,7 +681,11 @@ def test_time_weighted_average_price_future_algo_success(self, mock_get_signatur
649681

650682
if is_list and not is_flat_list:
651683
expected = expected_response
652-
elif is_oneof or is_list:
684+
elif (
685+
is_oneof
686+
or is_list
687+
or hasattr(TimeWeightedAveragePriceFutureAlgoResponse, "from_dict")
688+
):
653689
expected = TimeWeightedAveragePriceFutureAlgoResponse.from_dict(
654690
expected_response
655691
)
@@ -707,7 +743,11 @@ def test_time_weighted_average_price_future_algo_success_with_optional_params(
707743

708744
if is_list and not is_flat_list:
709745
expected = expected_response
710-
elif is_oneof or is_list:
746+
elif (
747+
is_oneof
748+
or is_list
749+
or hasattr(TimeWeightedAveragePriceFutureAlgoResponse, "from_dict")
750+
):
711751
expected = TimeWeightedAveragePriceFutureAlgoResponse.from_dict(
712752
expected_response
713753
)
@@ -847,7 +887,11 @@ def test_volume_participation_future_algo_success(self, mock_get_signature):
847887

848888
if is_list and not is_flat_list:
849889
expected = expected_response
850-
elif is_oneof or is_list:
890+
elif (
891+
is_oneof
892+
or is_list
893+
or hasattr(VolumeParticipationFutureAlgoResponse, "from_dict")
894+
):
851895
expected = VolumeParticipationFutureAlgoResponse.from_dict(
852896
expected_response
853897
)
@@ -905,7 +949,11 @@ def test_volume_participation_future_algo_success_with_optional_params(
905949

906950
if is_list and not is_flat_list:
907951
expected = expected_response
908-
elif is_oneof or is_list:
952+
elif (
953+
is_oneof
954+
or is_list
955+
or hasattr(VolumeParticipationFutureAlgoResponse, "from_dict")
956+
):
909957
expected = VolumeParticipationFutureAlgoResponse.from_dict(
910958
expected_response
911959
)

clients/algo/tests/unit/rest_api/test_spot_algo_api.py

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ def test_cancel_algo_order_spot_algo_success(self, mock_get_signature):
8989

9090
if is_list and not is_flat_list:
9191
expected = expected_response
92-
elif is_oneof or is_list:
92+
elif (
93+
is_oneof or is_list or hasattr(CancelAlgoOrderSpotAlgoResponse, "from_dict")
94+
):
9395
expected = CancelAlgoOrderSpotAlgoResponse.from_dict(expected_response)
9496
else:
9597
expected = CancelAlgoOrderSpotAlgoResponse.model_validate_json(
@@ -130,7 +132,9 @@ def test_cancel_algo_order_spot_algo_success_with_optional_params(
130132

131133
if is_list and not is_flat_list:
132134
expected = expected_response
133-
elif is_oneof or is_list:
135+
elif (
136+
is_oneof or is_list or hasattr(CancelAlgoOrderSpotAlgoResponse, "from_dict")
137+
):
134138
expected = CancelAlgoOrderSpotAlgoResponse.from_dict(expected_response)
135139
else:
136140
expected = CancelAlgoOrderSpotAlgoResponse.model_validate_json(
@@ -211,7 +215,11 @@ def test_query_current_algo_open_orders_spot_algo_success(self, mock_get_signatu
211215

212216
if is_list and not is_flat_list:
213217
expected = expected_response
214-
elif is_oneof or is_list:
218+
elif (
219+
is_oneof
220+
or is_list
221+
or hasattr(QueryCurrentAlgoOpenOrdersSpotAlgoResponse, "from_dict")
222+
):
215223
expected = QueryCurrentAlgoOpenOrdersSpotAlgoResponse.from_dict(
216224
expected_response
217225
)
@@ -273,7 +281,11 @@ def test_query_current_algo_open_orders_spot_algo_success_with_optional_params(
273281

274282
if is_list and not is_flat_list:
275283
expected = expected_response
276-
elif is_oneof or is_list:
284+
elif (
285+
is_oneof
286+
or is_list
287+
or hasattr(QueryCurrentAlgoOpenOrdersSpotAlgoResponse, "from_dict")
288+
):
277289
expected = QueryCurrentAlgoOpenOrdersSpotAlgoResponse.from_dict(
278290
expected_response
279291
)
@@ -344,7 +356,11 @@ def test_query_historical_algo_orders_spot_algo_success(self, mock_get_signature
344356

345357
if is_list and not is_flat_list:
346358
expected = expected_response
347-
elif is_oneof or is_list:
359+
elif (
360+
is_oneof
361+
or is_list
362+
or hasattr(QueryHistoricalAlgoOrdersSpotAlgoResponse, "from_dict")
363+
):
348364
expected = QueryHistoricalAlgoOrdersSpotAlgoResponse.from_dict(
349365
expected_response
350366
)
@@ -414,7 +430,11 @@ def test_query_historical_algo_orders_spot_algo_success_with_optional_params(
414430

415431
if is_list and not is_flat_list:
416432
expected = expected_response
417-
elif is_oneof or is_list:
433+
elif (
434+
is_oneof
435+
or is_list
436+
or hasattr(QueryHistoricalAlgoOrdersSpotAlgoResponse, "from_dict")
437+
):
418438
expected = QueryHistoricalAlgoOrdersSpotAlgoResponse.from_dict(
419439
expected_response
420440
)
@@ -496,7 +516,9 @@ def test_query_sub_orders_spot_algo_success(self, mock_get_signature):
496516

497517
if is_list and not is_flat_list:
498518
expected = expected_response
499-
elif is_oneof or is_list:
519+
elif (
520+
is_oneof or is_list or hasattr(QuerySubOrdersSpotAlgoResponse, "from_dict")
521+
):
500522
expected = QuerySubOrdersSpotAlgoResponse.from_dict(expected_response)
501523
else:
502524
expected = QuerySubOrdersSpotAlgoResponse.model_validate_json(
@@ -559,7 +581,9 @@ def test_query_sub_orders_spot_algo_success_with_optional_params(
559581

560582
if is_list and not is_flat_list:
561583
expected = expected_response
562-
elif is_oneof or is_list:
584+
elif (
585+
is_oneof or is_list or hasattr(QuerySubOrdersSpotAlgoResponse, "from_dict")
586+
):
563587
expected = QuerySubOrdersSpotAlgoResponse.from_dict(expected_response)
564588
else:
565589
expected = QuerySubOrdersSpotAlgoResponse.model_validate_json(
@@ -640,7 +664,11 @@ def test_time_weighted_average_price_spot_algo_success(self, mock_get_signature)
640664

641665
if is_list and not is_flat_list:
642666
expected = expected_response
643-
elif is_oneof or is_list:
667+
elif (
668+
is_oneof
669+
or is_list
670+
or hasattr(TimeWeightedAveragePriceSpotAlgoResponse, "from_dict")
671+
):
644672
expected = TimeWeightedAveragePriceSpotAlgoResponse.from_dict(
645673
expected_response
646674
)
@@ -695,7 +723,11 @@ def test_time_weighted_average_price_spot_algo_success_with_optional_params(
695723

696724
if is_list and not is_flat_list:
697725
expected = expected_response
698-
elif is_oneof or is_list:
726+
elif (
727+
is_oneof
728+
or is_list
729+
or hasattr(TimeWeightedAveragePriceSpotAlgoResponse, "from_dict")
730+
):
699731
expected = TimeWeightedAveragePriceSpotAlgoResponse.from_dict(
700732
expected_response
701733
)

clients/c2c/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 1.7.0 - 2025-10-10
4+
5+
### Changed (1)
6+
7+
- Updated `binance-common` library to version `3.2.0`
8+
39
## 1.6.0 - 2025-09-16
410

511
### Changed (1)

clients/c2c/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "binance-sdk-c2c"
3-
version = "1.6.0"
3+
version = "1.7.0"
44
description = "Official Binance C2C SDK - A lightweight library that provides a convenient interface to Binance's C2C REST API"
55
authors = ["Binance"]
66
license = "MIT"
@@ -20,7 +20,7 @@ black = "^25.1.0"
2020
ruff = "^0.12.0"
2121
pycryptodome = "^3.17"
2222
aiohttp = "^3.9"
23-
binance-common = "3.1.1"
23+
binance-common = "3.2.0"
2424
pytest = { version = ">=6.2.5", optional = true }
2525

2626
[tool.poetry.extras]

clients/c2c/tests/unit/rest_api/test_c2_c_api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def test_get_c2_c_trade_history_success(self, mock_get_signature):
9999

100100
if is_list and not is_flat_list:
101101
expected = expected_response
102-
elif is_oneof or is_list:
102+
elif is_oneof or is_list or hasattr(GetC2CTradeHistoryResponse, "from_dict"):
103103
expected = GetC2CTradeHistoryResponse.from_dict(expected_response)
104104
else:
105105
expected = GetC2CTradeHistoryResponse.model_validate_json(
@@ -168,7 +168,7 @@ def test_get_c2_c_trade_history_success_with_optional_params(
168168

169169
if is_list and not is_flat_list:
170170
expected = expected_response
171-
elif is_oneof or is_list:
171+
elif is_oneof or is_list or hasattr(GetC2CTradeHistoryResponse, "from_dict"):
172172
expected = GetC2CTradeHistoryResponse.from_dict(expected_response)
173173
else:
174174
expected = GetC2CTradeHistoryResponse.model_validate_json(

clients/convert/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## 2.1.0 - 2025-10-10
4+
5+
### Changed (1)
6+
7+
- Updated `binance-common` library to version `3.2.0`
8+
39
## 2.0.0 - 2025-09-24
410

511
### Changed (1)

clients/convert/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "binance-sdk-convert"
3-
version = "2.0.0"
3+
version = "2.1.0"
44
description = "Official Binance Convert SDK - A lightweight library that provides a convenient interface to Binance's Convert REST API"
55
authors = ["Binance"]
66
license = "MIT"
@@ -20,7 +20,7 @@ black = "^25.1.0"
2020
ruff = "^0.12.0"
2121
pycryptodome = "^3.17"
2222
aiohttp = "^3.9"
23-
binance-common = "3.1.1"
23+
binance-common = "3.2.0"
2424
pytest = { version = ">=6.2.5", optional = true }
2525

2626
[tool.poetry.extras]

0 commit comments

Comments
 (0)