Download SourceCode/Controllers/Transducers/TransitionCondition.py from kachaf/qutuf: direct link, hf CLI and curl.
- Browser
- Download file 3.6 kB
-
https://huggingface.co/spaces/kachaf/qutuf/resolve/main/SourceCode/Controllers/Transducers/TransitionCondition.py
- Command line
-
hf download hf://spaces/kachaf/qutuf/SourceCode/Controllers/Transducers/TransitionCondition.py
-
curl -L -o TransitionCondition.py https://huggingface.co/spaces/kachaf/qutuf/resolve/main/SourceCode/Controllers/Transducers/TransitionCondition.py
3.6 kB
| ''' | |
| Created on 19/03/2010 | |
| @Created by: Muhammad Altabba | |
| ''' | |
| import re; | |
| class TransitionCondition(object): | |
| """ | |
| # PyUML: Do not remove this line! # XMI_ID:_qzIId435Ed-gg8GOK1TmhA | |
| """ | |
| ''' | |
| State Condition Class | |
| ''' | |
| Type = ''; | |
| AttributeName = ''; | |
| Value = ''; | |
| Key = None; | |
| def __init__(self, type, attributeName, value): | |
| ''' | |
| Constructor | |
| ''' | |
| self.Type = type; | |
| self.AttributeName = attributeName; | |
| self.Value = value; | |
| pass | |
| def TestMatch(self, word, actions, charIndexes = None): | |
| if charIndexes == [None]: | |
| # if self.Typej != 'general': | |
| # try: | |
| # word.__getattribute__(self.AttributeName); | |
| # except: | |
| # raise Exception('The Word does not have attribute: "'+self.Type+'"!'); | |
| if self.Type == 'str': | |
| if re.search(self.Value, word.__getattribute__(self.AttributeName), re.UNICODE) != None: | |
| return True; | |
| elif self.Type == 'dict': | |
| if self.Key in word.__getattribute__(self.AttributeName).keys(): | |
| if re.search(self.Value, str(word.__getattribute__(self.AttributeName)[self.Key]), re.UNICODE) != None: | |
| return True; | |
| elif self.Type == 'set': | |
| #Test Needed ------------------------------------------------------------------------------------------------------ | |
| if re.search(self.Value, str(word.__getattribute__(self.AttributeName)[int(self.Key)]), re.UNICODE) != None: | |
| return True; | |
| elif self.Type == 'general': | |
| #Test Needed ------------------------------------------------------------------------------------------------------ | |
| if re.search(self.Value, str(eval(self.AttributeName)), re.UNICODE) != None: | |
| return True; | |
| elif self.Type == 'pos.rules': | |
| exec('from ...Models.Tagging.POSTags import *;'); | |
| isSatisfiedForOne = False; | |
| conditionFaildForlist = []; | |
| for i in actions.OnInnerIndexes: | |
| try: | |
| if (eval(self.Value) & \ | |
| eval('word.SurfaceFormMorphemes[i].Cliticless.POS.' + self.AttributeName) != 0): | |
| isSatisfiedForOne = True; | |
| else: | |
| conditionFaildForlist.append(i); | |
| except AttributeError: | |
| pass; | |
| for i in conditionFaildForlist: | |
| actions.OnInnerIndexes.remove(i); | |
| return isSatisfiedForOne; | |
| else: | |
| if self.Type == 'str': | |
| try: | |
| if self.Value == ''.join([word.__getattribute__(self.AttributeName)[x] for x in charIndexes]): | |
| return True; | |
| except: | |
| print('word.String = ' + word.String); | |
| print('word.__getattribute__(self.AttributeName) = '+str(word.__getattribute__(self.AttributeName))); | |
| print('word.__getattribute__(String) = '+str(word.__getattribute__('String'))); | |
| print('charIndexes = '+str(charIndexes)); | |
| raise Exception('Error at TransducerCondition.TestMatch'); | |
| else: | |
| print('Not implemented!'); | |
| return False; | |