)L idZddlmZddlmZmZddlmZddlm Z ddl m Z ddl m Z mZgd ZGd d eZGd d eZGddeZGddeZGddeZGddeZGddeZy)zV Input validation for a `Buffer`. (Validators will be called before accepting input.) ) annotations)ABCMetaabstractmethod)Callablerun_in_executor_with_context)Document) FilterOrBool to_filter)ConditionalValidatorValidationError ValidatorThreadedValidatorDummyValidatorDynamicValidatorc.eZdZdZddfd ZddZxZS)rz Error raised by :meth:`.Validator.validate`. :param cursor_position: The cursor position where the error occurred. :param message: Text. c@t||||_||_yN)super__init__cursor_positionmessage)selfrr __class__s _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/prompt_toolkit/validation.pyrzValidationError.__init__"s !. ch|jjd|jd|jdS)Nz(cursor_position=z , message=))r__name__rrrs r__repr__zValidationError.__repr__'s8..))**;Dr&r'r(r<)r r)r*r+rr"r2r/rrr6r6fs75)5:=5SW5 59Urr6c(eZdZdZddZddZddZy)rz Wrapper that runs input validation in a thread. (Use this to prevent the user interface from becoming unresponsive if the input validation takes too much time.) c||_yr) validator)rrKs rrzThreadedValidator.__init__s "rc:|jj|yr)rKr2r0s rr2zThreadedValidator.validates )rcHKdfd }t|d{y7w)z: Run the `validate` function in a thread. c&jSr)r2)r1rsrrun_validation_threadz?ThreadedValidator.validate_async..run_validation_threads==* *rN)r&r'r)rr1rOs`` rr4z ThreadedValidator.validate_asyncs  +++@AAAs " "N)rKrr&r'r<r r)r*r+rr2r4r/rrrrs #*BrrceZdZdZddZy)rz1 Validator class that accepts any input. cyrr/r0s rr2zDummyValidator.validates rNr<)r r)r*r+r2r/rrrrs  rrc eZdZdZddZddZy)r zq Validator that can be switched on/off according to a filter. (This wraps around another validator.) c2||_t||_yr)rKr filter)rrKrUs rrzConditionalValidator.__init__s"' rc\|jr|jj|yyr)rUrKr2r0s rr2zConditionalValidator.validates" ;;= NN # #H - rN)rKrrUr r&r'r<)r r)r*r+rr2r/rrr r s (.rr c(eZdZdZddZddZddZy)rz Validator class that can dynamically returns any Validator. :param get_validator: Callable that returns a :class:`.Validator` instance. c||_yr) get_validator)rrYs rrzDynamicValidator.__init__s *rc^|jxs t}|j|yr)rYrr2rr1rKs rr2zDynamicValidator.validates&&&(rds #'A, pip"8X'8XvUYU2B B0 Y  .9 . 1y1r