setup.py 3.93 KB
Newer Older
liangjing's avatar
v1  
liangjing committed
1
2
3
"""Setup for pip package."""

import importlib.util
liangjing's avatar
liangjing committed
4
5
import subprocess

liangjing's avatar
v1  
liangjing committed
6
import setuptools
liangjing's avatar
liangjing committed
7
from setuptools import Extension
liangjing's avatar
v1  
liangjing committed
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

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__


liangjing's avatar
liangjing committed
26
27
28
with open("megatron/core/README.md", "r", encoding='utf-8') as fh:
    long_description = fh.read()
long_description_content_type = "text/markdown"
liangjing's avatar
v1  
liangjing committed
29
30

###############################################################################
liangjing's avatar
liangjing committed
31
#                             Extension Making                                #
liangjing's avatar
v1  
liangjing committed
32
33
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #

liangjing's avatar
liangjing committed
34
35
36
37
38
39
extra_compile_args = (
    subprocess.check_output(["python3", "-m", "pybind11", "--includes"])
    .decode("utf-8")
    .strip()
    .split()
)
liangjing's avatar
v1  
liangjing committed
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

###############################################################################

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',
    ],
liangjing's avatar
liangjing committed
96
97
98
99
100
101
102
103
104
    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,
        )
    ],
liangjing's avatar
v1  
liangjing committed
105
106
107
108
    # Add in any packaged data.
    include_package_data=True,
    # PyPI package information.
    keywords=__keywords__,
Jared Casper's avatar
Jared Casper committed
109
)