pyvalid icon indicating copy to clipboard operation
pyvalid copied to clipboard

pvalid errors out on validating only one arg

Open nagesh-chowdaiah opened this issue 5 years ago • 2 comments

from pyvalid import accepts
import pandas as pd
from pyvalid.validators import NumberValidator


class Mention:
    @accepts(object,
             overlap_percentage=NumberValidator(min_val=0.0, max_val=1.0)
             )
    def __init__(self, df: pd.DataFrame, presence_col: str, overlap_percentage=1.2) -> None:
        pass


Mention(None,"abc",0.9)

Traceback (most recent call last): File "example.py", line 14, in Mention(None,"abc",0.9) File "C:\Users\40102447\oss\pyvalid\pyvalid__accepts.py", line 88, in decorator_wrapper self.__validate_args(func, func_args, func_kwargs) File "C:\Users\40102447\oss\pyvalid\pyvalid__accepts.py", line 196, in __validate_args raise ArgumentValidationError(func, ord_num, value, allowed_values) pyvalid.__exceptions.ArgumentValidationError: The 2nd argument of the "init(self, df: pandas.core.frame.DataFrame, presence_col: str, overlap_percentage=1.2) -> None" functi on is "None" of the "<class 'NoneType'>" type, while expected values are: "[<pyvalid.validators.__number.NumberValidator object at 0x000001B9AC892730>]".

nagesh-chowdaiah avatar Oct 30 '20 07:10 nagesh-chowdaiah

Hey @nagesh-chowdaiah , I'll investigate this issue and prepare unit tests / fixes. Thanks!

eterey avatar Oct 31 '20 19:10 eterey

Hey @nagesh-chowdaiah ,

In the 38f1d19 commit I've added the unit test based on the example, which you provided. It causes the same exception. I'll try to find the root cause and fix it.

Thanks for informing me about this issue!

eterey avatar Nov 02 '20 01:11 eterey