Best Python code snippet using lisa_python
encode_string.py
Source:encode_string.py  
1import re2import string3import unicodedata4from pathlib import Path5from collections import Counter6from articlenizer import sentenize7def handle_unicode_characters(s):8    """Handle unicode characters appearing in string. Some do actually contain valuable information for NLP applications. But there is also a lot of "unnecessary" unicode in scientific texts (at least from an Software-NER perspective). It can either be dropped, or different codes can be summarized by one characters. 9    Args:10        s (string): string to transform11    Returns:12        string: unicode 'normalized' string13    """14    dropped_char_indices = []15    running_count = 016    out_s = ''17    for char in s:18        if re.match(r"[A-Za-z0-9\s]", char) is not None or char in string.punctuation:19            # keep "normal" chars20            out_s += char21            running_count += 122        else:23            # here we will deal with unicode24            if char in ['©', 'â¢', '®']:25                # 'TradeMarks' are tricky but often used to indicate external equipment in studies26                out_s += 'â¢'27                running_count += 128                continue29            if char == '°':30                # Temperatures are almost always indicated by °31                out_s += char32                running_count += 133                continue34            # some unicodes are combined and based on 'normal' characters -> we want to keep the base characters, e.g. á -> a35            unicode_matched = False36            #char_37            u_map = unicodedata.decomposition(char)38            if u_map and len(u_map) > 1:39                split_codes = [code for code in u_map.split() if not re.match(r'<.*>', code)]40                for code in split_codes:41                    code_char = chr(int(code, 16))42                    if re.match(r'[a-zA-Z]', code_char):43                        out_s += code_char # TODO44                        unicode_matched = True45                        running_count += 146                        break47            if unicode_matched: 48                continue49            # normalized unicode for everything else just to be save.. 50            char = unicodedata.normalize('NFC', char)51            if len(char) > 1:52                print(RuntimeWarning("Unkown unicode character with length > 1: {} -- ignored".format(char)))53                continue54            # we want to keep basic greek letters no matter what55            if char == 'µ': # yes, they are actually different: this is the 'micro sign'56                char = 'μ' # this the greek letter..57            if ( ord(char) >= 945 and ord(char) <= 970 ) or ( ord(char) >= 913 and ord(char) <= 938 ):58                out_s += char59                running_count += 160                continue61            # the rest is based on unicode categories some of which are considered important and others are not62            category = unicodedata.category(char)63            if category == 'Pi':64                if  ord(char) == 8216 or ord(char) == 8219:65                    out_s += char66                else:67                    out_s += 'â'68                running_count += 169            elif category == 'Pf':70                if ord(char) == 8217:71                    out_s += 'â'72                else:73                    out_s += 'â'74                running_count += 175            elif category == 'Pd':76                char = '-'77                out_s += char78                running_count += 179            elif category == 'Sc':80                out_s += char81                running_count += 182            elif category in ['Pe', 'Cf', 'Ps', 'So', 'Sk', 'No']:83                dropped_char_indices.append([running_count, char])84                running_count += 185            elif category == 'Lm':86                if ord(char) >= 697 and ord(char) <= 719:87                    char ="'"88                    running_count += 189                    out_s += char90            elif category in ['Lu', 'Ll', 'Po']:91                # keep92                out_s += char93                running_count += 194            elif category == 'Sm':95                # Mathsymbols, TODO: handle them better?96                out_s += char97                running_count += 198                unicode_in_sent = True99            else:100                #print("Encountered an unhandled unicode character: {} - DROPPED".format(char))101                dropped_char_indices.append([running_count, char])102                running_count += 1103    ...counting.py
Source:counting.py  
1from kairotic.elements import DECK_SIZE, SUITS, CARD_VALUES2class Count:3    def __init__(self):4        self.cards_seen = 05        self._n_decks = None6    @property7    def n_decks(self):8        if self._n_decks is None:9            raise UnboundLocalError("Count not attached to a Shoe")10        else:11            return self._n_decks12    def reset(self):13        self.cards_seen = 014    def update(self, card):15        self.cards_seen += 116    @property17    def half_decks_seen(self):18        return round(self.cards_seen / (DECK_SIZE / 2))19    @property20    def decks_rem(self):21        return max(self.n_decks - self.half_decks_seen / 2, .5)22class ScalarCount(Count):23    def __init__(self):24        super().__init__()25        self.running_count = 026    def reset(self):27        super().reset()28        self.running_count = 029    @property30    def true_count(self):31        return round(self.running_count / self.decks_rem)32class HiLo(ScalarCount):33    name = 'HiLo'34    def update(self, card):35        super().update(card)36        if card.value in ['2', '3', '4', '5', '6']:37            self.running_count += 138        elif card.value in ['10', 'J', 'Q', 'K', 'A']:39            self.running_count -= 140class VectorCount(Count):41    def __init__(self):42        super().__init__()43        self.running_count = dict()44    def reset(self):45        self.running_count = {key: 0 for key in self.running_count}46    @property47    def true_count(self):48        return {key: round(count / self.decks_rem) for key, count in self.running_count.items()}49class PerfectValueCount(VectorCount):50    name = 'Perfect Value Count'51    def __init__(self):52        super().__init__()53        self.running_count = {v: 0 for v in CARD_VALUES}54    def update(self, card):55        super().update(card)...reducer_stat.py
Source:reducer_stat.py  
1#!/usr/bin/python32import sys3def update_mean(running_mean, running_count, batch_mean, batch_count):4    batch_mean = (running_mean * running_count + batch_mean * batch_count) / (running_count + batch_count)5    batch_count = running_count + batch_count6    return batch_mean, batch_count7def update_var(running_mean, running_var, running_count, batch_mean, batch_var, batch_count):8    var = (running_var * running_count + batch_var * batch_count) / (running_count + batch_count)9    var += running_count * ((running_mean - batch_mean) / (running_count + batch_count)) ** 210    return var11if __name__ == '__main__':12    global_mean = 013    global_count = 014    global_var = 015    for i, raw_line in enumerate(sys.stdin):16        line = raw_line.strip()17        loc_mean, loc_var, loc_count = list(map(float, line.split('\t')))18        new_mean, new_count = update_mean(global_mean, global_count, loc_mean, loc_count)19        global_var = update_var(global_mean, global_var, global_count, loc_mean, loc_var, loc_count)20        global_mean, global_count = new_mean, new_count21    print('map_reduce mean: {}'.format(global_mean))...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
