{ "info": { "author": "Augustin Roche", "author_email": "aroche@photoherbarium.fr", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Taxon parser\n\nThis library is a pure Python adaptation of the GBIF Java [name-parser library](https://github.com/gbif/name-parser).\n\nIt is used to parse any taxonomic name into its elementary components (genus, species, authors...)\n\nIt returns a ParsedName object containing the name parts and the original parsed string.\n\n## Installation\n```\npip install taxon_parser\n```\n\n## Requirements\n\nThis library works for Python version 3.4 or higher\n\nThe only external package dependancy is the *regex* package for handling advanced regular expressions.\n\n\n## Usage\n\nbasic usage:\n\n```python\nfrom taxon_parser import TaxonParser, UnparsableNameException\n\nparser = TaxonParser(\"Abies pectinata mill.\")\ntry:\n parsed_name = parser.parse()\n print(parsed_name)\nexcept UnparsableNameException as e:\n print(\"this name does not seem to be a valid taxon name: \\n\" + e )\n```\n\nFor any name that can not be parsed, an UnparsableNameException is thrown.\n\n\n### ParsedName objects\n\nResults of the parsing are `ParsedName` objects. These have the following attributes and functions:\n\n* ParsedName.**combinationAuthorship**: Authorship object with years of the name, but excluding any basionym authorship.\nFor binomials the combination authors.\n\n* ParsedName.**basionymAuthorship**: basionym Authorship object with years of the name\n\n* ParsedName.**sanctioningAuthor**: The sanctioning author for sanctioned fungal names. Fr. or Pers.\n\n* ParsedName.**rank**: Rank of the name from enumeration see the [rank.py](taxon_parser/name_parser_api/api/rank.py) for description of possible ranks\n\n* ParsedName.**uninomial**: Represents the monomial for genus, families or names at higher ranks which do not have further epithets.\n\n* ParsedName.**genus**: The genus part of an infrageneric, bi- or trinomial name. Not used for standalone genus names which are represented as uninomials.\n\nInfrageneric epithets:\n\n* ParsedName.**infragenericEpithet**\n* ParsedName.**specificEpithet**\n* ParsedName.**infraspecificEpithet**\n* ParsedName.**cultivarEpithet**\n* ParsedName.**strain**\n\n* ParsedName.**candidatus**: A bacterial candidate name. Candidatus is a provisional status for incompletely described procaryotes\n(e.g. that cannot be maintained in a Bacteriology Culture Collection)\nwhich was published in the January 1995.\nThe category Candidatus is not covered by the Rules of the Bacteriological Code but is a taxonomic assignment.\nThe names included in the category Candidatus are usually written as follows:\n*Candidatus* (in italics), the subsequent name(s) in roman type and the entire name in quotation marks. For example, \"*Candidatus* Phytoplasma\", \"*Candidatus* Phytoplasma allocasuarinae\".\nSee http://www.bacterio.net/-candidatus.html and https://en.wikipedia.org/wiki/Candidatus\n\n* ParsedName.**notho**: The part of the named hybrid which is considered a hybrid\n\n* ParsedName.**taxonomicNotes**: Nomenclatural status remarks of the name.\n\n* ParsedName.**remarks**: Any informal remarks found in the name\n\n* ParsedName.**unparsed**: Any additional unparsed string found at the end of the name. Only ever set when state=PARTIAL\n\n* ParsedName.**type**: The kind of name classified in broad catagories based on their syntactical structure\n\n* ParsedName.**doubtful**: Indicates some doubts that this is a name of the given type.\nUsually indicates the existance of unusual characters not normally found in scientific names.\n\n* ParsedName.**state**: Indicates if the full name has been parsed\n\n* ParsedName.**getTerminalEpithet()**: returns the terminal epithet. Infraspecific epithet if existing, the species epithet or null\n\n* ParsedName.**hasName()**: return `True` if the parsed name has non null name properties or a scientific name. Remarks will not count as a name\n\n* ParsedName.**hasAuthorship()**: return `True` if any kind of authorship exists\n\n* ParsedName.**isBinomial()**: return `True` if the name is a bi- or trinomial with at least a genus and species epithet given.\n\n* ParsedName.**isTrinomial()**: return true if the name is a trinomial with at least a genus, species and infraspecific epithet given.\n\n* ParsedName.**isIndetermined()**: Checks if a parsed name is missing final epithets compared to what is indicated by its rank.\nReturns `True` if the name is not fully determined.\n\n* ParsedName.**isIncomplete()**: returns `True` if some \"higher\" epithet of a name is missing, e.g. the genus in case of a species.\n\n* ParsedName.**isAbbreviated()**: returns `True` if the name contains an abbreviated genus or uninomial.\n\n* ParsedName.**canonicalName()**: A full scientific name with authorship from the individual properties in its canonical form.\nAutonyms are rendered without authorship and subspecies are using the subsp rank marker\nunless a name is assigned to the zoological code.\n\n* ParsedName.**canonicalName()**: A full scientific name just as canonicalName, but without any authorship.\n\n* ParsedName.**canonicalComplete()**: Assembles a full name with all details including non code compliant, informal remarks.\n\n* ParsedName.**nameMinimal()**: returns a minimal canonical name with nothing else but the 3 main name parts (genus, species, infraspecific).\nNo rank or hybrid markers and no authorship, cultivar or strain information is rendered.\nInfrageneric names are represented without a leading genus.\nUnicode characters will be replaced by their matching ASCII characters.\nFor example:\n * Abies alba\n * Abies alba alpina\n * Bracteata\n\n* ParsedName.**authorshipComplete()**: returns the full concatenated authorship for parsed names including the sanctioning author.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aroche/taxon_parser", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "taxon-parser", "package_url": "https://pypi.org/project/taxon-parser/", "platform": "", "project_url": "https://pypi.org/project/taxon-parser/", "project_urls": { "Homepage": "https://github.com/aroche/taxon_parser" }, "release_url": "https://pypi.org/project/taxon-parser/0.2.3/", "requires_dist": null, "requires_python": ">=3.4", "summary": "A library to parse taxon names into elementary components", "version": "0.2.3" }, "last_serial": 4211642, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "1d9a200dd9baa4494827ff56d0d546f8", "sha256": "ec3f62afc95ab4b1b7d7c049313d772d4acc799bd280c9b75dd3a5046a90ff48" }, "downloads": -1, "filename": "taxon_parser-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1d9a200dd9baa4494827ff56d0d546f8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 38022, "upload_time": "2018-08-03T20:20:59", "url": "https://files.pythonhosted.org/packages/f9/b4/8bb51566e57977fd24d73f9e8c52b5b8c9211ecf3ea5dba83bd1d5686899/taxon_parser-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fb1a43cbf6fb9d76e9e12277fed0897", "sha256": "0d5c038321b7b0f2875afa9fa9b2b1ef09eb92889c4d170bad91a039140a4483" }, "downloads": -1, "filename": "taxon_parser-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6fb1a43cbf6fb9d76e9e12277fed0897", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 30972, "upload_time": "2018-08-03T20:21:00", "url": "https://files.pythonhosted.org/packages/09/30/25ae6cb8c312be637453e07ff54971f081d320e6f60385701ae4c5fbcdcc/taxon_parser-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "072bac60dffd6793c82edad2fa7fb6b6", "sha256": "621f29c9291b78c66c9b1b11e71fb04bfe5755d3c1ed9cb42c33f5a7d06b286d" }, "downloads": -1, "filename": "taxon_parser-0.2.1.tar.gz", "has_sig": false, "md5_digest": "072bac60dffd6793c82edad2fa7fb6b6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 33432, "upload_time": "2018-08-24T09:17:13", "url": "https://files.pythonhosted.org/packages/19/10/0a243fb2076f875f9e63d30e86891d9f000263cd330850c780ec832bb69f/taxon_parser-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "673d195b51f9b5dd29b035d437f62fe1", "sha256": "d706f398ded01211c16af06e85324401b116427726f48957a4cf31c713b3aef2" }, "downloads": -1, "filename": "taxon_parser-0.2.2.tar.gz", "has_sig": false, "md5_digest": "673d195b51f9b5dd29b035d437f62fe1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 32761, "upload_time": "2018-08-24T15:50:13", "url": "https://files.pythonhosted.org/packages/10/66/07330dd31c0156ccd2a8d2155c8dc0e882f45de1f36f1577c14b2a290cf6/taxon_parser-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "969964e8e0b8402e6bc5dfba8b7c013b", "sha256": "2638d9a678edc28f844f8c5071b2bf9dd0239ff33d2fcd7876cc3bc8b61386a9" }, "downloads": -1, "filename": "taxon_parser-0.2.3.tar.gz", "has_sig": false, "md5_digest": "969964e8e0b8402e6bc5dfba8b7c013b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 32725, "upload_time": "2018-08-27T16:37:50", "url": "https://files.pythonhosted.org/packages/b7/30/dfb6c72b33b319096e1981d67a147215264e0f74912726767c96201d455a/taxon_parser-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "969964e8e0b8402e6bc5dfba8b7c013b", "sha256": "2638d9a678edc28f844f8c5071b2bf9dd0239ff33d2fcd7876cc3bc8b61386a9" }, "downloads": -1, "filename": "taxon_parser-0.2.3.tar.gz", "has_sig": false, "md5_digest": "969964e8e0b8402e6bc5dfba8b7c013b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 32725, "upload_time": "2018-08-27T16:37:50", "url": "https://files.pythonhosted.org/packages/b7/30/dfb6c72b33b319096e1981d67a147215264e0f74912726767c96201d455a/taxon_parser-0.2.3.tar.gz" } ] }