From 27f69d3e26d5bdea669743930d276951daa9a70e Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Fri, 15 Jan 2021 21:45:07 +0100 Subject: [PATCH 1/5] update setup with PL --- setup.py | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/setup.py b/setup.py index d87091ce08..355912a145 100755 --- a/setup.py +++ b/setup.py @@ -19,35 +19,20 @@ import pl_bolts # noqa: E402 -def load_requirements(path_dir=PATH_ROOT, file_name='requirements.txt', comment_char='#'): - with open(os.path.join(path_dir, file_name), 'r') as file: - lines = [ln.strip() for ln in file.readlines()] - reqs = [] - for ln in lines: - if comment_char in ln: # filer all comments - ln = ln[:ln.index(comment_char)].strip() - if ln.startswith('http'): # skip directly installed dependencies - continue - if ln: # if requirement is not empty - reqs.append(ln) - return reqs +def _load_requirements(path_dir=PATH_ROOT, file_name='requirements.txt', comment_char='#'): + from pytorch_lightning.setup_tools import _load_requirements as _lreq + return _lreq(path_dir=path_dir, file_name=file_name, comment_char=comment_char) -def load_long_describtion(): - # https://github.com/PyTorchLightning/pytorch-lightning/raw/master/docs/source/_images/lightning_module/pt_to_pl.png - url = os.path.join(pl_bolts.__homepage__, 'raw', pl_bolts.__version__, 'docs') - text = open('README.md', encoding='utf-8').read() - # replace relative repository path to absolute link to the release - text = text.replace('](docs', f']({url}') - # SVG images are not readable on PyPI, so replace them with PNG - text = text.replace('.svg', '.png') - return text +def _load_long_description(): + from pytorch_lightning.setup_tools import _load_long_description as _lld + return _lld() extras = { - 'loggers': load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='loggers.txt'), - 'models': load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='models.txt'), - 'test': load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='test.txt'), + 'loggers': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='loggers.txt'), + 'models': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='models.txt'), + 'test': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='test.txt'), } extras['extra'] = extras['models'] + extras['loggers'] extras['dev'] = extras['extra'] + extras['test'] @@ -67,14 +52,14 @@ def load_long_describtion(): download_url='https://github.com/PyTorchLightning/pytorch-lightning-bolts', license=pl_bolts.__license__, packages=find_packages(exclude=['tests', 'docs']), - long_description=load_long_describtion(), + long_description=_load_long_description(), long_description_content_type='text/markdown', include_package_data=True, zip_safe=False, keywords=['deep learning', 'pytorch', 'AI'], python_requires='>=3.6', setup_requires=[], - install_requires=load_requirements(), + install_requires=_load_requirements(), extras_require=extras, project_urls={ "Bug Tracker": "https://github.com/PyTorchLightning/pytorch-lightning-bolts/issues", From 7ab4092aef73fbf534e32659d5bf05720545ade9 Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Fri, 15 Jan 2021 21:48:21 +0100 Subject: [PATCH 2/5] pl --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 355912a145..7eea4bd8ae 100755 --- a/setup.py +++ b/setup.py @@ -58,7 +58,7 @@ def _load_long_description(): zip_safe=False, keywords=['deep learning', 'pytorch', 'AI'], python_requires='>=3.6', - setup_requires=[], + setup_requires=['pytorch-lightning>=1.1.0'], install_requires=_load_requirements(), extras_require=extras, project_urls={ From e87e502ba3f656a5aa948cbd788f0481f35910ea Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Fri, 15 Jan 2021 22:05:06 +0100 Subject: [PATCH 3/5] extras --- setup.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/setup.py b/setup.py index 7eea4bd8ae..5788545e12 100755 --- a/setup.py +++ b/setup.py @@ -29,13 +29,15 @@ def _load_long_description(): return _lld() -extras = { - 'loggers': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='loggers.txt'), - 'models': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='models.txt'), - 'test': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='test.txt'), -} -extras['extra'] = extras['models'] + extras['loggers'] -extras['dev'] = extras['extra'] + extras['test'] +def _prepare_extras(): + extras = { + 'loggers': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='loggers.txt'), + 'models': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='models.txt'), + 'test': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='test.txt'), + } + extras['extra'] = extras['models'] + extras['loggers'] + extras['dev'] = extras['extra'] + extras['test'] + return extras # https://packaging.python.org/discussions/install-requires-vs-requirements / # keep the meta-data here for simplicity in reading this file... it's not obvious @@ -60,7 +62,7 @@ def _load_long_description(): python_requires='>=3.6', setup_requires=['pytorch-lightning>=1.1.0'], install_requires=_load_requirements(), - extras_require=extras, + extras_require=_prepare_extras(), project_urls={ "Bug Tracker": "https://github.com/PyTorchLightning/pytorch-lightning-bolts/issues", "Documentation": "https://pytorch-lightning-bolts.rtfd.io/en/latest/", From 3ab750137da43294c4c16c47262e7ddaeccf2e1c Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Fri, 15 Jan 2021 22:23:48 +0100 Subject: [PATCH 4/5] pl --- docs/source/conf.py | 6 +++--- setup.py | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 52f9e11b98..8a2330fae1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -52,13 +52,13 @@ # -- Project documents ------------------------------------------------------- # export the READme -# with open(os.path.join(PATH_ROOT, 'README.md'), 'r') as fp: +# with open(os.path.join(_PATH_ROOT, 'README.md'), 'r') as fp: # readme = fp.read() # # TODO: temp fix removing SVG badges and GIF, because PDF cannot show them # readme = re.sub(r'(\[!\[.*\))', '', readme) # readme = re.sub(r'(!\[.*.gif\))', '', readme) -# for dir_name in (os.path.basename(p) for p in glob.glob(os.path.join(PATH_ROOT, '*')) if os.path.isdir(p)): -# readme = readme.replace('](%s/' % dir_name, '](%s/%s/' % (PATH_ROOT, dir_name)) +# for dir_name in (os.path.basename(p) for p in glob.glob(os.path.join(_PATH_ROOT, '*')) if os.path.isdir(p)): +# readme = readme.replace('](%s/' % dir_name, '](%s/%s/' % (_PATH_ROOT, dir_name)) # with open('readme.md', 'w') as fp: # fp.write(readme) diff --git a/setup.py b/setup.py index 5788545e12..3b2db128d5 100755 --- a/setup.py +++ b/setup.py @@ -13,27 +13,33 @@ # https://packaging.python.org/guides/single-sourcing-package-version/ # http://blog.ionelmc.ro/2014/05/25/python-packaging/ -PATH_ROOT = os.path.dirname(__file__) +_PATH_ROOT = os.path.dirname(__file__) builtins.__LIGHTNING_BOLT_SETUP__: bool = True import pl_bolts # noqa: E402 +try: + import pytorch_lightning +except ImportError: + import pip + pip.main(['install', 'pytorch-lightning>=1.1.0']) + -def _load_requirements(path_dir=PATH_ROOT, file_name='requirements.txt', comment_char='#'): +def _load_requirements(path_dir=_PATH_ROOT, file_name='requirements.txt', comment_char='#'): from pytorch_lightning.setup_tools import _load_requirements as _lreq return _lreq(path_dir=path_dir, file_name=file_name, comment_char=comment_char) def _load_long_description(): from pytorch_lightning.setup_tools import _load_long_description as _lld - return _lld() + return _lld(_PATH_ROOT) def _prepare_extras(): extras = { - 'loggers': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='loggers.txt'), - 'models': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='models.txt'), - 'test': _load_requirements(path_dir=os.path.join(PATH_ROOT, 'requirements'), file_name='test.txt'), + 'loggers': _load_requirements(path_dir=os.path.join(_PATH_ROOT, 'requirements'), file_name='loggers.txt'), + 'models': _load_requirements(path_dir=os.path.join(_PATH_ROOT, 'requirements'), file_name='models.txt'), + 'test': _load_requirements(path_dir=os.path.join(_PATH_ROOT, 'requirements'), file_name='test.txt'), } extras['extra'] = extras['models'] + extras['loggers'] extras['dev'] = extras['extra'] + extras['test'] From 6e7bed122c632ca0961308ca2368257abb78fe9f Mon Sep 17 00:00:00 2001 From: Jirka Borovec Date: Fri, 15 Jan 2021 22:30:02 +0100 Subject: [PATCH 5/5] flake8 --- setup.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index 3b2db128d5..552060790f 100755 --- a/setup.py +++ b/setup.py @@ -10,6 +10,15 @@ except ImportError: import __builtin__ as builtins +try: + import pytorch_lightning # noqa: F401 +except ImportError: + try: + import pip + except ImportError: + raise ImportError('Missing `pip` to install custom dependencies.') + pip.main(['install', 'pytorch-lightning>=1.1.0']) + # https://packaging.python.org/guides/single-sourcing-package-version/ # http://blog.ionelmc.ro/2014/05/25/python-packaging/ @@ -18,12 +27,6 @@ import pl_bolts # noqa: E402 -try: - import pytorch_lightning -except ImportError: - import pip - pip.main(['install', 'pytorch-lightning>=1.1.0']) - def _load_requirements(path_dir=_PATH_ROOT, file_name='requirements.txt', comment_char='#'): from pytorch_lightning.setup_tools import _load_requirements as _lreq @@ -45,6 +48,7 @@ def _prepare_extras(): extras['dev'] = extras['extra'] + extras['test'] return extras + # https://packaging.python.org/discussions/install-requires-vs-requirements / # keep the meta-data here for simplicity in reading this file... it's not obvious # what happens and to non-engineers they won't know to look in init ...