Add managment of the taxonomy alias politic

This commit is contained in:
Eric Coissac
2025-02-10 14:05:47 +01:00
parent e2563cd8df
commit 6a8061cc4f
16 changed files with 114 additions and 48 deletions

View File

@ -1,6 +1,7 @@
package obilua
import (
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitax"
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiutils"
lua "github.com/yuin/gopher-lua"
@ -98,13 +99,18 @@ func taxonomyGetCode(luaState *lua.LState) int {
func taxonomyGetTaxon(luaState *lua.LState) int {
taxo := checkTaxonomy(luaState)
taxid := luaState.CheckString(2)
taxon, err := taxo.Taxon(taxid)
taxon, isAlias, err := taxo.Taxon(taxid)
if err != nil {
luaState.RaiseError("%s : Error on taxon taxon: %v", taxid, err)
return 0
}
if isAlias && obidefault.FailOnTaxonomy() {
luaState.RaiseError("%s : Taxon is an alias of %s", taxid, taxon.String())
return 0
}
luaState.Push(taxon2Lua(luaState, taxon))
return 1
}