110 lines
3.9 KiB
Python
110 lines
3.9 KiB
Python
"""Setup for pip package."""
|
|
|
|
import importlib.util
|
|
import subprocess
|
|
|
|
import setuptools
|
|
from setuptools import Extension
|
|
|
|
spec = importlib.util.spec_from_file_location('package_info', 'megatron/core/package_info.py')
|
|
package_info = importlib.util.module_from_spec(spec)
|
|
spec.loader.exec_module(package_info)
|
|
|
|
|
|
__contact_emails__ = package_info.__contact_emails__
|
|
__contact_names__ = package_info.__contact_names__
|
|
__description__ = package_info.__description__
|
|
__download_url__ = package_info.__download_url__
|
|
__homepage__ = package_info.__homepage__
|
|
__keywords__ = package_info.__keywords__
|
|
__license__ = package_info.__license__
|
|
__package_name__ = package_info.__package_name__
|
|
__repository_url__ = package_info.__repository_url__
|
|
__version__ = package_info.__version__
|
|
|
|
|
|
with open("megatron/core/README.md", "r", encoding='utf-8') as fh:
|
|
long_description = fh.read()
|
|
long_description_content_type = "text/markdown"
|
|
|
|
###############################################################################
|
|
# Extension Making #
|
|
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #
|
|
|
|
extra_compile_args = (
|
|
subprocess.check_output(["python3", "-m", "pybind11", "--includes"])
|
|
.decode("utf-8")
|
|
.strip()
|
|
.split()
|
|
)
|
|
|
|
###############################################################################
|
|
|
|
setuptools.setup(
|
|
name=__package_name__,
|
|
# Versions should comply with PEP440. For a discussion on single-sourcing
|
|
# the version across setup.py and the project code, see
|
|
# https://packaging.python.org/en/latest/single_source_version.html
|
|
version=__version__,
|
|
description=__description__,
|
|
long_description=long_description,
|
|
long_description_content_type=long_description_content_type,
|
|
# The project's main homepage.
|
|
url=__repository_url__,
|
|
download_url=__download_url__,
|
|
# Author details
|
|
author=__contact_names__,
|
|
author_email=__contact_emails__,
|
|
# maintainer Details
|
|
maintainer=__contact_names__,
|
|
maintainer_email=__contact_emails__,
|
|
# The licence under which the project is released
|
|
license=__license__,
|
|
classifiers=[
|
|
# How mature is this project? Common values are
|
|
# 1 - Planning
|
|
# 2 - Pre-Alpha
|
|
# 3 - Alpha
|
|
# 4 - Beta
|
|
# 5 - Production/Stable
|
|
# 6 - Mature
|
|
# 7 - Inactive
|
|
'Development Status :: 5 - Production/Stable',
|
|
# Indicate who your project is intended for
|
|
'Intended Audience :: Developers',
|
|
'Intended Audience :: Science/Research',
|
|
'Intended Audience :: Information Technology',
|
|
# Indicate what your project relates to
|
|
'Topic :: Scientific/Engineering',
|
|
'Topic :: Scientific/Engineering :: Mathematics',
|
|
'Topic :: Scientific/Engineering :: Image Recognition',
|
|
'Topic :: Scientific/Engineering :: Artificial Intelligence',
|
|
'Topic :: Software Development :: Libraries',
|
|
'Topic :: Software Development :: Libraries :: Python Modules',
|
|
'Topic :: Utilities',
|
|
# Pick your license as you wish (should match "license" above)
|
|
'License :: OSI Approved :: BSD License',
|
|
# Supported python versions
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.8',
|
|
'Programming Language :: Python :: 3.9',
|
|
# Additional Setting
|
|
'Environment :: Console',
|
|
'Natural Language :: English',
|
|
'Operating System :: OS Independent',
|
|
],
|
|
packages=setuptools.find_namespace_packages(include=["megatron.core", "megatron.core.*"]),
|
|
ext_modules=[
|
|
Extension(
|
|
"megatron.core.datasets.helpers",
|
|
sources=["megatron/core/datasets/helpers.cpp"],
|
|
language="c++",
|
|
extra_compile_args=extra_compile_args,
|
|
)
|
|
],
|
|
# Add in any packaged data.
|
|
include_package_data=True,
|
|
# PyPI package information.
|
|
keywords=__keywords__,
|
|
)
|