forked from LPDI-EPFL/masif
-
Notifications
You must be signed in to change notification settings - Fork 2
/
setup.py
70 lines (60 loc) · 2.33 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
import os,sys
from setuptools import setup, find_packages
import subprocess
from os import path
def read(fname):
with open(os.path.join(os.path.dirname(__file__), fname), "rb") as f:
reqs = f.read().decode("utf-8")
return reqs
def install_deps():
"""Reads requirements.txt and preprocess it
to be feed into setuptools.
This is the only possible way (we found)
how requirements.txt can be reused in setup.py
using dependencies from private github repositories.
Links must be appendend by `-{StringWithAtLeastOneNumber}`
or something like that, so e.g. `-9231` works as well as
`1.1.0`. This is ignored by the setuptools, but has to be there.
Warnings:
to make pip respect the links, you have to use
`--process-dependency-links` switch. So e.g.:
`pip install --process-dependency-links {git-url}`
Returns:
list of packages and dependency links.
"""
with open('requirements.txt', 'r') as f:
default = f.readlines()
new_pkgs = []
links = []
for resource in default:
if 'git' in resource:
pkg = resource.split('#')[-1]
links.append(resource.strip() + '-9876543210')
new_pkgs.append(pkg.replace('egg=', '').rstrip())
else:
new_pkgs.append(resource.strip())
return new_pkgs, links
pkgs, new_links = install_deps()
packages = find_packages(exclude=("third_party", "data", "comparison"))
setup(
name = "masif",
version = "0.0.1",
author = "Pablo Gainza",
author_email = "edraizen@gmail.com",
packages=packages,
long_description=read('README.md'),
install_requires=pkgs,
dependency_links=new_links,
include_package_data=True,
entry_points = {
"console_scripts": [
"masif = masif:main",
]
}
)
site_packages = f"{sys.executable.split('/bin/')[0]}/lib/python3.7/site-packages"
print(["sed", "-i", "/pandas/d", f"{site_packages}/StrBioInfo-0.9a0.dev1-py3.7.egg/EGG-INFO/requires.txt"])
subprocess.call(["sed", "-i", "/pandas/d", f"{site_packages}/StrBioInfo-0.9a0.dev1-py3.7.egg/EGG-INFO/requires.txt"])
subprocess.call(f"sed -i '/pandas/d' {site_packages}/packaging-21.2-py3.7.egg/EGG-INFO/requires.txt", shell=True)
subprocess.call(f"sed -i '/pandas/d' {site_packages}/dask-2021.10.0-py3.7.egg/EGG-INFO/requires.txt", shell=True)
\