xync-client 0.0.93.dev17__tar.gz → 0.0.93.dev23__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 (123) hide show
  1. {xync_client-0.0.93.dev17/xync_client.egg-info → xync_client-0.0.93.dev23}/PKG-INFO +1 -1
  2. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/TestEx.py +26 -15
  3. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/InAgent.py +16 -13
  4. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23/xync_client.egg-info}/PKG-INFO +1 -1
  5. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/.env.sample +0 -0
  6. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/.gitignore +0 -0
  7. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/.pre-commit-config.yaml +0 -0
  8. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/README.md +0 -0
  9. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/__init__.py +0 -0
  10. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/index.html +0 -0
  11. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/makefile +0 -0
  12. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/pyproject.toml +0 -0
  13. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/setup.cfg +0 -0
  14. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/TestAgent.py +0 -0
  15. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/TestAsset.py +0 -0
  16. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/TestOrder.py +0 -0
  17. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/Binance/test_binance.py +0 -0
  18. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
  19. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
  20. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/Gate/test_gate.py +0 -0
  21. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/Wallet/test_agent.py +0 -0
  22. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/Wallet/test_ex.py +0 -0
  23. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/__init__.py +0 -0
  24. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/tests/_todo_refact/_test_ex.py +0 -0
  25. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/Agent.py +0 -0
  26. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/Asset.py +0 -0
  27. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/Auth.py +0 -0
  28. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/BaseTest.py +0 -0
  29. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/Ex.py +0 -0
  30. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/Exception.py +0 -0
  31. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/InAgent.py +0 -0
  32. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/Order.py +0 -0
  33. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/PmAgent.py +0 -0
  34. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Abc/xtype.py +0 -0
  35. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/__init__.py +0 -0
  36. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/binance_async.py +0 -0
  37. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/earn_api.py +0 -0
  38. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/etype/ad.py +0 -0
  39. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/etype/pm.py +0 -0
  40. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/ex.py +0 -0
  41. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/exceptions.py +0 -0
  42. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/sapi.py +0 -0
  43. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Binance/web_c2c.py +0 -0
  44. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/__init__.py +0 -0
  45. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/agent.py +0 -0
  46. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/base.py +0 -0
  47. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/etype/ad.py +0 -0
  48. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/etype/pm.py +0 -0
  49. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/ex.py +0 -0
  50. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/req.mjs +0 -0
  51. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BingX/sign.js +0 -0
  52. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BitGet/__init__.py +0 -0
  53. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BitGet/agent.py +0 -0
  54. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BitGet/etype/ad.py +0 -0
  55. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BitGet/ex.py +0 -0
  56. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/BitPapa/ex.py +0 -0
  57. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/agent.py +0 -0
  58. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/etype/ad.py +0 -0
  59. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/etype/cred.py +0 -0
  60. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/etype/order.py +0 -0
  61. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/ex.py +0 -0
  62. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/order.py +0 -0
  63. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/web_earn.py +0 -0
  64. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/web_p2p.py +0 -0
  65. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Bybit/ws.py +0 -0
  66. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Gate/etype/ad.py +0 -0
  67. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Gate/ex.py +0 -0
  68. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Gate/premarket.py +0 -0
  69. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Gmail/__init__.py +0 -0
  70. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/agent.py +0 -0
  71. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/earn.py +0 -0
  72. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/etype/__init__.py +0 -0
  73. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/etype/ad.py +0 -0
  74. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/etype/cred.py +0 -0
  75. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/etype/pm.py +0 -0
  76. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/etype/test.py +0 -0
  77. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Htx/ex.py +0 -0
  78. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/KuCoin/etype/ad.py +0 -0
  79. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/KuCoin/etype/pm.py +0 -0
  80. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/KuCoin/ex.py +0 -0
  81. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/KuCoin/web.py +0 -0
  82. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Mexc/etype/ad.py +0 -0
  83. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Mexc/etype/pm.py +0 -0
  84. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Mexc/ex.py +0 -0
  85. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Okx/etype/ad.py +0 -0
  86. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Okx/etype/pm.py +0 -0
  87. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Okx/ex.py +0 -0
  88. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/.gitignore +0 -0
  89. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Alfa/__init__.py +0 -0
  90. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Alfa/state.json +0 -0
  91. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/MTS/__init__.py +0 -0
  92. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Ozon/__init__.py +0 -0
  93. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Payeer/.gitignore +0 -0
  94. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Payeer/__init__.py +0 -0
  95. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Payeer/api.py +0 -0
  96. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Payeer/login.py +0 -0
  97. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Sber/__init__.py +0 -0
  98. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Sber/utils.py +0 -0
  99. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Tinkoff/__init__.py +0 -0
  100. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Volet/__init__.py +0 -0
  101. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Volet/_todo_req/req.mjs +0 -0
  102. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Volet/_todo_req/req.py +0 -0
  103. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Volet/api.py +0 -0
  104. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Volet/pl.py +0 -0
  105. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Xync/__main__.py +0 -0
  106. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Xync/ed.py +0 -0
  107. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/Pms/Yandex/__init__.py +0 -0
  108. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/agent.py +0 -0
  109. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/asset.py +0 -0
  110. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/auth.py +0 -0
  111. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/ex.py +0 -0
  112. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/inAgent.py +0 -0
  113. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/order.py +0 -0
  114. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/pyd.py +0 -0
  115. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/pyro.py +0 -0
  116. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/TgWallet/web.py +0 -0
  117. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/__init__.py +0 -0
  118. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/loader.py +0 -0
  119. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client/pm_unifier.py +0 -0
  120. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client.egg-info/SOURCES.txt +0 -0
  121. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client.egg-info/dependency_links.txt +0 -0
  122. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client.egg-info/requires.txt +0 -0
  123. {xync_client-0.0.93.dev17 → xync_client-0.0.93.dev23}/xync_client.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.93.dev17
3
+ Version: 0.0.93.dev23
4
4
  Author-email: Mike Artemiev <mixartemev@gmail.com>
5
5
  Project-URL: Homepage, https://gitlab.com/XyncNet/client
6
6
  Project-URL: Repository, https://gitlab.com/XyncNet/client
@@ -7,7 +7,6 @@ from xync_schema.xtype import BaseAd
7
7
 
8
8
  from xync_client.Abc.BaseTest import BaseTest
9
9
  from xync_schema.enums import ExStatus, ExType, ExAction
10
- # from xync_schema.models import Ex, ExStat, Curex, Coinex, Race, Ad
11
10
  from xync_schema import models
12
11
  from xync_client.Abc.Ex import BaseExClient
13
12
  from xync_client.loader import TOKEN
@@ -17,7 +16,7 @@ from xync_client.loader import TOKEN
17
16
  class TestEx(BaseTest):
18
17
  @pytest.fixture
19
18
  async def clients(self) -> list[HttpClient]:
20
- exs = await Ex.filter(status__gt=ExStatus.plan).prefetch_related("pm_reps")
19
+ exs = await models.Ex.filter(status__gt=ExStatus.plan).prefetch_related("pm_reps")
21
20
  [await ex for ex in exs if ex.type_ == ExType.tg]
22
21
  async with FileClient(TOKEN) as b:
23
22
  b: FileClient
@@ -113,16 +112,28 @@ class TestEx(BaseTest):
113
112
  assert t.ok, "No ads"
114
113
  logging.info(f"{client.ex.name}: {ExAction.ads.name} - ok")
115
114
 
116
- async def test_race(self):
117
- races = await models.Race.all().prefetch_related("road__ad")
118
-
119
-
120
-
121
- # price_dict = {race.id: race.road.ad.price for race in races}
122
- # print(price_dict)
123
- # sorted_dict = dict(sorted(price_dict.items(), key=lambda x: x[1]))
124
- # print(sorted_dict)
125
- # for race in races:
126
- # print(f"{race.id}: {race.road.ad.price}")
127
- # for race in races:
128
- # print(race.id)
115
+ async def test_race(self, clients: list[BaseExClient]):
116
+ races: list[models.Race] = await models.Race.filter(started=True).prefetch_related(
117
+ "road__ad__pair_side__pair", "road__ad__maker", "road__ad__pms"
118
+ )
119
+ ex_ids: set = {race.road.ad.maker.ex_id for race in races}
120
+ errors: dict[int, int] = {}
121
+ for client in clients:
122
+ if client.ex.id not in ex_ids:
123
+ continue
124
+ for race in races:
125
+ # получаем данные направления текущей гонки
126
+ coinex = await models.Coinex.get(ex=client.ex, coin_id=race.road.ad.pair_side.pair.coin_id)
127
+ curex = await models.Curex.get(ex=client.ex, cur_id=race.road.ad.pair_side.pair.cur_id)
128
+ pm_ids = [pm.id for pm in race.road.ad.pms]
129
+ pmex_exids = await models.Pmex.filter(ex=client.ex, pm_id__in=pm_ids).values_list("exid", flat=True)
130
+ # получаем объявления по этому направлению
131
+ ads = await client.ads(coinex.exid, curex.exid, race.road.ad.pair_side.is_sell, pmex_exids)
132
+ # определяем место нашего объявления в списке
133
+ place = [i for i, ad in enumerate(ads) if int(ad.userId) == race.road.ad.maker.exid][0]
134
+ if place != race.target_place:
135
+ errors[race.id] = place
136
+ if errors:
137
+ assert False, "Гонка " + ", ".join(f"#{rid} на {plc} месте" for rid, plc in errors.items())
138
+ else:
139
+ print("Успешно")
@@ -72,7 +72,7 @@ class InAgentClient(BaseInAgentClient):
72
72
  while resp := await websocket.recv():
73
73
  if data := json.loads(resp):
74
74
  upd, order_db = None, None
75
- logging.info("New update:")
75
+ logging.info(f"{datetime.now()} New update: {data.get('topic')}:{data.get('type')}")
76
76
  match data.get("topic"):
77
77
  case "OTC_ORDER_STATUS":
78
78
  match data["type"]:
@@ -89,7 +89,9 @@ class InAgentClient(BaseInAgentClient):
89
89
  logging.info(f"Order {order.id} created at {order.createDate}")
90
90
  case StatusApi.wait_for_buyer:
91
91
  if upd.side == 0: # ждем когда покупатель оплатит
92
- pma, cdx = await self.get_pma_by_cdex(order)
92
+ if not (pmacdx := await self.get_pma_by_cdex(order)):
93
+ continue
94
+ pma, cdx = pmacdx
93
95
  am, tid = pma.check_in(Decimal(order.amount), cdx.cred.pmcur.cur.ticker)
94
96
  if tid and tid not in done:
95
97
  done.add(tid)
@@ -113,14 +115,14 @@ class InAgentClient(BaseInAgentClient):
113
115
  else:
114
116
  ...
115
117
  # todo: check is always canceling
116
- await order_db.update_from_dict({"status": OrderStatus.canceled}).save()
117
- logging.info(f"Order {order.id} canceled at {datetime.now()}")
118
+ # await order_db.update_from_dict({"status": OrderStatus.canceled}).save()
119
+ # logging.info(f"Order {order.id} canceled at {datetime.now()}")
118
120
  case StatusApi.appealed:
119
121
  # todo: appealed by WHO? щас наугад стоит by_seller
120
122
  await order_db.update_from_dict(
121
123
  {
122
124
  "status": OrderStatus.appealed_by_seller,
123
- "appealed_at": round(float(order.updateDate), 3),
125
+ "appealed_at": int(float(order.updateDate) / 1000),
124
126
  }
125
127
  ).save()
126
128
  logging.info(f"Order {order.id} appealed at {order_db.appealed_at}")
@@ -131,7 +133,7 @@ class InAgentClient(BaseInAgentClient):
131
133
  await order_db.update_from_dict(
132
134
  {
133
135
  "status": OrderStatus.completed,
134
- "confirmed_at": round(float(order.updateDate), 3),
136
+ "confirmed_at": int(float(order.updateDate) / 1000),
135
137
  }
136
138
  ).save()
137
139
  logging.info(f"Order {order.id} completed at {order_db.confirmed_at}")
@@ -139,7 +141,7 @@ class InAgentClient(BaseInAgentClient):
139
141
  await order_db.update_from_dict(
140
142
  {
141
143
  "status": OrderStatus.paid,
142
- "payed_at": round(float(order.transferDate), 3),
144
+ "payed_at": int(float(order.transferDate) / 1000),
143
145
  }
144
146
  ).save()
145
147
  logging.info(f"Order {order.id} payed at {order_db.payed_at}")
@@ -158,7 +160,7 @@ class InAgentClient(BaseInAgentClient):
158
160
  upd = Read.model_validate(data["data"])
159
161
  # if upd.status not in (StatusWs.created, StatusWs.canceled, 10, StatusWs.completed):
160
162
  if upd.orderStatus in (
161
- StatusApi.wait_for_buyer_pay,
163
+ StatusApi.wait_for_buyer,
162
164
  ): # todo: тут приходит ордер.статус=10, хотя покупатель еще не нажал оплачено
163
165
  order = self.agent_client.api.get_order_details(orderId=upd.orderId)["result"]
164
166
  order = OrderFull.model_validate(order)
@@ -188,7 +190,7 @@ class InAgentClient(BaseInAgentClient):
188
190
  case _:
189
191
  logging.warning(data, "UNKNOWN TOPIC")
190
192
  if not upd:
191
- logging.error(data, "NOT PROCESSED UPDATE")
193
+ logging.warning(data, "NOT PROCESSED UPDATE")
192
194
 
193
195
  async def get_pma_by_cdex(self, order: OrderFull) -> tuple[PmAgentClient, models.CredEx]:
194
196
  cdxs = await models.CredEx.filter(
@@ -198,10 +200,11 @@ class InAgentClient(BaseInAgentClient):
198
200
  ).prefetch_related("cred__pmcur__cur")
199
201
  pmas = [pma for cdx in cdxs if (pma := self.pmacs.get(cdx.cred.pmcur.pm_id))]
200
202
  if not len(pmas):
201
- logging.error(order.paymentTermList, "No pm_agents")
202
- if len(pmas) > 1:
203
- logging.error(order.paymentTermList, ">1 pm_agents")
204
- return pmas[0], cdxs[0]
203
+ logging.error(order.paymentTermList, f"No pm_agents for {order.paymentTermList[0].paymentType}")
204
+ elif len(pmas) > 1:
205
+ logging.error(order.paymentTermList, f">1 pm_agents for {cdxs[0].cred.pmcur.pm_id}")
206
+ else:
207
+ return pmas[0], cdxs[0]
205
208
 
206
209
  @staticmethod
207
210
  def listen(data: dict | None):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.93.dev17
3
+ Version: 0.0.93.dev23
4
4
  Author-email: Mike Artemiev <mixartemev@gmail.com>
5
5
  Project-URL: Homepage, https://gitlab.com/XyncNet/client
6
6
  Project-URL: Repository, https://gitlab.com/XyncNet/client