def _chrcls(allowed_chars):
 return ((u'^' + UNSAFE_CHAR_STRING) + str.join(u'', (VALID_CHARS - allowed_chars)).replace(u'%', u'%%').replace(u']', u'\\]').replace(u'-', u'\\-'))

def _chrcls ( allowed_chars ) : return ( ( u'^' + UNSAFE_CHAR_STRING ) + str . join ( u'' , ( VALID_CHARS - allowed_chars ) ) . replace ( u'%' , u'%%' ) . replace ( u']' , u'\\]' ) . replace ( u'-' , u'\\-' ) )
given a subset of the url-compatible special characters !#$%&()*+ .