You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

setup.py 3.0 kB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import os
  2. from setuptools import find_packages, setup
  3. def read(rel_path: str) -> str:
  4. here = os.path.abspath(os.path.dirname(__file__))
  5. with open(os.path.join(here, rel_path), encoding="utf-8") as fp:
  6. return fp.read()
  7. def get_version(rel_path: str) -> str:
  8. for line in read(rel_path).splitlines():
  9. if line.startswith("__version__"):
  10. delim = '"' if '"' in line else "'"
  11. return line.split(delim)[1]
  12. raise RuntimeError("Unable to find version string.")
  13. # Package meta-data.
  14. NAME = "learnware"
  15. DESCRIPTION = "learnware market project"
  16. REQUIRES_PYTHON = ">=3.6.0"
  17. VERSION = get_version("learnware/__init__.py")
  18. # BEFORE importing setuptools, remove MANIFEST. Otherwise it may not be
  19. # properly updated when the contents of directories change (true for distutils,
  20. # not sure about setuptools).
  21. if os.path.exists("MANIFEST"):
  22. os.remove("MANIFEST")
  23. MACOS = 0
  24. WINDOWS = 1
  25. LINUX = 2
  26. def get_platform():
  27. import platform
  28. sys_platform = platform.platform().lower()
  29. if "windows" in sys_platform:
  30. return WINDOWS
  31. elif "macos" in sys_platform:
  32. return MACOS
  33. elif "linux" in sys_platform:
  34. return LINUX
  35. raise SystemError("Learnware only support MACOS/Linux/Windows")
  36. # What packages are required for this module to be executed?
  37. # `estimator` may depend on other packages. In order to reduce dependencies, it is not written here.
  38. REQUIRED = [
  39. "numpy>=1.20.0, <1.24",
  40. "pandas>=0.25.1",
  41. "scipy>=1.0.0",
  42. "matplotlib>=3.1.3",
  43. "torch>=1.11.0",
  44. "cvxopt>=1.3.0",
  45. "tqdm>=4.65.0",
  46. "scikit-learn>=0.22",
  47. "joblib>=1.2.0",
  48. "pyyaml>=6.0",
  49. "fire>=0.3.1",
  50. "lightgbm>=3.3.0",
  51. "psutil>=5.9.4",
  52. "torchvision>=0.15.1",
  53. ]
  54. if get_platform() != MACOS:
  55. REQUIRED.append("faiss-cpu>=1.7.1")
  56. here = os.path.abspath(os.path.dirname(__file__))
  57. with open(os.path.join(here, "README.md"), encoding="utf-8") as f:
  58. long_description = f.read()
  59. if __name__ == "__main__":
  60. setup(
  61. name=NAME,
  62. version=VERSION,
  63. license="MIT Licence",
  64. url="https://git.nju.edu.cn/learnware/learnware-market",
  65. packages=find_packages(),
  66. include_package_data=True,
  67. description=DESCRIPTION,
  68. long_description=long_description,
  69. long_description_content_type="text/markdown",
  70. python_requires=REQUIRES_PYTHON,
  71. install_requires=REQUIRED,
  72. classifiers=[
  73. "Intended Audience :: Science/Research",
  74. "Intended Audience :: Developers",
  75. "Programming Language :: Python",
  76. "Topic :: Software Development",
  77. "Topic :: Scientific/Engineering",
  78. "Operating System :: POSIX :: Linux",
  79. "Operating System :: Microsoft :: Windows",
  80. "Operating System :: MacOS",
  81. "Programming Language :: Python :: 3.6",
  82. "Programming Language :: Python :: 3.7",
  83. "Programming Language :: Python :: 3.8",
  84. ],
  85. )

基于学件范式,全流程地支持学件上传、检测、组织、查搜、部署和复用等功能。同时,该仓库作为北冥坞系统的引擎,支撑北冥坞系统的核心功能。