Skip to content

Commit

Permalink
v3.3.0: parserver host opt
Browse files Browse the repository at this point in the history
  • Loading branch information
dimus committed Aug 15, 2015
1 parent a9d3dcd commit 12b6351
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 12 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG
@@ -1,5 +1,9 @@

3.3.0 -- parserver gets new option -- -H for host, default 127.0.0.1

3.2.1 -- fix parserver -- it does remove new lines now (before it was not
necessary as they were stripped in older versions by parser)
necessary as they were stripped in older versions by parser)

3.2.0 -- added UUID version 5 identifiers for every name string, better
normalizing for the names with apostrophes, underscore-formatted names are
Expand Down
8 changes: 6 additions & 2 deletions README.md
Expand Up @@ -52,10 +52,14 @@ you can use a socket server
to canonical forms

-o, --output=output Specifies the type of the output:
json - parsed results in json
canonical - canonical form only
json - parsed results in json
canonical - canonical form only
Default: json

-H, --host=host Specifies host as "127.0.0.1",
"localhost" etc.
Default: 127.0.0.1

-p, --port=port Specifies the port number
Default: 4334

Expand Down
16 changes: 12 additions & 4 deletions bin/parserver
Expand Up @@ -4,11 +4,13 @@ require 'socket'
require 'biodiversity'

DEFAULT_PORT = 4334
DEFAULT_HOST = "127.0.0.1"
RUBY_VERSION_INT = RUBY_VERSION.split('.')[0..1].join('').to_i
OPTIONS = {
output: 'json',
canonical_with_rank: false,
port: DEFAULT_PORT
port: DEFAULT_PORT,
host: DEFAULT_HOST
}

options = {}
Expand All @@ -33,6 +35,12 @@ ARGV.options do |opts|

opts.separator ''

opts.on('-H', '--host=host', String,
'Specifies host as "127.0.0.1", "localhost" etc.',
"Default: #{DEFAULT_HOST}") { |host| options[:host] = host }

opts.separator ''

opts.on('-p', '--port=port', String,
'Specifies the port number',
"Default: #{DEFAULT_PORT}") { |port| options[:port] = port }
Expand Down Expand Up @@ -61,12 +69,12 @@ def get_output(name_string, parser)
parsed[:scientificName][:canonical].to_s
end

puts "Running parser service on port %s, output type is '%s'" %
[OPTIONS[:port], OPTIONS[:output]]
puts "Running parser service on %{host}:%{port}, output type is '%{output}'" %
OPTIONS
opts = {}
opts = {canonical_with_rank: true} if OPTIONS[:canonical_with_rank]
parser = ScientificNameParser.new(opts)
server = TCPServer.open(OPTIONS[:port]) # Socket to listen on a port
server = TCPServer.open(OPTIONS[:host], OPTIONS[:port]) # Socket to listen on a port
loop do # Servers run forever
Thread.start(server.accept) do |client|
puts 'opening client'
Expand Down
2 changes: 1 addition & 1 deletion lib/biodiversity/version.rb
@@ -1,3 +1,3 @@
module Biodiversity
VERSION = "3.2.1"
VERSION = "3.3.0"
end
11 changes: 6 additions & 5 deletions spec/files/test_data.txt
Expand Up @@ -52,6 +52,8 @@ Aconitum ser. Tangutica W.T. Wang|{"scientificName":{"id":"8f5d7bd0-90a1-556d-a8
#canonical binomial
Pseudocercospora dendrobii|{"scientificName":{"id":"5b320aa4-d417-5eda-be2d-83632e0d3624", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii","normalized":"Pseudocercospora dendrobii","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii"}}],"positions":{"0":["genus",16],"21":["species",30]}}}
Cucurbita pepo|{"scientificName":{"id":"022e85ce-a786-5478-9799-ac2e0f2cc726", "parsed":true, "parser_version":"test_version", "verbatim":"Cucurbita pepo", "normalized":"Cucurbita pepo", "canonical":"Cucurbita pepo", "hybrid":false, "details":[{"genus":{"string":"Cucurbita"}, "species":{"string":"pepo"}}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 14]}}}
Hirsutëlla mâle|{"scientificName":{"id":"62cc5704-b486-5aba-882c-dc29f5282179", "parsed":true, "parser_version":"test_version", "verbatim":"Hirsutëlla mâle", "normalized":"Hirsutella male", "canonical":"Hirsutella male", "hybrid":false, "details":[{"genus":{"string":"Hirsutella"}, "species":{"string":"male"}}], "parser_run":2, "positions":{"0":["genus", 10], "11":["species", 15]}}}
Aëtosaurus ferratus|{"scientificName":{"id":"9d95ffa0-0203-541f-854a-77ca7ff187fa", "parsed":true, "parser_version":"test_version", "verbatim":"Aëtosaurus ferratus", "normalized":"Aetosaurus ferratus", "canonical":"Aetosaurus ferratus", "hybrid":false, "details":[{"genus":{"string":"Aetosaurus"}, "species":{"string":"ferratus"}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 19]}}}


# Names with underscores intead of spaces
Expand Down Expand Up @@ -83,16 +85,12 @@ Serjania meridionalis Cambess. var. o'donelli F.A. Barkley|{"scientificName":{"i
#TODO Donatia novae zelandiae Hook.f.
#TODO Donatia novae-zelandiae Hook.f.


#binomial with several authours
Potamogeton iilinoensis var. ventanicola (Hicken) Horn af Rantzien|{"scientificName":{"id":"e7888abd-4365-5d74-8d5f-a69c8196328e", "parsed":true, "parser_version":"test_version", "verbatim":"Potamogeton iilinoensis var. ventanicola (Hicken) Horn af Rantzien", "normalized":"Potamogeton iilinoensis var. ventanicola (Hicken) Horn af Rantzien", "canonical":"Potamogeton iilinoensis ventanicola", "hybrid":false, "details":[{"genus":{"string":"Potamogeton"}, "species":{"string":"iilinoensis"}, "infraspecies":[{"string":"ventanicola", "rank":"var.", "authorship":"(Hicken) Horn af Rantzien", "combinationAuthorTeam":{"authorTeam":"Horn af Rantzien", "author":["Horn af Rantzien"]}, "basionymAuthorTeam":{"authorTeam":"Hicken", "author":["Hicken"]}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 23], "24":["infraspecific_type", 28], "29":["infraspecies", 40], "42":["author_word", 48], "50":["author_word", 54], "55":["author_word", 57], "58":["author_word", 66]}}}
Pseudocercospora dendrobii Goh & W.H. Hsieh 1990|{"scientificName":{"id":"988fd6ba-0221-5b62-a041-fb81addc4465", "parsed":true, "parser_version":"test_version", "verbatim":"Pseudocercospora dendrobii Goh & W.H. Hsieh 1990", "normalized":"Pseudocercospora dendrobii Goh & W.H. Hsieh 1990", "canonical":"Pseudocercospora dendrobii", "hybrid":false, "details":[{"genus":{"string":"Pseudocercospora"}, "species":{"string":"dendrobii", "authorship":"Goh & W.H. Hsieh 1990", "basionymAuthorTeam":{"authorTeam":"Goh & W.H. Hsieh", "author":["Goh", "W.H. Hsieh"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 16], "17":["species", 26], "27":["author_word", 30], "33":["author_word", 37], "38":["author_word", 43], "44":["year", 48]}}}
Pseudocercospora dendrobii Goh and W.H. Hsieh 1990|{"scientificName":{"id":"4d701dca-8774-5a5e-9378-11f60c0e735c", "parsed":true, "parser_version":"test_version", "verbatim":"Pseudocercospora dendrobii Goh and W.H. Hsieh 1990", "normalized":"Pseudocercospora dendrobii Goh & W.H. Hsieh 1990", "canonical":"Pseudocercospora dendrobii", "hybrid":false, "details":[{"genus":{"string":"Pseudocercospora"}, "species":{"string":"dendrobii", "authorship":"Goh and W.H. Hsieh 1990", "basionymAuthorTeam":{"authorTeam":"Goh and W.H. Hsieh", "author":["Goh", "W.H. Hsieh"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 16], "17":["species", 26], "27":["author_word", 30], "35":["author_word", 39], "40":["author_word", 45], "46":["year", 50]}}}
Pseudocercospora dendrobii Goh et W.H. Hsieh 1990|{"scientificName":{"id":"13175b62-b95b-53b7-8d88-1be6fca794ec", "parsed":true, "parser_version":"test_version", "verbatim":"Pseudocercospora dendrobii Goh et W.H. Hsieh 1990", "normalized":"Pseudocercospora dendrobii Goh & W.H. Hsieh 1990", "canonical":"Pseudocercospora dendrobii", "hybrid":false, "details":[{"genus":{"string":"Pseudocercospora"}, "species":{"string":"dendrobii", "authorship":"Goh et W.H. Hsieh 1990", "basionymAuthorTeam":{"authorTeam":"Goh et W.H. Hsieh", "author":["Goh", "W.H. Hsieh"], "year":"1990"}}}], "parser_run":1, "positions":{"0":["genus", 16], "17":["species", 26], "27":["author_word", 30], "34":["author_word", 38], "39":["author_word", 44], "45":["year", 49]}}}
Schottera nicaeënsis (J.V. Lamouroux ex Duby) Guiry & Hollenberg|{"scientificName":{"id":"ffeb3703-63e5-5ff3-b296-582c0c3a3373", "parsed":true, "parser_version":"test_version", "verbatim":"Schottera nicaeënsis (J.V. Lamouroux ex Duby) Guiry & Hollenberg", "normalized":"Schottera nicaeensis (J.V. Lamouroux ex Duby) Guiry & Hollenberg", "canonical":"Schottera nicaeensis", "hybrid":false, "details":[{"genus":{"string":"Schottera"}, "species":{"string":"nicaeensis", "authorship":"(J.V. Lamouroux ex Duby) Guiry & Hollenberg", "combinationAuthorTeam":{"authorTeam":"Guiry & Hollenberg", "author":["Guiry", "Hollenberg"]}, "basionymAuthorTeam":{"authorTeam":"J.V. Lamouroux", "author":["J.V. Lamouroux"], "exAuthorTeam":{"authorTeam":"Duby", "author":["Duby"]}}}}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 20], "22":["author_word", 26], "27":["author_word", 36], "40":["author_word", 44], "46":["author_word", 51], "54":["author_word", 64]}}}
Hirsutëlla mâle|{"scientificName":{"id":"62cc5704-b486-5aba-882c-dc29f5282179", "parsed":true, "parser_version":"test_version", "verbatim":"Hirsutëlla mâle", "normalized":"Hirsutella male", "canonical":"Hirsutella male", "hybrid":false, "details":[{"genus":{"string":"Hirsutella"}, "species":{"string":"male"}}], "parser_run":2, "positions":{"0":["genus", 10], "11":["species", 15]}}}
Triticum repens vulgäre|{"scientificName":{"id":"5fb6ae9c-d7be-5d81-88b8-3c96d4c48a74", "parsed":true, "parser_version":"test_version", "verbatim":"Triticum repens vulgäre", "normalized":"Triticum repens vulgare", "canonical":"Triticum repens vulgare", "hybrid":false, "details":[{"genus":{"string":"Triticum"}, "species":{"string":"repens"}, "infraspecies":[{"string":"vulgare", "rank":"n/a"}]}], "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 15], "16":["infraspecies", 23]}}}
Triticum repens var. vulgäre|{"scientificName":{"id":"3421b13b-aaa9-5234-bc1d-9d3fe7a6b19e", "parsed":true, "parser_version":"test_version", "verbatim":"Triticum repens var. vulgäre", "normalized":"Triticum repens var. vulgare", "canonical":"Triticum repens vulgare", "hybrid":false, "details":[{"genus":{"string":"Triticum"}, "species":{"string":"repens"}, "infraspecies":[{"string":"vulgare", "rank":"var."}]}], "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 15], "16":["infraspecific_type", 20], "21":["infraspecies", 28]}}}
Aëtosaurus ferratus|{"scientificName":{"id":"9d95ffa0-0203-541f-854a-77ca7ff187fa", "parsed":true, "parser_version":"test_version", "verbatim":"Aëtosaurus ferratus", "normalized":"Aetosaurus ferratus", "canonical":"Aetosaurus ferratus", "hybrid":false, "details":[{"genus":{"string":"Aetosaurus"}, "species":{"string":"ferratus"}}], "parser_run":1, "positions":{"0":["genus", 10], "11":["species", 19]}}}

#binomial with several authors and a year
Pseudocercospora dendrobii U. Braun & Crous 2003|{"scientificName":{"id":"afd958fc-82a5-5551-951b-a725a49d3df0", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Pseudocercospora dendrobii U. Braun & Crous 2003","normalized":"Pseudocercospora dendrobii U. Braun & Crous 2003","canonical":"Pseudocercospora dendrobii","hybrid":false,"details":[{"genus":{"string":"Pseudocercospora"},"species":{"string":"dendrobii","authorship":"U. Braun & Crous 2003","basionymAuthorTeam":{"authorTeam":"U. Braun & Crous","author":["U. Braun","Crous"],"year":"2003"}}}],"positions":{"0":["genus",16],"17":["species",26],"27":["author_word",29],"30":["author_word",35],"38":["author_word",43],"44":["year",48]}}}
Expand Down Expand Up @@ -148,6 +146,7 @@ Sedella pumila (Benth.) Britton & Rose|{"scientificName":{"id":"393cedba-6ff1-5e


#infraspecies without rank
Triticum repens vulgäre|{"scientificName":{"id":"5fb6ae9c-d7be-5d81-88b8-3c96d4c48a74", "parsed":true, "parser_version":"test_version", "verbatim":"Triticum repens vulgäre", "normalized":"Triticum repens vulgare", "canonical":"Triticum repens vulgare", "hybrid":false, "details":[{"genus":{"string":"Triticum"}, "species":{"string":"repens"}, "infraspecies":[{"string":"vulgare", "rank":"n/a"}]}], "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 15], "16":["infraspecies", 23]}}}
Hydnellum scrobiculatum zonatum (Batsch) K. A. Harrison 1961|{"scientificName":{"id":"8368c11a-7c1b-5e82-bdad-a4887bfa81d2", "parsed":true, "parser_version":"test_version", "verbatim":"Hydnellum scrobiculatum zonatum (Batsch) K. A. Harrison 1961", "normalized":"Hydnellum scrobiculatum zonatum (Batsch) K. A. Harrison 1961", "canonical":"Hydnellum scrobiculatum zonatum", "hybrid":false, "details":[{"genus":{"string":"Hydnellum"}, "species":{"string":"scrobiculatum"}, "infraspecies":[{"string":"zonatum", "rank":"n/a", "authorship":"(Batsch) K. A. Harrison 1961", "combinationAuthorTeam":{"authorTeam":"K. A. Harrison", "author":["K. A. Harrison"], "year":"1961"}, "basionymAuthorTeam":{"authorTeam":"Batsch", "author":["Batsch"]}}]}], "parser_run":1, "positions":{"0":["genus", 9], "10":["species", 23], "24":["infraspecies", 31], "33":["author_word", 39], "41":["author_word", 43], "44":["author_word", 46], "47":["author_word", 55], "56":["year", 60]}}}
Hydnellum scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"id":"fa3448c6-168e-575f-a6eb-c5adc6f3e89d", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Hydnellum scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972","normalized":"Hydnellum scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972","canonical":"Hydnellum scrobiculatum zonatum","hybrid":false,"details":[{"genus":{"string":"Hydnellum"},"species":{"string":"scrobiculatum"},"infraspecies":[{"string":"zonatum","rank":"n\/a","authorship":"(Banker) D. Hall & D.E. Stuntz 1972","combinationAuthorTeam":{"authorTeam":"D. Hall & D.E. Stuntz","author":["D. Hall","D.E. Stuntz"],"year":"1972"},"basionymAuthorTeam":{"authorTeam":"Banker","author":["Banker"]}}]}],"positions":{"0":["genus",9],"10":["species",23],"24":["infraspecies",31],"33":["author_word",39],"41":["author_word",43],"44":["author_word",48],"51":["author_word",55],"56":["author_word",62],"63":["year",67]}}}
Hydnellum (Hydnellum) scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972|{"scientificName":{"id":"14e5eb1f-82a3-598c-9ada-3a9a20ab54cc", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Hydnellum (Hydnellum) scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972","normalized":"Hydnellum (Hydnellum) scrobiculatum zonatum (Banker) D. Hall & D.E. Stuntz 1972","canonical":"Hydnellum scrobiculatum zonatum","hybrid":false,"details":[{"genus":{"string":"Hydnellum"},"infragenus":{"string":"Hydnellum"},"species":{"string":"scrobiculatum"},"infraspecies":[{"string":"zonatum","rank":"n\/a","authorship":"(Banker) D. Hall & D.E. Stuntz 1972","combinationAuthorTeam":{"authorTeam":"D. Hall & D.E. Stuntz","author":["D. Hall","D.E. Stuntz"],"year":"1972"},"basionymAuthorTeam":{"authorTeam":"Banker","author":["Banker"]}}]}],"positions":{"0":["genus",9],"11":["infragenus",20],"22":["species",35],"36":["infraspecies",43],"45":["author_word",51],"53":["author_word",55],"56":["author_word",60],"63":["author_word",67],"68":["author_word",74],"75":["year",79]}}}
Expand All @@ -156,6 +155,8 @@ Mus musculus hortulanus|{"scientificName":{"id":"5fd9a4aa-9fa8-5200-909a-6c9ec8a
Ortygospiza atricollis mülleri|{"scientificName":{"id":"1ee6bf1d-90d8-5c4b-98c1-2646c301d07c", "parsed":true, "parser_version":"test_version", "verbatim":"Ortygospiza atricollis mülleri", "normalized":"Ortygospiza atricollis mulleri", "canonical":"Ortygospiza atricollis mulleri", "hybrid":false, "details":[{"genus":{"string":"Ortygospiza"}, "species":{"string":"atricollis"}, "infraspecies":[{"string":"mulleri", "rank":"n/a"}]}], "parser_run":2, "positions":{"0":["genus", 11], "12":["species", 22], "23":["infraspecies", 30]}}}

#infraspecies with rank
Potamogeton iilinoensis var. ventanicola (Hicken) Horn af Rantzien|{"scientificName":{"id":"e7888abd-4365-5d74-8d5f-a69c8196328e", "parsed":true, "parser_version":"test_version", "verbatim":"Potamogeton iilinoensis var. ventanicola (Hicken) Horn af Rantzien", "normalized":"Potamogeton iilinoensis var. ventanicola (Hicken) Horn af Rantzien", "canonical":"Potamogeton iilinoensis ventanicola", "hybrid":false, "details":[{"genus":{"string":"Potamogeton"}, "species":{"string":"iilinoensis"}, "infraspecies":[{"string":"ventanicola", "rank":"var.", "authorship":"(Hicken) Horn af Rantzien", "combinationAuthorTeam":{"authorTeam":"Horn af Rantzien", "author":["Horn af Rantzien"]}, "basionymAuthorTeam":{"authorTeam":"Hicken", "author":["Hicken"]}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 23], "24":["infraspecific_type", 28], "29":["infraspecies", 40], "42":["author_word", 48], "50":["author_word", 54], "55":["author_word", 57], "58":["author_word", 66]}}}
Triticum repens var. vulgäre|{"scientificName":{"id":"3421b13b-aaa9-5234-bc1d-9d3fe7a6b19e", "parsed":true, "parser_version":"test_version", "verbatim":"Triticum repens var. vulgäre", "normalized":"Triticum repens var. vulgare", "canonical":"Triticum repens vulgare", "hybrid":false, "details":[{"genus":{"string":"Triticum"}, "species":{"string":"repens"}, "infraspecies":[{"string":"vulgare", "rank":"var."}]}], "parser_run":2, "positions":{"0":["genus", 8], "9":["species", 15], "16":["infraspecific_type", 20], "21":["infraspecies", 28]}}}
Aus bus Linn. var. bus|{"scientificName":{"id":"2a6e45e2-5737-514b-8055-06f8a878dd36", "parsed":true, "parser_version":"test_version", "verbatim":"Aus bus Linn. var. bus", "normalized":"Aus bus Linn. var. bus", "canonical":"Aus bus bus", "hybrid":false, "details":[{"genus":{"string":"Aus"}, "species":{"string":"bus", "authorship":"Linn.", "basionymAuthorTeam":{"authorTeam":"Linn.", "author":["Linn."]}}, "infraspecies":[{"string":"bus", "rank":"var."}]}], "parser_run":1, "positions":{"0":["genus", 3], "4":["species", 7], "8":["author_word", 13], "14":["infraspecific_type", 18], "19":["infraspecies", 22]}}}
Agalinis purpurea (L.) Briton var. borealis (Berg.) Peterson 1987|{"scientificName":{"id":"769863cd-7c9d-5d4a-bf5c-fb6903a96431", "parsed":true, "parser_version":"test_version", "verbatim":"Agalinis purpurea (L.) Briton var. borealis (Berg.) Peterson 1987", "normalized":"Agalinis purpurea (L.) Briton var. borealis (Berg.) Peterson 1987", "canonical":"Agalinis purpurea borealis", "hybrid":false, "details":[{"genus":{"string":"Agalinis"}, "species":{"string":"purpurea", "authorship":"(L.) Briton", "combinationAuthorTeam":{"authorTeam":"Briton", "author":["Briton"]}, "basionymAuthorTeam":{"authorTeam":"L.", "author":["L."]}}, "infraspecies":[{"string":"borealis", "rank":"var.", "authorship":"(Berg.) Peterson 1987", "combinationAuthorTeam":{"authorTeam":"Peterson", "author":["Peterson"], "year":"1987"}, "basionymAuthorTeam":{"authorTeam":"Berg.", "author":["Berg."]}}]}], "parser_run":1, "positions":{"0":["genus", 8], "9":["species", 17], "19":["author_word", 21], "23":["author_word", 29], "30":["infraspecific_type", 34], "35":["infraspecies", 43], "45":["author_word", 50], "52":["author_word", 60], "61":["year", 65]}}}
Callideriphus flavicollis morph. reductus Fuchs 1961|{"scientificName":{"id":"2b01f892-dbb3-5776-870a-c6cb8f09f2bc", "parsed":true, "parser_version":"test_version", "verbatim":"Callideriphus flavicollis morph. reductus Fuchs 1961", "normalized":"Callideriphus flavicollis morph. reductus Fuchs 1961", "canonical":"Callideriphus flavicollis reductus", "hybrid":false, "details":[{"genus":{"string":"Callideriphus"}, "species":{"string":"flavicollis"}, "infraspecies":[{"string":"reductus", "rank":"morph.", "authorship":"Fuchs 1961", "basionymAuthorTeam":{"authorTeam":"Fuchs", "author":["Fuchs"], "year":"1961"}}]}], "parser_run":1, "positions":{"0":["genus", 13], "14":["species", 25], "26":["infraspecific_type", 32], "33":["infraspecies", 41], "42":["author_word", 47], "48":["year", 52]}}}
Expand Down

0 comments on commit 12b6351

Please sign in to comment.