From 8cf60bbeb19dc51beb2bf698fffed49f7ac96b79 Mon Sep 17 00:00:00 2001 From: kukirin-ui <325067280+kukirin-ui@users.noreply.github.com> Date: Fri, 16 Oct 2026 14:45:55 +0200 Subject: [PATCH] ty: un-ignore call-non-callable rule --- .../back_propagation_neural_network.py | 19 +++++++++++++++---- pyproject.toml | 1 - 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/neural_network/back_propagation_neural_network.py b/neural_network/back_propagation_neural_network.py index 04fd7be84331..f9e2d691a1a0 100644 --- a/neural_network/back_propagation_neural_network.py +++ b/neural_network/back_propagation_neural_network.py @@ -18,6 +18,8 @@ """ +from collections.abc import Callable + import numpy as np from matplotlib import pyplot as plt @@ -32,18 +34,29 @@ class DenseLayer: """ def __init__( - self, units, activation=None, learning_rate=None, is_input_layer=False + self, + units, + activation: Callable[[np.ndarray], np.ndarray] | None = None, + learning_rate=None, + is_input_layer=False, ) -> None: """ common connected layer of bp network :param units: numbers of neural units - :param activation: activation function + :param activation: activation function, sigmoid if not given :param learning_rate: learning rate for paras :param is_input_layer: whether it is input layer or not + + >>> DenseLayer(3).activation is sigmoid + True + >>> DenseLayer(3, activation=np.tanh).activation is np.tanh + True """ self.units = units self.weight = None self.bias = None + if activation is None: + activation = sigmoid self.activation = activation if learning_rate is None: learning_rate = 0.3 @@ -54,8 +67,6 @@ def initializer(self, back_units) -> None: rng = np.random.default_rng() self.weight = np.asmatrix(rng.normal(0, 0.5, (self.units, back_units))) self.bias = np.asmatrix(rng.normal(0, 0.5, self.units)).T - if self.activation is None: - self.activation = sigmoid def cal_gradient(self): # activation function may be sigmoid or linear diff --git a/pyproject.toml b/pyproject.toml index 932f64f2e00a..b2cef20eb68a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -316,7 +316,6 @@ skip = """\ # assumptions consistent with the CI job in .github/workflows/ty.yml, where the # free-threaded 3.15t test venv would otherwise leave several stubs unresolved. environment.python-version = "3.15" -rules.call-non-callable = "ignore" rules.invalid-argument-type = "ignore" rules.invalid-return-type = "ignore" rules.no-matching-overload = "ignore"