From 785953467cb913816b6521b455fb144b1de37055 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:46:51 +0530 Subject: [PATCH 1/7] Create real_and_reactive_power.py --- electronics/real_and_reactive_power.py | 64 ++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 electronics/real_and_reactive_power.py diff --git a/electronics/real_and_reactive_power.py b/electronics/real_and_reactive_power.py new file mode 100644 index 000000000000..383e8cf87d49 --- /dev/null +++ b/electronics/real_and_reactive_power.py @@ -0,0 +1,64 @@ +import math + +def calculate_real_power(apparent_power: float, power_factor: float) -> float: + """ + Calculate real power from apparent power and power factor. + + Args: + apparent_power (float): Apparent power in volt-amperes (VA). + power_factor (float): Power factor (cosine of the phase angle). + + Returns: + float: Real power in watts. + + Examples: + >>> calculate_real_power(100, 0.9) + 90.0 + >>> calculate_real_power(0, 0.8) + 0.0 + >>> calculate_real_power(100, -0.9) + -90.0 + >>> calculate_real_power(100, 1.2) + Traceback (most recent call last): + ... + ValueError: power_factor must be a valid float value between -1 and 1. + """ + if not isinstance(power_factor, (int, float)) or power_factor < -1 or power_factor > 1: + raise ValueError("power_factor must be a valid float value between -1 and 1.") + real_power = apparent_power * power_factor + return real_power + + +def calculate_reactive_power(apparent_power: float, power_factor: float) -> float: + """ + Calculate reactive power from apparent power and power factor. + + Args: + apparent_power (float): Apparent power in volt-amperes (VA). + power_factor (float): Power factor (cosine of the phase angle). + + Returns: + float: Reactive power in vars. + + Examples: + >>> calculate_reactive_power(100, 0.9) + 43.58898943540674 + >>> calculate_reactive_power(0, 0.8) + 0.0 + >>> calculate_reactive_power(100, -0.9) + -43.58898943540674 + >>> calculate_reactive_power(100, 1.2) + Traceback (most recent call last): + ... + ValueError: power_factor must be a valid float value between -1 and 1. + """ + if not isinstance(power_factor, (int, float)) or power_factor < -1 or power_factor > 1: + raise ValueError("power_factor must be a valid float value between -1 and 1.") + reactive_power = apparent_power * math.sqrt(1 - power_factor ** 2) + return reactive_power + + +if __name__ == "__main__": + import doctest + + doctest.testmod() From c1a52021fb77b566f89cfd97f01ba0b06bd89f47 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 18:18:52 +0000 Subject: [PATCH 2/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- electronics/real_and_reactive_power.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/electronics/real_and_reactive_power.py b/electronics/real_and_reactive_power.py index 383e8cf87d49..3ec246f51ee5 100644 --- a/electronics/real_and_reactive_power.py +++ b/electronics/real_and_reactive_power.py @@ -1,5 +1,6 @@ import math + def calculate_real_power(apparent_power: float, power_factor: float) -> float: """ Calculate real power from apparent power and power factor. @@ -23,7 +24,11 @@ def calculate_real_power(apparent_power: float, power_factor: float) -> float: ... ValueError: power_factor must be a valid float value between -1 and 1. """ - if not isinstance(power_factor, (int, float)) or power_factor < -1 or power_factor > 1: + if ( + not isinstance(power_factor, (int, float)) + or power_factor < -1 + or power_factor > 1 + ): raise ValueError("power_factor must be a valid float value between -1 and 1.") real_power = apparent_power * power_factor return real_power @@ -52,9 +57,13 @@ def calculate_reactive_power(apparent_power: float, power_factor: float) -> floa ... ValueError: power_factor must be a valid float value between -1 and 1. """ - if not isinstance(power_factor, (int, float)) or power_factor < -1 or power_factor > 1: + if ( + not isinstance(power_factor, (int, float)) + or power_factor < -1 + or power_factor > 1 + ): raise ValueError("power_factor must be a valid float value between -1 and 1.") - reactive_power = apparent_power * math.sqrt(1 - power_factor ** 2) + reactive_power = apparent_power * math.sqrt(1 - power_factor**2) return reactive_power From b979f4d105b335efea5712ad15dcfa7250352838 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:54:41 +0530 Subject: [PATCH 3/7] Update real_and_reactive_power.py --- electronics/real_and_reactive_power.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/electronics/real_and_reactive_power.py b/electronics/real_and_reactive_power.py index 3ec246f51ee5..1388d6ed16b6 100644 --- a/electronics/real_and_reactive_power.py +++ b/electronics/real_and_reactive_power.py @@ -47,11 +47,11 @@ def calculate_reactive_power(apparent_power: float, power_factor: float) -> floa Examples: >>> calculate_reactive_power(100, 0.9) - 43.58898943540674 + 43.58898943540673 >>> calculate_reactive_power(0, 0.8) 0.0 >>> calculate_reactive_power(100, -0.9) - -43.58898943540674 + -43.58898943540673 >>> calculate_reactive_power(100, 1.2) Traceback (most recent call last): ... From f493f9997b201b17b5295a00c6810c1f825c86b3 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:55:03 +0530 Subject: [PATCH 4/7] Update real_and_reactive_power.py --- electronics/real_and_reactive_power.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/electronics/real_and_reactive_power.py b/electronics/real_and_reactive_power.py index 1388d6ed16b6..b7dfc1eba2ef 100644 --- a/electronics/real_and_reactive_power.py +++ b/electronics/real_and_reactive_power.py @@ -19,10 +19,6 @@ def calculate_real_power(apparent_power: float, power_factor: float) -> float: 0.0 >>> calculate_real_power(100, -0.9) -90.0 - >>> calculate_real_power(100, 1.2) - Traceback (most recent call last): - ... - ValueError: power_factor must be a valid float value between -1 and 1. """ if ( not isinstance(power_factor, (int, float)) From 2b2b78d3f7edc3c4e2aff1bf77a04b1ce2470d76 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Mon, 17 Apr 2023 23:58:59 +0530 Subject: [PATCH 5/7] Update real_and_reactive_power.py --- electronics/real_and_reactive_power.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/electronics/real_and_reactive_power.py b/electronics/real_and_reactive_power.py index b7dfc1eba2ef..7240eb13dbfe 100644 --- a/electronics/real_and_reactive_power.py +++ b/electronics/real_and_reactive_power.py @@ -47,7 +47,7 @@ def calculate_reactive_power(apparent_power: float, power_factor: float) -> floa >>> calculate_reactive_power(0, 0.8) 0.0 >>> calculate_reactive_power(100, -0.9) - -43.58898943540673 + 43.58898943540673 >>> calculate_reactive_power(100, 1.2) Traceback (most recent call last): ... From 0b201c937f941e0a45504fd394e3f7c246f303a0 Mon Sep 17 00:00:00 2001 From: Rohan Anand <96521078+rohan472000@users.noreply.github.com> Date: Tue, 18 Apr 2023 00:42:09 +0530 Subject: [PATCH 6/7] Update real_and_reactive_power.py --- electronics/real_and_reactive_power.py | 42 ++++++++------------------ 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/electronics/real_and_reactive_power.py b/electronics/real_and_reactive_power.py index 7240eb13dbfe..cd6257fcfed2 100644 --- a/electronics/real_and_reactive_power.py +++ b/electronics/real_and_reactive_power.py @@ -1,23 +1,16 @@ import math -def calculate_real_power(apparent_power: float, power_factor: float) -> float: +def real_power(apparent_power: float, power_factor: float) -> float: """ Calculate real power from apparent power and power factor. - Args: - apparent_power (float): Apparent power in volt-amperes (VA). - power_factor (float): Power factor (cosine of the phase angle). - - Returns: - float: Real power in watts. - Examples: - >>> calculate_real_power(100, 0.9) + >>> real_power(100, 0.9) 90.0 - >>> calculate_real_power(0, 0.8) + >>> real_power(0, 0.8) 0.0 - >>> calculate_real_power(100, -0.9) + >>> real_power(100, -0.9) -90.0 """ if ( @@ -26,32 +19,21 @@ def calculate_real_power(apparent_power: float, power_factor: float) -> float: or power_factor > 1 ): raise ValueError("power_factor must be a valid float value between -1 and 1.") - real_power = apparent_power * power_factor - return real_power + return apparent_power * power_factor + -def calculate_reactive_power(apparent_power: float, power_factor: float) -> float: +def reactive_power(apparent_power: float, power_factor: float) -> float: """ Calculate reactive power from apparent power and power factor. - Args: - apparent_power (float): Apparent power in volt-amperes (VA). - power_factor (float): Power factor (cosine of the phase angle). - - Returns: - float: Reactive power in vars. - Examples: - >>> calculate_reactive_power(100, 0.9) + >>> reactive_power(100, 0.9) 43.58898943540673 - >>> calculate_reactive_power(0, 0.8) + >>> reactive_power(0, 0.8) 0.0 - >>> calculate_reactive_power(100, -0.9) + >>> reactive_power(100, -0.9) 43.58898943540673 - >>> calculate_reactive_power(100, 1.2) - Traceback (most recent call last): - ... - ValueError: power_factor must be a valid float value between -1 and 1. """ if ( not isinstance(power_factor, (int, float)) @@ -59,8 +41,8 @@ def calculate_reactive_power(apparent_power: float, power_factor: float) -> floa or power_factor > 1 ): raise ValueError("power_factor must be a valid float value between -1 and 1.") - reactive_power = apparent_power * math.sqrt(1 - power_factor**2) - return reactive_power + return apparent_power * math.sqrt(1 - power_factor**2) + if __name__ == "__main__": From 9770094f4b76b3ea964fe2ec5d95170398b560d0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 19:12:41 +0000 Subject: [PATCH 7/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- electronics/real_and_reactive_power.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/electronics/real_and_reactive_power.py b/electronics/real_and_reactive_power.py index cd6257fcfed2..81dcba800e82 100644 --- a/electronics/real_and_reactive_power.py +++ b/electronics/real_and_reactive_power.py @@ -20,7 +20,6 @@ def real_power(apparent_power: float, power_factor: float) -> float: ): raise ValueError("power_factor must be a valid float value between -1 and 1.") return apparent_power * power_factor - def reactive_power(apparent_power: float, power_factor: float) -> float: @@ -42,7 +41,6 @@ def reactive_power(apparent_power: float, power_factor: float) -> float: ): raise ValueError("power_factor must be a valid float value between -1 and 1.") return apparent_power * math.sqrt(1 - power_factor**2) - if __name__ == "__main__":