The ``versioning.py`` module
============================
.. py:module:: ansys.tools.common.versioning
Summary
-------
.. py:currentmodule:: versioning
.. tab-set::
.. tab-item:: Classes
.. list-table::
:header-rows: 0
:widths: auto
* - :py:obj:`~ansys.tools.common.versioning.VersionMeta`
- Provides a metaclass for version comparison.
* - :py:obj:`~ansys.tools.common.versioning.SemanticVersion`
- Provides a class for semantic versioning.
* - :py:obj:`~ansys.tools.common.versioning.Mystr`
- Provides the custom class to hold strings for versioning.
* - :py:obj:`~ansys.tools.common.versioning.Myint`
- Provides the custom class to hold integers for versioning.
* - :py:obj:`~ansys.tools.common.versioning.VersionNumber`
- Provides the class for version comparison.
.. tab-item:: Functions
.. list-table::
:header-rows: 0
:widths: auto
* - :py:obj:`~sanitize_version_string`
- Sanitize a version string number by adding additional zeros.
* - :py:obj:`~sanitize_version_tuple`
- Sanitize a version number by adding additional zeros.
* - :py:obj:`~version_string_as_tuple`
- Convert a semantic version string into a tuple.
* - :py:obj:`~version_tuple_as_string`
- Convert a semantic version tuple into a string.
* - :py:obj:`~server_meets_version`
- Check if server meets the required version.
* - :py:obj:`~requires_version`
- Ensure the method called matches a certain version.
* - :py:obj:`~valid_version_string`
- Check if the version string is valid.
* - :py:obj:`~valid_semantic_version`
- Check if a semantic version is valid.
.. toctree::
:titlesonly:
:maxdepth: 1
:hidden:
VersionMeta
SemanticVersion
Mystr
Myint
VersionNumber
Description
-----------
A module containing various utilities.
Module detail
-------------
.. py:function:: sanitize_version_string(version_string)
Sanitize a version string number by adding additional zeros.
Parameters
----------
version_string : str
A string representing a semantic version.
Returns
-------
str
A string representing a semantic version.
Examples
--------
>>> sanitize_version_string("0")
'0.0.0'
>>> sanitize_version_string("1.2")
'1.2.0'
>>> sanitize_version_string("0.3.4")
'0.3.4'
.. py:function:: sanitize_version_tuple(version_tuple)
Sanitize a version number by adding additional zeros.
Parameters
----------
version_tuple : tuple
A tuple representing a semantic version.
Returns
-------
tuple
A tuple representing a semantic version.
Examples
--------
>>> sanitize_version_tuple((0,))
(0, 0, 0)
>>> sanitize_version_tuple((1, 2))
(1, 2, 0)
>>> sanitize_version_tuple((0, 3, 4))
(0, 3, 4)
.. py:function:: version_string_as_tuple(version_string)
Convert a semantic version string into a tuple.
Parameters
----------
version_string : str
A string representing a semantic version.
Returns
-------
version_tuple : tuple
A tuple representing a semantic version.
Examples
--------
>>> version_string_as_tuple("0.3.4")
(0, 3, 4)
>>> version_string_as_tuple("1.2")
(1, 2, 0)
.. py:function:: version_tuple_as_string(version_tuple)
Convert a semantic version tuple into a string.
Parameters
----------
version_tuple : tuple
A tuple representing a semantic version.
Returns
-------
str
A string representing a semantic version.
Examples
--------
>>> version_tuple_as_string((0, 3, 4))
'0.3.4'
>>> version_tuple_as_string((1, 2))
'1.2.0'
.. py:function:: server_meets_version(server_version, required_version)
Check if server meets the required version.
Parameters
----------
server_version : str, tuple, obj
A string or tuple representing the server version.
If it is an object different from the previous ones, it must have a '_server_version' attribute.
required_version : str, tuple
A string or tuple representing the version to be meet.
Returns
-------
bool
``True`` if server version meets required version, ``False`` if not.
Raises
------
ValueError
If the 'server_version' object does not have '_server_version' attribute.
Examples
--------
>>> server_version, required_version = "1.2.0", "1.3.0"
>>> server_meets_version(server_version, required_version)
False
>>> server_version, required_version = (1, 2, 0), (1, 3, 0)
>>> server_meets_version(server_version, required_version)
False
>>> server_version, required_version = "2.3.0", "1.3.0"
>>> server_meets_version(server_version, required_version)
True
>>> server_version, required_version = (2, 3, 0), (1, 3, 0)
>>> server_meets_version(server_version, required_version)
True
>>> server_version, required_version = (0, 0, 0), (0, 0, 0)
>>> server_meets_version(server_version, required_version)
True
>>> class MyServer:
def __init__(self):
self._server_version = "1.2.0"
>>> server = MyServer()
>>> server_version, required_version = server, "1.3.0"
>>> server_meets_version(server, required_version)
.. py:function:: requires_version(version, version_map=None)
Ensure the method called matches a certain version.
Parameters
----------
version : str, tuple
A string or tuple representing the minimum required version.
version_map : dict, optional
A dictionary relating server version and ANSYS unified install version.
Raises
------
AttributeError
Decorated class method requires ``_server_version`` attribute.
VersionError
Decorated class method is not supported by server version.
.. py:function:: valid_version_string(version)
Check if the version string is valid.
.. py:function:: valid_semantic_version(iterable)
Check if a semantic version is valid.