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
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
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