Tracy André commited on
Commit
d1a6a46
·
1 Parent(s): 8b09855
Files changed (3) hide show
  1. mcp_server.py +3 -7
  2. requirements.txt +2 -1
  3. test_rangeslider.py +36 -0
mcp_server.py CHANGED
@@ -92,15 +92,11 @@ analyzer = WeedPressureAnalyzer()
92
  def analyze_herbicide_trends(years_range, plot_filter):
93
  """Analyze herbicide usage trends over time."""
94
  try:
95
- # Gestion du slider Gradio qui peut retourner différents formats
96
  if isinstance(years_range, list) and len(years_range) == 2:
97
  years = list(range(int(years_range[0]), int(years_range[1]) + 1))
98
- elif isinstance(years_range, (int, float)):
99
- years = [int(years_range)]
100
  else:
101
- years = list(range(2014, 2025)) # Par défaut
102
-
103
- # Debug line removed for production
104
 
105
  ift_data = analyzer.calculate_herbicide_ift(years=years)
106
 
@@ -307,7 +303,7 @@ def create_mcp_interface():
307
 
308
  with gr.Row():
309
  with gr.Column():
310
- years_slider = gr.Slider(
311
  minimum=2014,
312
  maximum=2025,
313
  value=[2020, 2025],
 
92
  def analyze_herbicide_trends(years_range, plot_filter):
93
  """Analyze herbicide usage trends over time."""
94
  try:
95
+ # RangeSlider retourne toujours une liste [start, end]
96
  if isinstance(years_range, list) and len(years_range) == 2:
97
  years = list(range(int(years_range[0]), int(years_range[1]) + 1))
 
 
98
  else:
99
+ years = list(range(2020, 2026)) # Par défaut 2020-2025
 
 
100
 
101
  ift_data = analyzer.calculate_herbicide_ift(years=years)
102
 
 
303
 
304
  with gr.Row():
305
  with gr.Column():
306
+ years_slider = gr.RangeSlider(
307
  minimum=2014,
308
  maximum=2025,
309
  value=[2020, 2025],
requirements.txt CHANGED
@@ -1,4 +1,5 @@
1
- gradio[mcp]>=5.46.0pandas>=2.0.0
 
2
  numpy>=1.24.0
3
  plotly>=5.0.0
4
  datasets>=2.14.0
 
1
+ gradio[mcp]>=5.46.0
2
+ pandas>=2.0.0
3
  numpy>=1.24.0
4
  plotly>=5.0.0
5
  datasets>=2.14.0
test_rangeslider.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Test du RangeSlider corrigé
3
+ """
4
+
5
+ from mcp_server import analyze_herbicide_trends
6
+
7
+ def test_rangeslider():
8
+ """Test avec différents formats de RangeSlider"""
9
+ print("🧪 Test du RangeSlider corrigé...")
10
+
11
+ # Test 1: Format RangeSlider normal
12
+ print("\nTest 1: RangeSlider [2020, 2024]")
13
+ fig, summary = analyze_herbicide_trends([2020, 2024], "Toutes")
14
+ if fig is not None:
15
+ print("✅ Succès avec RangeSlider")
16
+ else:
17
+ print("❌ Erreur:", summary)
18
+
19
+ # Test 2: Format RangeSlider avec une seule année
20
+ print("\nTest 2: RangeSlider [2023, 2023]")
21
+ fig, summary = analyze_herbicide_trends([2023, 2023], "Toutes")
22
+ if fig is not None:
23
+ print("✅ Succès avec une seule année")
24
+ else:
25
+ print("❌ Erreur:", summary)
26
+
27
+ # Test 3: Format RangeSlider avec parcelle spécifique
28
+ print("\nTest 3: RangeSlider [2022, 2024] avec parcelle")
29
+ fig, summary = analyze_herbicide_trends([2022, 2024], "Champ ferme W du sol")
30
+ if fig is not None:
31
+ print("✅ Succès avec parcelle spécifique")
32
+ else:
33
+ print("❌ Erreur:", summary)
34
+
35
+ if __name__ == "__main__":
36
+ test_rangeslider()