DmitrMakeev commited on
Commit
ce1f267
·
verified ·
1 Parent(s): f8e33fa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -4
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
- content = self.fertilizers[name][element]
766
- grams = (target_ppm * self.volume) / (content * 1000)
 
 
 
 
 
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)