From b890c82237d6932f9285a901125299ce45458391 Mon Sep 17 00:00:00 2001 From: usaito Date: Sat, 3 Dec 2022 04:14:21 -0500 Subject: [PATCH 1/7] add gaussian noise option to SyntheticBanditDataset --- obp/dataset/synthetic.py | 52 +++++++++++++++++++++++----------- obp/dataset/synthetic_multi.py | 18 ++++++++---- 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/obp/dataset/synthetic.py b/obp/dataset/synthetic.py index f1f02327..2434eb7d 100644 --- a/obp/dataset/synthetic.py +++ b/obp/dataset/synthetic.py @@ -77,6 +77,11 @@ class SyntheticBanditDataset(BaseBanditDataset): A larger value leads to a noisier reward distribution. This argument is valid only when `reward_type="continuous"`. + reward_noise_distribution: str, default='normal' + From which distribution we sample noise on the reward, must be either 'normal' or 'truncated_normal'. + If 'truncated_normal' is given, we do not have any negative reward realization in the logged dataset. + This argument is valid only when `reward_type="continuous"`. + action_context: np.ndarray, default=None Vector representation of (discrete) actions. If None, one-hot representation will be used. @@ -177,6 +182,7 @@ class SyntheticBanditDataset(BaseBanditDataset): reward_type: str = RewardType.BINARY.value reward_function: Optional[Callable[[np.ndarray, np.ndarray], np.ndarray]] = None reward_std: float = 1.0 + reward_noise_distribution: str = "normal" action_context: Optional[np.ndarray] = None behavior_policy_function: Optional[ Callable[[np.ndarray, np.ndarray], np.ndarray] @@ -211,6 +217,12 @@ def __post_init__(self) -> None: f"`reward_type` must be either '{RewardType.BINARY.value}' or '{RewardType.CONTINUOUS.value}'," f"but {self.reward_type} is given.'" ) + if self.reward_noise_distribution not in ["normal", "truncated_normal"]: + raise ValueError( + f"`reward_noise_distribution` must be either 'normal' or 'truncated_normal'," + f"but {self.reward_noise_distribution} is given.'" + ) + check_scalar(self.reward_std, "reward_std", (int, float), min_val=0) if self.reward_function is None: self.expected_reward = self.sample_contextfree_expected_reward() @@ -263,16 +275,23 @@ def sample_reward_given_expected_reward( if RewardType(self.reward_type) == RewardType.BINARY: reward = self.random_.binomial(n=1, p=expected_reward_factual) elif RewardType(self.reward_type) == RewardType.CONTINUOUS: - mean = expected_reward_factual - a = (self.reward_min - mean) / self.reward_std - b = (self.reward_max - mean) / self.reward_std - reward = truncnorm.rvs( - a=a, - b=b, - loc=mean, - scale=self.reward_std, - random_state=self.random_state, - ) + if self.reward_noise_distribution == "normal": + reward = self.random_.normal( + loc=expected_reward_factual, + scale=self.reward_std, + size=action.shape, + ) + elif self.reward_noise_distribution == "truncated_normal": + mean = expected_reward_factual + a = (self.reward_min - mean) / self.reward_std + b = (self.reward_max - mean) / self.reward_std + reward = truncnorm.rvs( + a=a, + b=b, + loc=mean, + scale=self.reward_std, + random_state=self.random_state, + ) else: raise NotImplementedError @@ -329,12 +348,13 @@ def obtain_batch_bandit_feedback(self, n_rounds: int) -> BanditFeedback: expected_reward_ = self.calc_expected_reward(contexts) if RewardType(self.reward_type) == RewardType.CONTINUOUS: # correct expected_reward_, as we use truncated normal distribution here - mean = expected_reward_ - a = (self.reward_min - mean) / self.reward_std - b = (self.reward_max - mean) / self.reward_std - expected_reward_ = truncnorm.stats( - a=a, b=b, loc=mean, scale=self.reward_std, moments="m" - ) + if self.reward_noise_distribution == "truncated_normal": + mean = expected_reward_ + a = (self.reward_min - mean) / self.reward_std + b = (self.reward_max - mean) / self.reward_std + expected_reward_ = truncnorm.stats( + a=a, b=b, loc=mean, scale=self.reward_std, moments="m" + ) # calculate the action choice probabilities of the behavior policy if self.behavior_policy_function is None: diff --git a/obp/dataset/synthetic_multi.py b/obp/dataset/synthetic_multi.py index 1bf3f8a1..5b3697aa 100644 --- a/obp/dataset/synthetic_multi.py +++ b/obp/dataset/synthetic_multi.py @@ -74,6 +74,11 @@ class SyntheticMultiLoggersBanditDataset(SyntheticBanditDataset): A larger value leads to a noisier reward distribution. This argument is valid only when `reward_type="continuous"`. + reward_noise_distribution: str, default='normal' + From which distribution we sample noise on the reward, must be either 'normal' or 'truncated_normal'. + If 'truncated_normal' is given, we do not have any negative reward realization in the logged dataset. + This argument is valid only when `reward_type="continuous"`. + action_context: np.ndarray, default=None Vector representation of (discrete) actions. If None, one-hot representation will be used. @@ -272,12 +277,13 @@ def obtain_batch_bandit_feedback(self, n_rounds: int) -> BanditFeedback: expected_reward_ = self.calc_expected_reward(contexts) if RewardType(self.reward_type) == RewardType.CONTINUOUS: # correct expected_reward_, as we use truncated normal distribution here - mean = expected_reward_ - a = (self.reward_min - mean) / self.reward_std - b = (self.reward_max - mean) / self.reward_std - expected_reward_ = truncnorm.stats( - a=a, b=b, loc=mean, scale=self.reward_std, moments="m" - ) + if self.reward_noise_distribution == "truncated_normal": + mean = expected_reward_ + a = (self.reward_min - mean) / self.reward_std + b = (self.reward_max - mean) / self.reward_std + expected_reward_ = truncnorm.stats( + a=a, b=b, loc=mean, scale=self.reward_std, moments="m" + ) # calculate the action choice probabilities of the behavior policy pi_b_logits = expected_reward_ From 204777c83c8d9bf7194a6e97408ee4cc6b17747f Mon Sep 17 00:00:00 2001 From: usaito Date: Sat, 3 Dec 2022 04:14:49 -0500 Subject: [PATCH 2/7] fix a bug in QLearner when importance weighting is applied --- obp/policy/offline.py | 1 + 1 file changed, 1 insertion(+) diff --git a/obp/policy/offline.py b/obp/policy/offline.py index 21041acf..b0d0ed04 100644 --- a/obp/policy/offline.py +++ b/obp/policy/offline.py @@ -441,6 +441,7 @@ def fit( raise ValueError("When `self.len_list > 1`, `position` must be given.") unif_action_dist = np.ones((context.shape[0], self.n_actions, self.len_list)) + unif_action_dist /= self.n_actions self.q_estimator.fit( context=context, action=action, From d7932aa34a22dda4515cbe67e2052b5e5a1809e2 Mon Sep 17 00:00:00 2001 From: usaito Date: Sat, 3 Dec 2022 23:17:05 -0500 Subject: [PATCH 3/7] update package versions --- poetry.lock | 591 ++++++------------------------------------------- pyproject.toml | 15 +- setup.py | 15 +- 3 files changed, 85 insertions(+), 536 deletions(-) diff --git a/poetry.lock b/poetry.lock index e3086e01..964bf00e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -34,7 +34,6 @@ mypy-extensions = ">=0.4.3" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = ">=1.1.0" -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} [package.extras] @@ -43,25 +42,6 @@ d = ["aiohttp (>=3.7.4)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] -[[package]] -name = "certifi" -version = "2021.5.30" -description = "Python package for providing Mozilla's CA Bundle." -category = "main" -optional = false -python-versions = "*" - -[[package]] -name = "charset-normalizer" -version = "2.0.4" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" -optional = false -python-versions = ">=3.5.0" - -[package.extras] -unicode_backport = ["unicodedata2"] - [[package]] name = "click" version = "8.0.1" @@ -72,7 +52,6 @@ python-versions = ">=3.6" [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" @@ -102,36 +81,10 @@ optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} mccabe = ">=0.6.0,<0.7.0" pycodestyle = ">=2.7.0,<2.8.0" pyflakes = ">=2.3.0,<2.4.0" -[[package]] -name = "idna" -version = "3.2" -description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" -optional = false -python-versions = ">=3.5" - -[[package]] -name = "importlib-metadata" -version = "4.8.1" -description = "Read metadata from Python packages" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} -zipp = ">=0.5" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -perf = ["ipython"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] - [[package]] name = "iniconfig" version = "1.1.1" @@ -170,14 +123,6 @@ category = "main" optional = false python-versions = ">=3.7" -[[package]] -name = "littleutils" -version = "0.2.2" -description = "Small personal collection of python utility functions" -category = "main" -optional = false -python-versions = "*" - [[package]] name = "matplotlib" version = "3.4.3" @@ -212,23 +157,11 @@ python-versions = "*" [[package]] name = "numpy" -version = "1.21.2" +version = "1.23.5" description = "NumPy is the fundamental package for array computing with Python." category = "main" optional = false -python-versions = ">=3.7,<3.11" - -[[package]] -name = "outdated" -version = "0.2.1" -description = "Check if a version of a PyPI package is outdated" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -littleutils = "*" -requests = "*" +python-versions = ">=3.8" [[package]] name = "packaging" @@ -243,31 +176,19 @@ pyparsing = ">=2.0.2" [[package]] name = "pandas" -version = "1.3.2" +version = "1.5.2" description = "Powerful data structures for data analysis, time series, and statistics" category = "main" optional = false -python-versions = ">=3.7.1" +python-versions = ">=3.8" [package.dependencies] -numpy = ">=1.17.3" -python-dateutil = ">=2.7.3" -pytz = ">=2017.3" +numpy = {version = ">=1.20.3", markers = "python_version < \"3.10\""} +python-dateutil = ">=2.8.1" +pytz = ">=2020.1" [package.extras] -test = ["hypothesis (>=3.58)", "pytest (>=6.0)", "pytest-xdist"] - -[[package]] -name = "pandas-flavor" -version = "0.2.0" -description = "The easy way to write your own Pandas flavor." -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -pandas = "*" -xarray = "*" +test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] [[package]] name = "pathspec" @@ -277,18 +198,6 @@ category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" -[[package]] -name = "patsy" -version = "0.5.1" -description = "A Python package for describing statistical models and for building design matrices." -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -numpy = ">=1.4" -six = "*" - [[package]] name = "pillow" version = "9.1.1" @@ -301,26 +210,6 @@ python-versions = ">=3.7" docs = ["olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinx-rtd-theme (>=1.0)", "sphinxext-opengraph"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] -[[package]] -name = "pingouin" -version = "0.4.0" -description = "Pingouin: statistical package for Python" -category = "main" -optional = false -python-versions = "*" - -[package.dependencies] -matplotlib = ">=3.0.2" -numpy = ">=1.19" -outdated = "*" -pandas = ">=1.0" -pandas_flavor = ">=0.2.0" -scikit-learn = "*" -scipy = ">=1.7" -seaborn = ">=0.9.0" -statsmodels = ">=0.12.0" -tabulate = "*" - [[package]] name = "platformdirs" version = "2.3.0" @@ -341,9 +230,6 @@ category = "dev" optional = false python-versions = ">=3.6" -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] @@ -410,7 +296,6 @@ python-versions = ">=3.6" atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" @@ -441,60 +326,47 @@ python-versions = "*" [[package]] name = "pyyaml" -version = "5.4.1" +version = "6.0" description = "YAML parser and emitter for Python" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[[package]] -name = "requests" -version = "2.27.1" -description = "Python HTTP for Humans." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} -urllib3 = ">=1.21.1,<1.27" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] -use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] +python-versions = ">=3.6" [[package]] name = "scikit-learn" -version = "1.0.2" +version = "1.1.3" description = "A set of python modules for machine learning and data mining" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" [package.dependencies] -joblib = ">=0.11" -numpy = ">=1.14.6" -scipy = ">=1.1.0" +joblib = ">=1.0.0" +numpy = ">=1.17.3" +scipy = ">=1.3.2" threadpoolctl = ">=2.0.0" [package.extras] -benchmark = ["matplotlib (>=2.2.3)", "pandas (>=0.25.0)", "memory-profiler (>=0.57.0)"] -docs = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "seaborn (>=0.9.0)", "memory-profiler (>=0.57.0)", "sphinx (>=4.0.1)", "sphinx-gallery (>=0.7.0)", "numpydoc (>=1.0.0)", "Pillow (>=7.1.2)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] -examples = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "seaborn (>=0.9.0)"] -tests = ["matplotlib (>=2.2.3)", "scikit-image (>=0.14.5)", "pandas (>=0.25.0)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "flake8 (>=3.8.2)", "black (>=21.6b0)", "mypy (>=0.770)", "pyamg (>=4.0.0)"] +benchmark = ["matplotlib (>=3.1.2)", "pandas (>=1.0.5)", "memory-profiler (>=0.57.0)"] +docs = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)", "memory-profiler (>=0.57.0)", "sphinx (>=4.0.1)", "sphinx-gallery (>=0.7.0)", "numpydoc (>=1.2.0)", "Pillow (>=7.1.2)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"] +examples = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)"] +tests = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "flake8 (>=3.8.2)", "black (>=22.3.0)", "mypy (>=0.961)", "pyamg (>=4.0.0)", "numpydoc (>=1.2.0)"] [[package]] name = "scipy" -version = "1.7.3" -description = "SciPy: Scientific Library for Python" +version = "1.9.3" +description = "Fundamental algorithms for scientific computing in Python" category = "main" optional = false -python-versions = ">=3.7,<3.11" +python-versions = ">=3.8" [package.dependencies] -numpy = ">=1.16.5,<1.23.0" +numpy = ">=1.18.5,<1.26.0" + +[package.extras] +test = ["pytest", "pytest-cov", "pytest-xdist", "asv", "mpmath", "gmpy2", "threadpoolctl", "scikit-umfpack"] +doc = ["sphinx (!=4.1.0)", "pydata-sphinx-theme (==0.9.0)", "sphinx-panels (>=0.5.2)", "matplotlib (>2)", "numpydoc", "sphinx-tabs"] +dev = ["mypy", "typing-extensions", "pycodestyle", "flake8"] [[package]] name = "seaborn" @@ -518,36 +390,6 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -[[package]] -name = "statsmodels" -version = "0.12.2" -description = "Statistical computations and models for Python" -category = "main" -optional = false -python-versions = ">=3.6" - -[package.dependencies] -numpy = ">=1.15" -pandas = ">=0.21" -patsy = ">=0.5" -scipy = ">=1.1" - -[package.extras] -build = ["cython (>=0.29)"] -develop = ["cython (>=0.29)"] -docs = ["sphinx", "nbconvert", "jupyter-client", "ipykernel", "matplotlib", "nbformat", "numpydoc", "pandas-datareader"] - -[[package]] -name = "tabulate" -version = "0.8.9" -description = "Pretty-print tabular data" -category = "main" -optional = false -python-versions = "*" - -[package.extras] -widechars = ["wcwidth"] - [[package]] name = "threadpoolctl" version = "2.2.0" @@ -574,11 +416,11 @@ python-versions = ">=3.6" [[package]] name = "torch" -version = "1.9.0" +version = "1.12.0" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" category = "main" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.7.0" [package.dependencies] typing-extensions = "*" @@ -599,14 +441,6 @@ dev = ["py-make (>=0.1.0)", "twine", "wheel"] notebook = ["ipywidgets (>=6)"] telegram = ["requests"] -[[package]] -name = "typed-ast" -version = "1.4.3" -description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "dev" -optional = false -python-versions = "*" - [[package]] name = "typing-extensions" version = "3.10.0.2" @@ -615,55 +449,10 @@ category = "main" optional = false python-versions = "*" -[[package]] -name = "urllib3" -version = "1.26.6" -description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" - -[package.extras] -brotli = ["brotlipy (>=0.6.0)"] -secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] -socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] - -[[package]] -name = "xarray" -version = "0.19.0" -description = "N-D labeled arrays and datasets in Python" -category = "main" -optional = false -python-versions = ">=3.7" - -[package.dependencies] -numpy = ">=1.17" -pandas = ">=1.0" - -[package.extras] -accel = ["scipy", "bottleneck", "numbagg"] -complete = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis"] -docs = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch", "bottleneck", "numbagg", "dask", "matplotlib", "seaborn", "nc-time-axis", "sphinx-autosummary-accessors", "sphinx-rtd-theme", "ipython", "ipykernel", "jupyter-client", "nbsphinx", "scanpydoc"] -io = ["netcdf4", "h5netcdf", "scipy", "pydap", "zarr", "fsspec", "cftime", "rasterio", "cfgrib", "pooch"] -parallel = ["dask"] -viz = ["matplotlib", "seaborn", "nc-time-axis"] - -[[package]] -name = "zipp" -version = "3.5.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "dev" -optional = false -python-versions = ">=3.6" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] - [metadata] lock-version = "1.1" -python-versions = ">=3.7.1,<3.10" -content-hash = "ac0acc8e3923f945e15e8f78fc7cf1f97d8abf7ab714cd9dedc7f7f961d149ff" +python-versions = ">=3.8,<3.10" +content-hash = "da0e6d215d5464ac4aec662f2416a160658658fca33b6ce7a1f2daed619bdb4b" [metadata.files] atomicwrites = [ @@ -699,14 +488,6 @@ black = [ {file = "black-22.1.0-py3-none-any.whl", hash = "sha256:3524739d76b6b3ed1132422bf9d82123cd1705086723bc3e235ca39fd21c667d"}, {file = "black-22.1.0.tar.gz", hash = "sha256:a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5"}, ] -certifi = [ - {file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"}, - {file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"}, -] -charset-normalizer = [ - {file = "charset-normalizer-2.0.4.tar.gz", hash = "sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3"}, - {file = "charset_normalizer-2.0.4-py3-none-any.whl", hash = "sha256:0c8911edd15d19223366a194a513099a302055a962bca2cec0f54b8b63175d8b"}, -] click = [ {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, @@ -723,14 +504,6 @@ flake8 = [ {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, ] -idna = [ - {file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"}, - {file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"}, -] -importlib-metadata = [ - {file = "importlib_metadata-4.8.1-py3-none-any.whl", hash = "sha256:b618b6d2d5ffa2f16add5697cf57a46c76a56229b0ed1c438322e4e95645bd15"}, - {file = "importlib_metadata-4.8.1.tar.gz", hash = "sha256:f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1"}, -] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, @@ -789,9 +562,6 @@ kiwisolver = [ {file = "kiwisolver-1.3.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:bcadb05c3d4794eb9eee1dddf1c24215c92fb7b55a80beae7a60530a91060560"}, {file = "kiwisolver-1.3.2.tar.gz", hash = "sha256:fc4453705b81d03568d5b808ad8f09c77c47534f6ac2e72e733f9ca4714aa75c"}, ] -littleutils = [ - {file = "littleutils-0.2.2.tar.gz", hash = "sha256:e6cae3a4203e530d51c9667ed310ffe3b1948f2876e3d69605b3de4b7d96916f"}, -] matplotlib = [ {file = "matplotlib-3.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c988bb43414c7c2b0a31bd5187b4d27fd625c080371b463a6d422047df78913"}, {file = "matplotlib-3.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f1c5efc278d996af8a251b2ce0b07bbeccb821f25c8c9846bdcb00ffc7f158aa"}, @@ -823,79 +593,16 @@ mypy-extensions = [ {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, ] -numpy = [ - {file = "numpy-1.21.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52a664323273c08f3b473548bf87c8145b7513afd63e4ebba8496ecd3853df13"}, - {file = "numpy-1.21.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a7b9db0a2941434cd930dacaafe0fc9da8f3d6157f9d12f761bbde93f46218"}, - {file = "numpy-1.21.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9f2dc79c093f6c5113718d3d90c283f11463d77daa4e83aeeac088ec6a0bda52"}, - {file = "numpy-1.21.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a55e4d81c4260386f71d22294795c87609164e22b28ba0d435850fbdf82fc0c5"}, - {file = "numpy-1.21.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:426a00b68b0d21f2deb2ace3c6d677e611ad5a612d2c76494e24a562a930c254"}, - {file = "numpy-1.21.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:298156f4d3d46815eaf0fcf0a03f9625fc7631692bd1ad851517ab93c3168fc6"}, - {file = "numpy-1.21.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:09858463db6dd9f78b2a1a05c93f3b33d4f65975771e90d2cf7aadb7c2f66edf"}, - {file = "numpy-1.21.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:805459ad8baaf815883d0d6f86e45b3b0b67d823a8f3fa39b1ed9c45eaf5edf1"}, - {file = "numpy-1.21.2-cp37-cp37m-win32.whl", hash = "sha256:f545c082eeb09ae678dd451a1b1dbf17babd8a0d7adea02897a76e639afca310"}, - {file = "numpy-1.21.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b160b9a99ecc6559d9e6d461b95c8eec21461b332f80267ad2c10394b9503496"}, - {file = "numpy-1.21.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a5109345f5ce7ddb3840f5970de71c34a0ff7fceb133c9441283bb8250f532a3"}, - {file = "numpy-1.21.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:209666ce9d4a817e8a4597cd475b71b4878a85fa4b8db41d79fdb4fdee01dde2"}, - {file = "numpy-1.21.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c01b59b33c7c3ba90744f2c695be571a3bd40ab2ba7f3d169ffa6db3cfba614f"}, - {file = "numpy-1.21.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e42029e184008a5fd3d819323345e25e2337b0ac7f5c135b7623308530209d57"}, - {file = "numpy-1.21.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7fdc7689daf3b845934d67cb221ba8d250fdca20ac0334fea32f7091b93f00d3"}, - {file = "numpy-1.21.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:550564024dc5ceee9421a86fc0fb378aa9d222d4d0f858f6669eff7410c89bef"}, - {file = "numpy-1.21.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf75d5825ef47aa51d669b03ce635ecb84d69311e05eccea083f31c7570c9931"}, - {file = "numpy-1.21.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a9da45b748caad72ea4a4ed57e9cd382089f33c5ec330a804eb420a496fa760f"}, - {file = "numpy-1.21.2-cp38-cp38-win32.whl", hash = "sha256:e167b9805de54367dcb2043519382be541117503ce99e3291cc9b41ca0a83557"}, - {file = "numpy-1.21.2-cp38-cp38-win_amd64.whl", hash = "sha256:466e682264b14982012887e90346d33435c984b7fead7b85e634903795c8fdb0"}, - {file = "numpy-1.21.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:dd0e3651d210068d13e18503d75aaa45656eef51ef0b261f891788589db2cc38"}, - {file = "numpy-1.21.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:92a0ab128b07799dd5b9077a9af075a63467d03ebac6f8a93e6440abfea4120d"}, - {file = "numpy-1.21.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fde50062d67d805bc96f1a9ecc0d37bfc2a8f02b937d2c50824d186aa91f2419"}, - {file = "numpy-1.21.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:640c1ccfd56724f2955c237b6ccce2e5b8607c3bc1cc51d3933b8c48d1da3723"}, - {file = "numpy-1.21.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5de64950137f3a50b76ce93556db392e8f1f954c2d8207f78a92d1f79aa9f737"}, - {file = "numpy-1.21.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b342064e647d099ca765f19672696ad50c953cac95b566af1492fd142283580f"}, - {file = "numpy-1.21.2-cp39-cp39-win32.whl", hash = "sha256:30fc68307c0155d2a75ad19844224be0f2c6f06572d958db4e2053f816b859ad"}, - {file = "numpy-1.21.2-cp39-cp39-win_amd64.whl", hash = "sha256:b5e8590b9245803c849e09bae070a8e1ff444f45e3f0bed558dd722119eea724"}, - {file = "numpy-1.21.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d96a6a7d74af56feb11e9a443150216578ea07b7450f7c05df40eec90af7f4a7"}, - {file = "numpy-1.21.2.zip", hash = "sha256:423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc"}, -] -outdated = [ - {file = "outdated-0.2.1-py3-none-any.whl", hash = "sha256:177e381857c10c410dc643b48ace8753ab977d5ae39642297a7f76eb4a3c1c8e"}, - {file = "outdated-0.2.1.tar.gz", hash = "sha256:d92921a3d77bc56a6d39c0af321aad44b223906ebb6e8139996d26116baec573"}, -] +numpy = [] packaging = [ {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"}, {file = "packaging-21.0.tar.gz", hash = "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7"}, ] -pandas = [ - {file = "pandas-1.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ba7ceb8abc6dbdb1e34612d1173d61e4941f1a1eb7e6f703b2633134ae6a6c89"}, - {file = "pandas-1.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb71b1935249de80e3a808227189eee381d4d74a31760ced2df21eedc92a8e3"}, - {file = "pandas-1.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa54dc1d3e5d004a09ab0b1751473698011ddf03e14f1f59b84ad9a6ac630975"}, - {file = "pandas-1.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34ced9ce5d5b17b556486da7256961b55b471d64a8990b56e67a84ebeb259416"}, - {file = "pandas-1.3.2-cp37-cp37m-win32.whl", hash = "sha256:a56246de744baf646d1f3e050c4653d632bc9cd2e0605f41051fea59980e880a"}, - {file = "pandas-1.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:53b17e4debba26b7446b1e4795c19f94f0c715e288e08145e44bdd2865e819b3"}, - {file = "pandas-1.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f07a9745ca075ae73a5ce116f5e58f691c0dc9de0bff163527858459df5c176f"}, - {file = "pandas-1.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9e8e0ce5284ebebe110efd652c164ed6eab77f5de4c3533abc756302ee77765"}, - {file = "pandas-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59a78d7066d1c921a77e3306aa0ebf6e55396c097d5dfcc4df8defe3dcecb735"}, - {file = "pandas-1.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:132def05e73d292c949b02e7ef873debb77acc44a8b119d215921046f0c3a91d"}, - {file = "pandas-1.3.2-cp38-cp38-win32.whl", hash = "sha256:69e1b2f5811f46827722fd641fdaeedb26002bd1e504eacc7a8ec36bdc25393e"}, - {file = "pandas-1.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:7996d311413379136baf0f3cf2a10e331697657c87ced3f17ac7c77f77fe34a3"}, - {file = "pandas-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1738154049062156429a5cf2fd79a69c9f3fa4f231346a7ec6fd156cd1a9a621"}, - {file = "pandas-1.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cce01f6d655b4add966fcd36c32c5d1fe84628e200626b3f5e2f40db2d16a0f"}, - {file = "pandas-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1099e2a0cd3a01ec62cca183fc1555833a2d43764950ef8cb5948c8abfc51014"}, - {file = "pandas-1.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cd5776be891331a3e6b425b5abeab9596abea18435c5982191356f9b24ae731"}, - {file = "pandas-1.3.2-cp39-cp39-win32.whl", hash = "sha256:66a95361b81b4ba04b699ecd2416b0591f40cd1e24c60a8bfe0d19009cfa575a"}, - {file = "pandas-1.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:89f40e5d21814192802421df809f948247d39ffe171e45fe2ab4abf7bd4279d8"}, - {file = "pandas-1.3.2.tar.gz", hash = "sha256:cbcb84d63867af3411fa063af3de64902665bb5b3d40b25b2059e40603594e87"}, -] -pandas-flavor = [ - {file = "pandas_flavor-0.2.0-py2.py3-none-any.whl", hash = "sha256:ce4d3640a89435c27eb2369305455865f043464ee5ae450e5388f4fb30eae241"}, - {file = "pandas_flavor-0.2.0.tar.gz", hash = "sha256:7871655816de22dc766e916697ccc67449e1863c090ef5fd40d4d0fbd056e489"}, -] +pandas = [] pathspec = [ {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, ] -patsy = [ - {file = "patsy-0.5.1-py2.py3-none-any.whl", hash = "sha256:5465be1c0e670c3a965355ec09e9a502bf2c4cbe4875e8528b0221190a8a5d40"}, - {file = "patsy-0.5.1.tar.gz", hash = "sha256:f115cec4201e1465cd58b9866b0b0e7b941caafec129869057405bfe5b5e3991"}, -] pillow = [ {file = "Pillow-9.1.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:42dfefbef90eb67c10c45a73a9bc1599d4dac920f7dfcbf4ec6b80cb620757fe"}, {file = "Pillow-9.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ffde4c6fabb52891d81606411cbfaf77756e3b561b566efd270b3ed3791fde4e"}, @@ -936,9 +643,6 @@ pillow = [ {file = "Pillow-9.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:baf3be0b9446a4083cc0c5bb9f9c964034be5374b5bc09757be89f5d2fa247b8"}, {file = "Pillow-9.1.1.tar.gz", hash = "sha256:7502539939b53d7565f3d11d87c78e7ec900d3c72945d4ee0e2f250d598309a0"}, ] -pingouin = [ - {file = "pingouin-0.4.0.tar.gz", hash = "sha256:24249c4c98e4334736938ccb337f486b6a203206c68cfbee37b82c0f89c1ed88"}, -] platformdirs = [ {file = "platformdirs-2.3.0-py3-none-any.whl", hash = "sha256:8003ac87717ae2c7ee1ea5a84a1a61e87f3fbd16eb5aadba194ea30a9019f648"}, {file = "platformdirs-2.3.0.tar.gz", hash = "sha256:15b056538719b1c94bdaccb29e5f81879c7f7f0f4a153f46086d155dffcd4f0f"}, @@ -979,105 +683,42 @@ pytz = [ {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"}, ] pyyaml = [ - {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"}, - {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"}, - {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"}, - {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"}, - {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"}, - {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"}, - {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"}, - {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"}, - {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"}, - {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"}, - {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"}, - {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"}, - {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"}, - {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"}, - {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"}, - {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, - {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, -] -requests = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, -] -scikit-learn = [ - {file = "scikit-learn-1.0.2.tar.gz", hash = "sha256:b5870959a5484b614f26d31ca4c17524b1b0317522199dc985c3b4256e030767"}, - {file = "scikit_learn-1.0.2-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:da3c84694ff693b5b3194d8752ccf935a665b8b5edc33a283122f4273ca3e687"}, - {file = "scikit_learn-1.0.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:75307d9ea39236cad7eea87143155eea24d48f93f3a2f9389c817f7019f00705"}, - {file = "scikit_learn-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f14517e174bd7332f1cca2c959e704696a5e0ba246eb8763e6c24876d8710049"}, - {file = "scikit_learn-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9aac97e57c196206179f674f09bc6bffcd0284e2ba95b7fe0b402ac3f986023"}, - {file = "scikit_learn-1.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:d93d4c28370aea8a7cbf6015e8a669cd5d69f856cc2aa44e7a590fb805bb5583"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:85260fb430b795d806251dd3bb05e6f48cdc777ac31f2bcf2bc8bbed3270a8f5"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a053a6a527c87c5c4fa7bf1ab2556fa16d8345cf99b6c5a19030a4a7cd8fd2c0"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:245c9b5a67445f6f044411e16a93a554edc1efdcce94d3fc0bc6a4b9ac30b752"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:158faf30684c92a78e12da19c73feff9641a928a8024b4fa5ec11d583f3d8a87"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:08ef968f6b72033c16c479c966bf37ccd49b06ea91b765e1cc27afefe723920b"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16455ace947d8d9e5391435c2977178d0ff03a261571e67f627c8fee0f9d431a"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-win32.whl", hash = "sha256:2f3b453e0b149898577e301d27e098dfe1a36943f7bb0ad704d1e548efc3b448"}, - {file = "scikit_learn-1.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:46f431ec59dead665e1370314dbebc99ead05e1c0a9df42f22d6a0e00044820f"}, - {file = "scikit_learn-1.0.2-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:ff3fa8ea0e09e38677762afc6e14cad77b5e125b0ea70c9bba1992f02c93b028"}, - {file = "scikit_learn-1.0.2-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:9369b030e155f8188743eb4893ac17a27f81d28a884af460870c7c072f114243"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7d6b2475f1c23a698b48515217eb26b45a6598c7b1840ba23b3c5acece658dbb"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:285db0352e635b9e3392b0b426bc48c3b485512d3b4ac3c7a44ec2a2ba061e66"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb33fe1dc6f73dc19e67b264dbb5dde2a0539b986435fdd78ed978c14654830"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b1391d1a6e2268485a63c3073111fe3ba6ec5145fc957481cfd0652be571226d"}, - {file = "scikit_learn-1.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc3744dabc56b50bec73624aeca02e0def06b03cb287de26836e730659c5d29c"}, - {file = "scikit_learn-1.0.2-cp38-cp38-win32.whl", hash = "sha256:a999c9f02ff9570c783069f1074f06fe7386ec65b84c983db5aeb8144356a355"}, - {file = "scikit_learn-1.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:7626a34eabbf370a638f32d1a3ad50526844ba58d63e3ab81ba91e2a7c6d037e"}, - {file = "scikit_learn-1.0.2-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:a90b60048f9ffdd962d2ad2fb16367a87ac34d76e02550968719eb7b5716fd10"}, - {file = "scikit_learn-1.0.2-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:7a93c1292799620df90348800d5ac06f3794c1316ca247525fa31169f6d25855"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:eabceab574f471de0b0eb3f2ecf2eee9f10b3106570481d007ed1c84ebf6d6a1"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:55f2f3a8414e14fbee03782f9fe16cca0f141d639d2b1c1a36779fa069e1db57"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80095a1e4b93bd33261ef03b9bc86d6db649f988ea4dbcf7110d0cded8d7213d"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fa38a1b9b38ae1fad2863eff5e0d69608567453fdfc850c992e6e47eb764e846"}, - {file = "scikit_learn-1.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff746a69ff2ef25f62b36338c615dd15954ddc3ab8e73530237dd73235e76d62"}, - {file = "scikit_learn-1.0.2-cp39-cp39-win32.whl", hash = "sha256:e174242caecb11e4abf169342641778f68e1bfaba80cd18acd6bc84286b9a534"}, - {file = "scikit_learn-1.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:b54a62c6e318ddbfa7d22c383466d38d2ee770ebdb5ddb668d56a099f6eaf75f"}, -] -scipy = [ - {file = "scipy-1.7.3-1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:c9e04d7e9b03a8a6ac2045f7c5ef741be86727d8f49c45db45f244bdd2bcff17"}, - {file = "scipy-1.7.3-1-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:b0e0aeb061a1d7dcd2ed59ea57ee56c9b23dd60100825f98238c06ee5cc4467e"}, - {file = "scipy-1.7.3-1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:b78a35c5c74d336f42f44106174b9851c783184a85a3fe3e68857259b37b9ffb"}, - {file = "scipy-1.7.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:173308efba2270dcd61cd45a30dfded6ec0085b4b6eb33b5eb11ab443005e088"}, - {file = "scipy-1.7.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:21b66200cf44b1c3e86495e3a436fc7a26608f92b8d43d344457c54f1c024cbc"}, - {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceebc3c4f6a109777c0053dfa0282fddb8893eddfb0d598574acfb734a926168"}, - {file = "scipy-1.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7eaea089345a35130bc9a39b89ec1ff69c208efa97b3f8b25ea5d4c41d88094"}, - {file = "scipy-1.7.3-cp310-cp310-win_amd64.whl", hash = "sha256:304dfaa7146cffdb75fbf6bb7c190fd7688795389ad060b970269c8576d038e9"}, - {file = "scipy-1.7.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:033ce76ed4e9f62923e1f8124f7e2b0800db533828c853b402c7eec6e9465d80"}, - {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4d242d13206ca4302d83d8a6388c9dfce49fc48fdd3c20efad89ba12f785bf9e"}, - {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8499d9dd1459dc0d0fe68db0832c3d5fc1361ae8e13d05e6849b358dc3f2c279"}, - {file = "scipy-1.7.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca36e7d9430f7481fc7d11e015ae16fbd5575615a8e9060538104778be84addf"}, - {file = "scipy-1.7.3-cp37-cp37m-win32.whl", hash = "sha256:e2c036492e673aad1b7b0d0ccdc0cb30a968353d2c4bf92ac8e73509e1bf212c"}, - {file = "scipy-1.7.3-cp37-cp37m-win_amd64.whl", hash = "sha256:866ada14a95b083dd727a845a764cf95dd13ba3dc69a16b99038001b05439709"}, - {file = "scipy-1.7.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:65bd52bf55f9a1071398557394203d881384d27b9c2cad7df9a027170aeaef93"}, - {file = "scipy-1.7.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:f99d206db1f1ae735a8192ab93bd6028f3a42f6fa08467d37a14eb96c9dd34a3"}, - {file = "scipy-1.7.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5f2cfc359379c56b3a41b17ebd024109b2049f878badc1e454f31418c3a18436"}, - {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb7ae2c4dbdb3c9247e07acc532f91077ae6dbc40ad5bd5dca0bb5a176ee9bda"}, - {file = "scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95c2d250074cfa76715d58830579c64dff7354484b284c2b8b87e5a38321672c"}, - {file = "scipy-1.7.3-cp38-cp38-win32.whl", hash = "sha256:87069cf875f0262a6e3187ab0f419f5b4280d3dcf4811ef9613c605f6e4dca95"}, - {file = "scipy-1.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:7edd9a311299a61e9919ea4192dd477395b50c014cdc1a1ac572d7c27e2207fa"}, - {file = "scipy-1.7.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eef93a446114ac0193a7b714ce67659db80caf940f3232bad63f4c7a81bc18df"}, - {file = "scipy-1.7.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:eb326658f9b73c07081300daba90a8746543b5ea177184daed26528273157294"}, - {file = "scipy-1.7.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:93378f3d14fff07572392ce6a6a2ceb3a1f237733bd6dcb9eb6a2b29b0d19085"}, - {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edad1cf5b2ce1912c4d8ddad20e11d333165552aba262c882e28c78bbc09dbf6"}, - {file = "scipy-1.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d1cc2c19afe3b5a546ede7e6a44ce1ff52e443d12b231823268019f608b9b12"}, - {file = "scipy-1.7.3-cp39-cp39-win32.whl", hash = "sha256:2c56b820d304dffcadbbb6cbfbc2e2c79ee46ea291db17e288e73cd3c64fefa9"}, - {file = "scipy-1.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:3f78181a153fa21c018d346f595edd648344751d7f03ab94b398be2ad083ed3e"}, - {file = "scipy-1.7.3.tar.gz", hash = "sha256:ab5875facfdef77e0a47d5fd39ea178b58e60e454a4c85aa1e52fcb80db7babf"}, -] + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] +scikit-learn = [] +scipy = [] seaborn = [ {file = "seaborn-0.11.2-py3-none-any.whl", hash = "sha256:85a6baa9b55f81a0623abddc4a26b334653ff4c6b18c418361de19dbba0ef283"}, {file = "seaborn-0.11.2.tar.gz", hash = "sha256:cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6"}, @@ -1086,33 +727,6 @@ six = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -statsmodels = [ - {file = "statsmodels-0.12.2-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:c1d98ce2072f5e772cbf91d05475490368da5d3ee4a3150062330c7b83221ceb"}, - {file = "statsmodels-0.12.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:4184487e9c281acad3d0bda19445c69db292f0dbb18f25ebf56a7966a0a28eef"}, - {file = "statsmodels-0.12.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:37e107fa11299090ed90f93c7172162b850c28fd09999937b971926813e887c5"}, - {file = "statsmodels-0.12.2-cp36-none-win32.whl", hash = "sha256:5d3e7333e1c5b234797ed57c3d1533371374c1e1e7e7ed54d27805611f96e2d5"}, - {file = "statsmodels-0.12.2-cp36-none-win_amd64.whl", hash = "sha256:aaf3c75fd22cb9dcf9c1b28f8ae87521310870f4dd8a6a4f1010f1e46d992377"}, - {file = "statsmodels-0.12.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:c48b7cbb37a651bb1cd23614abc10f447845ad3c3a713bf74e2aad20cfc94ae7"}, - {file = "statsmodels-0.12.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:a3bd3922463dda8ad33e5e5075d2080e9e012aeb2032b5cdaeea9b79c2472000"}, - {file = "statsmodels-0.12.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:43de84bc08c8b9f778502aed7a476d6e68674e6878718e533b07d569cf0927a9"}, - {file = "statsmodels-0.12.2-cp37-none-win32.whl", hash = "sha256:0197855aa1d40c42532d6a75b4ca72e30826a50d90ec3047a404f9702d8b814f"}, - {file = "statsmodels-0.12.2-cp37-none-win_amd64.whl", hash = "sha256:93273aa1c31caf59bcce9790ca4c3f54fdc45a37c61084d06f1ba4fbe56e7752"}, - {file = "statsmodels-0.12.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:3e94306d4c07e332532ea4911d1f1d1f661c79aa73f22c5bb22e6dd47b40d562"}, - {file = "statsmodels-0.12.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:f3a7622f3d0ce2fc204f43b74de4e03e42775609705bf94d656b730482ca935a"}, - {file = "statsmodels-0.12.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:587deb788e7f8f3f866d28e812cf5c082b4d4a2d3f5beea94d0e9699ea71ef22"}, - {file = "statsmodels-0.12.2-cp38-none-win32.whl", hash = "sha256:cbbdf6f708c9a1f1fad5cdea5e4342d6fdb37e42e92288c2cf906b99976ffe15"}, - {file = "statsmodels-0.12.2-cp38-none-win_amd64.whl", hash = "sha256:1fa720e895112a1b04b27002218b0ea7f10dd1d9cffd1c018c88bbfb82520f57"}, - {file = "statsmodels-0.12.2-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:c3782ce846a52862ac72f89d22b6b1ca13d877bc593872309228a6f05d934321"}, - {file = "statsmodels-0.12.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:8f93cb3f7d87c1fc7e51b3b239371c25a17a0a8e782467fdf4788cfef600724a"}, - {file = "statsmodels-0.12.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f61f33f64760a22100b6b146217823f73cfedd251c9bdbd58453ca94e63326c7"}, - {file = "statsmodels-0.12.2-cp39-none-win32.whl", hash = "sha256:3aab85174444f1bcad1e9218a3d3db08f0f86eeb97985236ca8605a0a39ce305"}, - {file = "statsmodels-0.12.2-cp39-none-win_amd64.whl", hash = "sha256:94d3632d56c13eebebaefb52bd4b43144ad5a131337b57842f46db826fa7d2d3"}, - {file = "statsmodels-0.12.2.tar.gz", hash = "sha256:8ad7a7ae7cdd929095684118e3b05836c0ccb08b6a01fe984159475d174a1b10"}, -] -tabulate = [ - {file = "tabulate-0.8.9-py3-none-any.whl", hash = "sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4"}, - {file = "tabulate-0.8.9.tar.gz", hash = "sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"}, -] threadpoolctl = [ {file = "threadpoolctl-2.2.0-py3-none-any.whl", hash = "sha256:e5a995e3ffae202758fa8a90082e35783b9370699627ae2733cd1c3a73553616"}, {file = "threadpoolctl-2.2.0.tar.gz", hash = "sha256:86d4b6801456d780e94681d155779058759eaef3c3564758b17b6c99db5f81cb"}, @@ -1125,76 +739,13 @@ tomli = [ {file = "tomli-1.2.1-py3-none-any.whl", hash = "sha256:8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f"}, {file = "tomli-1.2.1.tar.gz", hash = "sha256:a5b75cb6f3968abb47af1b40c1819dc519ea82bcc065776a866e8d74c5ca9442"}, ] -torch = [ - {file = "torch-1.9.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:3a2d070cf28860d285d4ab156f3954c0c1d12f4c037aa312a7c029227c0d106b"}, - {file = "torch-1.9.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b296e65e25081af147af936f1e3a1f17f583a9afacfa5309742678ffef728ace"}, - {file = "torch-1.9.0-cp36-cp36m-win_amd64.whl", hash = "sha256:117098d4924b260a24a47c6b3fe37f2ae41f04a2ea2eff9f553ae9210b12fa54"}, - {file = "torch-1.9.0-cp36-none-macosx_10_9_x86_64.whl", hash = "sha256:d6103b9a634993bd967337a1149f9d8b23922f42a3660676239399e15c1b4515"}, - {file = "torch-1.9.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:0164673908e6b291ace592d382eba3e258b3bad009b8078cad8f3b9e00d8f23e"}, - {file = "torch-1.9.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:52548b45efff772fe3810fe91daf34f981ac0ca1a7227f6226fd5693f53b5b88"}, - {file = "torch-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62c0a7e433681d0861494d1ede96d2485e4dbb3ea8fd867e8419addebf5de1af"}, - {file = "torch-1.9.0-cp37-none-macosx_10_9_x86_64.whl", hash = "sha256:d88333091fd1627894bbf0d6dcef58a90e36bdf0d90a5d4675b5e07e72075511"}, - {file = "torch-1.9.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:1d8139dcc864f48dc316376384f50e47a459284ad1cb84449242f4964e25aaec"}, - {file = "torch-1.9.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:0aa4cca3f16fab40cb8dae6a49d0eccdc8f4ead9d1a6428cd9ba12befe082b2a"}, - {file = "torch-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:646de1bef85d6c7590e98f8ea52e47acdcf58330982e4f5d73f5ca28dea2d552"}, - {file = "torch-1.9.0-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:e596f0105f748cf09d4763152d8157aaf58d5231232eaf2c5673d4562ba86ad3"}, - {file = "torch-1.9.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:ecc7193fff7741ced3db1f760666c8454d6664956288c54d1b49613b987a42f4"}, - {file = "torch-1.9.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:95eeec3a6c42fd35aca552777b7d9979ed489760423de97c0118a45e849a61f4"}, - {file = "torch-1.9.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:8a2b2012b3c7d6019e189496688fa77de7029a220840b406d8302d1c8021a11c"}, - {file = "torch-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:7e2b14fe5b3a8266cbe2f6740c0195497507974ced7bc21e99971561913a0c28"}, - {file = "torch-1.9.0-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:0a9e74b5057463ce4e55d9332a5670993fc9e1299c52e1740e505eda106fb355"}, - {file = "torch-1.9.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:569ead6ae6bb0e636df0fc8af660ef03260e630dc5f2f4cf3198027e7b6bb481"}, -] +torch = [] tqdm = [ {file = "tqdm-4.62.2-py2.py3-none-any.whl", hash = "sha256:80aead664e6c1672c4ae20dc50e1cdc5e20eeff9b14aa23ecd426375b28be588"}, {file = "tqdm-4.62.2.tar.gz", hash = "sha256:a4d6d112e507ef98513ac119ead1159d286deab17dffedd96921412c2d236ff5"}, ] -typed-ast = [ - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"}, - {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"}, - {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"}, - {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"}, - {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"}, - {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"}, - {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"}, - {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"}, - {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"}, - {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"}, - {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"}, - {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"}, - {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"}, - {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"}, - {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"}, - {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"}, - {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"}, - {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, -] typing-extensions = [ {file = "typing_extensions-3.10.0.2-py2-none-any.whl", hash = "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7"}, {file = "typing_extensions-3.10.0.2-py3-none-any.whl", hash = "sha256:f1d25edafde516b146ecd0613dabcc61409817af4766fbbcfb8d1ad4ec441a34"}, {file = "typing_extensions-3.10.0.2.tar.gz", hash = "sha256:49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e"}, ] -urllib3 = [ - {file = "urllib3-1.26.6-py2.py3-none-any.whl", hash = "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4"}, - {file = "urllib3-1.26.6.tar.gz", hash = "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f"}, -] -xarray = [ - {file = "xarray-0.19.0-py3-none-any.whl", hash = "sha256:da0f0d7719b5ee95143a34804e3afb82cb8abbe5c10f9750a9dbed156ad30f00"}, - {file = "xarray-0.19.0.tar.gz", hash = "sha256:3a365ce09127fc841ba88baa63f37ca61376ffe389a6c5e66d52f2c88c23a62b"}, -] -zipp = [ - {file = "zipp-3.5.0-py3-none-any.whl", hash = "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3"}, - {file = "zipp-3.5.0.tar.gz", hash = "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4"}, -] diff --git a/pyproject.toml b/pyproject.toml index 334eec2a..ae05bb0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,18 +6,17 @@ authors = ["Yuta Saito "] license = "Apache License 2.0" [tool.poetry.dependencies] -python = ">=3.7.1,<3.10" -torch = "^1.9.0" -scikit-learn = "1.0.2" -pandas = "^1.3.2" -numpy = "^1.21.2" +python = ">=3.8,<3.11" +torch = "1.12" +scikit-learn = "1.1.3" +pandas = "1.5.2" +numpy = "1.23.5" matplotlib = "^3.4.3" tqdm = "^4.62.2" -scipy = "1.7.3" -PyYAML = "^5.4.1" +scipy = "1.9.3" +PyYAML = "6.0.0" seaborn = "^0.11.2" pyieoe = "^0.1.1" -pingouin = "^0.4.0" mypy-extensions = "^0.4.3" Pillow = "9.1.1" diff --git a/setup.py b/setup.py index 2fd7bc38..60035345 100644 --- a/setup.py +++ b/setup.py @@ -27,16 +27,15 @@ install_requires=[ "matplotlib>=3.4.3", "mypy-extensions>=0.4.3", - "numpy>=1.21.2", - "pandas>=1.3.2", - "pyyaml>=5.1", - "seaborn>=0.10.1", - "scikit-learn>=1.0.2", - "scipy>=1.7.3", - "torch>=1.9.0", + "numpy>=1.23.5", + "pandas>=1.5.2", + "pyyaml>=6.0.0", + "seaborn>=0.11.2", + "scikit-learn>=1.1.3", + "scipy>=1.9.3", + "torch>=1.12.0", "tqdm>=4.62.2", "pyieoe>=0.1.1", - "pingouin>=0.4.0", ], license="Apache License", packages=find_packages( From ba58614ca0e8b11de35cb2f079adf34f49344ee0 Mon Sep 17 00:00:00 2001 From: usaito Date: Sat, 3 Dec 2022 23:17:13 -0500 Subject: [PATCH 4/7] apply isort --- obp/dataset/synthetic.py | 4 +++- obp/simulator/coefficient_drifter.py | 4 +++- obp/simulator/replay.py | 3 ++- obp/simulator/simulator.py | 12 +++++++++--- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/obp/dataset/synthetic.py b/obp/dataset/synthetic.py index 2434eb7d..f9fbc097 100644 --- a/obp/dataset/synthetic.py +++ b/obp/dataset/synthetic.py @@ -3,8 +3,9 @@ """Class for Generating Synthetic Logged Bandit Data.""" from dataclasses import dataclass -from typing import Callable, Tuple +from typing import Callable from typing import Optional +from typing import Tuple import numpy as np from scipy.stats import truncnorm @@ -20,6 +21,7 @@ from .base import BaseBanditDataset from .reward_type import RewardType + coef_func_signature = Callable[ [np.ndarray, np.ndarray, np.random.RandomState], Tuple[np.ndarray, np.ndarray, np.ndarray], diff --git a/obp/simulator/coefficient_drifter.py b/obp/simulator/coefficient_drifter.py index 75cba871..ee74f906 100644 --- a/obp/simulator/coefficient_drifter.py +++ b/obp/simulator/coefficient_drifter.py @@ -1,6 +1,8 @@ from collections import deque from dataclasses import dataclass -from typing import Optional, Tuple, List +from typing import List +from typing import Optional +from typing import Tuple import numpy as np from sklearn.utils import check_random_state diff --git a/obp/simulator/replay.py b/obp/simulator/replay.py index dd8fc53f..f06d3ec5 100644 --- a/obp/simulator/replay.py +++ b/obp/simulator/replay.py @@ -4,7 +4,8 @@ from obp.policy.policy_type import PolicyType from obp.simulator.simulator import BanditPolicy from obp.types import BanditFeedback -from obp.utils import check_bandit_feedback_inputs, convert_to_action_dist +from obp.utils import check_bandit_feedback_inputs +from obp.utils import convert_to_action_dist def run_bandit_replay( diff --git a/obp/simulator/simulator.py b/obp/simulator/simulator.py index 6f27b4dc..3425d6ed 100755 --- a/obp/simulator/simulator.py +++ b/obp/simulator/simulator.py @@ -5,11 +5,16 @@ from collections import defaultdict from copy import deepcopy from dataclasses import dataclass -from typing import Callable, Tuple, Optional, List, Any +from typing import Any +from typing import Callable +from typing import List +from typing import Optional +from typing import Tuple from typing import Union import numpy as np -from sklearn.utils import check_random_state, check_scalar +from sklearn.utils import check_random_state +from sklearn.utils import check_scalar from tqdm import tqdm from ..dataset.reward_type import RewardType @@ -18,7 +23,8 @@ from ..policy import BaseContextualPolicy from ..policy.policy_type import PolicyType from ..types import BanditFeedback -from ..utils import check_bandit_feedback_inputs, check_array +from ..utils import check_array +from ..utils import check_bandit_feedback_inputs # bandit policy type From 73a15f4c105e6ced2f95388fd736b33f4e68c7ac Mon Sep 17 00:00:00 2001 From: usaito Date: Sat, 3 Dec 2022 23:17:22 -0500 Subject: [PATCH 5/7] fix tests --- tests/dataset/test_synthetic.py | 18 ++++++------ tests/dataset/test_synthetic_continuous.py | 28 +++++++++---------- tests/dataset/test_synthetic_embed.py | 24 ++++++++-------- tests/dataset/test_synthetic_multi.py | 14 +++++----- tests/dataset/test_synthetic_slate.py | 10 +++---- tests/ope/test_all_estimators.py | 4 +-- tests/ope/test_bipw_estimators.py | 4 +-- tests/ope/test_dr_estimators.py | 12 ++++---- tests/ope/test_dr_estimators_continuous.py | 4 +-- tests/ope/test_dr_estimators_multi.py | 4 +-- tests/ope/test_dr_estimators_slate.py | 4 +-- tests/ope/test_importance_weight_estimator.py | 8 +++--- tests/ope/test_ipw_estimators.py | 12 ++++---- tests/ope/test_ipw_estimators_continuous.py | 4 +-- tests/ope/test_ipw_estimators_embed.py | 6 ++-- tests/ope/test_ipw_estimators_multi.py | 4 +-- tests/ope/test_ipw_estimators_slate.py | 4 +-- tests/ope/test_meta.py | 8 +++--- tests/ope/test_meta_continuous.py | 8 +++--- tests/ope/test_meta_multi.py | 8 +++--- tests/ope/test_meta_slate.py | 8 +++--- tests/ope/test_propensity_score_estimator.py | 8 +++--- tests/ope/test_regression_models.py | 6 ++-- tests/ope/test_regression_models_slate.py | 4 +-- tests/policy/test_offline.py | 10 +++---- tests/simulator/test_coefficient_drifter.py | 3 +- tests/simulator/test_delay_sampler.py | 2 +- tests/simulator/test_simulator.py | 20 +++++++------ 28 files changed, 125 insertions(+), 124 deletions(-) diff --git a/tests/dataset/test_synthetic.py b/tests/dataset/test_synthetic.py index 8313676c..9ac5deca 100644 --- a/tests/dataset/test_synthetic.py +++ b/tests/dataset/test_synthetic.py @@ -2,10 +2,8 @@ import pytest from obp.dataset import SyntheticBanditDataset -from obp.dataset.synthetic import ( - linear_behavior_policy, - _base_reward_function, -) +from obp.dataset.synthetic import _base_reward_function +from obp.dataset.synthetic import linear_behavior_policy from obp.dataset.synthetic import linear_reward_function from obp.dataset.synthetic import logistic_polynomial_reward_function from obp.dataset.synthetic import logistic_reward_function @@ -28,7 +26,7 @@ None, 12345, TypeError, - "n_actions must be an instance of , not .", + "n_actions must be an instance of int, not str.", ), ( 1, # @@ -52,7 +50,7 @@ None, 12345, TypeError, - "dim_context must be an instance of , not .", + "dim_context must be an instance of int, not str.", ), ( 3, @@ -88,7 +86,7 @@ None, 12345, TypeError, - r"reward_std must be an instance of \(, \), not .", + r"reward_std must be an instance of {int, float}, not str.", ), ( 3, @@ -112,7 +110,7 @@ None, 12345, TypeError, - r"beta must be an instance of \(, \), not .", + r"beta must be an instance of {int, float}, not str.", ), ( 3, @@ -124,7 +122,7 @@ None, 12345, TypeError, - "n_deficient_actions must be an instance of , not .", + "n_deficient_actions must be an instance of int, not str.", ), ( 3, @@ -136,7 +134,7 @@ None, 12345, TypeError, - "n_deficient_actions must be an instance of , not .", + "n_deficient_actions must be an instance of int, not float.", ), ( 3, diff --git a/tests/dataset/test_synthetic_continuous.py b/tests/dataset/test_synthetic_continuous.py index 88384062..90e9f86f 100644 --- a/tests/dataset/test_synthetic_continuous.py +++ b/tests/dataset/test_synthetic_continuous.py @@ -30,7 +30,7 @@ 1.0, 12345, TypeError, - "dim_context must be an instance of , not .", + "dim_context must be an instance of int, not float.", ), ( "3", # @@ -40,7 +40,7 @@ 1.0, 12345, TypeError, - "dim_context must be an instance of , not .", + "dim_context must be an instance of int, not str.", ), ( None, # @@ -50,7 +50,7 @@ 1.0, 12345, TypeError, - "dim_context must be an instance of , not .", + "dim_context must be an instance of int, not NoneType.", ), ( 3, @@ -70,7 +70,7 @@ 1.0, 12345, TypeError, - r"action_noise must be an instance of \(, \), not .", + r"action_noise must be an instance of {int, float}, not str.", ), ( 3, @@ -80,7 +80,7 @@ 1.0, 12345, TypeError, - r"action_noise must be an instance of \(, \), not .", + r"action_noise must be an instance of {int, float}, not NoneType.", ), ( 3, @@ -100,7 +100,7 @@ 1.0, 12345, TypeError, - r"reward_noise must be an instance of \(, \), not .", + r"reward_noise must be an instance of {int, float}, not str.", ), ( 3, @@ -110,7 +110,7 @@ 1.0, 12345, TypeError, - r"reward_noise must be an instance of \(, \), not .", + r"reward_noise must be an instance of {int, float}, not NoneType.", ), ( 3, @@ -120,7 +120,7 @@ 1.0, 12345, TypeError, - r"min_action_value must be an instance of \(, \), not .", + r"min_action_value must be an instance of {int, float}, not str.", ), ( 3, @@ -130,7 +130,7 @@ 1.0, 12345, TypeError, - r"min_action_value must be an instance of \(, \), not .", + r"min_action_value must be an instance of {int, float}, not NoneType.", ), ( 3, @@ -140,7 +140,7 @@ "3", # 12345, TypeError, - r"max_action_value must be an instance of \(, \), not .", + r"max_action_value must be an instance of {int, float}, not str.", ), ( 3, @@ -150,7 +150,7 @@ None, # 12345, TypeError, - r"max_action_value must be an instance of \(, \), not .", + r"max_action_value must be an instance of {int, float}, not NoneType.", ), ( 3, @@ -220,17 +220,17 @@ def test_synthetic_continuous_init_using_invalid_inputs( ( 1.0, # TypeError, - "n_rounds must be an instance of , not .", + "n_rounds must be an instance of int, not float.", ), ( "3", # TypeError, - "n_rounds must be an instance of , not .", + "n_rounds must be an instance of int, not str.", ), ( None, # TypeError, - "n_rounds must be an instance of , not .", + "n_rounds must be an instance of int, not NoneType.", ), ] diff --git a/tests/dataset/test_synthetic_embed.py b/tests/dataset/test_synthetic_embed.py index a2a8713d..fe621dde 100644 --- a/tests/dataset/test_synthetic_embed.py +++ b/tests/dataset/test_synthetic_embed.py @@ -23,7 +23,7 @@ None, 12345, TypeError, - "n_actions must be an instance of , not .", + "n_actions must be an instance of int, not str.", ), ( 1, # @@ -59,7 +59,7 @@ None, 12345, TypeError, - "dim_context must be an instance of , not .", + "dim_context must be an instance of int, not str.", ), ( 3, @@ -113,7 +113,7 @@ None, 12345, TypeError, - r"reward_std must be an instance of \(, \), not .", + r"reward_std must be an instance of {int, float}, not str.", ), ( 3, @@ -149,7 +149,7 @@ None, 12345, TypeError, - r"beta must be an instance of \(, \), not .", + r"beta must be an instance of {int, float}, not str.", ), ( 3, @@ -167,7 +167,7 @@ None, 12345, TypeError, - r"n_cat_per_dim must be an instance of , not .", + r"n_cat_per_dim must be an instance of int, not float.", ), ( 3, @@ -203,7 +203,7 @@ None, 12345, TypeError, - r"latent_param_mat_dim must be an instance of , not .", + r"latent_param_mat_dim must be an instance of int, not float.", ), ( 3, @@ -239,7 +239,7 @@ None, 12345, TypeError, - r"n_cat_dim must be an instance of , not .", + r"n_cat_dim must be an instance of int, not float.", ), ( 3, @@ -275,7 +275,7 @@ None, 12345, TypeError, - r"p_e_a_param_std must be an instance of \(, \), not .", + r"p_e_a_param_std must be an instance of {int, float}, not str.", ), ( 3, @@ -311,7 +311,7 @@ None, 12345, TypeError, - r"n_unobserved_cat_dim must be an instance of , not .", + r"n_unobserved_cat_dim must be an instance of int, not float.", ), ( 3, @@ -365,7 +365,7 @@ None, 12345, TypeError, - r"n_irrelevant_cat_dim must be an instance of , not .", + r"n_irrelevant_cat_dim must be an instance of int, not float.", ), ( 3, @@ -419,7 +419,7 @@ None, 12345, TypeError, - "n_deficient_actions must be an instance of , not .", + "n_deficient_actions must be an instance of int, not str.", ), ( 3, @@ -437,7 +437,7 @@ None, 12345, TypeError, - "n_deficient_actions must be an instance of , not .", + "n_deficient_actions must be an instance of int, not float.", ), ( 3, diff --git a/tests/dataset/test_synthetic_multi.py b/tests/dataset/test_synthetic_multi.py index 396f8edf..eb8fd453 100644 --- a/tests/dataset/test_synthetic_multi.py +++ b/tests/dataset/test_synthetic_multi.py @@ -17,7 +17,7 @@ None, 12345, TypeError, - "n_actions must be an instance of , not .", + "n_actions must be an instance of int, not str.", ), ( 1, # @@ -43,7 +43,7 @@ None, 12345, TypeError, - "dim_context must be an instance of , not .", + "dim_context must be an instance of int, not str.", ), ( 3, @@ -82,7 +82,7 @@ None, 12345, TypeError, - r"reward_std must be an instance of \(, \), not .", + r"reward_std must be an instance of {int, float}, not str.", ), ( 3, @@ -134,7 +134,7 @@ None, 12345, TypeError, - r"betas\[0\] must be an instance of \(, \), not .", + r"betas\[0\] must be an instance of {int, float}, not str.", ), ( 3, @@ -173,7 +173,7 @@ None, 12345, TypeError, - r"rhos\[0\] must be an instance of \(, \), not .", + r"rhos\[0\] must be an instance of {int, float}, not str.", ), ( 3, @@ -212,7 +212,7 @@ None, 12345, TypeError, - "n_deficient_actions must be an instance of , not .", + "n_deficient_actions must be an instance of int, not str.", ), ( 3, @@ -225,7 +225,7 @@ None, 12345, TypeError, - "n_deficient_actions must be an instance of , not .", + "n_deficient_actions must be an instance of int, not float.", ), ( 3, diff --git a/tests/dataset/test_synthetic_slate.py b/tests/dataset/test_synthetic_slate.py index f2b10d2a..bae6f6ef 100644 --- a/tests/dataset/test_synthetic_slate.py +++ b/tests/dataset/test_synthetic_slate.py @@ -24,7 +24,7 @@ 1.0, 1, TypeError, - "n_unique_action must be an instance of , not .", + "n_unique_action must be an instance of int, not str.", ), ( 1, @@ -50,7 +50,7 @@ 1.0, 1, TypeError, - "len_list must be an instance of , not .", + "len_list must be an instance of int, not str.", ), ( 5, @@ -102,7 +102,7 @@ 1.0, 1, TypeError, - "dim_context must be an instance of , not .", + "dim_context must be an instance of int, not str.", ), ( 5, @@ -167,7 +167,7 @@ "aaa", 1, TypeError, - "eta must be an instance of , not .", + "eta must be an instance of float, not str.", ), ( 5, @@ -1228,7 +1228,7 @@ def test_calc_on_policy_policy_value_using_valid_input_data( np.ones([5, 2]), np.tile(np.arange(3), 5), TypeError, - "epsilon must be an instance of , not .", + "epsilon must be an instance of float, not str.", ), ( "optimal", diff --git a/tests/ope/test_all_estimators.py b/tests/ope/test_all_estimators.py index a3e5b94c..e5344ec9 100644 --- a/tests/ope/test_all_estimators.py +++ b/tests/ope/test_all_estimators.py @@ -356,7 +356,7 @@ def test_estimation_of_all_estimators_using_valid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -365,7 +365,7 @@ def test_estimation_of_all_estimators_using_valid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] diff --git a/tests/ope/test_bipw_estimators.py b/tests/ope/test_bipw_estimators.py index 0159da1f..605514ec 100644 --- a/tests/ope/test_bipw_estimators.py +++ b/tests/ope/test_bipw_estimators.py @@ -13,12 +13,12 @@ ( "", TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not str.", ), ( None, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not NoneType.", ), (-1.0, ValueError, "lambda_ == -1.0, must be >= 0.0."), (np.nan, ValueError, "`lambda_` must not be nan"), diff --git a/tests/ope/test_dr_estimators.py b/tests/ope/test_dr_estimators.py index 06a031d7..e2c2747e 100644 --- a/tests/ope/test_dr_estimators.py +++ b/tests/ope/test_dr_estimators.py @@ -23,13 +23,13 @@ "", False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not str.", ), ( None, False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not NoneType.", ), (-1.0, False, ValueError, "lambda_ == -1.0, must be >= 0.0."), (np.nan, False, ValueError, "`lambda_` must not be nan"), @@ -93,7 +93,7 @@ def test_dr_init_using_invalid_inputs( 0.05, False, TypeError, - r"an element of lambdas must be an instance of \(, \), not .", + r"an element of lambdas must be an instance of {int, float}, not str.", ), ( [None], # @@ -102,7 +102,7 @@ def test_dr_init_using_invalid_inputs( 0.05, False, TypeError, - r"an element of lambdas must be an instance of \(, \), not .", + r"an element of lambdas must be an instance of {int, float}, not NoneType.", ), ( [], # @@ -165,7 +165,7 @@ def test_dr_init_using_invalid_inputs( "", # False, TypeError, - "delta must be an instance of ", + "delta must be an instance of float, not", ), ( [1], @@ -174,7 +174,7 @@ def test_dr_init_using_invalid_inputs( None, # False, TypeError, - "delta must be an instance of ", + "delta must be an instance of float, not", ), ( [1], diff --git a/tests/ope/test_dr_estimators_continuous.py b/tests/ope/test_dr_estimators_continuous.py index ee2adb47..1db327c1 100644 --- a/tests/ope/test_dr_estimators_continuous.py +++ b/tests/ope/test_dr_estimators_continuous.py @@ -237,7 +237,7 @@ def test_dr_continuous_using_valid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -246,7 +246,7 @@ def test_dr_continuous_using_valid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] diff --git a/tests/ope/test_dr_estimators_multi.py b/tests/ope/test_dr_estimators_multi.py index cdf27433..d18856c1 100644 --- a/tests/ope/test_dr_estimators_multi.py +++ b/tests/ope/test_dr_estimators_multi.py @@ -16,13 +16,13 @@ "", False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not str.", ), ( None, False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not NoneType.", ), (-1.0, False, ValueError, "lambda_ == -1.0, must be >= 0.0."), (np.nan, False, ValueError, "`lambda_` must not be nan"), diff --git a/tests/ope/test_dr_estimators_slate.py b/tests/ope/test_dr_estimators_slate.py index fa8db836..54e3271d 100644 --- a/tests/ope/test_dr_estimators_slate.py +++ b/tests/ope/test_dr_estimators_slate.py @@ -493,7 +493,7 @@ def test_cascade_dr_using_valid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -502,7 +502,7 @@ def test_cascade_dr_using_valid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] diff --git a/tests/ope/test_importance_weight_estimator.py b/tests/ope/test_importance_weight_estimator.py index 761f5eae..ad4bdae2 100644 --- a/tests/ope/test_importance_weight_estimator.py +++ b/tests/ope/test_importance_weight_estimator.py @@ -43,7 +43,7 @@ RandomForestClassifier(**hyperparams["random_forest"]), 2, TypeError, - "n_actions must be an instance of , not .", + "n_actions must be an instance of int, not str.", ), ( np.random.uniform(size=(n_actions, 8)), @@ -63,7 +63,7 @@ RandomForestClassifier(**hyperparams["random_forest"]), 2, TypeError, - "len_list must be an instance of , not .", + "len_list must be an instance of int, not str.", ), ( np.random.uniform(size=(n_actions, 8)), @@ -113,7 +113,7 @@ RandomForestClassifier(**hyperparams["random_forest"]), 1.5, TypeError, - "calibration_cv must be an instance of , not .", + "calibration_cv must be an instance of int, not float.", ), ] @@ -470,7 +470,7 @@ None, 2, TypeError, - "n_folds must be an instance of , not ", + "n_folds must be an instance of int, not str", ), ( np.random.uniform(size=(n_rounds, 7)), diff --git a/tests/ope/test_ipw_estimators.py b/tests/ope/test_ipw_estimators.py index 1c27df46..19b72b58 100644 --- a/tests/ope/test_ipw_estimators.py +++ b/tests/ope/test_ipw_estimators.py @@ -18,13 +18,13 @@ "", False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not str.", ), ( None, False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not NoneType.", ), (-1.0, False, ValueError, "lambda_ == -1.0, must be >= 0.0."), (np.nan, False, ValueError, "`lambda_` must not be nan"), @@ -80,7 +80,7 @@ def test_ipw_init_using_invalid_inputs( 0.05, False, TypeError, - r"an element of lambdas must be an instance of \(, \), not .", + r"an element of lambdas must be an instance of {int, float}, not str.", ), ( [None], # @@ -89,7 +89,7 @@ def test_ipw_init_using_invalid_inputs( 0.05, False, TypeError, - r"an element of lambdas must be an instance of \(, \), not .", + r"an element of lambdas must be an instance of {int, float}, not NoneType.", ), ( [], # @@ -152,7 +152,7 @@ def test_ipw_init_using_invalid_inputs( "", # False, TypeError, - "delta must be an instance of ", + "delta must be an instance of float, not", ), ( [1], @@ -161,7 +161,7 @@ def test_ipw_init_using_invalid_inputs( None, # False, TypeError, - "delta must be an instance of ", + "delta must be an instance of float, not", ), ( [1], diff --git a/tests/ope/test_ipw_estimators_continuous.py b/tests/ope/test_ipw_estimators_continuous.py index d7a923dc..8b8a4982 100644 --- a/tests/ope/test_ipw_estimators_continuous.py +++ b/tests/ope/test_ipw_estimators_continuous.py @@ -252,7 +252,7 @@ def test_ipw_continuous_using_valid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -261,7 +261,7 @@ def test_ipw_continuous_using_valid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] diff --git a/tests/ope/test_ipw_estimators_embed.py b/tests/ope/test_ipw_estimators_embed.py index 3f659728..df18d6bd 100644 --- a/tests/ope/test_ipw_estimators_embed.py +++ b/tests/ope/test_ipw_estimators_embed.py @@ -20,7 +20,7 @@ None, 1, TypeError, - r"n_actions must be an instance of , not .", + r"n_actions must be an instance of int, not float.", ), ( 0, # @@ -38,7 +38,7 @@ None, 1, TypeError, - r"delta must be an instance of , not .", + r"delta must be an instance of float, not str.", ), ( 2, @@ -92,7 +92,7 @@ None, 1.0, # TypeError, - r"min_emb_dim must be an instance of , not .", + r"min_emb_dim must be an instance of int, not float.", ), ( 2, diff --git a/tests/ope/test_ipw_estimators_multi.py b/tests/ope/test_ipw_estimators_multi.py index a0be61a9..a9c088f5 100644 --- a/tests/ope/test_ipw_estimators_multi.py +++ b/tests/ope/test_ipw_estimators_multi.py @@ -16,13 +16,13 @@ "", False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not str.", ), ( None, False, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not NoneType.", ), (-1.0, False, ValueError, "lambda_ == -1.0, must be >= 0.0."), (np.nan, False, ValueError, "`lambda_` must not be nan"), diff --git a/tests/ope/test_ipw_estimators_slate.py b/tests/ope/test_ipw_estimators_slate.py index 4bf990fb..24e597af 100644 --- a/tests/ope/test_ipw_estimators_slate.py +++ b/tests/ope/test_ipw_estimators_slate.py @@ -719,7 +719,7 @@ def test_rips_using_invalid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -728,7 +728,7 @@ def test_rips_using_invalid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] diff --git a/tests/ope/test_meta.py b/tests/ope/test_meta.py index 862dceb2..90cfa8c7 100644 --- a/tests/ope/test_meta.py +++ b/tests/ope/test_meta.py @@ -487,7 +487,7 @@ def test_meta_estimate_policy_values_using_valid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -496,7 +496,7 @@ def test_meta_estimate_policy_values_using_valid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] @@ -682,13 +682,13 @@ def test_meta_summarize_off_policy_estimates( "se", 1, TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not int.", ), ( "se", "a", TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not str.", ), ( "relative-ee", diff --git a/tests/ope/test_meta_continuous.py b/tests/ope/test_meta_continuous.py index 62c63332..d6041f98 100644 --- a/tests/ope/test_meta_continuous.py +++ b/tests/ope/test_meta_continuous.py @@ -411,7 +411,7 @@ def test_meta_estimate_policy_values_using_valid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -420,7 +420,7 @@ def test_meta_estimate_policy_values_using_valid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] @@ -606,13 +606,13 @@ def test_meta_summarize_off_policy_estimates( "se", 1, TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not int.", ), ( "se", "a", TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not str.", ), ( "relative-ee", diff --git a/tests/ope/test_meta_multi.py b/tests/ope/test_meta_multi.py index cb9c3b22..3c57450f 100644 --- a/tests/ope/test_meta_multi.py +++ b/tests/ope/test_meta_multi.py @@ -607,7 +607,7 @@ def test_meta_estimate_policy_values_using_valid_input_data( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -616,7 +616,7 @@ def test_meta_estimate_policy_values_using_valid_input_data( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] @@ -802,13 +802,13 @@ def test_meta_summarize_off_policy_estimates( "se", 1, TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not int.", ), ( "se", "a", TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not str.", ), ( "relative-ee", diff --git a/tests/ope/test_meta_slate.py b/tests/ope/test_meta_slate.py index 1ca11510..0b26080c 100644 --- a/tests/ope/test_meta_slate.py +++ b/tests/ope/test_meta_slate.py @@ -579,7 +579,7 @@ def test_meta_estimate_policy_values_using_various_pscores( "s", 1, TypeError, - "n_bootstrap_samples must be an instance of , not ", + "n_bootstrap_samples must be an instance of int, not str", ), (-1.0, 1, 1, ValueError, "alpha == -1.0, must be >= 0.0"), (2.0, 1, 1, ValueError, "alpha == 2.0, must be <= 1.0"), @@ -588,7 +588,7 @@ def test_meta_estimate_policy_values_using_various_pscores( 1, 1, TypeError, - "alpha must be an instance of , not ", + "alpha must be an instance of float, not str", ), ] @@ -786,13 +786,13 @@ def test_meta_summarize_off_policy_estimates( "se", 1, TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not int.", ), ( "se", "a", TypeError, - "ground_truth_policy_value must be an instance of , not .", + "ground_truth_policy_value must be an instance of float, not str.", ), ( "relative-ee", diff --git a/tests/ope/test_propensity_score_estimator.py b/tests/ope/test_propensity_score_estimator.py index c2760d10..47fc591a 100644 --- a/tests/ope/test_propensity_score_estimator.py +++ b/tests/ope/test_propensity_score_estimator.py @@ -40,7 +40,7 @@ RandomForestClassifier(**hyperparams["random_forest"]), 2, TypeError, - "n_actions must be an instance of , not .", + "n_actions must be an instance of int, not str.", ), ( 1, # @@ -56,7 +56,7 @@ RandomForestClassifier(**hyperparams["random_forest"]), 2, TypeError, - "len_list must be an instance of , not .", + "len_list must be an instance of int, not str.", ), ( n_actions, @@ -80,7 +80,7 @@ RandomForestClassifier(**hyperparams["random_forest"]), 1.5, TypeError, - "calibration_cv must be an instance of , not .", + "calibration_cv must be an instance of int, not float.", ), ] @@ -306,7 +306,7 @@ None, 2, TypeError, - "n_folds must be an instance of , not ", + "n_folds must be an instance of int, not str", ), ( np.random.uniform(size=(n_rounds, 7)), diff --git a/tests/ope/test_regression_models.py b/tests/ope/test_regression_models.py index 71c1df91..891d8710 100644 --- a/tests/ope/test_regression_models.py +++ b/tests/ope/test_regression_models.py @@ -43,7 +43,7 @@ "normal", Ridge(**hyperparams["ridge"]), TypeError, - "n_actions must be an instance of , not .", + "n_actions must be an instance of int, not str.", ), ( np.random.uniform(size=(n_actions, 8)), @@ -61,7 +61,7 @@ "normal", Ridge(**hyperparams["ridge"]), TypeError, - "len_list must be an instance of , not .", + "len_list must be an instance of int, not str.", ), ( np.random.uniform(size=(n_actions, 8)), @@ -595,7 +595,7 @@ "a", # None, TypeError, - "n_folds must be an instance of , not ", + "n_folds must be an instance of int, not str", ), ( np.random.uniform(size=(n_rounds, 7)), diff --git a/tests/ope/test_regression_models_slate.py b/tests/ope/test_regression_models_slate.py index eb8cf8bc..8ce88b8e 100644 --- a/tests/ope/test_regression_models_slate.py +++ b/tests/ope/test_regression_models_slate.py @@ -46,7 +46,7 @@ "normal", Ridge(**hyperparams["ridge"]), TypeError, - "n_unique_action must be an instance of , not .", + "n_unique_action must be an instance of int, not str.", ), ( 1, # @@ -62,7 +62,7 @@ "normal", Ridge(**hyperparams["ridge"]), TypeError, - "len_list must be an instance of , not .", + "len_list must be an instance of int, not str.", ), ( n_unique_action, diff --git a/tests/policy/test_offline.py b/tests/policy/test_offline.py index 0e5ebabe..43bb21c0 100644 --- a/tests/policy/test_offline.py +++ b/tests/policy/test_offline.py @@ -726,7 +726,7 @@ def test_q_learner_sample_action(): 1e-8, 10, TypeError, - r"lambda_ must be an instance of \(, \), not .", + r"lambda_ must be an instance of {int, float}, not str.", ), ( 10, @@ -755,7 +755,7 @@ def test_q_learner_sample_action(): 1e-8, 10, TypeError, - r"policy_reg_param must be an instance of \(, \), not .", + r"policy_reg_param must be an instance of {int, float}, not str.", ), ( 10, @@ -784,7 +784,7 @@ def test_q_learner_sample_action(): 1e-8, 10, TypeError, - r"policy_reg_param must be an instance of \(, \), not .", + r"policy_reg_param must be an instance of {int, float}, not NoneType.", ), ( 10, @@ -842,7 +842,7 @@ def test_q_learner_sample_action(): 1e-8, 10, TypeError, - r"var_reg_param must be an instance of \(, \), not .", + r"var_reg_param must be an instance of {int, float}, not str.", ), ( 10, @@ -871,7 +871,7 @@ def test_q_learner_sample_action(): 1e-8, 10, TypeError, - r"var_reg_param must be an instance of \(, \), not .", + r"var_reg_param must be an instance of {int, float}, not NoneType.", ), ( 10, diff --git a/tests/simulator/test_coefficient_drifter.py b/tests/simulator/test_coefficient_drifter.py index 73bfa2f5..3e6c9a2f 100644 --- a/tests/simulator/test_coefficient_drifter.py +++ b/tests/simulator/test_coefficient_drifter.py @@ -3,7 +3,8 @@ import numpy as np import pytest -from obp.dataset.synthetic import logistic_sparse_reward_function, _base_reward_function +from obp.dataset.synthetic import _base_reward_function +from obp.dataset.synthetic import logistic_sparse_reward_function from obp.simulator.coefficient_drifter import CoefficientDrifter from obp.simulator.simulator import BanditEnvironmentSimulator diff --git a/tests/simulator/test_delay_sampler.py b/tests/simulator/test_delay_sampler.py index 744a8cea..f49b791b 100644 --- a/tests/simulator/test_delay_sampler.py +++ b/tests/simulator/test_delay_sampler.py @@ -1,7 +1,7 @@ import numpy as np import pytest -from obp.dataset.synthetic import logistic_sparse_reward_function +from obp.dataset.synthetic import logistic_sparse_reward_function from obp.simulator.delay_sampler import ExponentialDelaySampler from obp.simulator.simulator import BanditEnvironmentSimulator diff --git a/tests/simulator/test_simulator.py b/tests/simulator/test_simulator.py index 813a2f22..a2a35001 100644 --- a/tests/simulator/test_simulator.py +++ b/tests/simulator/test_simulator.py @@ -4,18 +4,20 @@ import pytest from sklearn.linear_model import LogisticRegression -from obp.policy import BaseContextFreePolicy, IPWLearner -from obp.policy.linear import LinTS, LinUCB - -from obp.policy.contextfree import EpsilonGreedy, Random, BernoulliTS -from obp.dataset.synthetic import ( - logistic_reward_function, - logistic_sparse_reward_function, -) +from obp.dataset.synthetic import logistic_reward_function +from obp.dataset.synthetic import logistic_sparse_reward_function +from obp.policy import BaseContextFreePolicy +from obp.policy import IPWLearner +from obp.policy.contextfree import BernoulliTS +from obp.policy.contextfree import EpsilonGreedy +from obp.policy.contextfree import Random +from obp.policy.linear import LinTS +from obp.policy.linear import LinUCB from obp.policy.policy_type import PolicyType from obp.simulator.coefficient_drifter import CoefficientDrifter from obp.simulator.delay_sampler import ExponentialDelaySampler -from obp.simulator.simulator import BanditEnvironmentSimulator, BanditPolicySimulator +from obp.simulator.simulator import BanditEnvironmentSimulator +from obp.simulator.simulator import BanditPolicySimulator def test_bandit_policy_simulator_updates_at_each_taken_action(): From c651c8b303d0e851e0f3c928eab472f6828bf1f3 Mon Sep 17 00:00:00 2001 From: usaito Date: Sun, 4 Dec 2022 01:10:41 -0500 Subject: [PATCH 6/7] update package versions --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ae05bb0b..72fa85fe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = ["Yuta Saito "] license = "Apache License 2.0" [tool.poetry.dependencies] -python = ">=3.8,<3.11" +python = ">=3.7,<3.11" torch = "1.12" scikit-learn = "1.1.3" pandas = "1.5.2" From f3a8d8d246744a238222186e2fde9b453a22a179 Mon Sep 17 00:00:00 2001 From: usaito Date: Mon, 5 Dec 2022 00:41:17 -0500 Subject: [PATCH 7/7] update python version --- .github/workflows/lints.yml | 2 +- .github/workflows/tests.yml | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml index 1fac2abb..c700243b 100644 --- a/.github/workflows/lints.yml +++ b/.github/workflows/lints.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v2 with: - python-version: 3.7 + python-version: 3.8 - name: Black uses: psf/black@stable diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 18e51cd5..b5b69206 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - python-version: [3.7, 3.8, 3.9] + python-version: [3.8, 3.9, 3.10] # Not intended for forks. if: github.repository == 'st-tech/zr-obp' diff --git a/pyproject.toml b/pyproject.toml index 72fa85fe..ae05bb0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = ["Yuta Saito "] license = "Apache License 2.0" [tool.poetry.dependencies] -python = ">=3.7,<3.11" +python = ">=3.8,<3.11" torch = "1.12" scikit-learn = "1.1.3" pandas = "1.5.2"