示例#1
0
def collect_versions(force=False):
    """ Collect versions for all modules

    :return: dict with sub-dicts of version descriptions
    """
    import label_studio
    if settings.VERSIONS and not force:
        return settings.VERSIONS

    # main pypi package
    result = {
        'label-studio-os-package': {
            'version':
            label_studio.__version__,
            'short_version':
            '.'.join(label_studio.__version__.split('.')[:2]),
            'latest_version_from_pypi':
            label_studio.__latest_version__,
            'latest_version_upload_time':
            label_studio.__latest_version_upload_time__,
            'current_version_is_outdated':
            label_studio.__current_version_is_outdated__
        },
        # backend full git info
        'label-studio-os-backend': version.get_git_commit_info()
    }

    # label studio frontend
    try:
        with open(os.path.join(settings.EDITOR_ROOT, 'version.json')) as f:
            lsf = json.load(f)
        result['label-studio-frontend'] = lsf
    except:
        pass

    # data manager
    try:
        with open(os.path.join(settings.DM_ROOT, 'version.json')) as f:
            dm = json.load(f)
        result['dm2'] = dm
    except:
        pass

    # converter
    try:
        import label_studio_converter
        result['label-studio-converter'] = {
            'version': label_studio_converter.__version__
        }
    except:
        pass

    result.update(settings.COLLECT_VERSIONS(result=result))

    for key in result:
        if 'message' in result[key] and len(result[key]['message']) > 70:
            result[key]['message'] = result[key]['message'][0:70] + ' ...'

    settings.VERSIONS = result
    return result
示例#2
0
def collect_versions(force=False):
    """ Collect versions for all modules

    :return: dict with sub-dicts of version descriptions
    """
    import label_studio
    if settings.VERSIONS and not force:
        return settings.VERSIONS

    # main pypi package
    result = {
        'package': {
            'version':
            label_studio.__version__,
            'short_version':
            '.'.join(label_studio.__version__.split('.')[:2]),
            'latest_version_from_pypi':
            label_studio.__latest_version__,
            'latest_version_upload_time':
            label_studio.__latest_version_upload_time__,
            'current_version_is_outdated':
            label_studio.__current_version_is_outdated__
        },
        # backend full git info
        'backend': version.get_git_commit_info()
    }

    # label studio frontend
    try:
        lsf = json.load(
            open(os.path.join(settings.EDITOR_ROOT, 'version.json')))
        result['label-studio-frontend'] = lsf
    except:
        pass

    # data manager
    try:
        dm = json.load(open(os.path.join(settings.DM_ROOT, 'version.json')))
        result['dm2'] = dm
    except:
        pass

    try:
        import label_studio_converter
        result['label-studio-converter'] = {
            'version': label_studio_converter.__version__
        }
    except:
        pass

    settings.VERSIONS = result
    return result
示例#3
0
def collect_versions(force=False):
    """ Collect versions for all modules

    :return: dict with sub-dicts of version descriptions
    """
    import label_studio

    # prevent excess checks by time intervals
    current_time = time.time()
    need_check = current_time - settings.VERSIONS_CHECK_TIME > 300
    settings.VERSIONS_CHECK_TIME = current_time

    if settings.VERSIONS and not force and not need_check:
        return settings.VERSIONS

    # main pypi package
    result = {
        'release': label_studio.__version__,
        'label-studio-os-package': {
            'version':
            label_studio.__version__,
            'short_version':
            '.'.join(label_studio.__version__.split('.')[:2]),
            'latest_version_from_pypi':
            label_studio.__latest_version__,
            'latest_version_upload_time':
            label_studio.__latest_version_upload_time__,
            'current_version_is_outdated':
            label_studio.__current_version_is_outdated__
        },
        # backend full git info
        'label-studio-os-backend': version.get_git_commit_info()
    }

    # label studio frontend
    try:
        with open(os.path.join(settings.EDITOR_ROOT, 'version.json')) as f:
            lsf = json.load(f)
        result['label-studio-frontend'] = lsf
    except:
        pass

    # data manager
    try:
        with open(os.path.join(settings.DM_ROOT, 'version.json')) as f:
            dm = json.load(f)
        result['dm2'] = dm
    except:
        pass

    # converter
    try:
        import label_studio_converter
        result['label-studio-converter'] = {
            'version': label_studio_converter.__version__
        }
    except Exception as e:
        pass

    # ml
    try:
        import label_studio_ml
        result['label-studio-ml'] = {'version': label_studio_ml.__version__}
    except Exception as e:
        pass

    result.update(settings.COLLECT_VERSIONS(result=result))

    for key in result:
        if 'message' in result[key] and len(result[key]['message']) > 70:
            result[key]['message'] = result[key]['message'][0:70] + ' ...'

    if settings.SENTRY_DSN:
        import sentry_sdk
        sentry_sdk.set_context("versions", copy.deepcopy(result))

        for package in result:
            if 'version' in result[package]:
                sentry_sdk.set_tag('version-' + package,
                                   result[package]['version'])
            if 'commit' in result[package]:
                sentry_sdk.set_tag('commit-' + package,
                                   result[package]['commit'])

    settings.VERSIONS = result
    return result