Skip to content

Commit d144d3b

Browse files
committed
Bump chaindl version
1 parent 573f509 commit d144d3b

3 files changed

Lines changed: 93 additions & 155 deletions

File tree

backend/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ FROM python:3.11-slim
22

33
WORKDIR /app
44

5-
# TODO: Remove this
65
RUN apt-get update && apt-get install -y --no-install-recommends \
7-
git \
6+
xvfb \
87
&& rm -rf /var/lib/apt/lists/*
98

109
COPY requirements.txt .

backend/indicators/management/commands/fetchindicators.py

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,11 @@
22
import pandas as pd
33
import numpy as np
44
import yfinance as yf
5-
import os
6-
import json
75
from dotenv import load_dotenv
86
from datetime import datetime
97
from statsmodels.api import OLS, QuantReg, add_constant
108
from django.core.management.base import BaseCommand
119

12-
from selenium import webdriver
13-
from selenium.webdriver.chrome.options import Options
14-
from selenium.webdriver.common.by import By
15-
1610
from indicators.models import BitcoinPrice, Category, DataSource, DataSourceValue, Indicator, IndicatorValue
1711

1812
load_dotenv()
@@ -179,33 +173,6 @@ class Command(BaseCommand):
179173
}
180174
]
181175

182-
cryptoquant_indicators = [
183-
{
184-
"url": "https://cryptoquant.com/analytics/query/6463b524885a7d37a1630f8b?v=6463f8c9fb92892124bd5864",
185-
"url_name": "Adjusted_MVRV",
186-
"human_name": "Adjusted MVRV (Cryptoquant)",
187-
"col": "Adjusted_MVRV",
188-
"description": """The Adjusted MVRV indicator from Cryptoquant
189-
[1] https://cryptoquant.com/analytics/query/6463b524885a7d37a1630f8b?v=6494246f2ec8802caadae67f"""
190-
},
191-
{
192-
"url": "https://cryptoquant.com/analytics/query/65fdf974a3be2268b3e0befd?v=65fdfa6203ae7e44ef15d1f8",
193-
"url_name": "Sharpe_Ratio",
194-
"human_name": "Sharpe Ratio",
195-
"col": "sharpe_ratio_365",
196-
"description": """The Sharpe Ratio indicator from Cryptoquant
197-
[1] https://cryptoquant.com/analytics/query/65fdf974a3be2268b3e0befd?v=65fdfa6203ae7e44ef15d1f8"""
198-
},
199-
{
200-
"url": "https://cryptoquant.com/analytics/query/64faf6ae78b98c08bc94a362?v=64faf723d69757218b557162",
201-
"url_name": "VDD_Multiple",
202-
"human_name": "Value Days Destroyed Multiple",
203-
"col": "VDD_Multiple",
204-
"description": """The Value Days Destroyed Multiple indicator from Cryptoquant
205-
[1] https://cryptoquant.com/analytics/query/64faf6ae78b98c08bc94a362?v=64faf6ae78b98c08bc94a363"""
206-
}
207-
]
208-
209176
def __init__(self, *args, **kwargs):
210177
super().__init__(*args, **kwargs)
211178
self.price_df = None
@@ -220,16 +187,16 @@ def handle(self, *args, **options):
220187
self.stderr.write(self.style.ERROR("No price data available. Aborting internal calculations."))
221188
return
222189

223-
# fetch_of('Cryptoquant', cryptoquant_indicators, email=os.getenv("CRYPTOQUANT_EMAIL"), password=os.getenv("CRYPTOQUANT_PASSWORD"), proxy=os.getenv("SBR_WEBDRIVER"))
224-
self.stdout.write(self.style.SUCCESS('Successfully fetched Cryptoquant indicators'))
225190
self.fetch_of('CheckOnChain', self.checkonchain_indicators)
226191
self.stdout.write(self.style.SUCCESS('Successfully fetched CheckOnChain indicators'))
227192
self.fetch_of('ChainExposed', self.chainexposed_indicators)
228193
self.stdout.write(self.style.SUCCESS('Successfully fetched ChainExposed indicators'))
229194
self.fetch_of('Woocharts', self.woocharts_indicators)
230195
self.stdout.write(self.style.SUCCESS('Successfully fetched Woocharts indicators'))
231-
# fetch_of('BiTBO', bitbo_indicators, sbr_webdriver=os.getenv("SBR_WEBDRIVER"))
232-
# self.stdout.write(self.style.SUCCESS('Successfully fetched BiTBO indicators'))
196+
self.fetch_of('BiTBO', self.bitbo_indicators, xvfb=True)
197+
self.stdout.write(self.style.SUCCESS('Successfully fetched BiTBO indicators'))
198+
self.fetch_of('BMPro', self.bmpro_indicators, xvfb=True)
199+
self.stdout.write(self.style.SUCCESS('Successfully fetched BMPro indicators'))
233200

234201
# Internal calculations
235202
self.calculate_plrr()
@@ -241,8 +208,6 @@ def handle(self, *args, **options):
241208

242209
self.stdout.write(self.style.SUCCESS('Successfully calculated indicators'))
243210

244-
# fetch_of('BMPro', bmpro_indicators)
245-
# self.stdout.write(self.style.SUCCESS('Successfully fetched BMPro indicators'))
246211

247212
def fetch_prices(self):
248213
"""Fetch Bitcoin prices from Yahoo Finance"""

backend/requirements.txt

Lines changed: 88 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,185 +1,159 @@
1-
anyio==4.6.2.post1
2-
argon2-cffi==23.1.0
3-
argon2-cffi-bindings==21.2.0
4-
arrow==1.3.0
5-
asgiref==3.8.1
6-
asttokens==2.4.1
7-
async-lru==2.0.4
8-
attrs==24.2.0
9-
babel==2.16.0
1+
anyio==4.13.0
2+
argon2-cffi==25.1.0
3+
argon2-cffi-bindings==25.1.0
4+
arrow==1.4.0
5+
asgiref==3.11.1
6+
asttokens==3.0.1
7+
async-lru==2.3.0
8+
attrs==26.1.0
9+
babel==2.18.0
1010
beautifulsoup4==4.12.3
1111
behave==1.2.6
12-
bleach==6.2.0
13-
blinker==1.7.0
14-
Brotli==1.1.0
15-
certifi==2024.8.30
16-
cffi==1.17.1
12+
bleach==6.3.0
13+
certifi==2026.2.25
14+
cffi==2.0.0
1715
chardet==5.2.0
1816
charset-normalizer==3.3.2
1917
colorama==0.4.6
20-
comm==0.2.2
21-
cryptography==43.0.3
18+
comm==0.2.3
2219
cssselect==1.2.0
23-
debugpy==1.8.7
24-
decorator==5.1.1
20+
curl_cffi==0.14.0
21+
debugpy==1.8.20
22+
decorator==5.2.1
2523
defusedxml==0.7.1
24+
dj-database-url==3.1.2
2625
dj-rest-auth==6.0.0
27-
dj-database-url
2826
Django==5.1.2
2927
django-allauth==65.0.2
3028
django-cors-headers==4.5.0
31-
django-debug-toolbar==4.4.6
3229
django-filter==24.3
33-
django-redis==5.4.0
3430
djangorestframework==3.15.2
3531
djangorestframework-api-key==2.3.0
3632
djangorestframework-simplejwt==5.3.1
37-
exceptiongroup==1.2.2
33+
exceptiongroup==1.3.1
3834
execnet==2.1.1
39-
executing==2.1.0
35+
executing==2.2.1
4036
fasteners==0.19
41-
fastjsonschema==2.20.0
42-
filelock==3.16.1
37+
fastjsonschema==2.21.2
38+
filelock==3.25.2
4339
fqdn==1.5.1
44-
frozendict==2.4.6
40+
frozendict==2.4.7
4541
gunicorn==23.0.0
4642
h11==0.14.0
47-
h2==4.1.0
48-
hpack==4.0.0
49-
html5lib==1.1
50-
httpcore==1.0.6
43+
httpcore==1.0.8
5144
httpx==0.27.2
52-
hyperframe==6.0.1
53-
idna==3.10
45+
idna==3.7
5446
iniconfig==2.0.0
55-
ipykernel==6.29.5
47+
ipykernel==7.2.0
5648
ipython==8.29.0
57-
ipywidgets==8.1.5
5849
isoduration==20.11.0
59-
jedi==0.19.1
60-
Jinja2==3.1.4
61-
json5==0.9.25
62-
jsonpointer==3.0.0
63-
jsonschema==4.23.0
64-
jsonschema-specifications==2024.10.1
65-
jupyter==1.1.1
66-
jupyter-console==6.6.3
67-
jupyter-events==0.10.0
68-
jupyter-lsp==2.2.5
69-
jupyter_client==8.6.3
70-
jupyter_core==5.7.2
71-
jupyter_server==2.14.2
72-
jupyter_server_terminals==0.5.3
50+
jedi==0.19.2
51+
Jinja2==3.1.6
52+
json5==0.14.0
53+
jsonpointer==3.1.1
54+
jsonschema==4.26.0
55+
jsonschema-specifications==2025.9.1
56+
jupyter-events==0.12.0
57+
jupyter-lsp==2.3.0
58+
jupyter_client==8.8.0
59+
jupyter_core==5.9.1
60+
jupyter_server==2.17.0
61+
jupyter_server_terminals==0.5.4
7362
jupyterlab==4.2.5
7463
jupyterlab_pygments==0.3.0
75-
jupyterlab_server==2.27.3
76-
jupyterlab_widgets==3.0.13
77-
kaitaistruct==0.10
78-
lxml==5.3.0
79-
Markdown==3.7
64+
jupyterlab_server==2.28.0
65+
lark==1.3.1
8066
markdown-it-py==3.0.0
81-
MarkupSafe==3.0.2
82-
matplotlib-inline==0.1.7
67+
MarkupSafe==3.0.3
68+
matplotlib-inline==0.2.1
8369
mdurl==0.1.2
84-
mistune==3.0.2
85-
multitasking==0.0.11
86-
nbclient==0.10.0
87-
nbconvert==7.16.4
70+
mistune==3.2.0
71+
multitasking==0.0.12
72+
nbclient==0.10.4
73+
nbconvert==7.17.0
8874
nbformat==5.10.4
8975
nest-asyncio==1.6.0
9076
notebook==7.2.2
9177
notebook_shim==0.2.4
92-
numpy==2.1.2
93-
oauthlib==3.2.2
94-
chaindl @ git+https://github.com/dhruvan2006/chaindl.git@8f1482d
78+
numpy==2.4.4
9579
outcome==1.3.0.post0
96-
overrides==7.7.0
97-
packaging==24.1
98-
pandas==2.2.3
80+
packaging==26.0
81+
pandas==3.0.1
9982
pandocfilters==1.5.1
10083
parameterized==0.9.0
101-
parse==1.20.2
102-
parse_type==0.6.4
103-
parso==0.8.4
104-
patsy==0.5.6
105-
pdbp==1.5.4
84+
parse==1.21.1
85+
parse_type==0.6.6
86+
parso==0.8.6
87+
patsy==1.0.2
88+
pdbp==1.5.3
10689
peewee==3.17.7
10790
pexpect==4.9.0
108-
platformdirs==4.3.6
91+
platformdirs==4.9.4
10992
pluggy==1.5.0
110-
prometheus_client==0.21.0
111-
prompt_toolkit==3.0.48
112-
psutil==6.1.0
113-
psycopg2-binary
93+
prometheus_client==0.24.1
94+
prompt_toolkit==3.0.52
95+
protobuf==5.29.6
96+
psutil==7.2.2
97+
psycopg2-binary==2.9.11
11498
ptyprocess==0.7.0
11599
pure_eval==0.2.3
116100
py==1.11.0
117-
pyasn1==0.6.1
118-
pycparser==2.22
119-
pydivert==2.1.0
101+
pycparser==3.0
120102
Pygments==2.18.0
121-
PyJWT==2.9.0
122-
pynose==1.5.3
123-
pyOpenSSL==24.2.1
103+
PyJWT==2.12.1
104+
pynose==1.5.2
124105
pyotp==2.9.0
125-
pyparsing==3.2.0
126-
pyreadline3==3.5.4
127106
PySocks==1.7.1
128-
pytest==8.3.3
107+
pytest==8.3.1
129108
pytest-html==2.0.1
130109
pytest-metadata==3.1.1
131110
pytest-ordering==0.6
132111
pytest-rerunfailures==14.0
133112
pytest-xdist==3.6.1
134113
python-dateutil==2.9.0.post0
135114
python-dotenv==1.0.1
136-
python-json-logger==2.0.7
137-
python-memcached==1.62
115+
python-json-logger==4.1.0
138116
python-xlib==0.33
139-
pytz==2024.2
140-
PyYAML==6.0.2
141-
pyzmq==26.2.0
142-
redis==5.2.0
143-
referencing==0.35.1
117+
pytz==2026.1.post1
118+
PyYAML==6.0.3
119+
pyzmq==27.1.0
120+
referencing==0.37.0
144121
requests==2.31.0
145-
requests-oauthlib==2.0.0
146122
rfc3339-validator==0.1.4
147123
rfc3986-validator==0.1.1
148-
rich==13.9.2
149-
rpds-py==0.20.0
124+
rfc3987-syntax==1.1.0
125+
rich==13.7.1
126+
rpds-py==0.30.0
150127
sbvirtualdisplay==1.3.0
151-
scipy==1.14.1
152-
selenium==4.25.0
153-
selenium-wire==5.1.0
154-
seleniumbase==4.31.6
155-
Send2Trash==1.8.3
156-
setuptools==75.3.0
128+
scipy==1.17.1
129+
selenium==4.23.1
130+
seleniumbase==4.29.0
131+
Send2Trash==2.1.0
132+
setuptools==82.0.1
157133
six==1.16.0
158134
sniffio==1.3.1
159135
sortedcontainers==2.4.0
160-
soupsieve==2.6
161-
sqlparse==0.5.1
136+
soupsieve==2.5
137+
sqlparse==0.5.5
162138
stack-data==0.6.3
163-
statsmodels==0.14.4
139+
statsmodels==0.14.6
164140
tabcompleter==1.3.3
165141
terminado==0.18.1
166142
tinycss2==1.4.0
167-
tornado==6.4.1
143+
tornado==6.5.5
168144
traitlets==5.14.3
169-
trio==0.26.2
145+
trio==0.26.0
170146
trio-websocket==0.11.1
171-
types-python-dateutil==2.9.0.20241003
172-
typing_extensions==4.12.2
173-
tzdata==2024.2
147+
typing_extensions==4.15.0
148+
tzdata==2025.3
174149
uri-template==1.3.0
175150
urllib3==2.2.3
176-
wcwidth==0.2.13
177-
webcolors==24.8.0
151+
wcwidth==0.6.0
152+
webcolors==25.10.0
178153
webencodings==0.5.1
179154
websocket-client==1.8.0
180-
wheel==0.44.0
181-
whitenoise
182-
widgetsnbextension==4.0.13
155+
websockets==16.0
156+
wheel==0.46.3
157+
whitenoise==6.12.0
183158
wsproto==1.2.0
184159
yfinance==0.2.59
185-
zstandard==0.23.0

0 commit comments

Comments
 (0)