polymarket-apis 0.2.3__tar.gz → 0.2.5__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.

Potentially problematic release.


This version of polymarket-apis might be problematic. Click here for more details.

Files changed (60) hide show
  1. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/workspace.xml +7 -4
  2. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/PKG-INFO +1 -1
  3. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/pyproject.toml +1 -1
  4. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/clients/clob_client.py +2 -2
  5. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/clients/websockets_client.py +23 -6
  6. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/types/clob_types.py +1 -1
  7. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/types/websockets_types.py +31 -14
  8. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/headers.py +1 -1
  9. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.github/workflows/ruff.yml +0 -0
  10. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.gitignore +0 -0
  11. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/.gitignore +0 -0
  12. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/copilot.data.migration.agent.xml +0 -0
  13. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/copilot.data.migration.ask.xml +0 -0
  14. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/copilot.data.migration.ask2agent.xml +0 -0
  15. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/copilot.data.migration.edit.xml +0 -0
  16. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/misc.xml +0 -0
  17. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/modules.xml +0 -0
  18. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/polymarket-apis.iml +0 -0
  19. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/ryecharm-overrides.xml +0 -0
  20. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/ryecharm.xml +0 -0
  21. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/.idea/vcs.xml +0 -0
  22. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/README.md +0 -0
  23. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/requirements-dev.lock +0 -0
  24. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/requirements.lock +0 -0
  25. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/search_yes_arbs.ipynb +0 -0
  26. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/__init__.py +0 -0
  27. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/clients/__init__.py +0 -0
  28. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/clients/data_client.py +0 -0
  29. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/clients/gamma_client.py +0 -0
  30. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/clients/graphql_client.py +0 -0
  31. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/clients/web3_client.py +0 -0
  32. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/types/__init__.py +0 -0
  33. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/types/common.py +0 -0
  34. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/types/data_types.py +0 -0
  35. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/types/gamma_types.py +0 -0
  36. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/__init__.py +0 -0
  37. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/config.py +0 -0
  38. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/constants.py +0 -0
  39. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/endpoints.py +0 -0
  40. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/exceptions.py +0 -0
  41. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/order_builder/__init__.py +0 -0
  42. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/order_builder/builder.py +0 -0
  43. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/order_builder/helpers.py +0 -0
  44. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/signing/__init__.py +0 -0
  45. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/signing/eip712.py +0 -0
  46. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/signing/hmac.py +0 -0
  47. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/signing/model.py +0 -0
  48. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/signing/signer.py +0 -0
  49. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/__init__.py +0 -0
  50. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/CTFExchange.json +0 -0
  51. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/ConditionalTokens.json +0 -0
  52. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/NegRiskAdapter.json +0 -0
  53. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/NegRiskCtfExchange.json +0 -0
  54. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/ProxyWalletFactory.json +0 -0
  55. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/UChildERC20Proxy.json +0 -0
  56. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/__init__.py +0 -0
  57. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/abis/custom_contract_errors.py +0 -0
  58. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/src/polymarket_apis/utilities/web3/helpers.py +0 -0
  59. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/test.ipynb +0 -0
  60. {polymarket_apis-0.2.3 → polymarket_apis-0.2.5}/uv.lock +0 -0
@@ -4,7 +4,9 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="9f343e29-a437-4d31-9fb8-c5fea3514239" name="Changes" comment="clob - added fee rate endpoint, gamma - updated search_events and grok summaries for the new behaviours, websockets - added new live data event types. small formatting fixes" />
7
+ <list default="true" id="9f343e29-a437-4d31-9fb8-c5fea3514239" name="Changes" comment="websockets/live_data_socket - fixed clob_user subscriptions; renamed api_key to key in ApiCreds to use creds.model_dump()">
8
+ <change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
9
+ </list>
8
10
  <option name="SHOW_DIALOG" value="false" />
9
11
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
12
  <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -25,7 +27,7 @@
25
27
  <setting file="file://$PROJECT_DIR$/src/polymarket_apis/types/gamma_types.py" root0="FORCE_HIGHLIGHTING" />
26
28
  </component>
27
29
  <component name="ProblemsViewState">
28
- <option name="selectedTabId" value="AISelfReview" />
30
+ <option name="selectedTabId" value="CurrentFile" />
29
31
  </component>
30
32
  <component name="ProjectColorInfo">{
31
33
  &quot;associatedIndex&quot;: 8
@@ -40,7 +42,7 @@
40
42
  "RunOnceActivity.ShowReadmeOnStart": "true",
41
43
  "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
42
44
  "RunOnceActivity.git.unshallow": "true",
43
- "git-widget-placeholder": "main",
45
+ "git-widget-placeholder": "193252ac",
44
46
  "insyncwithfoo.ryecharm.ruff.caching.ruleNameToCodeMap": "{\"result\":{\"airflow-variable-name-task-id-mismatch\":\"AIR001\",\"airflow-dag-no-schedule-argument\":\"AIR301\",\"airflow3-removal\":\"AIR302\",\"commented-out-code\":\"ERA001\",\"fast-api-redundant-response-model\":\"FAST001\",\"fast-api-non-annotated-dependency\":\"FAST002\",\"fast-api-unused-path-parameter\":\"FAST003\",\"sys-version-slice3\":\"YTT101\",\"sys-version2\":\"YTT102\",\"sys-version-cmp-str3\":\"YTT103\",\"sys-version-info0-eq3\":\"YTT201\",\"six-py3\":\"YTT202\",\"sys-version-info1-cmp-int\":\"YTT203\",\"sys-version-info-minor-cmp-int\":\"YTT204\",\"sys-version0\":\"YTT301\",\"sys-version-cmp-str10\":\"YTT302\",\"sys-version-slice1\":\"YTT303\",\"missing-type-function-argument\":\"ANN001\",\"missing-type-args\":\"ANN002\",\"missing-type-kwargs\":\"ANN003\",\"missing-type-self\":\"ANN101\",\"missing-type-cls\":\"ANN102\",\"missing-return-type-undocumented-public-function\":\"ANN201\",\"missing-return-type-private-function\":\"ANN202\",\"missing-return-type-special-method\":\"ANN204\",\"missing-return-type-static-method\":\"ANN205\",\"missing-return-type-class-method\":\"ANN206\",\"any-type\":\"ANN401\",\"cancel-scope-no-checkpoint\":\"ASYNC100\",\"trio-sync-call\":\"ASYNC105\",\"async-function-with-timeout\":\"ASYNC109\",\"async-busy-wait\":\"ASYNC110\",\"async-zero-sleep\":\"ASYNC115\",\"long-sleep-not-forever\":\"ASYNC116\",\"blocking-http-call-in-async-function\":\"ASYNC210\",\"create-subprocess-in-async-function\":\"ASYNC220\",\"run-process-in-async-function\":\"ASYNC221\",\"wait-for-process-in-async-function\":\"ASYNC222\",\"blocking-open-call-in-async-function\":\"ASYNC230\",\"blocking-sleep-in-async-function\":\"ASYNC251\",\"assert\":\"S101\",\"exec-builtin\":\"S102\",\"bad-file-permissions\":\"S103\",\"hardcoded-bind-all-interfaces\":\"S104\",\"hardcoded-password-string\":\"S105\",\"hardcoded-password-func-arg\":\"S106\",\"hardcoded-password-default\":\"S107\",\"hardcoded-temp-file\":\"S108\",\"try-except-pass\":\"S110\",\"try-except-continue\":\"S112\",\"request-without-timeout\":\"S113\",\"flask-debug-true\":\"S201\",\"tarfile-unsafe-members\":\"S202\",\"suspicious-pickle-usage\":\"S301\",\"suspicious-marshal-usage\":\"S302\",\"suspicious-insecure-hash-usage\":\"S303\",\"suspicious-insecure-cipher-usage\":\"S304\",\"suspicious-insecure-cipher-mode-usage\":\"S305\",\"suspicious-mktemp-usage\":\"S306\",\"suspicious-eval-usage\":\"S307\",\"suspicious-mark-safe-usage\":\"S308\",\"suspicious-url-open-usage\":\"S310\",\"suspicious-non-cryptographic-random-usage\":\"S311\",\"suspicious-telnet-usage\":\"S312\",\"suspicious-xmlc-element-tree-usage\":\"S313\",\"suspicious-xml-element-tree-usage\":\"S314\",\"suspicious-xml-expat-reader-usage\":\"S315\",\"suspicious-xml-expat-builder-usage\":\"S316\",\"suspicious-xml-sax-usage\":\"S317\",\"suspicious-xml-mini-dom-usage\":\"S318\",\"suspicious-xml-pull-dom-usage\":\"S319\",\"suspicious-xmle-tree-usage\":\"S320\",\"suspicious-ftp-lib-usage\":\"S321\",\"suspicious-unverified-context-usage\":\"S323\",\"hashlib-insecure-hash-function\":\"S324\",\"suspicious-telnetlib-import\":\"S401\",\"suspicious-ftplib-import\":\"S402\",\"suspicious-pickle-import\":\"S403\",\"suspicious-subprocess-import\":\"S404\",\"suspicious-xml-etree-import\":\"S405\",\"suspicious-xml-sax-import\":\"S406\",\"suspicious-xml-expat-import\":\"S407\",\"suspicious-xml-minidom-import\":\"S408\",\"suspicious-xml-pulldom-import\":\"S409\",\"suspicious-lxml-import\":\"S410\",\"suspicious-xmlrpc-import\":\"S411\",\"suspicious-httpoxy-import\":\"S412\",\"suspicious-pycrypto-import\":\"S413\",\"suspicious-pyghmi-import\":\"S415\",\"request-with-no-cert-validation\":\"S501\",\"ssl-insecure-version\":\"S502\",\"ssl-with-bad-defaults\":\"S503\",\"ssl-with-no-version\":\"S504\",\"weak-cryptographic-key\":\"S505\",\"unsafe-yaml-load\":\"S506\",\"ssh-no-host-key-verification\":\"S507\",\"snmp-insecure-version\":\"S508\",\"snmp-weak-cryptography\":\"S509\",\"paramiko-call\":\"S601\",\"subprocess-popen-with-shell-equals-true\":\"S602\",\"subprocess-without-shell-equals-true\":\"S603\",\"call-with-shell-equals-true\":\"S604\",\"start-process-with-a-shell\":\"S605\",\"start-process-with-no-shell\":\"S606\",\"start-process-with-partial-path\":\"S607\",\"hardcoded-sql-expression\":\"S608\",\"unix-command-wildcard-injection\":\"S609\",\"django-extra\":\"S610\",\"django-raw-sql\":\"S611\",\"logging-config-insecure-listen\":\"S612\",\"jinja2-autoescape-false\":\"S701\",\"mako-templates\":\"S702\",\"blind-except\":\"BLE001\",\"boolean-type-hint-positional-argument\":\"FBT001\",\"boolean-default-value-positional-argument\":\"FBT002\",\"boolean-positional-value-in-call\":\"FBT003\",\"unary-prefix-increment-decrement\":\"B002\",\"assignment-to-os-environ\":\"B003\",\"unreliable-callable-check\":\"B004\",\"strip-with-multi-characters\":\"B005\",\"mutable-argument-default\":\"B006\",\"unused-loop-control-variable\":\"B007\",\"function-call-in-default-argument\":\"B008\",\"get-attr-with-constant\":\"B009\",\"set-attr-with-constant\":\"B010\",\"assert-false\":\"B011\",\"jump-statement-in-finally\":\"B012\",\"redundant-tuple-in-exception-handler\":\"B013\",\"duplicate-handler-exception\":\"B014\",\"useless-comparison\":\"B015\",\"raise-literal\":\"B016\",\"assert-raises-exception\":\"B017\",\"useless-expression\":\"B018\",\"cached-instance-method\":\"B019\",\"loop-variable-overrides-iterator\":\"B020\",\"f-string-docstring\":\"B021\",\"useless-contextlib-suppress\":\"B022\",\"function-uses-loop-variable\":\"B023\",\"abstract-base-class-without-abstract-method\":\"B024\",\"duplicate-try-block-exception\":\"B025\",\"star-arg-unpacking-after-keyword-arg\":\"B026\",\"empty-method-without-abstract-decorator\":\"B027\",\"no-explicit-stacklevel\":\"B028\",\"except-with-empty-tuple\":\"B029\",\"except-with-non-exception-classes\":\"B030\",\"reuse-of-groupby-generator\":\"B031\",\"unintentional-type-annotation\":\"B032\",\"duplicate-value\":\"B033\",\"re-sub-positional-args\":\"B034\",\"static-key-dict-comprehension\":\"B035\",\"mutable-contextvar-default\":\"B039\",\"return-in-generator\":\"B901\",\"raise-without-from-inside-except\":\"B904\",\"zip-without-explicit-strict\":\"B905\",\"loop-iterator-mutation\":\"B909\",\"builtin-variable-shadowing\":\"A001\",\"builtin-argument-shadowing\":\"A002\",\"builtin-attribute-shadowing\":\"A003\",\"builtin-import-shadowing\":\"A004\",\"builtin-module-shadowing\":\"A005\",\"builtin-lambda-argument-shadowing\":\"A006\",\"missing-trailing-comma\":\"COM812\",\"trailing-comma-on-bare-tuple\":\"COM818\",\"prohibited-trailing-comma\":\"COM819\",\"unnecessary-generator-list\":\"C400\",\"unnecessary-generator-set\":\"C401\",\"unnecessary-generator-dict\":\"C402\",\"unnecessary-list-comprehension-set\":\"C403\",\"unnecessary-list-comprehension-dict\":\"C404\",\"unnecessary-literal-set\":\"C405\",\"unnecessary-literal-dict\":\"C406\",\"unnecessary-collection-call\":\"C408\",\"unnecessary-literal-within-tuple-call\":\"C409\",\"unnecessary-literal-within-list-call\":\"C410\",\"unnecessary-list-call\":\"C411\",\"unnecessary-call-around-sorted\":\"C413\",\"unnecessary-double-cast-or-process\":\"C414\",\"unnecessary-subscript-reversal\":\"C415\",\"unnecessary-comprehension\":\"C416\",\"unnecessary-map\":\"C417\",\"unnecessary-literal-within-dict-call\":\"C418\",\"unnecessary-comprehension-in-call\":\"C419\",\"unnecessary-dict-comprehension-for-iterable\":\"C420\",\"missing-copyright-notice\":\"CPY001\",\"call-datetime-without-tzinfo\":\"DTZ001\",\"call-datetime-today\":\"DTZ002\",\"call-datetime-utcnow\":\"DTZ003\",\"call-datetime-utcfromtimestamp\":\"DTZ004\",\"call-datetime-now-without-tzinfo\":\"DTZ005\",\"call-datetime-fromtimestamp\":\"DTZ006\",\"call-datetime-strptime-without-zone\":\"DTZ007\",\"call-date-today\":\"DTZ011\",\"call-date-fromtimestamp\":\"DTZ012\",\"datetime-min-max\":\"DTZ901\",\"debugger\":\"T100\",\"django-nullable-model-string-field\":\"DJ001\",\"django-locals-in-render-function\":\"DJ003\",\"django-exclude-with-model-form\":\"DJ006\",\"django-all-with-model-form\":\"DJ007\",\"django-model-without-dunder-str\":\"DJ008\",\"django-unordered-body-content-in-model\":\"DJ012\",\"django-non-leading-receiver-decorator\":\"DJ013\",\"raw-string-in-exception\":\"EM101\",\"f-string-in-exception\":\"EM102\",\"dot-format-in-exception\":\"EM103\",\"shebang-not-executable\":\"EXE001\",\"shebang-missing-executable-file\":\"EXE002\",\"shebang-missing-python\":\"EXE003\",\"shebang-leading-whitespace\":\"EXE004\",\"shebang-not-first-line\":\"EXE005\",\"line-contains-fixme\":\"FIX001\",\"line-contains-todo\":\"FIX002\",\"line-contains-xxx\":\"FIX003\",\"line-contains-hack\":\"FIX004\",\"future-rewritable-type-annotation\":\"FA100\",\"future-required-type-annotation\":\"FA102\",\"f-string-in-get-text-func-call\":\"INT001\",\"format-in-get-text-func-call\":\"INT002\",\"printf-in-get-text-func-call\":\"INT003\",\"single-line-implicit-string-concatenation\":\"ISC001\",\"multi-line-implicit-string-concatenation\":\"ISC002\",\"explicit-string-concatenation\":\"ISC003\",\"unconventional-import-alias\":\"ICN001\",\"banned-import-alias\":\"ICN002\",\"banned-import-from\":\"ICN003\",\"direct-logger-instantiation\":\"LOG001\",\"invalid-get-logger-argument\":\"LOG002\",\"exception-without-exc-info\":\"LOG007\",\"undocumented-warn\":\"LOG009\",\"root-logger-call\":\"LOG015\",\"logging-string-format\":\"G001\",\"logging-percent-format\":\"G002\",\"logging-string-concat\":\"G003\",\"logging-f-string\":\"G004\",\"logging-warn\":\"G010\",\"logging-extra-attr-clash\":\"G101\",\"logging-exc-info\":\"G201\",\"logging-redundant-exc-info\":\"G202\",\"implicit-namespace-package\":\"INP001\",\"unnecessary-placeholder\":\"PIE790\",\"duplicate-class-field-definition\":\"PIE794\",\"non-unique-enums\":\"PIE796\",\"unnecessary-spread\":\"PIE800\",\"unnecessary-dict-kwargs\":\"PIE804\",\"reimplemented-container-builtin\":\"PIE807\",\"unnecessary-range-start\":\"PIE808\",\"multiple-starts-ends-with\":\"PIE810\",\"print\":\"T201\",\"p-print\":\"T203\",\"unprefixed-type-param\":\"PYI001\",\"complex-if-statement-in-stub\":\"PYI002\",\"unrecognized-version-info-check\":\"PYI003\",\"patch-version-comparison\":\"PYI004\",\"wrong-tuple-length-version-comparison\":\"PYI005\",\"bad-version-info-comparison\":\"PYI006\",\"unrecognized-platform-check\":\"PYI007\",\"unrecognized-platform-name\":\"PYI008\",\"pass-statement-stub-body\":\"PYI009\",\"non-empty-stub-body\":\"PYI010\",\"typed-argument-default-in-stub\":\"PYI011\",\"pass-in-class-body\":\"PYI012\",\"ellipsis-in-non-empty-class-body\":\"PYI013\",\"argument-default-in-stub\":\"PYI014\",\"assignment-default-in-stub\":\"PYI015\",\"duplicate-union-member\":\"PYI016\",\"complex-assignment-in-stub\":\"PYI017\",\"unused-private-type-var\":\"PYI018\",\"custom-type-var-return-type\":\"PYI019\",\"quoted-annotation-in-stub\":\"PYI020\",\"docstring-in-stub\":\"PYI021\",\"collections-named-tuple\":\"PYI024\",\"unaliased-collections-abc-set-import\":\"PYI025\",\"type-alias-without-annotation\":\"PYI026\",\"str-or-repr-defined-in-stub\":\"PYI029\",\"unnecessary-literal-union\":\"PYI030\",\"any-eq-ne-annotation\":\"PYI032\",\"type-comment-in-stub\":\"PYI033\",\"non-self-return-type\":\"PYI034\",\"unassigned-special-variable-in-stub\":\"PYI035\",\"bad-exit-annotation\":\"PYI036\",\"redundant-numeric-union\":\"PYI041\",\"snake-case-type-alias\":\"PYI042\",\"t-suffixed-type-alias\":\"PYI043\",\"future-annotations-in-stub\":\"PYI044\",\"iter-method-return-iterable\":\"PYI045\",\"unused-private-protocol\":\"PYI046\",\"unused-private-type-alias\":\"PYI047\",\"stub-body-multiple-statements\":\"PYI048\",\"unused-private-typed-dict\":\"PYI049\",\"no-return-argument-annotation-in-stub\":\"PYI050\",\"redundant-literal-union\":\"PYI051\",\"unannotated-assignment-in-stub\":\"PYI052\",\"string-or-bytes-too-long\":\"PYI053\",\"numeric-literal-too-long\":\"PYI054\",\"unnecessary-type-union\":\"PYI055\",\"unsupported-method-call-on-all\":\"PYI056\",\"byte-string-usage\":\"PYI057\",\"generator-return-from-iter-method\":\"PYI058\",\"generic-not-last-base-class\":\"PYI059\",\"redundant-none-literal\":\"PYI061\",\"duplicate-literal-member\":\"PYI062\",\"pep484-style-positional-only-parameter\":\"PYI063\",\"redundant-final-literal\":\"PYI064\",\"bad-version-info-order\":\"PYI066\",\"pytest-fixture-incorrect-parentheses-style\":\"PT001\",\"pytest-fixture-positional-args\":\"PT002\",\"pytest-extraneous-scope-function\":\"PT003\",\"pytest-missing-fixture-name-underscore\":\"PT004\",\"pytest-incorrect-fixture-name-underscore\":\"PT005\",\"pytest-parametrize-names-wrong-type\":\"PT006\",\"pytest-parametrize-values-wrong-type\":\"PT007\",\"pytest-patch-with-lambda\":\"PT008\",\"pytest-unittest-assertion\":\"PT009\",\"pytest-raises-without-exception\":\"PT010\",\"pytest-raises-too-broad\":\"PT011\",\"pytest-raises-with-multiple-statements\":\"PT012\",\"pytest-incorrect-pytest-import\":\"PT013\",\"pytest-duplicate-parametrize-test-cases\":\"PT014\",\"pytest-assert-always-false\":\"PT015\",\"pytest-fail-without-message\":\"PT016\",\"pytest-assert-in-except\":\"PT017\",\"pytest-composite-assertion\":\"PT018\",\"pytest-fixture-param-without-value\":\"PT019\",\"pytest-deprecated-yield-fixture\":\"PT020\",\"pytest-fixture-finalizer-callback\":\"PT021\",\"pytest-useless-yield-fixture\":\"PT022\",\"pytest-incorrect-mark-parentheses-style\":\"PT023\",\"pytest-unnecessary-asyncio-mark-on-fixture\":\"PT024\",\"pytest-erroneous-use-fixtures-on-fixture\":\"PT025\",\"pytest-use-fixtures-without-parameters\":\"PT026\",\"pytest-unittest-raises-assertion\":\"PT027\",\"bad-quotes-inline-string\":\"Q000\",\"bad-quotes-multiline-string\":\"Q001\",\"bad-quotes-docstring\":\"Q002\",\"avoidable-escaped-quote\":\"Q003\",\"unnecessary-escaped-quote\":\"Q004\",\"unnecessary-paren-on-raise-exception\":\"RSE102\",\"unnecessary-return-none\":\"RET501\",\"implicit-return-value\":\"RET502\",\"implicit-return\":\"RET503\",\"unnecessary-assign\":\"RET504\",\"superfluous-else-return\":\"RET505\",\"superfluous-else-raise\":\"RET506\",\"superfluous-else-continue\":\"RET507\",\"superfluous-else-break\":\"RET508\",\"private-member-access\":\"SLF001\",\"duplicate-isinstance-call\":\"SIM101\",\"collapsible-if\":\"SIM102\",\"needless-bool\":\"SIM103\",\"suppressible-exception\":\"SIM105\",\"return-in-try-except-finally\":\"SIM107\",\"if-else-block-instead-of-if-exp\":\"SIM108\",\"compare-with-tuple\":\"SIM109\",\"reimplemented-builtin\":\"SIM110\",\"uncapitalized-environment-variables\":\"SIM112\",\"enumerate-for-loop\":\"SIM113\",\"if-with-same-arms\":\"SIM114\",\"open-file-with-context-handler\":\"SIM115\",\"if-else-block-instead-of-dict-lookup\":\"SIM116\",\"multiple-with-statements\":\"SIM117\",\"in-dict-keys\":\"SIM118\",\"negate-equal-op\":\"SIM201\",\"negate-not-equal-op\":\"SIM202\",\"double-negation\":\"SIM208\",\"if-expr-with-true-false\":\"SIM210\",\"if-expr-with-false-true\":\"SIM211\",\"if-expr-with-twisted-arms\":\"SIM212\",\"expr-and-not-expr\":\"SIM220\",\"expr-or-not-expr\":\"SIM221\",\"expr-or-true\":\"SIM222\",\"expr-and-false\":\"SIM223\",\"yoda-conditions\":\"SIM300\",\"if-else-block-instead-of-dict-get\":\"SIM401\",\"split-static-string\":\"SIM905\",\"dict-get-with-none-default\":\"SIM910\",\"zip-dict-keys-and-values\":\"SIM911\",\"no-slots-in-str-subclass\":\"SLOT000\",\"no-slots-in-tuple-subclass\":\"SLOT001\",\"no-slots-in-namedtuple-subclass\":\"SLOT002\",\"banned-api\":\"TID251\",\"relative-imports\":\"TID252\",\"banned-module-level-imports\":\"TID253\",\"invalid-todo-tag\":\"TD001\",\"missing-todo-author\":\"TD002\",\"missing-todo-link\":\"TD003\",\"missing-todo-colon\":\"TD004\",\"missing-todo-description\":\"TD005\",\"invalid-todo-capitalization\":\"TD006\",\"missing-space-after-todo-colon\":\"TD007\",\"typing-only-first-party-import\":\"TC001\",\"typing-only-third-party-import\":\"TC002\",\"typing-only-standard-library-import\":\"TC003\",\"runtime-import-in-type-checking-block\":\"TC004\",\"empty-type-checking-block\":\"TC005\",\"runtime-cast-value\":\"TC006\",\"unquoted-type-alias\":\"TC007\",\"quoted-type-alias\":\"TC008\",\"runtime-string-union\":\"TC010\",\"unused-function-argument\":\"ARG001\",\"unused-method-argument\":\"ARG002\",\"unused-class-method-argument\":\"ARG003\",\"unused-static-method-argument\":\"ARG004\",\"unused-lambda-argument\":\"ARG005\",\"os-path-abspath\":\"PTH100\",\"os-chmod\":\"PTH101\",\"os-mkdir\":\"PTH102\",\"os-makedirs\":\"PTH103\",\"os-rename\":\"PTH104\",\"os-replace\":\"PTH105\",\"os-rmdir\":\"PTH106\",\"os-remove\":\"PTH107\",\"os-unlink\":\"PTH108\",\"os-getcwd\":\"PTH109\",\"os-path-exists\":\"PTH110\",\"os-path-expanduser\":\"PTH111\",\"os-path-isdir\":\"PTH112\",\"os-path-isfile\":\"PTH113\",\"os-path-islink\":\"PTH114\",\"os-readlink\":\"PTH115\",\"os-stat\":\"PTH116\",\"os-path-isabs\":\"PTH117\",\"os-path-join\":\"PTH118\",\"os-path-basename\":\"PTH119\",\"os-path-dirname\":\"PTH120\",\"os-path-samefile\":\"PTH121\",\"os-path-splitext\":\"PTH122\",\"builtin-open\":\"PTH123\",\"py-path\":\"PTH124\",\"path-constructor-current-directory\":\"PTH201\",\"os-path-getsize\":\"PTH202\",\"os-path-getatime\":\"PTH203\",\"os-path-getmtime\":\"PTH204\",\"os-path-getctime\":\"PTH205\",\"os-sep-split\":\"PTH206\",\"glob\":\"PTH207\",\"os-listdir\":\"PTH208\",\"static-join-to-f-string\":\"FLY002\",\"unsorted-imports\":\"I001\",\"missing-required-import\":\"I002\",\"complex-structure\":\"C901\",\"numpy-deprecated-type-alias\":\"NPY001\",\"numpy-legacy-random\":\"NPY002\",\"numpy-deprecated-function\":\"NPY003\",\"numpy2-deprecation\":\"NPY201\",\"invalid-class-name\":\"N801\",\"invalid-function-name\":\"N802\",\"invalid-argument-name\":\"N803\",\"invalid-first-argument-name-for-class-method\":\"N804\",\"invalid-first-argument-name-for-method\":\"N805\",\"non-lowercase-variable-in-function\":\"N806\",\"dunder-function-name\":\"N807\",\"constant-imported-as-non-constant\":\"N811\",\"lowercase-imported-as-non-lowercase\":\"N812\",\"camelcase-imported-as-lowercase\":\"N813\",\"camelcase-imported-as-constant\":\"N814\",\"mixed-case-variable-in-class-scope\":\"N815\",\"mixed-case-variable-in-global-scope\":\"N816\",\"camelcase-imported-as-acronym\":\"N817\",\"error-suffix-on-exception-name\":\"N818\",\"invalid-module-name\":\"N999\",\"pandas-use-of-inplace-argument\":\"PD002\",\"pandas-use-of-dot-is-null\":\"PD003\",\"pandas-use-of-dot-not-null\":\"PD004\",\"pandas-use-of-dot-ix\":\"PD007\",\"pandas-use-of-dot-at\":\"PD008\",\"pandas-use-of-dot-iat\":\"PD009\",\"pandas-use-of-dot-pivot-or-unstack\":\"PD010\",\"pandas-use-of-dot-values\":\"PD011\",\"pandas-use-of-dot-read-table\":\"PD012\",\"pandas-use-of-dot-stack\":\"PD013\",\"pandas-use-of-pd-merge\":\"PD015\",\"pandas-nunique-constant-series-check\":\"PD101\",\"pandas-df-variable-name\":\"PD901\",\"unnecessary-list-cast\":\"PERF101\",\"incorrect-dict-iterator\":\"PERF102\",\"try-except-in-loop\":\"PERF203\",\"manual-list-comprehension\":\"PERF401\",\"manual-list-copy\":\"PERF402\",\"manual-dict-comprehension\":\"PERF403\",\"mixed-spaces-and-tabs\":\"E101\",\"indentation-with-invalid-multiple\":\"E111\",\"no-indented-block\":\"E112\",\"unexpected-indentation\":\"E113\",\"indentation-with-invalid-multiple-comment\":\"E114\",\"no-indented-block-comment\":\"E115\",\"unexpected-indentation-comment\":\"E116\",\"over-indented\":\"E117\",\"whitespace-after-open-bracket\":\"E201\",\"whitespace-before-close-bracket\":\"E202\",\"whitespace-before-punctuation\":\"E203\",\"whitespace-after-decorator\":\"E204\",\"whitespace-before-parameters\":\"E211\",\"multiple-spaces-before-operator\":\"E221\",\"multiple-spaces-after-operator\":\"E222\",\"tab-before-operator\":\"E223\",\"tab-after-operator\":\"E224\",\"missing-whitespace-around-operator\":\"E225\",\"missing-whitespace-around-arithmetic-operator\":\"E226\",\"missing-whitespace-around-bitwise-or-shift-operator\":\"E227\",\"missing-whitespace-around-modulo-operator\":\"E228\",\"missing-whitespace\":\"E231\",\"multiple-spaces-after-comma\":\"E241\",\"tab-after-comma\":\"E242\",\"unexpected-spaces-around-keyword-parameter-equals\":\"E251\",\"missing-whitespace-around-parameter-equals\":\"E252\",\"too-few-spaces-before-inline-comment\":\"E261\",\"no-space-after-inline-comment\":\"E262\",\"no-space-after-block-comment\":\"E265\",\"multiple-leading-hashes-for-block-comment\":\"E266\",\"multiple-spaces-after-keyword\":\"E271\",\"multiple-spaces-before-keyword\":\"E272\",\"tab-after-keyword\":\"E273\",\"tab-before-keyword\":\"E274\",\"missing-whitespace-after-keyword\":\"E275\",\"blank-line-between-methods\":\"E301\",\"blank-lines-top-level\":\"E302\",\"too-many-blank-lines\":\"E303\",\"blank-line-after-decorator\":\"E304\",\"blank-lines-after-function-or-class\":\"E305\",\"blank-lines-before-nested-definition\":\"E306\",\"multiple-imports-on-one-line\":\"E401\",\"module-import-not-at-top-of-file\":\"E402\",\"line-too-long\":\"E501\",\"redundant-backslash\":\"E502\",\"multiple-statements-on-one-line-colon\":\"E701\",\"multiple-statements-on-one-line-semicolon\":\"E702\",\"useless-semicolon\":\"E703\",\"none-comparison\":\"E711\",\"true-false-comparison\":\"E712\",\"not-in-test\":\"E713\",\"not-is-test\":\"E714\",\"type-comparison\":\"E721\",\"bare-except\":\"E722\",\"lambda-assignment\":\"E731\",\"ambiguous-variable-name\":\"E741\",\"ambiguous-class-name\":\"E742\",\"ambiguous-function-name\":\"E743\",\"io-error\":\"E902\",\"syntax-error\":\"E999\",\"tab-indentation\":\"W191\",\"trailing-whitespace\":\"W291\",\"missing-newline-at-end-of-file\":\"W292\",\"blank-line-with-whitespace\":\"W293\",\"too-many-newlines-at-end-of-file\":\"W391\",\"doc-line-too-long\":\"W505\",\"invalid-escape-sequence\":\"W605\",\"docstring-missing-returns\":\"DOC201\",\"docstring-extraneous-returns\":\"DOC202\",\"docstring-missing-yields\":\"DOC402\",\"docstring-extraneous-yields\":\"DOC403\",\"docstring-missing-exception\":\"DOC501\",\"docstring-extraneous-exception\":\"DOC502\",\"undocumented-public-module\":\"D100\",\"undocumented-public-class\":\"D101\",\"undocumented-public-method\":\"D102\",\"undocumented-public-function\":\"D103\",\"undocumented-public-package\":\"D104\",\"undocumented-magic-method\":\"D105\",\"undocumented-public-nested-class\":\"D106\",\"undocumented-public-init\":\"D107\",\"fits-on-one-line\":\"D200\",\"no-blank-line-before-function\":\"D201\",\"no-blank-line-after-function\":\"D202\",\"one-blank-line-before-class\":\"D203\",\"one-blank-line-after-class\":\"D204\",\"blank-line-after-summary\":\"D205\",\"indent-with-spaces\":\"D206\",\"under-indentation\":\"D207\",\"over-indentation\":\"D208\",\"new-line-after-last-paragraph\":\"D209\",\"surrounding-whitespace\":\"D210\",\"blank-line-before-class\":\"D211\",\"multi-line-summary-first-line\":\"D212\",\"multi-line-summary-second-line\":\"D213\",\"section-not-over-indented\":\"D214\",\"section-underline-not-over-indented\":\"D215\",\"triple-single-quotes\":\"D300\",\"escape-sequence-in-docstring\":\"D301\",\"ends-in-period\":\"D400\",\"non-imperative-mood\":\"D401\",\"no-signature\":\"D402\",\"first-line-capitalized\":\"D403\",\"docstring-starts-with-this\":\"D404\",\"capitalize-section-name\":\"D405\",\"new-line-after-section-name\":\"D406\",\"dashed-underline-after-section\":\"D407\",\"section-underline-after-name\":\"D408\",\"section-underline-matches-section-length\":\"D409\",\"no-blank-line-after-section\":\"D410\",\"no-blank-line-before-section\":\"D411\",\"blank-lines-between-header-and-content\":\"D412\",\"blank-line-after-last-section\":\"D413\",\"empty-docstring-section\":\"D414\",\"ends-in-punctuation\":\"D415\",\"section-name-ends-in-colon\":\"D416\",\"undocumented-param\":\"D417\",\"overload-with-docstring\":\"D418\",\"empty-docstring\":\"D419\",\"unused-import\":\"F401\",\"import-shadowed-by-loop-var\":\"F402\",\"undefined-local-with-import-star\":\"F403\",\"late-future-import\":\"F404\",\"undefined-local-with-import-star-usage\":\"F405\",\"undefined-local-with-nested-import-star-usage\":\"F406\",\"future-feature-not-defined\":\"F407\",\"percent-format-invalid-format\":\"F501\",\"percent-format-expected-mapping\":\"F502\",\"percent-format-expected-sequence\":\"F503\",\"percent-format-extra-named-arguments\":\"F504\",\"percent-format-missing-argument\":\"F505\",\"percent-format-mixed-positional-and-named\":\"F506\",\"percent-format-positional-count-mismatch\":\"F507\",\"percent-format-star-requires-sequence\":\"F508\",\"percent-format-unsupported-format-character\":\"F509\",\"string-dot-format-invalid-format\":\"F521\",\"string-dot-format-extra-named-arguments\":\"F522\",\"string-dot-format-extra-positional-arguments\":\"F523\",\"string-dot-format-missing-arguments\":\"F524\",\"string-dot-format-mixing-automatic\":\"F525\",\"f-string-missing-placeholders\":\"F541\",\"multi-value-repeated-key-literal\":\"F601\",\"multi-value-repeated-key-variable\":\"F602\",\"expressions-in-star-assignment\":\"F621\",\"multiple-starred-expressions\":\"F622\",\"assert-tuple\":\"F631\",\"is-literal\":\"F632\",\"invalid-print-syntax\":\"F633\",\"if-tuple\":\"F634\",\"break-outside-loop\":\"F701\",\"continue-outside-loop\":\"F702\",\"yield-outside-function\":\"F704\",\"return-outside-function\":\"F706\",\"default-except-not-last\":\"F707\",\"forward-annotation-syntax-error\":\"F722\",\"redefined-while-unused\":\"F811\",\"undefined-name\":\"F821\",\"undefined-export\":\"F822\",\"undefined-local\":\"F823\",\"unused-variable\":\"F841\",\"unused-annotation\":\"F842\",\"raise-not-implemented\":\"F901\",\"eval\":\"PGH001\",\"deprecated-log-warn\":\"PGH002\",\"blanket-type-ignore\":\"PGH003\",\"blanket-noqa\":\"PGH004\",\"invalid-mock-access\":\"PGH005\",\"type-name-incorrect-variance\":\"PLC0105\",\"type-bivariance\":\"PLC0131\",\"type-param-name-mismatch\":\"PLC0132\",\"single-string-slots\":\"PLC0205\",\"dict-index-missing-items\":\"PLC0206\",\"iteration-over-set\":\"PLC0208\",\"useless-import-alias\":\"PLC0414\",\"import-outside-top-level\":\"PLC0415\",\"len-test\":\"PLC1802\",\"compare-to-empty-string\":\"PLC1901\",\"non-ascii-name\":\"PLC2401\",\"non-ascii-import-name\":\"PLC2403\",\"import-private-name\":\"PLC2701\",\"unnecessary-dunder-call\":\"PLC2801\",\"unnecessary-direct-lambda-call\":\"PLC3002\",\"yield-in-init\":\"PLE0100\",\"return-in-init\":\"PLE0101\",\"nonlocal-and-global\":\"PLE0115\",\"continue-in-finally\":\"PLE0116\",\"nonlocal-without-binding\":\"PLE0117\",\"load-before-global-declaration\":\"PLE0118\",\"non-slot-assignment\":\"PLE0237\",\"duplicate-bases\":\"PLE0241\",\"unexpected-special-method-signature\":\"PLE0302\",\"invalid-length-return-type\":\"PLE0303\",\"invalid-bool-return-type\":\"PLE0304\",\"invalid-index-return-type\":\"PLE0305\",\"invalid-str-return-type\":\"PLE0307\",\"invalid-bytes-return-type\":\"PLE0308\",\"invalid-hash-return-type\":\"PLE0309\",\"invalid-all-object\":\"PLE0604\",\"invalid-all-format\":\"PLE0605\",\"potential-index-error\":\"PLE0643\",\"misplaced-bare-raise\":\"PLE0704\",\"repeated-keyword-argument\":\"PLE1132\",\"dict-iter-missing-items\":\"PLE1141\",\"await-outside-async\":\"PLE1142\",\"logging-too-many-args\":\"PLE1205\",\"logging-too-few-args\":\"PLE1206\",\"bad-string-format-character\":\"PLE1300\",\"bad-string-format-type\":\"PLE1307\",\"bad-str-strip-call\":\"PLE1310\",\"invalid-envvar-value\":\"PLE1507\",\"singledispatch-method\":\"PLE1519\",\"singledispatchmethod-function\":\"PLE1520\",\"yield-from-in-async-function\":\"PLE1700\",\"bidirectional-unicode\":\"PLE2502\",\"invalid-character-backspace\":\"PLE2510\",\"invalid-character-sub\":\"PLE2512\",\"invalid-character-esc\":\"PLE2513\",\"invalid-character-nul\":\"PLE2514\",\"invalid-character-zero-width-space\":\"PLE2515\",\"modified-iterating-set\":\"PLE4703\",\"comparison-with-itself\":\"PLR0124\",\"comparison-of-constant\":\"PLR0133\",\"no-classmethod-decorator\":\"PLR0202\",\"no-staticmethod-decorator\":\"PLR0203\",\"property-with-parameters\":\"PLR0206\",\"manual-from-import\":\"PLR0402\",\"too-many-public-methods\":\"PLR0904\",\"too-many-return-statements\":\"PLR0911\",\"too-many-branches\":\"PLR0912\",\"too-many-arguments\":\"PLR0913\",\"too-many-locals\":\"PLR0914\",\"too-many-statements\":\"PLR0915\",\"too-many-boolean-expressions\":\"PLR0916\",\"too-many-positional-arguments\":\"PLR0917\",\"repeated-isinstance-calls\":\"PLR1701\",\"too-many-nested-blocks\":\"PLR1702\",\"redefined-argument-from-local\":\"PLR1704\",\"and-or-ternary\":\"PLR1706\",\"useless-return\":\"PLR1711\",\"repeated-equality-comparison\":\"PLR1714\",\"boolean-chained-comparison\":\"PLR1716\",\"sys-exit-alias\":\"PLR1722\",\"if-stmt-min-max\":\"PLR1730\",\"unnecessary-dict-index-lookup\":\"PLR1733\",\"unnecessary-list-index-lookup\":\"PLR1736\",\"magic-value-comparison\":\"PLR2004\",\"empty-comment\":\"PLR2044\",\"collapsible-else-if\":\"PLR5501\",\"non-augmented-assignment\":\"PLR6104\",\"literal-membership\":\"PLR6201\",\"no-self-use\":\"PLR6301\",\"unnecessary-lambda\":\"PLW0108\",\"useless-else-on-loop\":\"PLW0120\",\"self-assigning-variable\":\"PLW0127\",\"redeclared-assigned-name\":\"PLW0128\",\"assert-on-string-literal\":\"PLW0129\",\"named-expr-without-context\":\"PLW0131\",\"useless-exception-statement\":\"PLW0133\",\"nan-comparison\":\"PLW0177\",\"bad-staticmethod-argument\":\"PLW0211\",\"super-without-brackets\":\"PLW0245\",\"import-self\":\"PLW0406\",\"global-variable-not-assigned\":\"PLW0602\",\"global-statement\":\"PLW0603\",\"global-at-module-level\":\"PLW0604\",\"self-or-cls-assignment\":\"PLW0642\",\"binary-op-exception\":\"PLW0711\",\"bad-open-mode\":\"PLW1501\",\"shallow-copy-environ\":\"PLW1507\",\"invalid-envvar-default\":\"PLW1508\",\"subprocess-popen-preexec-fn\":\"PLW1509\",\"subprocess-run-without-check\":\"PLW1510\",\"unspecified-encoding\":\"PLW1514\",\"eq-without-hash\":\"PLW1641\",\"useless-with-lock\":\"PLW2101\",\"redefined-loop-name\":\"PLW2901\",\"bad-dunder-method-name\":\"PLW3201\",\"nested-min-max\":\"PLW3301\",\"useless-metaclass-type\":\"UP001\",\"type-of-primitive\":\"UP003\",\"useless-object-inheritance\":\"UP004\",\"deprecated-unittest-alias\":\"UP005\",\"non-pep585-annotation\":\"UP006\",\"non-pep604-annotation\":\"UP007\",\"super-call-with-parameters\":\"UP008\",\"utf8-encoding-declaration\":\"UP009\",\"unnecessary-future-import\":\"UP010\",\"lru-cache-without-parameters\":\"UP011\",\"unnecessary-encode-utf8\":\"UP012\",\"convert-typed-dict-functional-to-class\":\"UP013\",\"convert-named-tuple-functional-to-class\":\"UP014\",\"redundant-open-modes\":\"UP015\",\"datetime-timezone-utc\":\"UP017\",\"native-literals\":\"UP018\",\"typing-text-str-alias\":\"UP019\",\"open-alias\":\"UP020\",\"replace-universal-newlines\":\"UP021\",\"replace-stdout-stderr\":\"UP022\",\"deprecated-c-element-tree\":\"UP023\",\"os-error-alias\":\"UP024\",\"unicode-kind-prefix\":\"UP025\",\"deprecated-mock-import\":\"UP026\",\"unpacked-list-comprehension\":\"UP027\",\"yield-in-for-loop\":\"UP028\",\"unnecessary-builtin-import\":\"UP029\",\"format-literals\":\"UP030\",\"printf-string-formatting\":\"UP031\",\"f-string\":\"UP032\",\"lru-cache-with-maxsize-none\":\"UP033\",\"extraneous-parentheses\":\"UP034\",\"deprecated-import\":\"UP035\",\"outdated-version-block\":\"UP036\",\"quoted-annotation\":\"UP037\",\"non-pep604-isinstance\":\"UP038\",\"unnecessary-class-parentheses\":\"UP039\",\"non-pep695-type-alias\":\"UP040\",\"timeout-error-alias\":\"UP041\",\"replace-str-enum\":\"UP042\",\"unnecessary-default-type-args\":\"UP043\",\"non-pep646-unpack\":\"UP044\",\"read-whole-file\":\"FURB101\",\"write-whole-file\":\"FURB103\",\"print-empty-string\":\"FURB105\",\"if-exp-instead-of-or-operator\":\"FURB110\",\"repeated-append\":\"FURB113\",\"f-string-number-format\":\"FURB116\",\"reimplemented-operator\":\"FURB118\",\"readlines-in-for\":\"FURB129\",\"delete-full-slice\":\"FURB131\",\"check-and-remove-from-set\":\"FURB132\",\"if-expr-min-max\":\"FURB136\",\"reimplemented-starmap\":\"FURB140\",\"for-loop-set-mutations\":\"FURB142\",\"slice-copy\":\"FURB145\",\"unnecessary-enumerate\":\"FURB148\",\"math-constant\":\"FURB152\",\"repeated-global\":\"FURB154\",\"hardcoded-string-charset\":\"FURB156\",\"verbose-decimal-constructor\":\"FURB157\",\"bit-count\":\"FURB161\",\"redundant-log-base\":\"FURB163\",\"unnecessary-from-float\":\"FURB164\",\"int-on-sliced-str\":\"FURB166\",\"regex-flag-alias\":\"FURB167\",\"isinstance-type-none\":\"FURB168\",\"type-none-comparison\":\"FURB169\",\"single-item-membership-test\":\"FURB171\",\"implicit-cwd\":\"FURB177\",\"meta-class-abc-meta\":\"FURB180\",\"hashlib-digest-hex\":\"FURB181\",\"list-reverse-copy\":\"FURB187\",\"slice-to-remove-prefix-or-suffix\":\"FURB188\",\"subclass-builtin\":\"FURB189\",\"sorted-min-max\":\"FURB192\",\"ambiguous-unicode-character-string\":\"RUF001\",\"ambiguous-unicode-character-docstring\":\"RUF002\",\"ambiguous-unicode-character-comment\":\"RUF003\",\"collection-literal-concatenation\":\"RUF005\",\"asyncio-dangling-task\":\"RUF006\",\"zip-instead-of-pairwise\":\"RUF007\",\"mutable-dataclass-default\":\"RUF008\",\"function-call-in-dataclass-default-argument\":\"RUF009\",\"explicit-f-string-type-conversion\":\"RUF010\",\"ruff-static-key-dict-comprehension\":\"RUF011\",\"mutable-class-default\":\"RUF012\",\"implicit-optional\":\"RUF013\",\"unnecessary-iterable-allocation-for-first-element\":\"RUF015\",\"invalid-index-type\":\"RUF016\",\"quadratic-list-summation\":\"RUF017\",\"assignment-in-assert\":\"RUF018\",\"unnecessary-key-check\":\"RUF019\",\"never-union\":\"RUF020\",\"parenthesize-chained-operators\":\"RUF021\",\"unsorted-dunder-all\":\"RUF022\",\"unsorted-dunder-slots\":\"RUF023\",\"mutable-fromkeys-value\":\"RUF024\",\"default-factory-kwarg\":\"RUF026\",\"missing-f-string-syntax\":\"RUF027\",\"invalid-formatter-suppression-comment\":\"RUF028\",\"unused-async\":\"RUF029\",\"assert-with-print-message\":\"RUF030\",\"incorrectly-parenthesized-tuple-in-subscript\":\"RUF031\",\"decimal-from-float-literal\":\"RUF032\",\"post-init-default\":\"RUF033\",\"useless-if-else\":\"RUF034\",\"unsafe-markup-use\":\"RUF035\",\"none-not-at-end-of-union\":\"RUF036\",\"redundant-bool-literal\":\"RUF038\",\"unraw-re-pattern\":\"RUF039\",\"invalid-assert-message-literal-argument\":\"RUF040\",\"unnecessary-nested-literal\":\"RUF041\",\"unnecessary-cast-to-int\":\"RUF046\",\"map-int-version-parsing\":\"RUF048\",\"used-dummy-variable\":\"RUF052\",\"unnecessary-regular-expression\":\"RUF055\",\"unused-noqa\":\"RUF100\",\"redirected-noqa\":\"RUF101\",\"invalid-pyproject-toml\":\"RUF200\",\"raise-vanilla-class\":\"TRY002\",\"raise-vanilla-args\":\"TRY003\",\"type-check-without-type-error\":\"TRY004\",\"reraise-no-cause\":\"TRY200\",\"verbose-raise\":\"TRY201\",\"useless-try-except\":\"TRY203\",\"try-consider-else\":\"TRY300\",\"raise-within-try\":\"TRY301\",\"error-instead-of-exception\":\"TRY400\",\"verbose-log-message\":\"TRY401\"},\"executable\":\"/Users/razvan/.rye/self/bin/ruff\",\"timestamp\":1738802705}",
45
47
  "last_opened_file_path": "/Users/razvan/DataspellProjects/polymarket-apis",
46
48
  "settings.editor.selected.configurable": "preferences.pluginManager"
@@ -82,6 +84,7 @@
82
84
  </component>
83
85
  <component name="VcsManagerConfiguration">
84
86
  <MESSAGE value="clob - added fee rate endpoint, gamma - updated search_events and grok summaries for the new behaviours, websockets - added new live data event types. small formatting fixes" />
85
- <option name="LAST_COMMIT_MESSAGE" value="clob - added fee rate endpoint, gamma - updated search_events and grok summaries for the new behaviours, websockets - added new live data event types. small formatting fixes" />
87
+ <MESSAGE value="websockets/live_data_socket - fixed clob_user subscriptions; renamed api_key to key in ApiCreds to use creds.model_dump()" />
88
+ <option name="LAST_COMMIT_MESSAGE" value="websockets/live_data_socket - fixed clob_user subscriptions; renamed api_key to key in ApiCreds to use creds.model_dump()" />
86
89
  </component>
87
90
  </project>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: polymarket-apis
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: Unified Polymarket APIs - clob, gamma, data, web3, websockets
5
5
  Author-email: Razvan Gheorghe <razvan@gheorghe.me>
6
6
  Requires-Python: >=3.12
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "polymarket-apis"
3
- version = "0.2.3"
3
+ version = "0.2.5"
4
4
  description = "Unified Polymarket APIs - clob, gamma, data, web3, websockets"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -446,7 +446,7 @@ class PolymarketClobClient:
446
446
 
447
447
  def post_order(self, order: SignedOrder, order_type: OrderType = OrderType.GTC) -> Optional[OrderPostResponse]:
448
448
  """Posts a SignedOrder."""
449
- body = order_to_json(order, self.creds.api_key, order_type)
449
+ body = order_to_json(order, self.creds.key, order_type)
450
450
  headers = create_level_2_headers(
451
451
  self.signer,
452
452
  self.creds,
@@ -474,7 +474,7 @@ class PolymarketClobClient:
474
474
 
475
475
  def post_orders(self, args: list[PostOrdersArgs]):
476
476
  """Posts multiple SignedOrders at once."""
477
- body = [order_to_json(arg.order, self.creds.api_key, arg.order_type) for arg in args]
477
+ body = [order_to_json(arg.order, self.creds.key, arg.order_type) for arg in args]
478
478
  headers = create_level_2_headers(
479
479
  self.signer,
480
480
  self.creds,
@@ -10,13 +10,15 @@ from polymarket_apis.utilities.exceptions import AuthenticationRequiredError
10
10
 
11
11
  from ..types.clob_types import ApiCreds
12
12
  from ..types.websockets_types import (
13
+ ActivityOrderMatchEvent,
14
+ ActivityTradeEvent,
13
15
  CommentEvent,
14
16
  CryptoPriceSubscribeEvent,
15
17
  CryptoPriceUpdateEvent,
16
18
  LastTradePriceEvent,
17
19
  LiveDataLastTradePriceEvent,
18
20
  LiveDataOrderBookSummaryEvent,
19
- LiveDataOrderMatchEvent,
21
+ LiveDataOrderEvent,
20
22
  LiveDataPriceChangeEvent,
21
23
  LiveDataTickSizeChangeEvent,
22
24
  LiveDataTradeEvent,
@@ -79,9 +81,9 @@ def _process_live_data_event(event):
79
81
  message = event.json
80
82
  match message["type"]:
81
83
  case "trades":
82
- print(LiveDataTradeEvent(**message), "\n")
84
+ print(ActivityTradeEvent(**message), "\n")
83
85
  case "orders_matched":
84
- print(LiveDataOrderMatchEvent(**message), "\n")
86
+ print(ActivityOrderMatchEvent(**message), "\n")
85
87
  case "comment_created" | "comment_removed":
86
88
  print(CommentEvent(**message), "\n")
87
89
  case "reaction_created" | "reaction_removed":
@@ -104,6 +106,10 @@ def _process_live_data_event(event):
104
106
  print(LiveDataTickSizeChangeEvent(**message), "\n")
105
107
  case "market_created" | "market_resolved":
106
108
  print(MarketStatusChangeEvent(**message), "\n")
109
+ case "order":
110
+ print(LiveDataOrderEvent(**message), "\n")
111
+ case "trade":
112
+ print(LiveDataTradeEvent(**message), "\n")
107
113
  case _:
108
114
  print(message)
109
115
  except JSONDecodeError:
@@ -128,6 +134,7 @@ class PolymarketWebsocketsClient:
128
134
 
129
135
  """
130
136
  websocket = WebSocket(self.url_market)
137
+
131
138
  for event in persist(websocket): # persist automatically reconnects
132
139
  if event.name == "ready":
133
140
  websocket.send_json(
@@ -146,6 +153,7 @@ class PolymarketWebsocketsClient:
146
153
 
147
154
  """
148
155
  websocket = WebSocket(self.url_user)
156
+
149
157
  for event in persist(websocket):
150
158
  if event.name == "ready":
151
159
  websocket.send_json(
@@ -156,7 +164,6 @@ class PolymarketWebsocketsClient:
156
164
 
157
165
  def live_data_socket(self, subscriptions: list[dict[str, Any]], process_event: Callable = _process_live_data_event, creds: Optional[ApiCreds] = None):
158
166
  # info on how to subscribe found at https://github.com/Polymarket/real-time-data-client?tab=readme-ov-file#subscribe
159
- # website seems to still use user_socket so clob_user might be wip
160
167
  """
161
168
  Connect to the live data websocket and subscribe to specified events.
162
169
 
@@ -175,12 +182,22 @@ class PolymarketWebsocketsClient:
175
182
 
176
183
  for event in persist(websocket):
177
184
  if event.name == "ready":
185
+ if needs_auth:
186
+ subscriptions_with_creds = []
187
+ for sub in subscriptions:
188
+ if sub.get("topic") == "clob_user":
189
+ sub_copy = sub.copy()
190
+ sub_copy["clob_auth"] = creds.model_dump()
191
+ subscriptions_with_creds.append(sub_copy)
192
+ else:
193
+ subscriptions_with_creds.append(sub)
194
+ subscriptions = subscriptions_with_creds
195
+
178
196
  payload = {
179
197
  "action": "subscribe",
180
198
  "subscriptions": subscriptions,
181
199
  }
182
- if needs_auth:
183
- payload["auth"] = creds.model_dump(by_alias=True)
200
+
184
201
  websocket.send_json(**payload)
185
202
 
186
203
  elif event.name == "text":
@@ -22,7 +22,7 @@ from ..utilities.constants import ZERO_ADDRESS
22
22
  logger = logging.getLogger(__name__)
23
23
 
24
24
  class ApiCreds(BaseModel):
25
- api_key: str = Field(alias="apiKey")
25
+ key: str = Field(alias="apiKey")
26
26
  secret: str
27
27
  passphrase: str
28
28
 
@@ -16,6 +16,7 @@ class PriceChange(BaseModel):
16
16
  side: Literal["BUY", "SELL"] = Field(validation_alias=AliasChoices("si", "side"))
17
17
  token_id: str = Field(validation_alias=AliasChoices("a", "asset_id"))
18
18
  hash: str = Field(validation_alias=AliasChoices("h", "hash"))
19
+
19
20
  class PriceChanges(BaseModel):
20
21
  condition_id: Keccak256 = Field(validation_alias=AliasChoices("m", "market"))
21
22
  price_changes: list[PriceChange] = Field(validation_alias=AliasChoices("pc", "price_changes"))
@@ -58,8 +59,8 @@ class OrderEvent(BaseModel):
58
59
  order_id: Keccak256 = Field(alias="id")
59
60
  associated_trades: Optional[list[str]] = None # list of trade ids which
60
61
  maker_address: EthAddress
61
- order_owner: str # api key of order owner
62
- event_owner: str = Field(alias="owner") # api key of event owner
62
+ order_owner: str = Field(alias="owner") # api key of order owner
63
+ event_owner: Optional[str] = Field(None, alias="owner") # api key of event owner
63
64
 
64
65
  price: float
65
66
  side: Literal["BUY", "SELL"]
@@ -70,10 +71,10 @@ class OrderEvent(BaseModel):
70
71
 
71
72
  created_at: datetime
72
73
  expiration: Optional[datetime] = None
73
- timestamp: datetime # time of event
74
+ timestamp: Optional[datetime] = None # time of event
74
75
 
75
- event_type: Literal["order"]
76
- type: Literal["PLACEMENT", "UPDATE" , "CANCELLATION"]
76
+ event_type: Optional[Literal["order"]] = None
77
+ type: Literal["PLACEMENT", "UPDATE", "CANCELLATION"]
77
78
 
78
79
  status: Literal["LIVE", "CANCELED", "MATCHED"]
79
80
 
@@ -89,7 +90,7 @@ class TradeEvent(BaseModel):
89
90
  taker_order_id: Keccak256
90
91
  maker_orders: list[MakerOrder]
91
92
  trade_id: str = Field(alias="id")
92
- trade_owner: str # api key of trade owner
93
+ trade_owner: Optional[str] = Field(None, alias="owner") # api key of trade owner
93
94
  event_owner: str = Field(alias="owner") # api key of event owner
94
95
 
95
96
  price: float
@@ -99,17 +100,17 @@ class TradeEvent(BaseModel):
99
100
 
100
101
  last_update: datetime # time of last update to trade
101
102
  matchtime: Optional[datetime] = None # time trade was matched
102
- timestamp: datetime # time of event
103
+ timestamp: Optional[datetime] = None # time of event
103
104
 
104
- event_type: Literal["trade"]
105
- type: Literal["TRADE"]
105
+ event_type: Optional[Literal["trade"]] = None
106
+ type: Optional[Literal["TRADE"]] = None
106
107
 
107
108
  status: Literal["MATCHED", "MINED", "CONFIRMED", "RETRYING", "FAILED"]
108
109
 
109
110
  # wss://ws-live-data.polymarket.com types
110
111
 
111
112
  # Payload models
112
- class LiveDataTrade(BaseModel):
113
+ class ActivityTrade(BaseModel):
113
114
  token_id: str = Field(alias="asset") # ERC1155 token ID of conditional token being traded
114
115
  condition_id: str = Field(alias="conditionId") # Id of market which is also the CTF condition ID
115
116
  event_slug: str = Field(alias="eventSlug") # Slug of the event
@@ -198,14 +199,14 @@ class LiveDataClobMarket(BaseModel):
198
199
  neg_risk: bool
199
200
 
200
201
  # Event models
201
- class LiveDataTradeEvent(BaseModel):
202
- payload: LiveDataTrade
202
+ class ActivityTradeEvent(BaseModel):
203
+ payload: ActivityTrade
203
204
  timestamp: datetime
204
205
  type: Literal["trades"]
205
206
  topic: Literal["activity"]
206
207
 
207
- class LiveDataOrderMatchEvent(BaseModel):
208
- payload: LiveDataTrade
208
+ class ActivityOrderMatchEvent(BaseModel):
209
+ payload: ActivityTrade
209
210
  timestamp: datetime
210
211
  type: Literal["orders_matched"]
211
212
  topic: Literal["activity"]
@@ -282,7 +283,23 @@ class MarketStatusChangeEvent(BaseModel):
282
283
  type: Literal["market_created", "market_resolved"]
283
284
  topic: Literal["clob_market"]
284
285
 
286
+ class LiveDataOrderEvent(BaseModel):
287
+ connection_id: str
288
+ payload: OrderEvent
289
+ timestamp: datetime
290
+ type: Literal["order"]
291
+ topic: Literal["clob_user"]
292
+
293
+ class LiveDataTradeEvent(BaseModel):
294
+ connection_id: str
295
+ payload: TradeEvent
296
+ timestamp: datetime
297
+ type: Literal["trade"]
298
+ topic: Literal["clob_user"]
299
+
285
300
  class ErrorEvent(BaseModel):
286
301
  message: str
287
302
  connection_id: str = Field(alias="connectionId")
288
303
  request_id: str = Field(alias="requestId")
304
+
305
+
@@ -49,6 +49,6 @@ def create_level_2_headers(signer: Signer, creds: ApiCreds, request_args: Reques
49
49
  POLY_ADDRESS: signer.address(),
50
50
  POLY_SIGNATURE: hmac_sig,
51
51
  POLY_TIMESTAMP: timestamp,
52
- POLY_API_KEY: creds.api_key,
52
+ POLY_API_KEY: creds.key,
53
53
  POLY_PASSPHRASE: creds.passphrase,
54
54
  }
File without changes