funora 0.0.1.dev2__py3-none-any.whl

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 (87) hide show
  1. funora/__init__.py +265 -0
  2. funora/_account.py +661 -0
  3. funora/_aclient.py +1484 -0
  4. funora/_budget.py +579 -0
  5. funora/_calc.py +182 -0
  6. funora/_canonical.py +235 -0
  7. funora/_catalog.py +473 -0
  8. funora/_chat_history.py +367 -0
  9. funora/_chats.py +392 -0
  10. funora/_chips.py +403 -0
  11. funora/_classify.py +466 -0
  12. funora/_client.py +1490 -0
  13. funora/_currency_switch.py +130 -0
  14. funora/_cursor.py +120 -0
  15. funora/_delivered.py +233 -0
  16. funora/_diff.py +752 -0
  17. funora/_engine.py +4795 -0
  18. funora/_extract.py +124 -0
  19. funora/_field_schema.py +112 -0
  20. funora/_fileio.py +58 -0
  21. funora/_gate.py +69 -0
  22. funora/_hops.py +101 -0
  23. funora/_host.py +120 -0
  24. funora/_identity.py +284 -0
  25. funora/_json.py +31 -0
  26. funora/_listen.py +312 -0
  27. funora/_lot_form.py +331 -0
  28. funora/_market.py +406 -0
  29. funora/_matching.py +147 -0
  30. funora/_money.py +279 -0
  31. funora/_monitoring.py +396 -0
  32. funora/_observed.py +237 -0
  33. funora/_order.py +552 -0
  34. funora/_order_details.py +281 -0
  35. funora/_orders.py +807 -0
  36. funora/_outbound.py +453 -0
  37. funora/_own_lots.py +301 -0
  38. funora/_poll.py +410 -0
  39. funora/_price_audit.py +281 -0
  40. funora/_proxies.py +232 -0
  41. funora/_raise.py +150 -0
  42. funora/_refund.py +102 -0
  43. funora/_result.py +157 -0
  44. funora/_retry.py +213 -0
  45. funora/_review_write.py +138 -0
  46. funora/_reviews.py +584 -0
  47. funora/_runner.py +651 -0
  48. funora/_secret.py +385 -0
  49. funora/_showcase.py +362 -0
  50. funora/_signals.py +375 -0
  51. funora/_skeleton.py +752 -0
  52. funora/_snapshot.py +276 -0
  53. funora/_state.py +279 -0
  54. funora/_stock.py +32 -0
  55. funora/_thread.py +574 -0
  56. funora/_transport.py +1023 -0
  57. funora/_updates.py +292 -0
  58. funora/_verdicts.py +91 -0
  59. funora/_viewing.py +143 -0
  60. funora/_watch.py +825 -0
  61. funora/_watch_state.py +237 -0
  62. funora/_whoami.py +546 -0
  63. funora/bot/__init__.py +52 -0
  64. funora/bot/_delivery.py +341 -0
  65. funora/bot/_outbox.py +261 -0
  66. funora/bot/_runtime.py +447 -0
  67. funora/bot/_spool.py +534 -0
  68. funora/budget.py +311 -0
  69. funora/capabilities.py +297 -0
  70. funora/conformance.py +758 -0
  71. funora/contract.py +73 -0
  72. funora/errors.py +996 -0
  73. funora/events.py +189 -0
  74. funora/extraction.py +420 -0
  75. funora/observe.py +560 -0
  76. funora/operations.py +671 -0
  77. funora/py.typed +0 -0
  78. funora/reconciliation.py +51 -0
  79. funora/response_classes.py +155 -0
  80. funora/retry.py +238 -0
  81. funora/send_outcome.py +78 -0
  82. funora/skeleton_format.py +77 -0
  83. funora-0.0.1.dev2.dist-info/METADATA +294 -0
  84. funora-0.0.1.dev2.dist-info/RECORD +87 -0
  85. funora-0.0.1.dev2.dist-info/WHEEL +4 -0
  86. funora-0.0.1.dev2.dist-info/entry_points.txt +2 -0
  87. funora-0.0.1.dev2.dist-info/licenses/LICENSE +201 -0
funora/__init__.py ADDED
@@ -0,0 +1,265 @@
1
+ """Funora - неофициальный SDK и framework для площадки FunPay.
2
+
3
+ В пакете есть первая операция чтения и инструмент наблюдения за протоколом.
4
+ Стабильным контрактом не является ничто: спецификация в состоянии draft.
5
+
6
+ Что уже есть:
7
+
8
+ * :class:`~funora._secret.Secret` и источники секретов - тип, не раскрывающий
9
+ значение ни в одном выходном канале;
10
+ * :func:`~funora._classify.classify` - конвейер классификации ответа, который
11
+ отличает страницу входа, проверку и блокировку от поломки разметки;
12
+ * :func:`~funora._skeleton.skeletonize` - структурный скелет страницы, в котором
13
+ персональных данных не может быть по построению;
14
+ * ``funora-observe`` - инструмент однократного наблюдения.
15
+
16
+ Ничего из этого не является стабильным контрактом. Публичный API появится после
17
+ того, как спецификация перейдёт в состояние released.
18
+ """
19
+
20
+ from __future__ import annotations
21
+
22
+ from ._account import BalancePage, Transaction, WithdrawalChannel, WithdrawalOption
23
+ from ._aclient import AsyncChatsService, AsyncClient, AsyncOrdersService
24
+ from ._budget import Budget, Reservation
25
+ from ._calc import PaymentMethod, PriceCalculation
26
+ from ._catalog import CatalogGame, CatalogPage
27
+ from ._chat_history import ChatHistory
28
+ from ._chats import ChatListEntry, ChatsPage, parse_chats_page
29
+ from ._chips import ChipsOffer, ChipsPage
30
+ from ._classify import (
31
+ DEFAULT_CONTENT_MARKERS,
32
+ DEFAULT_IDENTITY_CSS,
33
+ ResponseClass,
34
+ Signature,
35
+ Verdict,
36
+ classify,
37
+ )
38
+ from ._client import ChatsService, Client, OrdersService
39
+ from ._currency_switch import CurrencySwitch
40
+ from ._diff import (
41
+ Event,
42
+ chats_cursor,
43
+ diff_chats,
44
+ diff_orders,
45
+ diff_thread,
46
+ orders_cursor,
47
+ thread_cursor,
48
+ )
49
+ from ._field_schema import FieldDefinition, FieldOption, FieldSchema
50
+ from ._gate import check_capability
51
+ from ._host import host_of, is_safe_hop, same_host
52
+ from ._lot_form import LotForm, parse_lot_form
53
+ from ._market import MarketOffer, MarketPage
54
+ from ._money import CURRENCY_BY_SYMBOL, Money, currency_of_symbol
55
+ from ._monitoring import MarketWatch, MonitoringLimit, MonitoringPlan
56
+ from ._observed import Confidence, Observed, Presence
57
+ from ._order import OrderParam, OrderView
58
+ from ._order_details import OrderDetails, OrderDetailsBatch
59
+ from ._orders import (
60
+ Completeness,
61
+ Defect,
62
+ OrderListEntry,
63
+ OrdersPage,
64
+ Severity,
65
+ parse_orders_page,
66
+ )
67
+ from ._own_lots import OwnLot, OwnLotsPage
68
+ from ._poll import Deduplicator, Schedule
69
+ from ._proxies import Proxy
70
+ from ._raise import RaiseResult
71
+ from ._refund import RefundResult
72
+ from ._retry import Attempt, Safety, plan_attempt, policy_for
73
+ from ._review_write import ReviewResult
74
+ from ._reviews import Review, ReviewsCursor, ReviewsPage
75
+ from ._runner import SendResult
76
+ from ._secret import (
77
+ CallableSecretProvider,
78
+ EnvSecretProvider,
79
+ FileSecretProvider,
80
+ Secret,
81
+ SecretNotFoundError,
82
+ SecretProvider,
83
+ )
84
+ from ._showcase import ShowcasePage, ShowcaseSection
85
+ from ._skeleton import SkeletonError, skeletonize
86
+ from ._snapshot import MarketDiff, MarketSnapshot, SnapshotEntry, compare
87
+ from ._state import StateFile
88
+ from ._thread import Message, Origin, Thread, parse_thread
89
+ from ._transport import AsyncFetcher, Fetcher, Observation, TransportSettings
90
+ from ._updates import (
91
+ MAX_SUBSCRIPTION,
92
+ ChannelObject,
93
+ UpdatesAnswer,
94
+ build_subscription,
95
+ parse_updates_answer,
96
+ )
97
+ from ._verdicts import error_for
98
+ from ._viewing import BuyerViewing
99
+ from ._watch import Router, StepResult, adispatch, dispatch
100
+ from ._whoami import Account, CapabilityEvaluation, CapabilityProfile, SessionHealth
101
+ from .capabilities import CAPABILITY_INITIAL, Capability, CapabilityState
102
+ from .errors import ERROR_BY_ABI_CODE, ERROR_BY_STABLE_ID, FunoraError
103
+ from .events import EventType
104
+ from .extraction import (
105
+ PRESENCE_BY_CLASS,
106
+ ROW_MARKER_BY_STATUS,
107
+ STATUS_BY_CELL_CLASS,
108
+ OrderStatus,
109
+ )
110
+
111
+ __version__ = "0.0.1.dev2"
112
+
113
+ __all__ = [
114
+ "MarketWatch",
115
+ "MonitoringPlan",
116
+ "MonitoringLimit",
117
+ "FieldDefinition",
118
+ "FieldOption",
119
+ "FieldSchema",
120
+ "__version__",
121
+ # клиент
122
+ "Client",
123
+ "AsyncClient",
124
+ "OrdersService",
125
+ "AsyncOrdersService",
126
+ "ChatsService",
127
+ "AsyncChatsService",
128
+ "BuyerViewing",
129
+ "Budget",
130
+ "Proxy",
131
+ "Reservation",
132
+ # секреты
133
+ "Secret",
134
+ "SecretProvider",
135
+ "SecretNotFoundError",
136
+ "EnvSecretProvider",
137
+ "FileSecretProvider",
138
+ "CallableSecretProvider",
139
+ # классификация
140
+ "classify",
141
+ "ResponseClass",
142
+ "Verdict",
143
+ "Signature",
144
+ "DEFAULT_IDENTITY_CSS",
145
+ "DEFAULT_CONTENT_MARKERS",
146
+ "error_for",
147
+ "check_capability",
148
+ "same_host",
149
+ "is_safe_hop",
150
+ "host_of",
151
+ "plan_attempt",
152
+ "policy_for",
153
+ "Attempt",
154
+ "Safety",
155
+ # скелет
156
+ "skeletonize",
157
+ "SkeletonError",
158
+ # транспорт
159
+ "Fetcher",
160
+ "AsyncFetcher",
161
+ "Observation",
162
+ "TransportSettings",
163
+ # наблюдаемость
164
+ "MarketSnapshot",
165
+ "compare",
166
+ "MarketDiff",
167
+ "SnapshotEntry",
168
+ "Money",
169
+ "CURRENCY_BY_SYMBOL",
170
+ "currency_of_symbol",
171
+ "Observed",
172
+ "Presence",
173
+ "Confidence",
174
+ # список заказов
175
+ "parse_orders_page",
176
+ "OrdersPage",
177
+ "OrderStatus",
178
+ "STATUS_BY_CELL_CLASS",
179
+ "ROW_MARKER_BY_STATUS",
180
+ "PRESENCE_BY_CLASS",
181
+ "OrderListEntry",
182
+ "Completeness",
183
+ "Defect",
184
+ "Severity",
185
+ # То, что возвращают операции, и то, чем это перебирается.
186
+ #
187
+ # Прежде половина этих имён жила в приватных модулях, а операции ими уже
188
+ # возвращали. Вызывающий, которому нужна аннотация типа, лез в модуль с
189
+ # подчёркиванием - то есть в место, о котором пакет прямо говорит «менять
190
+ # буду молча».
191
+ "OrderView",
192
+ "OrderDetails",
193
+ "OrderDetailsBatch",
194
+ "OrderParam",
195
+ "SendResult",
196
+ "Account",
197
+ "SessionHealth",
198
+ "CapabilityProfile",
199
+ "CapabilityEvaluation",
200
+ "BalancePage",
201
+ "WithdrawalChannel",
202
+ "WithdrawalOption",
203
+ "Transaction",
204
+ "ReviewsPage",
205
+ "ReviewsCursor",
206
+ "Review",
207
+ "OwnLotsPage",
208
+ "CurrencySwitch",
209
+ "PaymentMethod",
210
+ "PriceCalculation",
211
+ "RaiseResult",
212
+ "RefundResult",
213
+ "ReviewResult",
214
+ "OwnLot",
215
+ "LotForm",
216
+ "parse_lot_form",
217
+ "ShowcasePage",
218
+ "ShowcaseSection",
219
+ "CatalogPage",
220
+ "CatalogGame",
221
+ "ChipsPage",
222
+ "ChipsOffer",
223
+ "MarketPage",
224
+ "MarketOffer",
225
+ # канал обновлений
226
+ "UpdatesAnswer",
227
+ "ChannelObject",
228
+ "parse_updates_answer",
229
+ "build_subscription",
230
+ "MAX_SUBSCRIPTION",
231
+ # список диалогов
232
+ "parse_chats_page",
233
+ "ChatHistory",
234
+ "ChatsPage",
235
+ "ChatListEntry",
236
+ # переписка
237
+ "parse_thread",
238
+ "Thread",
239
+ "Message",
240
+ "Origin",
241
+ # события
242
+ "Event",
243
+ "EventType",
244
+ "diff_orders",
245
+ "diff_chats",
246
+ "diff_thread",
247
+ "orders_cursor",
248
+ "chats_cursor",
249
+ "thread_cursor",
250
+ "Schedule",
251
+ "Deduplicator",
252
+ "Router",
253
+ "StepResult",
254
+ "dispatch",
255
+ "adispatch",
256
+ "StateFile",
257
+ # возможности
258
+ "Capability",
259
+ "CapabilityState",
260
+ "CAPABILITY_INITIAL",
261
+ # ошибки
262
+ "FunoraError",
263
+ "ERROR_BY_STABLE_ID",
264
+ "ERROR_BY_ABI_CODE",
265
+ ]