Skip to content
Snippets Groups Projects
Select Git revision
  • 1d23bf05ccf9261974f2ce28fdcd1ce0dce6879a
  • develop default
  • master protected
  • feature/frontend-tests
  • 0.98
  • 0.97
  • 0.96
  • 0.95
  • 0.94
  • 0.93
  • 0.92
  • 0.91
  • 0.90
  • 0.89
  • 0.88
  • 0.87
  • 0.86
  • 0.85
  • 0.84
  • 0.83
  • 0.82
  • 0.81
  • 0.80
  • 0.79
24 results

helpers.py

Blame
  • helpers.py 1.33 KiB
    import re
    from typing import List
    
    from sqlalchemy import select
    
    from compendium_v2.db import db, presentation_models
    
    URL_PATTERN = re.compile(
        (r'\b(https?://[^\s<>";,(){}\[\]!\\]+'
         r'|www\.[^\s<>";,(){}\[\]!\\]+'
         r'|[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})'
         r'\b(?=\s|\b|[,!?.;:\\])')
    )
    
    
    def get_uppercase_nren_dict():
        """
        :return: a dictionary of all known NRENs db entities keyed on the uppercased name
        """
        current_nrens = db.session.scalars(select(presentation_models.NREN))
        nren_dict = {nren.name.upper(): nren for nren in current_nrens}
        # add aliases that are used in the source data:
        nren_dict['ASNET'] = nren_dict['ASNET-AM']
        nren_dict['KIFU (NIIF)'] = nren_dict['KIFU']
        nren_dict['KIFÜ'] = nren_dict['KIFU']
        nren_dict['NIIF/HUNGARNET'] = nren_dict['KIFU']
        nren_dict['SURFNET'] = nren_dict['SURF']
        nren_dict['UOM/RICERKANET'] = nren_dict['UNIVERSITY OF MALTA']
        nren_dict['UOM'] = nren_dict['UNIVERSITY OF MALTA']
        nren_dict['UNINETT'] = nren_dict['SIKT']
        nren_dict['LANET'] = nren_dict['LAT']
        nren_dict['ANA'] = nren_dict['RASH']
        nren_dict['AZSCIENCENET'] = nren_dict['ANAS']
        nren_dict['GRNET S.A.'] = nren_dict['GRNET']
        nren_dict['FUNET'] = nren_dict['CSC']
        return nren_dict
    
    
    def extract_urls(text: str) -> List[str]:
        return re.findall(URL_PATTERN, text)