Source code for biothings.utils.info


import json
import logging
import os
import sys

from biothings.utils.version import get_software_info

logger = logging.getLogger(__name__)

[docs]class FieldNote: def __init__(self, path): try: # populate field notes if exist inf = open(path, 'r') self._fields_notes = json.load(inf) inf.close() except Exception: self._fields_notes = {}
[docs] def get_field_notes(self): ''' Return the cached field notes associated with this instance. ''' return self._fields_notes
[docs]class DevInfo: def __init__(self): # the path can be a sub-folder of a git repository # as long as it responds to "git" command line call if sys.argv[0]: # running as a script self._repo = os.path.dirname(sys.argv[0]) else: # REPL self._repo = os.getcwd()
[docs] def get(self): # { # "python-package-info": [ # "aiocron 1.6", # "aiohttp 3.6.2", # "async-timeout 3.0.1", # ... # ], # "codebase": { # "repository-url": "https://github.com/biothings/biothings.api.git", # "commit-hash": "8715a8ebcf49bc436bca24b1ce1a35f1777a7c4c" # }, # "biothings": { # "repository-url": "https://github.com/biothings/biothings.api.git", # "commit-hash": "f3ca99a1f5261a70eaef196bbab1163302c16859", # "master-commits": "2478", # "version": "0.10.0" # }, # "python-info": { # "version": "3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52)", # "version_info": { # "major": 3, # "minor": 9, # "micro": 5 # } # } # } try: return get_software_info(self._repo) except Exception: return {}