2020-09-22 01:43:21 +00:00
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
import io
import os
import numpy
from setuptools import find_packages , setup , Extension
# Package meta-data.
2020-09-29 02:41:58 +08:00
NAME = " pyqlib "
2020-09-23 23:01:39 -05:00
DESCRIPTION = " A Quantitative-research Platform "
2020-09-22 01:43:21 +00:00
REQUIRES_PYTHON = " >=3.5.0 "
2020-12-04 09:45:00 +08:00
2021-02-03 05:11:39 +00:00
VERSION = " 0.6.3.99 "
2020-09-22 01:43:21 +00:00
# Detect Cython
try :
import Cython
ver = Cython . __version__
_CYTHON_INSTALLED = ver > = " 0.28 "
except ImportError :
_CYTHON_INSTALLED = False
if not _CYTHON_INSTALLED :
print ( " Required Cython version >= 0.28 is not detected! " )
print ( ' Please run " pip install --upgrade cython " first. ' )
exit ( - 1 )
# What packages are required for this module to be executed?
# `estimator` may depend on other packages. In order to reduce dependencies, it is not written here.
REQUIRED = [
2021-02-04 12:14:31 +08:00
" numpy>=1.12.0 " ,
2020-09-22 01:43:21 +00:00
" pandas>=0.25.1 " ,
" scipy>=1.0.0 " ,
" requests>=2.18.0 " ,
" sacred>=0.7.4 " ,
" python-socketio==3.1.2 " ,
" redis>=3.0.1 " ,
" python-redis-lock>=3.3.1 " ,
" schedule>=0.6.0 " ,
" cvxpy==1.0.21 " ,
" hyperopt==0.1.1 " ,
2020-11-25 12:58:43 +00:00
" fire>=0.3.1 " ,
2020-09-22 01:43:21 +00:00
" statsmodels " ,
" xlrd>=1.0.0 " ,
2020-11-19 22:48:24 +08:00
" plotly==4.12.0 " ,
2020-09-22 01:43:21 +00:00
" matplotlib==3.1.3 " ,
" tables>=3.6.1 " ,
" pyyaml>=5.3.1 " ,
2020-11-24 13:37:08 +00:00
" mlflow>=1.12.1 " ,
2020-09-22 01:43:21 +00:00
" tqdm " ,
" loguru " ,
" lightgbm " ,
" tornado " ,
2020-11-11 09:34:10 +08:00
" joblib>=0.17.0 " ,
2020-11-25 13:04:14 +00:00
" ruamel.yaml>=0.16.12 " ,
2020-09-22 01:43:21 +00:00
]
# Numpy include
NUMPY_INCLUDE = numpy . get_include ( )
here = os . path . abspath ( os . path . dirname ( __file__ ) )
2020-10-09 14:33:29 +08:00
with open ( os . path . join ( here , " README.md " ) , encoding = " utf-8 " ) as f :
2020-09-29 02:41:58 +08:00
long_description = f . read ( )
2020-09-22 01:43:21 +00:00
# Cython Extensions
extensions = [
Extension (
" qlib.data._libs.rolling " ,
[ " qlib/data/_libs/rolling.pyx " ] ,
language = " c++ " ,
include_dirs = [ NUMPY_INCLUDE ] ,
) ,
Extension (
" qlib.data._libs.expanding " ,
[ " qlib/data/_libs/expanding.pyx " ] ,
language = " c++ " ,
include_dirs = [ NUMPY_INCLUDE ] ,
) ,
]
# Where the magic happens:
setup (
name = NAME ,
version = VERSION ,
2020-10-09 14:33:29 +08:00
license = " MIT Licence " ,
url = " https://github.com/microsoft/qlib " ,
2020-09-22 01:43:21 +00:00
description = DESCRIPTION ,
long_description = long_description ,
2020-10-09 14:33:29 +08:00
long_description_content_type = " text/markdown " ,
2020-09-22 01:43:21 +00:00
python_requires = REQUIRES_PYTHON ,
2020-12-10 07:23:20 +00:00
packages = find_packages ( exclude = ( " tests " , ) ) ,
2020-09-22 01:43:21 +00:00
# if your package is a single module, use this instead of 'packages':
# py_modules=['qlib'],
entry_points = {
# 'console_scripts': ['mycli=mymodule:cli'],
" console_scripts " : [
2020-11-22 03:17:50 +00:00
" qrun=qlib.workflow.cli:run " ,
2020-09-22 01:43:21 +00:00
] ,
} ,
ext_modules = extensions ,
install_requires = REQUIRED ,
include_package_data = True ,
classifiers = [
# Trove classifiers
# Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers
# 'License :: OSI Approved :: MIT License',
2020-09-29 02:41:58 +08:00
" Operating System :: POSIX :: Linux " ,
" Operating System :: Microsoft :: Windows " ,
2020-09-30 14:01:40 +08:00
" Operating System :: MacOS " ,
2020-09-29 02:41:58 +08:00
" License :: OSI Approved :: MIT License " ,
2020-09-22 01:43:21 +00:00
" Development Status :: 3 - Alpha " ,
" Programming Language :: Python " ,
" Programming Language :: Python :: 3 " ,
" Programming Language :: Python :: 3.6 " ,
2020-09-29 02:41:58 +08:00
" Programming Language :: Python :: 3.7 " ,
" Programming Language :: Python :: 3.8 " ,
2020-09-22 01:43:21 +00:00
] ,
2020-12-10 07:30:00 +00:00
)