parent
f1dd0aa64f
commit
a9ec2702db
@ -0,0 +1,71 @@ |
||||
import httpx |
||||
from httpx import BasicAuth, Timeout |
||||
|
||||
|
||||
def login(): |
||||
"""登录WorldQuant Brain API""" |
||||
try: |
||||
# 从nacos获取账号密码 |
||||
with httpx.Client(timeout=10.0) as temp_client: |
||||
nacos_resp = temp_client.get( |
||||
'http://192.168.31.41:30848/nacos/v1/cs/configs?dataId=wq_account&group=quantify' |
||||
) |
||||
|
||||
if nacos_resp.status_code != 200: |
||||
print('获取账号密码失败') |
||||
return False |
||||
|
||||
config = nacos_resp.json() |
||||
username = config.get('user_name') |
||||
password = config.get('password') |
||||
|
||||
if not username or not password: |
||||
print('账号密码不完整') |
||||
return False |
||||
|
||||
print(f"正在登录账户: {username}") |
||||
|
||||
# 创建客户端并设置超时(关键修复) |
||||
# 设置更长的超时时间:连接30秒,读取60秒 |
||||
timeout = Timeout(connect=30.0, read=60.0, write=30.0, pool=30.0) |
||||
client = httpx.Client( |
||||
auth=BasicAuth(username, password), |
||||
timeout=timeout |
||||
) |
||||
|
||||
# 发送登录请求 |
||||
response = client.post( |
||||
'https://api.worldquantbrain.com/authentication') |
||||
|
||||
if response.status_code == 201: |
||||
print("登录成功!") |
||||
# 登录成功后将client对象返回出来 |
||||
return client |
||||
else: |
||||
print( |
||||
f"登录失败: {response.status_code} - {response.text}") |
||||
client.close() |
||||
return False |
||||
|
||||
except Exception as e: |
||||
print(f"登录异常: {e}") |
||||
return False |
||||
|
||||
|
||||
def fetch_alpha_by_id(alpha_id: str, client: httpx.Client): |
||||
"""根据Alpha ID获取Alpha详情""" |
||||
url = f"https://api.worldquantbrain.com/alphas/{alpha_id}" |
||||
response = client.get(url) |
||||
if response.status_code == 200: |
||||
return response.json() |
||||
else: |
||||
return {} |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
client = login() |
||||
if not client: |
||||
exit(1) |
||||
|
||||
alpha = fetch_alpha_by_id('O0mnm8zd', client) |
||||
print(alpha) |
||||
Loading…
Reference in new issue