<commit_before>﻿import math
import datetime

def zeichen_ersetzen(string):
    """"ersetzt Zeichen, die Probleme bei der Darstellung machen"""    
    string = string.replace(u"\u2013", "-") # u2013 -> Bindestrich
    string = string.replace("<br>", "")     # alle weiteren: html commands
    string = string.replace("<p>", "\n")
    string = string.replace("</p>", "")
    string = string.replace("<br />", "\n")
    string = string.replace("<strong>", "")
    string = string.replace("</strong>", "")
    return string
    
def koordinaten_dezimalgrad_to_minuten(koordinatenliste):
    """"rechnet Koordinaten in Dezimalgrad (z.B. in gpx-Datei) in Grad und Minuten um (z.B. auf geocaching.com)"""
    nord = koordinatenliste[0]
    ost = koordinatenliste[1]
    nordgrad = int(nord)
    ostgrad = int(ost)
    nordminuten = round(60*(nord - nordgrad), 3)
    ostminuten = round(60*(ost - ostgrad), 3)
    if nordgrad > 0:
        nordsign = "N"
    else:
        nordsign = "S"
        nordgrad = -nordgrad
        nordminuten = -nordminuten
    if ostgrad > 0:
        ostsign = "E"
    else:
        ostsign = "W"
        ostgrad = -ostgrad
        ostminuten = -ostminuten
    return u"{} {:02}°{:6.3f}, {} {:03}°{:6.3f}".format(nordsign, nordgrad, nordminuten, ostsign, ostgrad, ostminuten)
    
def koordinaten_minuten_to_dezimalgrad(koordinatenstring):
    """"rechnet Koordinaten in Grad und Minuten (z.B. auf geocaching.com) in Dezimalgrad (z.B. in gpx-Datei) um"""
    nordgrad = int(koordinatenstring[2:4])
    ostgrad = int(koordinatenstring[15:18])
    nordminuten = float(koordinatenstring[5:11])
    ostminuten = float(koordinatenstring[19:25])
    nord = nordgrad + nordminuten/60
    ost = ostgrad + ostminuten/60
    if koordinatenstring[0] == "S":
        nord = -nord
    if koordinatenstring[13] == "W":
        ost = -ost
    return [nord, ost]
    
def koordinaten_minuten_to_sekunden(koordinatenstring):
    """rechnet Koordinaten in Grad und Minuten (z.B. auf geocaching.com) in Grad, Minuten und Sekunden um (z.B. fuer Eingabe in Google-Maps)"""
    nordsign = koordinatenstring[0]
    ostsign = koordinatenstring[13]
    nordgrad = int(koordinatenstring[2:4])
    ostgrad = int(koordinatenstring[15:18])
    nordminuten_dez = float(koordinatenstring[5:11])
    ostminuten_dez = float(koordinatenstring[19:25])
    nordminuten = int(nordminuten_dez)
    ostminuten = int(ostminuten_dez)
    nordsekunden = round((nordminuten_dez - nordminuten)*60,1)
    ostsekunden = round((ostminuten_dez - ostminuten)*60,1)
    return u"{}°{}'{}".format(nordgrad, nordminuten, nordsekunden) + u'"{}+{}°{}'.format(nordsign, ostgrad, ostminuten) + u"'{}".format(ostsekunden)+ u'"{}'.format(ostsign)
 
def koordinaten_url_to_dezimalgrad(url):
    """"liest die Koordinaten aus einer Google-Maps oder geocaching.com/map url aus und gibt sie im Dezimalgrad-Format zurueck"""
    if url[-5:-2] == "&z=" or url[-4:-1] == "&z=":    # geocaching.com/map
        end = -5
        for i in range(-5,-100,-1):
            if url[i] == "=":
                start = i+1
                break
        koords_list = url[start:end].split(",")
        nord = float(koords_list[0])
        ost = float(koords_list[1])
    else:                     # Google Maps
        start_nord = 0
        start_ost = 0
        for i,z in enumerate(url):
            if z == "@":
                start_nord = i+1
            elif z == "," and start_nord > 0 and start_ost == 0:
                end_nord = i
                start_ost = i+1
            elif z == "," and start_ost > 0:
                end_ost = i
                break<commit_msg>improve function koordinaten_minuten_to_sekunden<commit_after>﻿import math
import datetime

def zeichen_ersetzen(string):
    """"ersetzt Zeichen, die Probleme bei der Darstellung machen"""    
    string = string.replace(u"\u2013", "-") # u2013 -> Bindestrich
    string = string.replace("<br>", "")     # alle weiteren: html commands
    string = string.replace("<p>", "\n")
    string = string.replace("</p>", "")
    string = string.replace("<br />", "\n")
    string = string.replace("<strong>", "")
    string = string.replace("</strong>", "")
    return string
    
def koordinaten_dezimalgrad_to_minuten(koordinatenliste):
    """"rechnet Koordinaten in Dezimalgrad (z.B. in gpx-Datei) in Grad und Minuten um (z.B. auf geocaching.com)"""
    nord = koordinatenliste[0]
    ost = koordinatenliste[1]
    nordgrad = int(nord)
    ostgrad = int(ost)
    nordminuten = round(60*(nord - nordgrad), 3)
    ostminuten = round(60*(ost - ostgrad), 3)
    if nordgrad > 0:
        nordsign = "N"
    else:
        nordsign = "S"
        nordgrad = -nordgrad
        nordminuten = -nordminuten
    if ostgrad > 0:
        ostsign = "E"
    else:
        ostsign = "W"
        ostgrad = -ostgrad
        ostminuten = -ostminuten
    return u"{} {:02}°{:6.3f}, {} {:03}°{:6.3f}".format(nordsign, nordgrad, nordminuten, ostsign, ostgrad, ostminuten)
    
def koordinaten_minuten_to_dezimalgrad(koordinatenstring):
    """"rechnet Koordinaten in Grad und Minuten (z.B. auf geocaching.com) in Dezimalgrad (z.B. in gpx-Datei) um"""
    nordgrad = int(koordinatenstring[2:4])
    ostgrad = int(koordinatenstring[15:18])
    nordminuten = float(koordinatenstring[5:11])
    ostminuten = float(koordinatenstring[19:25])
    nord = nordgrad + nordminuten/60
    ost = ostgrad + ostminuten/60
    if koordinatenstring[0] == "S":
        nord = -nord
    if koordinatenstring[13] == "W":
        ost = -ost
    return [nord, ost]
    
def koordinaten_minuten_to_sekunden(koordinatenstring):
    """rechnet Koordinaten in Grad und Minuten (z.B. auf geocaching.com) in Grad, Minuten und Sekunden um (z.B. fuer Eingabe in Google-Maps)"""
    nordsign = koordinatenstring[0]
    ostsign = koordinatenstring[13]
    nordgrad = int(koordinatenstring[2:4])
    ostgrad = int(koordinatenstring[15:18])
    nordminuten_dez = float(koordinatenstring[5:11])
    ostminuten_dez = float(koordinatenstring[19:25])
    nordminuten = int(nordminuten_dez)
    ostminuten = int(ostminuten_dez)
    nordsekunden = round((nordminuten_dez - nordminuten)*60,1)
    ostsekunden = round((ostminuten_dez - ostminuten)*60,1)
    return u"{}°{}'{}\"{}+{}°{}'{}\"{}".format(nordgrad, nordminuten, nordsekunden, nordsign, ostgrad, ostminuten, ostsekunden, ostsign)
 
def koordinaten_url_to_dezimalgrad(url):
    """"liest die Koordinaten aus einer Google-Maps oder geocaching.com/map url aus und gibt sie im Dezimalgrad-Format zurueck"""
    if url[-5:-2] == "&z=" or url[-4:-1] == "&z=":    # geocaching.com/map
        end = -5
        for i in range(-5,-100,-1):
            if url[i] == "=":
                start = i+1
                break
        koords_list = url[start:end].split(",")
        nord = float(koords_list[0])
        ost = float(koords_list[1])
    else:                     # Google Maps
        start_nord = 0
        start_ost = 0
        for i,z in enumerate(url):
            if z == "@":
                start_nord = i+1
            elif z == "," and start_nord > 0 and start_ost == 0:
                end_nord = i
                start_ost = i+1
            elif z == "," and start_ost > 0:
                end_ost = i
                break
{'fraction_non_alphanumeric': 0.14053234036684595, 'fraction_numerical': 0.024272514135981246, 'mean_word_length': 2.7458677685950414, 'pattern_counts': {'":': 10, '<': 15, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6669334', 'n_tokens_mistral': 2671, 'n_tokens_neox': 2563, 'n_words': 557}