<commit_before>#!/usr/bin/python
# -*- coding: utf-8  -*-
"""
Categorize people according to their year of birth and death.

The following parameters are supported:

&params;

-dry              If given, doesn't do any real changes, but only shows
                  what would have been changed.

All other parameters will be regarded as part of the title of a single page,
and the bot will only work on that single page.
"""
__version__ = '$Id: birthcat.py 8 2010-10-31 09:45:44Z silvonen $'
import wikipedia as pywikibot
import catlib, pagegenerators, re, urllib, time

# This is required for the text that is shown when you run this script
# with the parameter -help.
docuReplacements = {
    '&params;': pagegenerators.parameterHelp
}

class BirthCatBot:
    # Edit summary message that should be used.
    # NOTE: Put a good description here, and add translations, if possible!
    msg = {
        'fi': u'Botti lisäsi: %s',
    }

    msgNewCat = {
        'fi': u'Botti loi uuden luokan',
    }

    # TODO: Implement BC years
    dateFormat = {
        'fi': ur'(?:\[*\d+\.\s+\S+kuuta\]*,?\s+)?\[*(\d+)\]*',
        }
    
    birthDeathCats = {
        'fi': {
            u'Vuonna %s syntyneet' : {
                'templates' :{
                    u'Syntymäaika ja ikä': 3,
                    u'Syntymä- ja kuolinaika': 3,
                    u'Kuolinaika ja ikä': 3,
                    },
                're1': [
                    re.compile(ur'syntynyt\s*=\s*' + dateFormat['fi']),
# Old silvonen's regex
#                    re.compile(ur"'''[^)]*(?:\bs\.\s+|,\s+|\(|(?<!&ndash);\s+)" + dateFormat['fi']),
                    ],
                're2': [
                    # Searches "s. [[26. huhtikuuta]] [[1971]] " type birthdate string.
                    re.compile(ur"(?:s\.|syn\.|syntynyt) ?\[?\[?[0-9]{1,2}\. [A-Za-zäö]*kuuta[^()]*?([0-9]{1,4})\]?\]?[\−\–\-\& .,)<]"),
                    # Searches "([[26. huhtikuuta]] [[1971]] " type birthdate string.
                    re.compile(ur"\(\[?\[?[0-9]{1,2}\. [A-Za-zäö]*kuuta[^()]*?([0-9]{1,4})\]?\]?[\−\–\-\& .,)<]"),
                    # Searches "s. [[1971]] " type birthdate string.
                    re.compile(ur"(?:s\.|syn\.|syntynyt) ?\[?\[?([0-9]{1,4})\]?\]?[\−\–\-\& .,)]<"),
                    ],
                'newcat': lambda yr: u'{{SyntymM-CM-$vuosiluokka|%s|%s}}\n\n[[en:Category:%s births]]' % (yr[:-1], yr[-1], yr)
                },
            u'Vuonna %s kuolleet' : {
                'templates' :{
                    u'Syntymä- ja kuolinaika': 6,
                    u'Kuolinaika ja ikä': 6,
                    },
                're1': [
                    re.compile(ur'kuollut\s*=\s*' + dateFormat['fi']),
# Old silvonen's regex
#                    re.compile(ur"'''[^()]*\((?:[^)]|\([^)]*\))*(?:\bk\.\s+|(?:[M-bM-^@M-^SM-bM-^@M-^T-]|&ndash;)\s*)" + dateFormat['fi']),
                    ],
                're2': [
                    # Searches "k. [[26. huhtikuuta]] [[1971]] " or "&dash; [[26. huhtikuuta]] [[1971]] " type deathdate string.
                    re.compile(ur"(?:−|–|-|&dash;|&ndash;|&mdash;|k\.) +?\[?\[?[0-9]{1,2}\. [A-Za-zäö]*kuuta[^()]*?([0-9]{1,4})\]?\]?[ ,.;)<]"),
                    # Searches "k. [[huhtikuu]] [[1971]] " or "&dash; [[huhtikuu]] [[1971]] " type deathdate string.
                    re.compile(ur"(?:−|–|-|&dash;|&ndash;|&mdash;|k\.) +?\[?\[?[A-Za-zäö]*kuu +[^()]*?([0-9]{1,4})\]?\]?[ ,.;)<]"),
                    # Searches "k. [[1971]] " or "&dash; [[1971]] " type deathdate string.
                    re.compile(ur"'''.{1,100}(?:−|–|-|&dash;|&ndash;|&mdash;|k\.) +?\[?\[?([0-9]{1,4})\]?\]?[ ,.;)<]"),<commit_msg>ääkkösfix<commit_after>#!/usr/bin/python
# -*- coding: utf-8  -*-
"""
Categorize people according to their year of birth and death.

The following parameters are supported:

&params;

-dry              If given, doesn't do any real changes, but only shows
                  what would have been changed.

All other parameters will be regarded as part of the title of a single page,
and the bot will only work on that single page.
"""
__version__ = '$Id: birthcat.py 8 2010-10-31 09:45:44Z silvonen $'
import wikipedia as pywikibot
import catlib, pagegenerators, re, urllib, time

# This is required for the text that is shown when you run this script
# with the parameter -help.
docuReplacements = {
    '&params;': pagegenerators.parameterHelp
}

class BirthCatBot:
    # Edit summary message that should be used.
    # NOTE: Put a good description here, and add translations, if possible!
    msg = {
        'fi': u'Botti lisäsi: %s',
    }

    msgNewCat = {
        'fi': u'Botti loi uuden luokan',
    }

    # TODO: Implement BC years
    dateFormat = {
        'fi': ur'(?:\[*\d+\.\s+\S+kuuta\]*,?\s+)?\[*(\d+)\]*',
        }
    
    birthDeathCats = {
        'fi': {
            u'Vuonna %s syntyneet' : {
                'templates' :{
                    u'Syntymäaika ja ikä': 3,
                    u'Syntymä- ja kuolinaika': 3,
                    u'Kuolinaika ja ikä': 3,
                    },
                're1': [
                    re.compile(ur'syntynyt\s*=\s*' + dateFormat['fi']),
# Old silvonen's regex
#                    re.compile(ur"'''[^)]*(?:\bs\.\s+|,\s+|\(|(?<!&ndash);\s+)" + dateFormat['fi']),
                    ],
                're2': [
                    # Searches "s. [[26. huhtikuuta]] [[1971]] " type birthdate string.
                    re.compile(ur"(?:s\.|syn\.|syntynyt) ?\[?\[?[0-9]{1,2}\. [A-Za-zäö]*kuuta[^()]*?([0-9]{1,4})\]?\]?[\−\–\-\& .,)<]"),
                    # Searches "([[26. huhtikuuta]] [[1971]] " type birthdate string.
                    re.compile(ur"\(\[?\[?[0-9]{1,2}\. [A-Za-zäö]*kuuta[^()]*?([0-9]{1,4})\]?\]?[\−\–\-\& .,)<]"),
                    # Searches "s. [[1971]] " type birthdate string.
                    re.compile(ur"(?:s\.|syn\.|syntynyt) ?\[?\[?([0-9]{1,4})\]?\]?[\−\–\-\& .,)]<"),
                    ],
                'newcat': lambda yr: u'{{Syntymävuosiluokka|%s|%s}}\n\n[[en:Category:%s births]]' % (yr[:-1], yr[-1], yr)
                },
            u'Vuonna %s kuolleet' : {
                'templates' :{
                    u'Syntymä- ja kuolinaika': 6,
                    u'Kuolinaika ja ikä': 6,
                    },
                're1': [
                    re.compile(ur'kuollut\s*=\s*' + dateFormat['fi']),
# Old silvonen's regex
#                    re.compile(ur"'''[^()]*\((?:[^)]|\([^)]*\))*(?:\bk\.\s+|(?:[M-bM-^@M-^SM-bM-^@M-^T-]|&ndash;)\s*)" + dateFormat['fi']),
                    ],
                're2': [
                    # Searches "k. [[26. huhtikuuta]] [[1971]] " or "&dash; [[26. huhtikuuta]] [[1971]] " type deathdate string.
                    re.compile(ur"(?:−|–|-|&dash;|&ndash;|&mdash;|k\.) +?\[?\[?[0-9]{1,2}\. [A-Za-zäö]*kuuta[^()]*?([0-9]{1,4})\]?\]?[ ,.;)<]"),
                    # Searches "k. [[huhtikuu]] [[1971]] " or "&dash; [[huhtikuu]] [[1971]] " type deathdate string.
                    re.compile(ur"(?:−|–|-|&dash;|&ndash;|&mdash;|k\.) +?\[?\[?[A-Za-zäö]*kuu +[^()]*?([0-9]{1,4})\]?\]?[ ,.;)<]"),
                    # Searches "k. [[1971]] " or "&dash; [[1971]] " type deathdate string.
                    re.compile(ur"'''.{1,100}(?:−|–|-|&dash;|&ndash;|&mdash;|k\.) +?\[?\[?([0-9]{1,4})\]?\]?[ ,.;)<]"),
{'fraction_non_alphanumeric': 0.24506735610287114, 'fraction_numerical': 0.03020819159069261, 'mean_word_length': 1.8193325661680093, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 3, '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': '3905084', 'n_tokens_mistral': 2997, 'n_tokens_neox': 2688, 'n_words': 522}