| |
|
|
| from setuptools import find_packages, setup |
|
|
| import os |
| import subprocess |
| import time |
|
|
| version_file = 'realesrgan/version.py' |
|
|
|
|
| def readme(): |
| with open('README.md', encoding='utf-8') as f: |
| content = f.read() |
| return content |
|
|
|
|
| def get_git_hash(): |
|
|
| def _minimal_ext_cmd(cmd): |
| |
| env = {} |
| for k in ['SYSTEMROOT', 'PATH', 'HOME']: |
| v = os.environ.get(k) |
| if v is not None: |
| env[k] = v |
| |
| env['LANGUAGE'] = 'C' |
| env['LANG'] = 'C' |
| env['LC_ALL'] = 'C' |
| out = subprocess.Popen(cmd, stdout=subprocess.PIPE, env=env).communicate()[0] |
| return out |
|
|
| try: |
| out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) |
| sha = out.strip().decode('ascii') |
| except OSError: |
| sha = 'unknown' |
|
|
| return sha |
|
|
|
|
| def get_hash(): |
| if os.path.exists('.git'): |
| sha = get_git_hash()[:7] |
| else: |
| sha = 'unknown' |
|
|
| return sha |
|
|
|
|
| def write_version_py(): |
| content = """# GENERATED VERSION FILE |
| # TIME: {} |
| __version__ = '{}' |
| __gitsha__ = '{}' |
| version_info = ({}) |
| """ |
| sha = get_hash() |
| with open('VERSION', 'r') as f: |
| SHORT_VERSION = f.read().strip() |
| VERSION_INFO = ', '.join([x if x.isdigit() else f'"{x}"' for x in SHORT_VERSION.split('.')]) |
|
|
| version_file_str = content.format(time.asctime(), SHORT_VERSION, sha, VERSION_INFO) |
| with open(version_file, 'w') as f: |
| f.write(version_file_str) |
|
|
|
|
| def get_version(): |
| with open(version_file, 'r') as f: |
| exec(compile(f.read(), version_file, 'exec')) |
| return locals()['__version__'] |
|
|
|
|
| def get_requirements(filename='requirements.txt'): |
| here = os.path.dirname(os.path.realpath(__file__)) |
| with open(os.path.join(here, filename), 'r') as f: |
| requires = [line.replace('\n', '') for line in f.readlines()] |
| return requires |
|
|
|
|
| if __name__ == '__main__': |
| write_version_py() |
| setup( |
| name='realesrgan', |
| version=get_version(), |
| description='Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration', |
| long_description=readme(), |
| long_description_content_type='text/markdown', |
| author='Xintao Wang', |
| author_email='xintao.wang@outlook.com', |
| keywords='computer vision, pytorch, image restoration, super-resolution, esrgan, real-esrgan', |
| url='https://github.com/xinntao/Real-ESRGAN', |
| include_package_data=True, |
| packages=find_packages(exclude=('options', 'datasets', 'experiments', 'results', 'tb_logger', 'wandb')), |
| classifiers=[ |
| 'Development Status :: 4 - Beta', |
| 'License :: OSI Approved :: Apache Software License', |
| 'Operating System :: OS Independent', |
| 'Programming Language :: Python :: 3', |
| 'Programming Language :: Python :: 3.7', |
| 'Programming Language :: Python :: 3.8', |
| ], |
| license='BSD-3-Clause License', |
| setup_requires=['cython', 'numpy'], |
| install_requires=get_requirements(), |
| zip_safe=False) |
|
|