Fixed eventloop bug when running on windows

api-breakage
Morty Space 4 years ago
parent 8a8772c523
commit 7a9f31b5ea
  1. 1
      README.md
  2. 2
      azure-pipelines.yml
  3. 2
      src/cryptocom/exchange/__init__.py
  4. 7
      src/cryptocom/exchange/api.py

@ -28,6 +28,7 @@ Exchange original API docs: [https://exchange-docs.crypto.com](https://exchange-
### Changelog ### Changelog
- **0.9.1** - fixed Windows bug with asyncio event loop
- **0.9.0** - updated coins, refactored wallet transactions - **0.9.0** - updated coins, refactored wallet transactions
- **0.8.1** - fixed coin name generation - **0.8.1** - fixed coin name generation
- **0.8** - fixed tests with updated coins - **0.8** - fixed tests with updated coins

@ -29,8 +29,6 @@ strategy:
python.version: '3.8' python.version: '3.8'
Python39: Python39:
python.version: '3.9' python.version: '3.9'
Python310:
python.version: '3.10'
steps: steps:
- checkout: self - checkout: self

@ -17,4 +17,4 @@ __all__ = [
'ApiError', 'ApiProvider' 'ApiError', 'ApiProvider'
] ]
__version__ = '0.9' __version__ = '0.9.1'

@ -1,11 +1,11 @@
import os import os
import json import json
import gzip
import time import time
import hmac import hmac
import random import random
import asyncio import asyncio
import hashlib import hashlib
import platform
from urllib.parse import urljoin from urllib.parse import urljoin
@ -33,6 +33,7 @@ class ApiProvider:
self.retries = retries self.retries = retries
# NOTE: do not change this, due to crypto.com rate-limits # NOTE: do not change this, due to crypto.com rate-limits
# TODO: add more strict settings, req/per second or milliseconds
self.semaphore = asyncio.Semaphore(20) self.semaphore = asyncio.Semaphore(20)
if not auth_required: if not auth_required:
@ -44,6 +45,10 @@ class ApiProvider:
if not self.api_key or not self.api_secret: if not self.api_key or not self.api_secret:
raise ValueError('Provide api_key and api_secret') raise ValueError('Provide api_key and api_secret')
if platform.system() == 'Windows':
asyncio.set_event_loop_policy(
asyncio.WindowsSelectorEventLoopPolicy())
def read_keys_from_env(self): def read_keys_from_env(self):
self.api_key = os.environ.get('CRYPTOCOM_API_KEY', '') self.api_key = os.environ.get('CRYPTOCOM_API_KEY', '')
if not self.api_key: if not self.api_key:

Loading…
Cancel
Save