Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -762,9 +762,15 @@ class NutrientCalculator:
|
|
762 |
return self._verify_results()
|
763 |
|
764 |
def _apply_fertilizer(self, name, element, target_ppm):
|
765 |
-
|
766 |
-
|
|
|
|
|
|
|
|
|
|
|
767 |
|
|
|
768 |
self.results[name]['граммы'] += grams
|
769 |
|
770 |
for el, val in self.fertilizers[name].items():
|
@@ -773,6 +779,7 @@ class NutrientCalculator:
|
|
773 |
self.actual[el] += added_ppm
|
774 |
|
775 |
def _balance_k_s(self):
|
|
|
776 |
k_needed = self.target["K"] - self.actual["K"]
|
777 |
s_needed = self.target["S"] - self.actual["S"]
|
778 |
|
@@ -802,10 +809,9 @@ class NutrientCalculator:
|
|
802 |
self._apply_fertilizer("Кальциевая селитра", "Ca", remaining_ca)
|
803 |
|
804 |
def _verify_results(self):
|
|
|
805 |
deficits = {}
|
806 |
for el in self.target:
|
807 |
-
if el == "CaCl": # Пропускаем проверку CaCl
|
808 |
-
continue
|
809 |
diff = self.target[el] - self.actual[el]
|
810 |
if abs(diff) > 0.1:
|
811 |
deficits[el] = round(diff, 3)
|
|
|
762 |
return self._verify_results()
|
763 |
|
764 |
def _apply_fertilizer(self, name, element, target_ppm):
|
765 |
+
if name not in self.fertilizers:
|
766 |
+
raise KeyError(f"Удобрение '{name}' не найдено в fertilizerConstants!")
|
767 |
+
|
768 |
+
content = self.fertilizers[name].get(element, 0) # Получаем содержание элемента
|
769 |
+
if content == 0:
|
770 |
+
print(f"ПРЕДУПРЕЖДЕНИЕ: Удобрение '{name}' не содержит элемент '{element}'")
|
771 |
+
return
|
772 |
|
773 |
+
grams = (target_ppm * self.volume) / (content * 1000)
|
774 |
self.results[name]['граммы'] += grams
|
775 |
|
776 |
for el, val in self.fertilizers[name].items():
|
|
|
779 |
self.actual[el] += added_ppm
|
780 |
|
781 |
def _balance_k_s(self):
|
782 |
+
"""Балансировка калия и серы"""
|
783 |
k_needed = self.target["K"] - self.actual["K"]
|
784 |
s_needed = self.target["S"] - self.actual["S"]
|
785 |
|
|
|
809 |
self._apply_fertilizer("Кальциевая селитра", "Ca", remaining_ca)
|
810 |
|
811 |
def _verify_results(self):
|
812 |
+
"""Проверка результатов расчета"""
|
813 |
deficits = {}
|
814 |
for el in self.target:
|
|
|
|
|
815 |
diff = self.target[el] - self.actual[el]
|
816 |
if abs(diff) > 0.1:
|
817 |
deficits[el] = round(diff, 3)
|