versionix


Nameversionix JSON
Version 0.99.2 PyPI version JSON
download
home_pagehttps://github.com/sequana/versionix
SummaryGet version of any tools
upload_time2024-12-03 12:02:54
maintainerNone
docs_urlNone
authorSequana Team
requires_python<4.0,>=3.8
licenseBSD-3
keywords versioning bioinformatics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Versionix
###########


.. image:: https://badge.fury.io/py/versionix.svg
    :target: https://pypi.python.org/pypi/versionix


.. image:: https://github.com/sequana/versionix/actions/workflows/main.yml/badge.svg
   :target: https://github.com/sequana/versionix/actions/workflows/main.yml

.. image:: https://coveralls.io/repos/github/sequana/versionix/badge.svg?branch=main
    :target: https://coveralls.io/github/sequana/versionix?branch=main

.. image:: https://zenodo.org/badge/658721856.svg
   :target: https://zenodo.org/badge/latestdoi/658721856

:Python version: Python 3.8, 3.9, 3.10, 3.11, 3.12
:Source: See  `http://github.com/sequana/versionix <https://github.com/sequana/versionix/>`__.
:Issues: Please fill a report on `github <https://github.com/sequana/versionix/issues>`__

Overview
========

Versionix is a lightweight tool designed to display the version of standalone software directly on the screen, handling
various versioning formats.


Installation
----------------

If you are in a hurry, just type::

    pip install versionix  --upgrade

This is pure Python so no need for fancy libraries.

Usage
-----

Then, just type **versionix** followed by an executable installed on your system, e.g for linux users::

    versionix ls

where **ls** is a standard command. In bioinformatics, **fastqc** is quite common. You can check its version as
follows::

    versionix fastqc

**versionix** prints the version as X.Y.Z string.

Most tools would work. However, a registry is available for complex cases. Registered tools can be obtained with the following command. If your favorite tool is not there, create a PR or an issue::

    versionix --registered

Type::

    versionix --help

to get more help like this example:

.. image:: doc/versionix_usage.png

For developers only
-------------------

Contributions are welcome. Please submit pull requests. If you do so, please also add or update tests if needed.

We use pytest, that can be used as follow in the root of the project:

    pytest -v --cov versionix

DESCRIPTION
===========


The first difficulty is that standalone applications have different ways to obtain their version information. Some require the use of a long or short argument (--version or -v), while others do not require any argument at all. In addition, display channels (stdout or stderr) and formats of the version output differs between applications. To handle these various cases, we define a regular expression that should work for maybe 80% of applications (difficult to estimate). For non standard case, a dictionnary of **metadata** related to the different standalones is available. These metadata helps in the identification of the command to run, the options to use, if the information is directed to stdout or stderr and the method to parse the output to obtain the version number.

Versionix is designed to be used with all Sequana pipelines and is not intended to be universal. You can add your own standalone version in the versionix/register.py file and provide a Pull Request.


Changelog
=========

========= ========================================================================
Version   Description
========= ========================================================================
0.99.2    Handle cases where e.g. --version is returned to the stderr (instead of
          stdout)
0.99.1    Remove warning if we are using registered entry.
0.99.0    Final version before 1.0.0
0.3.0     Refactor to use regular expression and registry only if needed. This
          make versionix quite generic.
0.2.4     More tools in the registry and added precommit
0.2.3     More tools in the registry
0.2.2     add all tools required by sequana pipelines (oct 2023)
0.2.1     More tools added.
0.2       simplification. Add tests. Add more tools
0.1       first draft
========= ========================================================================

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sequana/versionix",
    "name": "versionix",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "versioning, bioinformatics",
    "author": "Sequana Team",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/0d/e5/86381d94870b94e78c9a76d6f68a2d8451b9dcbc7dfb5b47d128c454ace6/versionix-0.99.2.tar.gz",
    "platform": null,
    "description": "Versionix\n###########\n\n\n.. image:: https://badge.fury.io/py/versionix.svg\n    :target: https://pypi.python.org/pypi/versionix\n\n\n.. image:: https://github.com/sequana/versionix/actions/workflows/main.yml/badge.svg\n   :target: https://github.com/sequana/versionix/actions/workflows/main.yml\n\n.. image:: https://coveralls.io/repos/github/sequana/versionix/badge.svg?branch=main\n    :target: https://coveralls.io/github/sequana/versionix?branch=main\n\n.. image:: https://zenodo.org/badge/658721856.svg\n   :target: https://zenodo.org/badge/latestdoi/658721856\n\n:Python version: Python 3.8, 3.9, 3.10, 3.11, 3.12\n:Source: See  `http://github.com/sequana/versionix <https://github.com/sequana/versionix/>`__.\n:Issues: Please fill a report on `github <https://github.com/sequana/versionix/issues>`__\n\nOverview\n========\n\nVersionix is a lightweight tool designed to display the version of standalone software directly on the screen, handling\nvarious versioning formats.\n\n\nInstallation\n----------------\n\nIf you are in a hurry, just type::\n\n    pip install versionix  --upgrade\n\nThis is pure Python so no need for fancy libraries.\n\nUsage\n-----\n\nThen, just type **versionix** followed by an executable installed on your system, e.g for linux users::\n\n    versionix ls\n\nwhere **ls** is a standard command. In bioinformatics, **fastqc** is quite common. You can check its version as\nfollows::\n\n    versionix fastqc\n\n**versionix** prints the version as X.Y.Z string.\n\nMost tools would work. However, a registry is available for complex cases. Registered tools can be obtained with the following command. If your favorite tool is not there, create a PR or an issue::\n\n    versionix --registered\n\nType::\n\n    versionix --help\n\nto get more help like this example:\n\n.. image:: doc/versionix_usage.png\n\nFor developers only\n-------------------\n\nContributions are welcome. Please submit pull requests. If you do so, please also add or update tests if needed.\n\nWe use pytest, that can be used as follow in the root of the project:\n\n    pytest -v --cov versionix\n\nDESCRIPTION\n===========\n\n\nThe first difficulty is that standalone applications have different ways to obtain their version information. Some require the use of a long or short argument (--version or -v), while others do not require any argument at all. In addition, display channels (stdout or stderr) and formats of the version output differs between applications. To handle these various cases, we define a regular expression that should work for maybe 80% of applications (difficult to estimate). For non standard case, a dictionnary of **metadata** related to the different standalones is available. These metadata helps in the identification of the command to run, the options to use, if the information is directed to stdout or stderr and the method to parse the output to obtain the version number.\n\nVersionix is designed to be used with all Sequana pipelines and is not intended to be universal. You can add your own standalone version in the versionix/register.py file and provide a Pull Request.\n\n\nChangelog\n=========\n\n========= ========================================================================\nVersion   Description\n========= ========================================================================\n0.99.2    Handle cases where e.g. --version is returned to the stderr (instead of\n          stdout)\n0.99.1    Remove warning if we are using registered entry.\n0.99.0    Final version before 1.0.0\n0.3.0     Refactor to use regular expression and registry only if needed. This\n          make versionix quite generic.\n0.2.4     More tools in the registry and added precommit\n0.2.3     More tools in the registry\n0.2.2     add all tools required by sequana pipelines (oct 2023)\n0.2.1     More tools added.\n0.2       simplification. Add tests. Add more tools\n0.1       first draft\n========= ========================================================================\n",
    "bugtrack_url": null,
    "license": "BSD-3",
    "summary": "Get version of any tools",
    "version": "0.99.2",
    "project_urls": {
        "Homepage": "https://github.com/sequana/versionix",
        "Repository": "https://github.com/sequana/versionix"
    },
    "split_keywords": [
        "versioning",
        " bioinformatics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22f4ab6635803d1dde40a9a174f6179fe7eae3dc99728729356803c7404adc3d",
                "md5": "f65f91559f70804dc783ffd7ef5aa281",
                "sha256": "306d9aa025a05a6dff2ce3eb85c70bc2e31ff3c7528b20c7da9c7f70425eab2b"
            },
            "downloads": -1,
            "filename": "versionix-0.99.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f65f91559f70804dc783ffd7ef5aa281",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 9955,
            "upload_time": "2024-12-03T12:02:53",
            "upload_time_iso_8601": "2024-12-03T12:02:53.180453Z",
            "url": "https://files.pythonhosted.org/packages/22/f4/ab6635803d1dde40a9a174f6179fe7eae3dc99728729356803c7404adc3d/versionix-0.99.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0de586381d94870b94e78c9a76d6f68a2d8451b9dcbc7dfb5b47d128c454ace6",
                "md5": "24682e2ae45c7428739225f67c65d128",
                "sha256": "11b127aa4d9574b20c6104f77c76351235ff89b0bdde8a807a5a03e23f71bded"
            },
            "downloads": -1,
            "filename": "versionix-0.99.2.tar.gz",
            "has_sig": false,
            "md5_digest": "24682e2ae45c7428739225f67c65d128",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 9330,
            "upload_time": "2024-12-03T12:02:54",
            "upload_time_iso_8601": "2024-12-03T12:02:54.419787Z",
            "url": "https://files.pythonhosted.org/packages/0d/e5/86381d94870b94e78c9a76d6f68a2d8451b9dcbc7dfb5b47d128c454ace6/versionix-0.99.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-03 12:02:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sequana",
    "github_project": "versionix",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "versionix"
}
        
Elapsed time: 4.58998s