Spaces:
Running
Running
remove operational script from the public space
Browse files- publish_prices.py +0 -84
publish_prices.py
DELETED
|
@@ -1,84 +0,0 @@
|
|
| 1 |
-
# -*- coding: utf-8 -*-
|
| 2 |
-
"""์์ธ ๋ฐํ๊ธฐ โ ๋คํธ์ํฌ๊ฐ ๋๋ ๊ณณ์์ ๋๋ ค ๋ฐ์ดํฐ์
์ ์ฌ๋ฆฐ๋ค.
|
| 3 |
-
|
| 4 |
-
์ ํ์ํ๊ฐ
|
| 5 |
-
HF Space์์ YahooยทStooqยทCoinGecko๊ฐ ์ ๋ถ ๋ฐ์ดํฐ์ผํฐ IP๋ฅผ ๋ง๋๋ค(์ค์ธก:
|
| 6 |
-
429 / ๋ด์ฐจ๋จ / ์ฐจ๋จ). ๋ฐ๊นฅ ์ธํฐ๋ท ์์ฒด๋ ๋๋๋ฐ ์์ธ ์ ๊ณต์๋ง ๋งํ๋ค.
|
| 7 |
-
๊ทธ๋์ ์๋ฒ๊ฐ ์์ธ๋ฅผ '๊ฐ์ ธ์ค์ง' ์๊ณ '๋ฐ๊ฒ' ํ๋ค.
|
| 8 |
-
|
| 9 |
-
์ด๋์ ๋๋ฆฌ๋
|
| 10 |
-
๋ณธ PC ๋๋ ์ (H100). ๋ ๋ค ์ผ๋ฐ ํ์ ์ด๋ผ ์์ธ ์ ๊ณต์๊ฐ ๋ง์ง ์๋๋ค.
|
| 11 |
-
cron / ์์
์ค์ผ์ค๋ฌ๋ก ํ๋ฃจ ๋ช ๋ฒ ๋๋ฆฐ๋ค.
|
| 12 |
-
|
| 13 |
-
๐ด ๋ฐํ์ ์คํจํ๋ฉด **์ฌ๋ฆฌ์ง ์๋๋ค**. ๋ฐ์ชฝ ํ์ผ์ ์ฌ๋ฆฌ๋ฉด ๊ทธ๋ ์ ์ฐธ๊ฐ์์
|
| 14 |
-
์์ต๋ฅ ์ด ํ์ด์ง๋ค. ์ด์ ํ์ผ์ ๊ทธ๋๋ก ๋๋ ํธ์ด ์ธ์ ๋ ๋ซ๋ค.
|
| 15 |
-
|
| 16 |
-
python publish_prices.py # ๋ฐํ
|
| 17 |
-
python publish_prices.py --dry # ๋ฐ์๋ง ๋ณด๊ณ ์ ์ฌ๋ฆผ
|
| 18 |
-
"""
|
| 19 |
-
import os, sys, io
|
| 20 |
-
import pandas as pd
|
| 21 |
-
|
| 22 |
-
HERE = os.path.dirname(os.path.abspath(__file__))
|
| 23 |
-
sys.path[:0] = [os.path.join(HERE, "app"), HERE]
|
| 24 |
-
import fetch as FE
|
| 25 |
-
|
| 26 |
-
REPO = os.environ.get("FINCHAL_FEED", "FINAL-Bench/finchal-prices")
|
| 27 |
-
ASSETS = ["NVDA", "BTC", "GOLD", "OIL"]
|
| 28 |
-
MIN_BARS = 400 # 5๋
์น๋ฅผ ๊ธฐ๋ํ๋ค. ์ด๋ณด๋ค ์ ์ผ๋ฉด ์์ค๊ฐ ๋ฐ์ชฝ์ด๋ค
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
def collect():
|
| 32 |
-
"""์ ์ข
๋ชฉ์ ๋ชจ์ ์จ๋ค. ํ๋๋ผ๋ ๋ชป ๋ฐ์ผ๋ฉด ๊ทธ ์ฌ์ค์ ๊ทธ๋๋ก ๋๋ ค์ค๋ค."""
|
| 33 |
-
out, bad = {}, []
|
| 34 |
-
for a in ASSETS:
|
| 35 |
-
# ํผ๋ ์์ ์ ๊ฑด๋๋ด๋ค โ ์๊ธฐ๊ฐ ์ด ๊ฑธ ๋ค์ ์ฝ์ด ์ฌ๋ฆฌ๋ฉด ๊ฐฑ์ ์ด ๋ฉ์ถ๋ค
|
| 36 |
-
ladder = [(n, f) for n, f in FE.LADDER if n != "feed"]
|
| 37 |
-
keep = FE.LADDER
|
| 38 |
-
FE.LADDER = ladder
|
| 39 |
-
try:
|
| 40 |
-
s, src, trail = FE.daily(a, 2200)
|
| 41 |
-
finally:
|
| 42 |
-
FE.LADDER = keep
|
| 43 |
-
if s is None or len(s) < MIN_BARS:
|
| 44 |
-
bad.append((a, trail))
|
| 45 |
-
print(" %-5s ์คํจ %s" % (a, " ยท ".join(trail)))
|
| 46 |
-
continue
|
| 47 |
-
out[a] = s
|
| 48 |
-
print(" %-5s %-6s %4d๋ด %s ๋ง์ง๋ง %.4f"
|
| 49 |
-
% (a, src, len(s), s.index[-1].date(), float(s.iloc[-1])))
|
| 50 |
-
return out, bad
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
def publish(data, dry=False):
|
| 54 |
-
from huggingface_hub import HfApi
|
| 55 |
-
tok = os.environ.get("HF_TOKEN")
|
| 56 |
-
if not tok:
|
| 57 |
-
raise SystemExit("HF_TOKEN ์ด ํ์ํฉ๋๋ค")
|
| 58 |
-
api = HfApi(token=tok)
|
| 59 |
-
api.create_repo(REPO, repo_type="dataset", private=True, exist_ok=True)
|
| 60 |
-
for a, s in data.items():
|
| 61 |
-
d = pd.DataFrame({"date": s.index.strftime("%Y-%m-%d"),
|
| 62 |
-
"close": s.values})
|
| 63 |
-
buf = io.BytesIO(d.to_csv(index=False).encode())
|
| 64 |
-
if dry:
|
| 65 |
-
print(" (๋ชจ์) prices/%s.csv %dํ" % (a, len(d)))
|
| 66 |
-
continue
|
| 67 |
-
api.upload_file(path_or_fileobj=buf, path_in_repo="prices/%s.csv" % a,
|
| 68 |
-
repo_id=REPO, repo_type="dataset",
|
| 69 |
-
commit_message="prices %s %s" % (a, s.index[-1].date()))
|
| 70 |
-
print(" ์ฌ๋ฆผ prices/%s.csv %dํ" % (a, len(d)))
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
if __name__ == "__main__":
|
| 74 |
-
dry = "--dry" in sys.argv
|
| 75 |
-
print("์์ธ ์์ง")
|
| 76 |
-
data, bad = collect()
|
| 77 |
-
if not data:
|
| 78 |
-
raise SystemExit("๐ด ํ ์ข
๋ชฉ๋ ๋ชป ๋ฐ์์ต๋๋ค. ์ฌ๋ฆฌ์ง ์์ต๋๋ค.")
|
| 79 |
-
print("\n๋ฐํ โ %s" % REPO)
|
| 80 |
-
publish(data, dry)
|
| 81 |
-
if bad:
|
| 82 |
-
# ๋ฐ์ ๊ฒ๋ง ์ฌ๋ฆฌ๊ณ , ๋ชป ๋ฐ์ ์ข
๋ชฉ์ ์ด์ ํ์ผ์ด ๊ทธ๋๋ก ๋จ๋๋ค.
|
| 83 |
-
print("\n๐ด ์คํจ %d์ข
๋ชฉ โ ์ด์ ํ์ผ ์ ์ง: %s"
|
| 84 |
-
% (len(bad), ", ".join(a for a, _ in bad)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|