Moving to github workflows

api-breakage
Morty Space 4 years ago
parent 29a2f2942c
commit 984a2b6699
  1. 58
      .github/workflows/test.yml
  2. 5
      activate.sh
  3. 55
      azure-pipelines.yml
  4. 7
      generatestructs.py
  5. 5
      src/cryptocom/exchange/coins.py
  6. 4
      src/cryptocom/exchange/helpers.py
  7. 2
      src/cryptocom/exchange/market.py
  8. 26
      src/cryptocom/exchange/pairs.py

@ -0,0 +1,58 @@
---
name: Tests
'on':
push:
branches:
- main
- production
- feature/*
- fix/*
pull_request:
branches:
- main
- production
jobs:
test:
strategy:
max-parallel: 1
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10']
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Get Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Download cache for pip
uses: actions/cache@v2
with:
path: ~/.cache/pip
key: py-${{ matrix.python-version }}-poetry-pip-1.1.13
restore-keys: poetry-pip
- name: Install poetry
run: pip install poetry==1.1.13
- name: Download cache for poetry
id: poetry-install
uses: actions/cache@v2
with:
path: ./.venv/
key: py-${{ matrix.python-version }}-poetry-install-${{ hashFiles('poetry.lock') }}
restore-keys: poetry-install
- name: Install dependencies
if: steps.poetry-install.outputs.cache-hit != 'true'
run: rm -rf ./.venv/ && poetry install
- name: Download cache pre-commit
id: pre-commit-install
uses: actions/cache@v2
with:
path: ~/.cache/pre-commit
key: py-${{ matrix.python-version }}-pre-commit-install-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: pre-commit-install
- name: Verify pre-commit
run: poetry run pre-commit run -a
- name: Run test docs
run: . activate.sh && cd docs && make doctest && cd ..
- name: Run tests
run: . activate.sh && poetry run pytest -v --cov . --cov-report xml:coverage.xml

@ -1,7 +1,2 @@
find . -type f -name '*.py[co]' -delete
find . -type d -name '__pycache__' -delete
source ./venv/bin/activate
export CRYPTOCOM_API_KEY=PCuweiWhHJC339hHdMdcVC
export CRYPTOCOM_API_SECRET=mXYtwLajZdFGU56mDo8eqL

@ -1,25 +1,22 @@
---
trigger:
- master
- master
schedules:
- cron: "0 0 * * *"
displayName: Daily test run
branches:
include:
- master
always: true
- cron: 0 0 * * *
displayName: Daily test run
branches:
include:
- master
always: true
variables:
- name: CRYPTOCOM_API_KEY
value: PCuweiWhHJC339hHdMdcVC
- name: CRYPTOCOM_API_SECRET
value: mXYtwLajZdFGU56mDo8eqL
- name: CC_TEST_REPORTER_ID
value: 16bcfb0958d99f11456f8d80aeb5800d567724471e151fe6e74a4b329b45dcb6
- name: CRYPTOCOM_API_KEY
value: PCuweiWhHJC339hHdMdcVC
- name: CRYPTOCOM_API_SECRET
value: mXYtwLajZdFGU56mDo8eqL
- name: CC_TEST_REPORTER_ID
value: 16bcfb0958d99f11456f8d80aeb5800d567724471e151fe6e74a4b329b45dcb6
pool:
vmImage: 'ubuntu-20.04'
vmImage: ubuntu-20.04
strategy:
maxParallel: 1
matrix:
@ -35,12 +32,10 @@ steps:
- checkout: self
persistCredentials: true
clean: true
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
versionSpec: $(python.version)
displayName: Use Python $(python.version)
- script: |
python -m pip install --upgrade pip
pip install poetry
@ -48,8 +43,7 @@ steps:
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
chmod +x ./cc-test-reporter
./cc-test-reporter before-build
displayName: 'Install dependencies'
displayName: Install dependencies
- script: |
git pull origin master
poetry run python generatestructs.py
@ -58,11 +52,10 @@ steps:
git add -A .
git commit -m "[JOB] Updated API pairs and coins"
git push origin HEAD:master
displayName: 'Update API structs'
displayName: Update API structs
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
- script: |
cd docs && make doctest && cd ..
poetry run pytest -v --cov . --cov-report xml:coverage.xml
./cc-test-reporter after-build --exit-code $?
displayName: 'Run tests'
# - script: |
# cd docs && make doctest && cd ..
# poetry run pytest -v --cov . --cov-report xml:coverage.xml
# ./cc-test-reporter after-build --exit-code $?
# displayName: Run tests

@ -6,8 +6,7 @@ from cryptocom import exchange as cro
ALL_TEMPLATE = """
def all():
return [
value for name, value in globals().items()
if isinstance(value, {class_name})
value for name, value in globals().items() if isinstance(value, {})
]
"""
@ -31,7 +30,7 @@ async def main():
f"quantity_precision={pair.quantity_precision})\n"
for pair in sorted(pairs, key=lambda p: p.name)
]
+ ["\n", ALL_TEMPLATE.format(class_name="Pair")]
+ ["\n", ALL_TEMPLATE.format("Pair")]
)
with (SRC_PATH / "coins.py").open("w") as f:
@ -43,7 +42,7 @@ async def main():
f'{coin.name} = Coin("{coin.exchange_name}")\n'
for coin in sorted(coins, key=lambda c: c.name)
]
+ ["\n", ALL_TEMPLATE.format(class_name="Coin")]
+ ["\n", ALL_TEMPLATE.format("Coin")]
)

@ -112,6 +112,7 @@ KNC = Coin("KNC")
KP3R = Coin("KP3R")
KRL = Coin("KRL")
KSM = Coin("KSM")
LDO = Coin("LDO")
LINK = Coin("LINK")
LPT = Coin("LPT")
LRC = Coin("LRC")
@ -214,6 +215,7 @@ WAVES = Coin("WAVES")
WAXP = Coin("WAXP")
WBTC = Coin("WBTC")
WEMIX = Coin("WEMIX")
WOO = Coin("WOO")
XLM = Coin("XLM")
XRP = Coin("XRP")
XTZ = Coin("XTZ")
@ -227,6 +229,5 @@ ZRX = Coin("ZRX")
def all():
return [
value for name, value in globals().items()
if isinstance(value, Coin)
value for name, value in globals().items() if isinstance(value, Coin)
]

@ -1,5 +1,5 @@
def round_up(value: float, precision: int) -> float:
pwr = 10 ** precision
pwr = 10**precision
rounded = round((value * pwr) / pwr, precision)
if rounded < value:
rounded = round((value * pwr + 1) / pwr, precision)
@ -7,5 +7,5 @@ def round_up(value: float, precision: int) -> float:
def round_down(value: float, precision: int) -> float:
pwr = 10 ** precision
pwr = 10**precision
return round((value * pwr) / pwr, precision)

@ -1,4 +1,4 @@
from typing import Dict, List, AsyncGenerator
from typing import AsyncGenerator, Dict, List
from . import pairs
from .api import ApiProvider

@ -64,13 +64,16 @@ BTC_USDT = Pair("BTC_USDT", price_precision=2, quantity_precision=6)
C98_USDT = Pair("C98_USDT", price_precision=4, quantity_precision=2)
CELR_USDC = Pair("CELR_USDC", price_precision=6, quantity_precision=0)
CELR_USDT = Pair("CELR_USDT", price_precision=6, quantity_precision=1)
CHR_BTC = Pair("CHR_BTC", price_precision=10, quantity_precision=1)
CHR_USDT = Pair("CHR_USDT", price_precision=5, quantity_precision=1)
CHZ_BTC = Pair("CHZ_BTC", price_precision=10, quantity_precision=1)
CHZ_USDT = Pair("CHZ_USDT", price_precision=5, quantity_precision=2)
CKB_USDT = Pair("CKB_USDT", price_precision=6, quantity_precision=0)
COMP_BTC = Pair("COMP_BTC", price_precision=7, quantity_precision=4)
COMP_USDT = Pair("COMP_USDT", price_precision=2, quantity_precision=5)
COTI_BTC = Pair("COTI_BTC", price_precision=10, quantity_precision=1)
COTI_USDC = Pair("COTI_USDC", price_precision=5, quantity_precision=1)
COTI_USDT = Pair("COTI_USDT", price_precision=5, quantity_precision=1)
CQT_USDT = Pair("CQT_USDT", price_precision=4, quantity_precision=2)
CRO_BTC = Pair("CRO_BTC", price_precision=9, quantity_precision=2)
CRO_USDC = Pair("CRO_USDC", price_precision=5, quantity_precision=3)
@ -107,17 +110,17 @@ EFI_USDT = Pair("EFI_USDT", price_precision=4, quantity_precision=2)
EGLD_BTC = Pair("EGLD_BTC", price_precision=7, quantity_precision=4)
EGLD_USDC = Pair("EGLD_USDC", price_precision=2, quantity_precision=4)
EGLD_USDT = Pair("EGLD_USDT", price_precision=4, quantity_precision=3)
ELON_USDC = Pair("ELON_USDC", price_precision=10, quantity_precision=0)
ELON_USDT = Pair("ELON_USDT", price_precision=10, quantity_precision=0)
ENJ_BTC = Pair("ENJ_BTC", price_precision=9, quantity_precision=2)
ENJ_CRO = Pair("ENJ_CRO", price_precision=3, quantity_precision=2)
ENJ_USDC = Pair("ENJ_USDC", price_precision=4, quantity_precision=2)
ENJ_USDT = Pair("ENJ_USDT", price_precision=5, quantity_precision=1)
ENS_BTC = Pair("ENS_BTC", price_precision=8, quantity_precision=3)
ENS_USDC = Pair("ENS_USDC", price_precision=3, quantity_precision=3)
ENS_USDT = Pair("ENS_USDT", price_precision=3, quantity_precision=3)
EOS_BTC = Pair("EOS_BTC", price_precision=8, quantity_precision=2)
EOS_USDT = Pair("EOS_USDT", price_precision=4, quantity_precision=2)
EPS_BTC = Pair("EPS_BTC", price_precision=10, quantity_precision=1)
EPS_USDC = Pair("EPS_USDC", price_precision=5, quantity_precision=1)
EPS_USDT = Pair("EPS_USDT", price_precision=5, quantity_precision=1)
ERN_USDT = Pair("ERN_USDT", price_precision=4, quantity_precision=2)
ETC_BTC = Pair("ETC_BTC", price_precision=7, quantity_precision=3)
ETC_USDT = Pair("ETC_USDT", price_precision=3, quantity_precision=3)
@ -129,10 +132,12 @@ FARM_USDC = Pair("FARM_USDC", price_precision=2, quantity_precision=4)
FET_USDT = Pair("FET_USDT", price_precision=5, quantity_precision=1)
FIL_BTC = Pair("FIL_BTC", price_precision=7, quantity_precision=3)
FIL_USDT = Pair("FIL_USDT", price_precision=3, quantity_precision=3)
FITFI_BTC = Pair("FITFI_BTC", price_precision=9, quantity_precision=2)
FITFI_USDT = Pair("FITFI_USDT", price_precision=5, quantity_precision=1)
FLOW_BTC = Pair("FLOW_BTC", price_precision=8, quantity_precision=2)
FLOW_USDC = Pair("FLOW_USDC", price_precision=4, quantity_precision=2)
FLOW_USDT = Pair("FLOW_USDT", price_precision=3, quantity_precision=4)
FLUX_USDT = Pair("FLUX_USDT", price_precision=4, quantity_precision=2)
FORTH_USDT = Pair("FORTH_USDT", price_precision=3, quantity_precision=3)
FTM_BTC = Pair("FTM_BTC", price_precision=9, quantity_precision=2)
FTM_USDC = Pair("FTM_USDC", price_precision=4, quantity_precision=2)
@ -148,6 +153,7 @@ GLMR_BTC = Pair("GLMR_BTC", price_precision=9, quantity_precision=2)
GLMR_USDT = Pair("GLMR_USDT", price_precision=4, quantity_precision=2)
GLM_USDT = Pair("GLM_USDT", price_precision=5, quantity_precision=1)
GODS_USDT = Pair("GODS_USDT", price_precision=4, quantity_precision=2)
GRT_BTC = Pair("GRT_BTC", price_precision=10, quantity_precision=1)
GRT_CRO = Pair("GRT_CRO", price_precision=3, quantity_precision=2)
GRT_USDT = Pair("GRT_USDT", price_precision=5, quantity_precision=2)
GTC_USDT = Pair("GTC_USDT", price_precision=3, quantity_precision=3)
@ -176,6 +182,7 @@ IOTX_USDC = Pair("IOTX_USDC", price_precision=6, quantity_precision=0)
IOTX_USDT = Pair("IOTX_USDT", price_precision=5, quantity_precision=1)
IQ_USDT = Pair("IQ_USDT", price_precision=6, quantity_precision=0)
JASMY_BTC = Pair("JASMY_BTC", price_precision=10, quantity_precision=1)
JASMY_USDC = Pair("JASMY_USDC", price_precision=5, quantity_precision=1)
JASMY_USDT = Pair("JASMY_USDT", price_precision=5, quantity_precision=1)
JOE_USDT = Pair("JOE_USDT", price_precision=5, quantity_precision=1)
KAVA_USDT = Pair("KAVA_USDT", price_precision=4, quantity_precision=2)
@ -187,6 +194,8 @@ KRL_USDT = Pair("KRL_USDT", price_precision=5, quantity_precision=1)
KSM_BTC = Pair("KSM_BTC", price_precision=7, quantity_precision=4)
KSM_USDC = Pair("KSM_USDC", price_precision=2, quantity_precision=4)
KSM_USDT = Pair("KSM_USDT", price_precision=3, quantity_precision=3)
LDO_BTC = Pair("LDO_BTC", price_precision=9, quantity_precision=2)
LDO_USDT = Pair("LDO_USDT", price_precision=4, quantity_precision=2)
LINK_BTC = Pair("LINK_BTC", price_precision=7, quantity_precision=2)
LINK_CRO = Pair("LINK_CRO", price_precision=2, quantity_precision=2)
LINK_USDC = Pair("LINK_USDC", price_precision=3, quantity_precision=3)
@ -197,9 +206,6 @@ LSK_USDT = Pair("LSK_USDT", price_precision=4, quantity_precision=2)
LTC_BTC = Pair("LTC_BTC", price_precision=6, quantity_precision=4)
LTC_USDC = Pair("LTC_USDC", price_precision=2, quantity_precision=4)
LTC_USDT = Pair("LTC_USDT", price_precision=2, quantity_precision=5)
LUNA_BTC = Pair("LUNA_BTC", price_precision=7, quantity_precision=3)
LUNA_USDC = Pair("LUNA_USDC", price_precision=3, quantity_precision=3)
LUNA_USDT = Pair("LUNA_USDT", price_precision=4, quantity_precision=2)
MANA_BTC = Pair("MANA_BTC", price_precision=9, quantity_precision=1)
MANA_USDC = Pair("MANA_USDC", price_precision=4, quantity_precision=2)
MANA_USDT = Pair("MANA_USDT", price_precision=5, quantity_precision=2)
@ -211,7 +217,6 @@ MBL_BTC = Pair("MBL_BTC", price_precision=10, quantity_precision=0)
MBL_USDT = Pair("MBL_USDT", price_precision=6, quantity_precision=0)
MC_USDT = Pair("MC_USDT", price_precision=4, quantity_precision=2)
MDT_USDT = Pair("MDT_USDT", price_precision=6, quantity_precision=0)
MIR_USDT = Pair("MIR_USDT", price_precision=4, quantity_precision=2)
MKR_USDT = Pair("MKR_USDT", price_precision=2, quantity_precision=6)
MLN_USDC = Pair("MLN_USDC", price_precision=3, quantity_precision=3)
MMF_USDC = Pair("MMF_USDC", price_precision=4, quantity_precision=2)
@ -234,6 +239,7 @@ OGN_USDT = Pair("OGN_USDT", price_precision=4, quantity_precision=2)
OMG_BTC = Pair("OMG_BTC", price_precision=8, quantity_precision=4)
OMG_USDT = Pair("OMG_USDT", price_precision=4, quantity_precision=4)
ONEINCH_BTC = Pair("1INCH_BTC", price_precision=9, quantity_precision=2)
ONEINCH_USDC = Pair("1INCH_USDC", price_precision=4, quantity_precision=2)
ONEINCH_USDT = Pair("1INCH_USDT", price_precision=4, quantity_precision=2)
ONE_BTC = Pair("ONE_BTC", price_precision=10, quantity_precision=1)
ONE_USDC = Pair("ONE_USDC", price_precision=5, quantity_precision=1)
@ -282,6 +288,7 @@ SDN_USDC = Pair("SDN_USDC", price_precision=4, quantity_precision=2)
SDN_USDT = Pair("SDN_USDT", price_precision=4, quantity_precision=2)
SHIB_USDC = Pair("SHIB_USDC", price_precision=9, quantity_precision=0)
SHIB_USDT = Pair("SHIB_USDT", price_precision=9, quantity_precision=0)
SKL_BTC = Pair("SKL_BTC", price_precision=10, quantity_precision=1)
SKL_USDT = Pair("SKL_USDT", price_precision=5, quantity_precision=2)
SLP_BTC = Pair("SLP_BTC", price_precision=10, quantity_precision=0)
SLP_USDC = Pair("SLP_USDC", price_precision=6, quantity_precision=0)
@ -294,6 +301,7 @@ SPELL_USDC = Pair("SPELL_USDC", price_precision=6, quantity_precision=0)
SPELL_USDT = Pair("SPELL_USDT", price_precision=7, quantity_precision=0)
SPS_USDT = Pair("SPS_USDT", price_precision=5, quantity_precision=1)
SRM_USDC = Pair("SRM_USDC", price_precision=4, quantity_precision=2)
SRM_USDT = Pair("SRM_USDT", price_precision=4, quantity_precision=2)
STORJ_USDT = Pair("STORJ_USDT", price_precision=4, quantity_precision=2)
STRAX_USDT = Pair("STRAX_USDT", price_precision=4, quantity_precision=2)
STX_BTC = Pair("STX_BTC", price_precision=9, quantity_precision=2)
@ -333,6 +341,7 @@ WBTC_BTC = Pair("WBTC_BTC", price_precision=4, quantity_precision=6)
WBTC_USDC = Pair("WBTC_USDC", price_precision=2, quantity_precision=6)
WBTC_USDT = Pair("WBTC_USDT", price_precision=2, quantity_precision=6)
WEMIX_USDT = Pair("WEMIX_USDT", price_precision=4, quantity_precision=2)
WOO_USDT = Pair("WOO_USDT", price_precision=5, quantity_precision=1)
XLM_BTC = Pair("XLM_BTC", price_precision=9, quantity_precision=0)
XLM_USDC = Pair("XLM_USDC", price_precision=5, quantity_precision=1)
XLM_USDT = Pair("XLM_USDT", price_precision=5, quantity_precision=1)
@ -355,6 +364,5 @@ ZRX_USDT = Pair("ZRX_USDT", price_precision=4, quantity_precision=2)
def all():
return [
value for name, value in globals().items()
if isinstance(value, Pair)
value for name, value in globals().items() if isinstance(value, Pair)
]

Loading…
Cancel
Save