Source code for lionshead

# -*- coding: utf-8 -*-

"""Determine more specific platform information than that which is available
with :func:`distutils.util.get_platform`.
"""

from __future__ import absolute_import

import distutils.util

from lionshead import linux, util


__version__ = '0.1'


[docs]def get_specific_platform(): """Get the specific platform in a Pythonic representation. The return value is a 4-namedtuple with members: * :attr:`dist` - OS distribution (string) * :attr:`major_vers` - Distribution major version (string) * :attr:`full_vers` - Distribution full version (string) * :attr:`stability` - Stability (``stable`` or ``unstable``) Strings are not "sanitized" to remove characters considered invalid in platform strings such as in :func:`distutils.util.get_platform`. If the specific platform cannot be determined, ``None`` is returned. """ base = distutils.util.get_platform().split('-')[0] if base == 'linux': return linux.get_specific_platform() return None
[docs]def get_specific_platform_string(): """Returns the specific platform as a normalized string. """ plat = get_specific_platform() if not plat: return str(None) if plat.major_vers == plat.full_vers: r = (plat.dist, plat.major_vers) else: r = (plat.dist, plat.major_vers, plat.full_vers) return '-'.join( [ util.normalize_name(e) for e in r ] )
[docs]def get_platform_stability_string(): """Returns the platform's stability as a string. """ plat = get_specific_platform() if not plat: return str(None) return plat.stability