Spaces:
Sleeping
Sleeping
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)
|