patch multiple -Z options

This commit is contained in:
Eric Coissac
2025-01-29 21:35:28 +01:00
parent 337954592d
commit 2452aef7a9
5 changed files with 44 additions and 13 deletions

View File

@ -66,10 +66,6 @@ func GenerateOptionParser(optionset ...func(*getoptions.GetOpt)) ArgumentParser
options.GetEnv("OBISOLEXA"), options.GetEnv("OBISOLEXA"),
options.Description("Decodes quality string according to the Solexa specification.")) options.Description("Decodes quality string according to the Solexa specification."))
options.BoolVar(obidefault.CompressedPtr(), "compressed", obidefault.CompressOutput(),
options.Alias("Z"),
options.Description("Compress all the result using gzip"))
for _, o := range optionset { for _, o := range optionset {
o(options) o(options)
} }

View File

@ -8,7 +8,7 @@ import (
// corresponds to the last commit, and not the one when the file will be // corresponds to the last commit, and not the one when the file will be
// commited // commited
var _Commit = "8a28c9a" var _Commit = "3379545"
var _Version = "Release 4.2.0" var _Version = "Release 4.2.0"
// Version returns the version of the obitools package. // Version returns the version of the obitools package.

View File

@ -1,11 +1,14 @@
package obitax package obitax
import ( import (
"sync"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault" "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
) )
var __defaut_taxonomy__ *Taxonomy var __defaut_taxonomy__ *Taxonomy
var __defaut_taxonomy_mutex__ sync.Mutex
func (taxonomy *Taxonomy) SetAsDefault() { func (taxonomy *Taxonomy) SetAsDefault() {
log.Infof("Set as default taxonomy %s", taxonomy.Name()) log.Infof("Set as default taxonomy %s", taxonomy.Name())
@ -32,14 +35,18 @@ func DefaultTaxonomy() *Taxonomy {
var err error var err error
if __defaut_taxonomy__ == nil { if __defaut_taxonomy__ == nil {
if obidefault.HasSelectedTaxonomy() { if obidefault.HasSelectedTaxonomy() {
__defaut_taxonomy__, err = LoadTaxonomy( __defaut_taxonomy_mutex__.Lock()
obidefault.SelectedTaxonomy(), defer __defaut_taxonomy_mutex__.Unlock()
!obidefault.AreAlternativeNamesSelected(), if __defaut_taxonomy__ == nil {
) __defaut_taxonomy__, err = LoadTaxonomy(
obidefault.SelectedTaxonomy(),
!obidefault.AreAlternativeNamesSelected(),
)
if err != nil { if err != nil {
log.Fatalf("Cannot load default taxonomy: %v", err) log.Fatalf("Cannot load default taxonomy: %v", err)
}
} }
} }
} }

View File

@ -196,3 +196,29 @@ func (set *TaxonSet) Contains(id *string) bool {
node := set.Get(id) node := set.Get(id)
return node != nil return node != nil
} }
func (set *TaxonSet) Sort() *TaxonSlice {
if set == nil {
return nil
}
taxonomy := set.Taxonomy()
taxa := taxonomy.NewTaxonSlice(0, set.Len())
parent := make(map[*TaxNode]bool, set.Len())
pushed := true
for pushed {
pushed = false
for _, node := range set.set {
if !parent[node] && (parent[set.Get(node.parent).Node] ||
!set.Contains(node.parent)) {
pushed = true
taxa.slice = append(taxa.slice, node)
parent[node] = true
}
}
}
return taxa
}

View File

@ -3,6 +3,7 @@ package obiconvert
import ( import (
"os" "os"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions" "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
@ -76,9 +77,10 @@ func OutputModeOptionSet(options *getoptions.GetOpt, compressed bool) {
options.Description("Disable the progress bar printing")) options.Description("Disable the progress bar printing"))
if compressed { if compressed {
options.BoolVar(&__compressed__, "compress", false, options.BoolVar(obidefault.CompressedPtr(), "compressed", obidefault.CompressOutput(),
options.Alias("Z"), options.Alias("Z"),
options.Description("Output is compressed")) options.Description("Compress all the result using gzip"))
} }
options.StringVar(&__output_file_name__, "out", __output_file_name__, options.StringVar(&__output_file_name__, "out", __output_file_name__,