a Ch@sddlZddlmZGdddeZGdddeZGdd d eZGd d d eZGd d d eZGdddeZGdddeZ ddZ ddZ ddZ dS)N)PolicySyntaxErrorc@s eZdZdS)ScopeSyntaxErrorN)__name__ __module__ __qualname__rrD/usr/share/crypto-policies/python/cryptopolicies/validation/scope.pyr srcseZdZfddZZS)ScopeUnknownErrorcstd|dS)Nzunknown scope super__init__)selfZ scope_glob __class__rr r szScopeUnknownError.__init__rrrr __classcell__rrrr r sr cseZdZfddZZS)ScopeSelectorEmptyErrorcstddS)Nzempty scope selectorr )rrrr r sz ScopeSelectorEmptyError.__init__rrrrr rsrcseZdZfddZZS)"ScopeSelectorIllegalCharacterErrorcstd|ddS)Nz%illegal character in scope selector ``r )rselectorrrr r sz+ScopeSelectorIllegalCharacterError.__init__rrrrr rsrcseZdZfddZZS)ScopeSelectorCurlyBracketsErrorcstd|ddS)Nz%unsupported curly brackets usage in `rr rpatternrrr r sz(ScopeSelectorCurlyBracketsError.__init__rrrrr rsrcseZdZfddZZS)ScopeSelectorCommaErrorcstd|ddS)Nzunsupported comma usage in `rr rrrr r #sz ScopeSelectorCommaError.__init__rrrrr r"srcseZdZfddZZS) ScopeSelectorMatchedNothingErrorcstd|ddS)Nzscope selector `z` matches no scoper rrrr r (sz)ScopeSelectorMatchedNothingError.__init__rrrrr r'srcCstdd|Dst|dS)Ncss|]}|p|dvVqdS)z{,}*_-N)isalnum).0crrr -z%illegal_characters..)allrporiginal_patternrrr illegal_characters,sr%cCsL|d|dfdvs@|dr,|dr@|dsH|drHt|dS)N{}>)rr)rr)count startswithendswithrr"rrr curly_brackets1sr+cCsTtdd|Drt||D]0}|s*tt||sd|vrFt|t|qdS)Ncss|]}d|vVqdS),Nr)rgrrr r9r z"resulting_globs..*)anyrrfnmatchfilterrr )ZglobsZ all_scopesr$r-rrr resulting_globs8s r2) r0Zgeneralrrr rrrrrr%r+r2rrrr s