-
Notifications
You must be signed in to change notification settings - Fork 13
/
setup.py
82 lines (65 loc) · 3.3 KB
/
setup.py
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
version = '1.1.1'
from setuptools import setup, find_packages
from warnings import warn
from importlib import util
import os
this_directory = os.path.abspath(os.path.dirname(__file__))
if os.path.exists(os.path.join(this_directory, 'README.md')):
with open(os.path.join(this_directory, 'README.md'), 'r') as f:
long_description = f.read()
else:
long_description = '''
Scaffold hopping between bound compounds by stitching them together like a reanimated corpse.
<img src="https://github.com/matteoferla/Fragmenstein/blob/master/images/fragmenstein.jpg?raw=true" width="300px">
Documentation in [GitHub](https://github.com/matteoferla/Fragmenstein).
[![colab demo](https://img.shields.io/badge/Run--demo--in--colab-colab_fragmenstein.ipynb-f9ab00?logo=googlecolab)](https://colab.research.google.com/github/matteoferla/Fragmenstein/blob/master/colab-notebooks/colab_fragmenstein.ipynb)
![Ox](https://upload.wikimedia.org/wikipedia/en/thumb/2/2f/University_of_Oxford.svg/132px-University_of_Oxford.svg.png)
'''
if os.path.exists(os.path.join(this_directory, 'requirements.txt')):
with open(os.path.join(this_directory, 'requirements.txt'), 'r') as f:
requirements = [line.split('#')[0].strip() for line in f.readlines()]
requirements = [line for line in requirements if line]
else:
requirements = []
# ---------- Pip and Non pip modules ----------------------------------------------------------------------------------
# optional
# `pip install xxx` from wheels (the pre-compiled packages), does not run setup.py.
# While sdist does.
# Therefore these warnings will not be shown for pip installations from wheels...
if not util.find_spec('pyrosetta'):
warn('The minimisation part of this code uses pyrosetta, which has to be downloaded from ' +
'the Rosetta software site due to licencing. Without it minimisation via PyRosetta is not possible. '+
'For openMM usage see OpenVictor.')
if not util.find_spec('pymol2'):
warn('The module pymol2 is optionally required (conda or apt-get installable).')
setup(
name='Fragmenstein',
version=version,
description='Merging, linking and placing compounds by stitching them together like a reanimated corpse',
long_description=long_description,
long_description_content_type='text/markdown',
python_requires='>=3.7',
packages=find_packages(),
include_package_data=True,
install_requires=requirements,
extras_require={'jupyter': ['jupyter']},
url='https://github.com/matteoferla/Fragmenstein',
license='MIT',
author='Matteo Ferla',
author_email='[email protected]',
classifiers=[ # https://pypi.org/classifiers/
'Development Status :: 4 - Beta', # Development Status :: 5 - Production/Stable
'Intended Audience :: Science/Research',
'Topic :: Scientific/Engineering :: Bio-Informatics',
'Topic :: Scientific/Engineering :: Chemistry',
'License :: OSI Approved :: MIT License',
'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',
],
entry_points={
'console_scripts': ['fragmenstein=fragmenstein.cli:main'],
}
)