mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-19 12:59:36 -07:00
updated libs to fix guessit and subliminal. Fixes #1080
This commit is contained in:
parent
319d418af8
commit
0625f7f3c0
263 changed files with 28711 additions and 12615 deletions
70
libs/rebulk/validators.py
Normal file
70
libs/rebulk/validators.py
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Validator functions to use in patterns.
|
||||
|
||||
All those function have last argument as match, so it's possible to use functools.partial to bind previous arguments.
|
||||
"""
|
||||
|
||||
|
||||
def chars_before(chars, match):
|
||||
"""
|
||||
Validate the match if left character is in a given sequence.
|
||||
|
||||
:param chars:
|
||||
:type chars:
|
||||
:param match:
|
||||
:type match:
|
||||
:return:
|
||||
:rtype:
|
||||
"""
|
||||
if match.start <= 0:
|
||||
return True
|
||||
return match.input_string[match.start - 1] in chars
|
||||
|
||||
|
||||
def chars_after(chars, match):
|
||||
"""
|
||||
Validate the match if right character is in a given sequence.
|
||||
|
||||
:param chars:
|
||||
:type chars:
|
||||
:param match:
|
||||
:type match:
|
||||
:return:
|
||||
:rtype:
|
||||
"""
|
||||
if match.end >= len(match.input_string):
|
||||
return True
|
||||
return match.input_string[match.end] in chars
|
||||
|
||||
|
||||
def chars_surround(chars, match):
|
||||
"""
|
||||
Validate the match if surrounding characters are in a given sequence.
|
||||
|
||||
:param chars:
|
||||
:type chars:
|
||||
:param match:
|
||||
:type match:
|
||||
:return:
|
||||
:rtype:
|
||||
"""
|
||||
return chars_before(chars, match) and chars_after(chars, match)
|
||||
|
||||
|
||||
def validators(*chained_validators):
|
||||
"""
|
||||
Creates a validator chain from several validator functions.
|
||||
|
||||
:param chained_validators:
|
||||
:type chained_validators:
|
||||
:return:
|
||||
:rtype:
|
||||
"""
|
||||
def validator_chain(match): # pylint:disable=missing-docstring
|
||||
for chained_validator in chained_validators:
|
||||
if not chained_validator(match):
|
||||
return False
|
||||
return True
|
||||
return validator_chain
|
||||
Loading…
Add table
Add a link
Reference in a new issue