This is an automated email from the git hooks/post-receive script. tille pushed a commit to branch master in repository ecopcr.
commit e88cf0143225613cb6f76d8ecc8ecff6d1f74451 Author: Andreas Tille <[email protected]> Date: Wed Jun 24 20:21:22 2015 +0200 Install Python files after conversion to python3 --- debian/control | 5 +- debian/install | 3 + debian/patches/2to3.patch | 498 ++++++++++++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + debian/rules | 10 +- 5 files changed, 514 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index 18eedab..d40a7fd 100644 --- a/debian/control +++ b/debian/control @@ -4,6 +4,8 @@ Uploaders: Andreas Tille <[email protected]> Section: science Priority: optional Build-Depends: debhelper (>= 9), + dh-python, + python3, zlib1g-dev Standards-Version: 3.9.6 Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/ecopcr.git @@ -13,7 +15,8 @@ Homepage: http://www.grenoble.prabi.fr/trac/ecoPCR/ Package: ecopcr Architecture: any Depends: ${shlibs:Depends}, - ${misc:Depends} + ${misc:Depends}, + ${python3:Depends} Description: estimate PCR barcode primers quality DNA barcoding is a tool for characterizing the species origin using a short sequence from a standard position and agreed upon position in the diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..e28f56b --- /dev/null +++ b/debian/install @@ -0,0 +1,3 @@ +src/ecoPCR usr/bin +src/ecofind usr/bin +src/ecogrep usr/bin diff --git a/debian/patches/2to3.patch b/debian/patches/2to3.patch new file mode 100644 index 0000000..f429229 --- /dev/null +++ b/debian/patches/2to3.patch @@ -0,0 +1,498 @@ +Author: Andreas Tille <[email protected]> +Last-Update: Wed, 24 Jun 2015 19:24:02 +0200 +Description: 2to3 conversion to Python3 + +--- a/tools/ecoPCRFilter.py ++++ b/tools/ecoPCRFilter.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + + import struct + import sys +@@ -78,7 +78,7 @@ class Filter(object): + file = self.__universalOpen(file) + (recordCount,) = struct.unpack('> I',file.read(4)) + +- for i in xrange(recordCount): ++ for i in range(recordCount): + (recordSize,)=struct.unpack('>I',file.read(4)) + record = file.read(recordSize) + yield record +@@ -236,12 +236,12 @@ class ColumnFile(object): + elif hasattr(stream,'next'): + self._stream = stream + else: +- raise ValueError,'stream must be string or an iterator' ++ raise ValueError('stream must be string or an iterator') + self._delimiter=sep + self._strip=strip + if types: + self._types=[x for x in types] +- for i in xrange(len(self._types)): ++ for i in range(len(self._types)): + if self._types[i] is bool: + self._types[i]=ColumnFile.str2bool + else: +@@ -257,16 +257,16 @@ class ColumnFile(object): + def __iter__(self): + return self + +- def next(self): +- ligne = self._stream.next() ++ def __next__(self): ++ ligne = next(self._stream) + while ligne[0] == self._skip: +- ligne = self._stream.next() ++ ligne = next(self._stream) + data = ligne.split(self._delimiter) + if self._strip or self._types: + data = [x.strip() for x in data] + if self._types: + it = self.endLessIterator(self._types) +- data = [x[1](x[0]) for x in ((y,it.next()) for y in data)] ++ data = [x[1](x[0]) for x in ((y,next(it)) for y in data)] + return data + + def endLessIterator(self,endedlist): +@@ -286,18 +286,19 @@ class Table(list): + + def printTable(self): + for h in self.headers: +- print "\t%s\t|" % h, +- print "\n" ++ print("\t%s\t|" % h, end=' ') ++ print("\n") + for l in self.lines: + for c in l: +- print "\t%s\t|" % c +- print "\n" ++ print("\t%s\t|" % c) ++ print("\n") + + def getColumn(self,n): +- print "\t%s\n" % self.header[n] ++ print("\t%s\n" % self.header[n]) + for i in range(len(self.lines)): +- print "\t%s\n" % i[n] ++ print("\t%s\n" % i[n]) + + + + ++ +--- a/tools/ecoPCRFormat.py ++++ b/tools/ecoPCRFormat.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + + import re + import gzip +@@ -83,12 +83,12 @@ class ColumnFile(object): + elif hasattr(stream,'next'): + self._stream = stream + else: +- raise ValueError,'stream must be string or an iterator' ++ raise ValueError('stream must be string or an iterator') + self._delimiter=sep + self._strip=strip + if types: + self._types=[x for x in types] +- for i in xrange(len(self._types)): ++ for i in range(len(self._types)): + if self._types[i] is bool: + self._types[i]=ColumnFile.str2bool + else: +@@ -103,14 +103,14 @@ class ColumnFile(object): + def __iter__(self): + return self + +- def next(self): +- ligne = self._stream.next() ++ def __next__(self): ++ ligne = next(self._stream) + data = ligne.split(self._delimiter) + if self._strip or self._types: + data = [x.strip() for x in data] + if self._types: + it = endLessIterator(self._types) +- data = [x[1](x[0]) for x in ((y,it.next()) for y in data)] ++ data = [x[1](x[0]) for x in ((y,next(it)) for y in data)] + return data + + def taxonCmp(t1,t2): +@@ -152,22 +152,22 @@ def readNodeTable(file): + str,str,bool, + int,bool,int, + bool,bool,bool,str)) +- print >>sys.stderr,"Reading taxonomy dump file..." ++ print("Reading taxonomy dump file...", file=sys.stderr) + taxonomy=[[n[0],n[2],n[1]] for n in nodes] +- print >>sys.stderr,"List all taxonomy rank..." ++ print("List all taxonomy rank...", file=sys.stderr) + ranks =list(set(x[1] for x in taxonomy)) + ranks.sort() +- ranks = dict(map(None,ranks,xrange(len(ranks)))) ++ ranks = dict(map(None,ranks,range(len(ranks)))) + +- print >>sys.stderr,"Sorting taxons..." ++ print("Sorting taxons...", file=sys.stderr) + taxonomy.sort(taxonCmp) + +- print >>sys.stderr,"Indexing taxonomy..." ++ print("Indexing taxonomy...", file=sys.stderr) + index = {} + for t in taxonomy: + index[t[0]]=bsearchTaxon(taxonomy, t[0]) + +- print >>sys.stderr,"Indexing parent and rank..." ++ print("Indexing parent and rank...", file=sys.stderr) + for t in taxonomy: + t[1]=ranks[t[1]] + t[2]=index[t[2]] +@@ -203,7 +203,7 @@ def deletedNodeIterator(file): + def readTaxonomyDump(taxdir): + taxonomy,ranks,index = readNodeTable('%s/nodes.dmp' % taxdir) + +- print >>sys.stderr,"Adding scientific name..." ++ print("Adding scientific name...", file=sys.stderr) + + alternativeName=[] + for taxid,name,classname in nameIterator('%s/names.dmp' % taxdir): +@@ -211,11 +211,11 @@ def readTaxonomyDump(taxdir): + if classname == 'scientific name': + taxonomy[index[taxid]].append(name) + +- print >>sys.stderr,"Adding taxid alias..." ++ print("Adding taxid alias...", file=sys.stderr) + for taxid,current in mergedNodeIterator('%s/merged.dmp' % taxdir): + index[taxid]=index[current] + +- print >>sys.stderr,"Adding deleted taxid..." ++ print("Adding deleted taxid...", file=sys.stderr) + for taxid in deletedNodeIterator('%s/delnodes.dmp' % taxdir): + index[taxid]=None + +@@ -230,22 +230,22 @@ def readTaxonomyDB(dbname): + + cursor.execute("select rank_class from ncbi_taxonomy.taxon_rank_class order by rank_class") + ranks=cursor.fetchall() +- ranks = dict(map(None,(x[0] for x in ranks),xrange(len(ranks)))) ++ ranks = dict(map(None,(x[0] for x in ranks),range(len(ranks)))) + +- print >>sys.stderr,"Sorting taxons..." ++ print("Sorting taxons...", file=sys.stderr) + taxonomy.sort(taxonCmp) + +- print >>sys.stderr,"Indexing taxonomy..." ++ print("Indexing taxonomy...", file=sys.stderr) + index = {} + for t in taxonomy: + index[t[0]]=bsearchTaxon(taxonomy, t[0]) + +- print >>sys.stderr,"Indexing parent and rank..." ++ print("Indexing parent and rank...", file=sys.stderr) + for t in taxonomy: + t[1]=ranks[t[1]] + try: + t[2]=index[t[2]] +- except KeyError,e: ++ except KeyError as e: + if t[2] is None and t[0]==1: + t[2]=index[t[0]] + else: +@@ -261,7 +261,7 @@ def readTaxonomyDB(dbname): + + cursor.execute("select old_numid,current_numid from ncbi_taxonomy.taxon_id_alias") + +- print >>sys.stderr,"Adding taxid alias..." ++ print("Adding taxid alias...", file=sys.stderr) + for taxid,current in cursor: + if current is not None: + index[taxid]=index[current] +@@ -505,11 +505,11 @@ def ecoSeqWriter(file,input,taxindex,par + skipped.append(entry['id']) + where = universalTell(input) + progressBar(where, inputsize) +- print >>sys.stderr," Readed sequences : %d " % seqcount, ++ print(" Readed sequences : %d " % seqcount, end=' ', file=sys.stderr) + else: + skipped.append(entry['id']) + +- print >>sys.stderr ++ print(file=sys.stderr) + output.seek(0,0) + output.write(struct.pack('> I',seqcount)) + +@@ -530,7 +530,7 @@ def ecoRankWriter(file,ranks): + output = open(file,'wb') + output.write(struct.pack('> I',len(ranks))) + +- rankNames = ranks.keys() ++ rankNames = list(ranks.keys()) + rankNames.sort() + + for rank in rankNames: +@@ -573,8 +573,8 @@ def ecoDBWriter(prefix,taxonomy,seqFileN + taxonomy[3], + parser) + if sk: +- print >>sys.stderr,"Skipped entry :" +- print >>sys.stderr,sk ++ print("Skipped entry :", file=sys.stderr) ++ print(sk, file=sys.stderr) + + def ecoParseOptions(arguments): + opt = { +@@ -618,24 +618,24 @@ def ecoParseOptions(arguments): + opt['parser']=sequenceIteratorFactory(emblEntryParser, + entryIterator) + else: +- raise ValueError,'Unknown option %s' % name ++ raise ValueError('Unknown option %s' % name) + + return opt,filenames + + def printHelp(): +- print "-----------------------------------" +- print " ecoPCRFormat.py" +- print "-----------------------------------" +- print "ecoPCRFormat.py [option] <argument>" +- print "-----------------------------------" +- print "-e --embl :[E]mbl format" +- print "-f --fasta :[F]asta format" +- print "-g --genbank :[G]enbank format" +- print "-h --help :[H]elp - print this help" +- print "-n --name :[N]ame of the new database created" +- print "-t --taxonomy :[T]axonomy - path to the taxonomy database" +- print " :bcp-like dump from GenBank taxonomy database." +- print "-----------------------------------" ++ print("-----------------------------------") ++ print(" ecoPCRFormat.py") ++ print("-----------------------------------") ++ print("ecoPCRFormat.py [option] <argument>") ++ print("-----------------------------------") ++ print("-e --embl :[E]mbl format") ++ print("-f --fasta :[F]asta format") ++ print("-g --genbank :[G]enbank format") ++ print("-h --help :[H]elp - print this help") ++ print("-n --name :[N]ame of the new database created") ++ print("-t --taxonomy :[T]axonomy - path to the taxonomy database") ++ print(" :bcp-like dump from GenBank taxonomy database.") ++ print("-----------------------------------") + + if __name__ == '__main__': + +@@ -649,3 +649,4 @@ if __name__ == '__main__': + + ecoDBWriter(opt['prefix'], taxonomy, filenames, opt['parser']) + ++ +--- a/tools/ecoSort.py ++++ b/tools/ecoSort.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + + import struct + import sys +@@ -98,7 +98,7 @@ class Filter(object): + file = self.__universalOpen(file) + (recordCount,) = struct.unpack('> I',file.read(4)) + +- for i in xrange(recordCount): ++ for i in range(recordCount): + (recordSize,)=struct.unpack('>I',file.read(4)) + record = file.read(recordSize) + yield record +@@ -283,12 +283,12 @@ class ColumnFile(object): + elif hasattr(stream,'next'): + self._stream = stream + else: +- raise ValueError,'stream must be string or an iterator' ++ raise ValueError('stream must be string or an iterator') + self._delimiter=sep + self._strip=strip + if types: + self._types=[x for x in types] +- for i in xrange(len(self._types)): ++ for i in range(len(self._types)): + if self._types[i] is bool: + self._types[i]=ColumnFile.str2bool + else: +@@ -305,16 +305,16 @@ class ColumnFile(object): + def __iter__(self): + return self + +- def next(self): +- ligne = self._stream.next() ++ def __next__(self): ++ ligne = next(self._stream) + while ligne[0] == self._skip: +- ligne = self._stream.next() ++ ligne = next(self._stream) + data = ligne.split(self._delimiter) + if self._strip or self._types: + data = [x.strip() for x in data] + if self._types: + it = self.endLessIterator(self._types) +- data = [x[1](x[0]) for x in ((y,it.next()) for y in data)] ++ data = [x[1](x[0]) for x in ((y,next(it)) for y in data)] + return data + + def endLessIterator(self,endedlist): +@@ -396,7 +396,7 @@ def _parseOligoResult(filter,file,strand + for s in filter.ecoPCRResultIterator(file): + o = s[key] + taxid = s['taxid'] +- if not seq.has_key(o): ++ if o not in seq: + seq[o] = [1,taxid] + else: + seq[o][0] = seq[o][0] + 1 +@@ -410,7 +410,7 @@ def _parseTaxonomyResult(table): + taxid = l[2] + scName = l[3] + count = l[1] +- if not tax.has_key(taxid): ++ if taxid not in tax: + tax[taxid] = [1,scName,count] + else: + tax[taxid][0] = tax[taxid][0] + 1 +@@ -464,12 +464,12 @@ def customSort(table,x,y): + tmp = {} + + for l in table: +- if tmp.has_key(l[x]): ++ if l[x] in tmp: + tmp[l[x]] = tmp[l[x]] + l[y] + else: + tmp[l[x]] = l[y] + +- for k,v in tmp.items(): ++ for k,v in list(tmp.items()): + cTable.append([k,v]) + + return cTable +@@ -484,12 +484,12 @@ def countColumnOccurrence(table,x): + tmp = {} + + for l in table: +- if tmp.has_key(l[x]): ++ if l[x] in tmp: + tmp[l[x]] = tmp[l[x]] + 1 + else: + tmp[l[x]] = 1 + +- for k,v in tmp.items(): ++ for k,v in list(tmp.items()): + cTable.append([k,v]) + + return cTable +@@ -502,15 +502,15 @@ def buildSpecificityTable(table): + + tmp = {} + for l in table: +- if not tmp.has_key(l[5]): ++ if l[5] not in tmp: + tmp[l[5]] = {} +- if not tmp[l[5]].has_key(l[3]): ++ if l[3] not in tmp[l[5]]: + tmp[l[5]][l[3]] = l[1] + else: + tmp[l[5]][l[3]] = tmp[l[5]][l[3]] + l[1] + +- for mismatch in tmp.items(): +- for taxon,count in mismatch[1].items(): ++ for mismatch in list(tmp.items()): ++ for taxon,count in list(mismatch[1].items()): + speTable.append([mismatch[0],taxon,count]) + + return speTable +@@ -531,7 +531,7 @@ def buildOligoTable(table, file, filter, + seq = _parseOligoResult(filter, file, strand) + + i = 0 +- for oligo, info in seq.items(): ++ for oligo, info in list(seq.items()): + table.append(0) + count, lctTaxid = info[0], info[1] + scName = filter.findTaxonByTaxid(info[1])[3] +@@ -554,7 +554,7 @@ def buildTaxonomicTable(table): + tax = _parseTaxonomyResult(table) + + i = 0 +- for taxid, info in tax.items(): ++ for taxid, info in list(tax.items()): + taxTable.append(0) + numOfOligo, scName, numOfAmpl = info[0], info[1], info[2] + taxTable[i]=[scName,numOfOligo,numOfAmpl,taxid] +@@ -578,9 +578,9 @@ def _parseSequenceResult(filter,file,id) + for s in filter.ecoPCRResultIterator(file): + seq = s['sq_des'] + id = s[key] +- if not idIndex.has_key(id): ++ if id not in idIndex: + idIndex[id] = [] +- if not sequences.has_key(seq): ++ if seq not in sequences: + sequences[seq] = [id] + else: + sequences[seq].append(id) +@@ -598,7 +598,7 @@ def _sortSequences(file,filter): + + sequences, idIndex = _parseSequenceResult(filter,file,'species') + +- for s,id in sequences.items(): ++ for s,id in list(sequences.items()): + if len(id) == 1 or _sameValuesInList(id): + idIndex[id[0]].append(1) + else: +@@ -606,7 +606,7 @@ def _sortSequences(file,filter): + idIndex[e].append(0) + + +- for id,values in idIndex.items(): ++ for id,values in list(idIndex.items()): + idIndex[id] = float(values.count(1)) / float(len(values)) * 100 + + +@@ -622,15 +622,15 @@ def getIntraSpeciesDiversity(table,file, + + seq, idIndex = _sortSequences(file,filter) + +- for id,percent in idIndex.items(): ++ for id,percent in list(idIndex.items()): + if percent == 100: + intraDiv[id] = [0,[]] +- for seq,idList in sequences.items(): ++ for seq,idList in list(sequences.items()): + if id in idList: + intraDiv[id][0] = intraDiv[id][0] + 1 + intraDiv[id][1].append(seq) + +- for id, values in intraDiv.items(): ++ for id, values in list(intraDiv.items()): + table.append(id,values[0],values[1]) + + +@@ -649,10 +649,10 @@ def printTable(table): + """ + + format = ("%20s | " * len(table.headers))[:-3] +- print format % tuple([str(e) for e in table.headers ]) +"\n" + "-"*23*len(table.headers) ++ print(format % tuple([str(e) for e in table.headers ]) +"\n" + "-"*23*len(table.headers)) + for l in table: +- print format % tuple([str(e) for e in l ]) +- print "# %d results" % len(table) ++ print(format % tuple([str(e) for e in l ])) ++ print("# %d results" % len(table)) + + + def saveAsCSV(table,path): +@@ -809,3 +809,4 @@ def start(): + + + ++ diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..998d10f --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +2to3.patch diff --git a/debian/rules b/debian/rules index 5be30e8..dd83ef1 100755 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,7 @@ #DEBVERS := $(shell dpkg-parsechangelog | awk '/^Version:/ {print $$2}') #VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/^[0-9]*://' -e 's/-.*//') #DEBFLAVOR := $(shell dpkg-parsechangelog | awk '/^Distribution:/ {print $$2}') -#DEBPKGNAME := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2}') +DEBPKGNAME := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2}') #DEBIAN_BRANCH := $(shell awk 'BEGIN{FS="[= ]+"} /debian-branch/ {print $$2}' debian/gbp.conf) #GIT_TAG := $(subst ~,_,$(VERSION)) @@ -17,11 +17,17 @@ # a similar manner are welcome. %: - dh $@ --sourcedirectory=src + dh $@ --sourcedirectory=src --with python3 override_dh_auto_clean: dh_auto_clean find . -type f -name "*.P" -delete +override_dh_install: + dh_install + for tool in tools/* ; do \ + cp -a $${tool} debian/$(DEBPKGNAME)/usr/bin/`basename $${tool} .py` ; \ + done + #get-orig-source: # . debian/get-orig-source -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/ecopcr.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
