annotate TEisotools-1.1.a/setup_TEiso.py @ 15:255c852351c5 draft

Uploaded
author urgi-team
date Thu, 21 Jul 2016 07:36:44 -0400
parents feef9a0db09d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
1 import os, shutil, glob, re, sys, time
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
2 from distutils.util import convert_path
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
3 from distutils.core import setup
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
4 from distutils.core import Command
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
5
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
6 class Devtools(object):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
7
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
8 @staticmethod
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
9 def find_sub_packages(lrootPackage, lExclude=()):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
10 lPackages = Devtools.find_packages(exclude=lExclude)
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
11 lSubPackage = []
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
12 for package in lPackages:
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
13 for rootPackage in lrootPackage:
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
14 if package.startswith(rootPackage):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
15 lSubPackage.append(package)
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
16 return lSubPackage
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
17
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
18 @staticmethod
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
19 def find_packages(where='.', exclude=()):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
20 out = []
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
21 stack=[(convert_path(where), '')]
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
22 while stack:
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
23 where,prefix = stack.pop(0)
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
24 for name in os.listdir(where):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
25 fn = os.path.join(where,name)
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
26 if ('.' not in name and os.path.isdir(fn) and os.path.isfile(os.path.join(fn,'__init__.py'))):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
27 out.append(prefix+name); stack.append((fn,prefix+name+'.'))
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
28 for pat in list(exclude)+['ez_setup', 'distribute_setup']:
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
29 from fnmatch import fnmatchcase
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
30 out = [item for item in out if not fnmatchcase(item,pat)]
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
31 return out
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
32
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
33 @staticmethod
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
34 def findall(directory = os.curdir):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
35 all_files = []
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
36 for base, dirs, files in os.walk(directory):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
37 if base==os.curdir or base.startswith(os.curdir+os.sep):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
38 base = base[2:]
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
39 if base:
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
40 files = [os.path.join(base, f) for f in files]
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
41 all_files.extend(filter(os.path.isfile, files))
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
42 return all_files
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
43
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
44
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
45 class Install(Command):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
46 description = "Install TEiso_tools"
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
47 user_options = []
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
48
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
49 def initialize_options(self):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
50 """Use this to set option defaults before parsing."""
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
51 pass
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
52
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
53 def finalize_options(self):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
54 """Code to validate/modify command-line/config input goes here."""
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
55 pass
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
56
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
57 def _isToLink(self, fileName):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
58 if re.search("__\w*.py", fileName):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
59 return False
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
60 elif re.search("Test\w*.py", fileName):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
61 return False
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
62 elif re.search("\w*.py$", fileName):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
63 return True
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
64 return False
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
65
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
66 def run(self):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
67 cwd = os.getcwd()
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
68 print "Build TEiso in %s" % (cwd)
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
69 if not os.path.isdir("bin"):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
70 os.mkdir("bin")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
71 os.chdir("bin")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
72 lPackages = ["TEiso"]
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
73 for package in lPackages:
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
74 if os.path.isdir("../%s" % package):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
75 print "processing %s/..." % package
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
76 [os.symlink(i, os.path.basename(i)) for i in Devtools.findall("../%s" % package) if self._isToLink(os.path.basename(i))]
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
77 os.system("chmod 0755 *")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
78 print "TEiso is ready to use"
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
79
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
80 class PublicRelease(Command):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
81 description = "public release for TEiso_tools"
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
82 user_options = []
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
83
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
84 def initialize_options(self):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
85 """Use this to set option defaults before parsing."""
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
86 pass
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
87
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
88 def finalize_options(self):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
89 """Code to validate/modify command-line/config input goes here."""
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
90 pass
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
91
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
92 def run(self):
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
93
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
94 print "START Releasing (%s)" % time.strftime("%Y-%m-%d %H:%M:%S")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
95 sys.stdout.flush()
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
96
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
97 cwd = os.getcwd()
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
98
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
99 print "Removing all '.pyc' files and dead symlinks in bin, then adding execution rights to all 'py' files (%s)" % time.strftime("%Y-%m-%d %H:%M:%S")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
100 sys.stdout.flush()
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
101
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
102 os.system("find . -name '*.pyc' -exec rm {} \;")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
103 os.system("find . -name '*.py' -exec chmod +x {} \;")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
104 os.system("find -L ./bin -type l -exec rm {} +")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
105
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
106 # lSetupFiles = FileUtils.getFileNamesList(cwd, "setup_.*.py")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
107 # lSetupFiles.remove("setup_REPET.py")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
108 # FileUtils.removeFilesFromList(lSetupFiles)
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
109
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
110 os.chdir("..")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
111 os.system("tar -czf %s.tar.gz %s" % (os.path.basename(cwd), os.path.basename(cwd)))
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
112
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
113 print "END Releasing (%s)" % time.strftime("%Y-%m-%d %H:%M:%S")
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
114 sys.stdout.flush()
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
115
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
116 setup(
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
117 name = "TEisotools",
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
118 version = "1.1.a",
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
119 description='Set of tools to analyse RNA_seq for the France Genomics projects.',
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
120 author='URGI team',
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
121 author_email='urgi-support@versailles.inra.fr',
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
122 url='https://urgi.versailles.inra.fr/Projects/TEiso',
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
123 packages=[],
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
124 #Additionnal Files
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
125 data_files=[('TEiso',["TEiso/LaunchTEiso.py", "TEiso/Tophat.py", "TEiso/Cufflinks.py", "TEiso/Cuffcompare.py", "TEiso/Bowtie_build.py", "TEiso/Bedtools_closest.py","TEiso/ClosestToStartSite.py", "TEiso/GFFToBed.py", "TEiso/CufflinksGTFToBed.py"]),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
126 ("commons/core", glob.glob("commons/core/*.py")),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
127 ("commons", glob.glob("commons/*.py")),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
128 ("commons/core/utils", glob.glob("commons/core/utils/*.py")),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
129 ("commons/core/checker", glob.glob("commons/core/checker/*.py")),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
130 ("commons/core/seq", glob.glob("commons/core/seq/*.py")),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
131 ("commons/core/coord", glob.glob("commons/core/coord/*.py")),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
132 ('commons/core/parsing',["commons/core/parsing/GtfParser.py", "commons/core/parsing/TranscriptListParser.py", "commons/core/parsing/GffParser.py", "commons/core/parsing/__init__.py"]),
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
133 ('',['TEiso/doc/README_TEiso.txt']),('',['LICENSE'])],
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
134 cmdclass={
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
135 'install' : Install
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
136 }
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
137 )
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
138
feef9a0db09d Uploaded
urgi-team
parents:
diff changeset
139