<commit_before># module 'fnmatch' -- filename matching with shell patterns
# This version translates the pattern to a regular expression
# and moreover caches the expressions.

import os
import regex

cache = {}

def fnmatch(name, pat):
	name = os.path.normcase(name)
	pat = os.path.normcase(pat)
	if not cache.has_key(pat):
		res = translate(pat)
		save_syntax = regex.set_syntax(0)
		cache[pat] = regex.compile(res)
		save_syntax = regex.set_syntax(save_syntax)
	return cache[pat].match(name) == len(name)

def translate(pat):
	i, n = 0, len(pat)
	res = ''
	while i < n:
		c = pat[i]
		i = i+1
		if c == '*':
			res = res + '.*'
		elif c == '?':
			res = res + '.'
		elif c == '[':
			j = i
			if j < n and pat[j] == '!':
				j = j+1
			if j < n and pat[j] == ']':
				j = j+1
			while j < n and pat[j] != ']':
				j = j+1
			if j >= n:
				res = res + '\\['
			else:
				stuff = pat[i:j]
				i = j+1
				if stuff[0] == '!':
					stuff = '[^' + stuff[1:] + ']'
				elif stuff == '^'*len(stuff):
					stuff = '\\^'
				else:
					while stuff[0] == '^':
						stuff = stuff[1:] + stuff[0]
					stuff = '[' + stuff + ']'
				res = res + stuff
		elif c in '\\.+^$':
			res = res + ('\\' + c)
		else:
			res = res + c
	print 'translate(' + `pat` + ') == ' + `res`
	return res<commit_msg>Get rid of debug print statement.<commit_after># module 'fnmatch' -- filename matching with shell patterns
# This version translates the pattern to a regular expression
# and moreover caches the expressions.

import os
import regex

cache = {}

def fnmatch(name, pat):
	name = os.path.normcase(name)
	pat = os.path.normcase(pat)
	if not cache.has_key(pat):
		res = translate(pat)
		save_syntax = regex.set_syntax(0)
		cache[pat] = regex.compile(res)
		save_syntax = regex.set_syntax(save_syntax)
	return cache[pat].match(name) == len(name)

def translate(pat):
	i, n = 0, len(pat)
	res = ''
	while i < n:
		c = pat[i]
		i = i+1
		if c == '*':
			res = res + '.*'
		elif c == '?':
			res = res + '.'
		elif c == '[':
			j = i
			if j < n and pat[j] == '!':
				j = j+1
			if j < n and pat[j] == ']':
				j = j+1
			while j < n and pat[j] != ']':
				j = j+1
			if j >= n:
				res = res + '\\['
			else:
				stuff = pat[i:j]
				i = j+1
				if stuff[0] == '!':
					stuff = '[^' + stuff[1:] + ']'
				elif stuff == '^'*len(stuff):
					stuff = '\\^'
				else:
					while stuff[0] == '^':
						stuff = stuff[1:] + stuff[0]
					stuff = '[' + stuff + ']'
				res = res + stuff
		elif c in '\\.+^$':
			res = res + ('\\' + c)
		else:
			res = res + c
	return res
{'fraction_non_alphanumeric': 0.1951219512195122, 'fraction_numerical': 0.00944138473642801, 'mean_word_length': 2.3997326203208558, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 5, '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': '54329', 'n_tokens_mistral': 1210, 'n_tokens_neox': 1007, 'n_words': 280}