File: setup.py

package info (click to toggle)
gpustat 1.1.1-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 284 kB
  • sloc: python: 1,522; makefile: 2
file content (138 lines) | stat: -rw-r--r-- 4,167 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/usr/bin/env python

import sys
import os
import re
from setuptools import setup, Command

__PATH__ = os.path.abspath(os.path.dirname(__file__))


def read_readme():
    with open('README.md') as f:
        return f.read()


def read_version():
    try:
        import setuptools_scm
    except ImportError as ex:
        raise ImportError(
            "setuptools_scm not found. When running setup.py directly, "
            "setuptools_scm needs to be installed manually. "
            "Or consider running `pip install -e .` instead."
        )
    version = setuptools_scm.get_version()
    setuptools_scm.dump_version(root=__PATH__, version=version,
                                write_to='gpustat/_version.py')
    return version


if os.getenv("GPUSTAT_VERSION"):
    # release process, e.g. GPUSTAT_VERSION="1.1" python setup.py sdist
    __version__ = os.environ["GPUSTAT_VERSION"]
else:
    # Let dev version auto-generated from git tags, or
    # grab the version information from PKG-INFO for source distribution
    __version__ = read_version()



# brought from https://github.com/kennethreitz/setup.py
class DeployCommand(Command):
    description = 'Build and deploy the package to PyPI.'
    user_options = []

    def initialize_options(self): pass
    def finalize_options(self): pass

    @staticmethod
    def status(s):
        print(s)

    def run(self):
        import twine  # we require twine locally  # noqa

        assert 'dev' not in __version__, (
            "Only non-devel versions are allowed. "
            "__version__ == {}".format(__version__))

        with os.popen("git status --short") as fp:
            git_status = fp.read().strip()
            if git_status:
                print("Error: git repository is not clean.\n")
                os.system("git status --short")
                sys.exit(1)

        try:
            from shutil import rmtree
            self.status('Removing previous builds ...')
            rmtree(os.path.join(__PATH__, 'dist'))
        except OSError:
            pass

        self.status('Building Source and Wheel (universal) distribution ...')
        os.system("GPUSTAT_VERSION='{}' sh -c '{} setup.py sdist'".format(
            __version__, sys.executable))

        self.status('Uploading the package to PyPI via Twine ...')
        ret = os.system('twine upload dist/*')
        if ret != 0:
            sys.exit(ret)

        self.status('Creating git tags ...')
        os.system('git tag v{0}'.format(__version__))
        os.system('git tag --list')
        sys.exit()


install_requires = [
    'nvidia-ml-py>=11.450.129',  # see #107, #143
    'psutil>=5.6.0',    # GH-1447
    'blessed>=1.17.1',  # GH-126
]

tests_requires = [
    'mockito>=1.2.1',
    'pytest>=5.4.1',  # python 3.6+
    'pytest-runner',
]

setup(
    name='gpustat',
    version=__version__,
    license='MIT',
    description='An utility to monitor NVIDIA GPU status and usage',
    long_description=read_readme(),
    long_description_content_type='text/markdown',
    url='https://github.com/wookayin/gpustat',
    author='Jongwook Choi',
    author_email='wookayin@gmail.com',
    keywords='nvidia-smi gpu cuda monitoring gpustat',
    classifiers=[
        # https://pypi.python.org/pypi?%3Aaction=list_classifiers
        'Development Status :: 5 - Production/Stable',
        'License :: OSI Approved :: MIT License',
        'Operating System :: POSIX :: Linux',
        'Programming Language :: Python :: 3.6',
        'Programming Language :: Python :: 3.7',
        'Programming Language :: Python :: 3.8',
        'Programming Language :: Python :: 3.9',
        'Programming Language :: Python :: 3.10',
        'Programming Language :: Python :: 3.11',
        'Topic :: System :: Monitoring',
    ],
    packages=['gpustat'],
    install_requires=install_requires,
    extras_require={'test': tests_requires, 'completion': ['shtab']},
    tests_require=tests_requires,
    entry_points={
        'console_scripts': ['gpustat=gpustat:main'],
    },
    cmdclass={
        'deploy': DeployCommand,
    },
    include_package_data=True,
    zip_safe=False,
    python_requires='>=3.6',
)