OnsAouedi commited on
Commit
2924143
·
verified ·
1 Parent(s): 768152f

Upload 2 files

Browse files
Files changed (2) hide show
  1. Dockerfile +2 -2
  2. app.py +25 -4
Dockerfile CHANGED
@@ -16,8 +16,8 @@ RUN pip install --no-cache-dir -r requirements.txt
16
  # Copy application files
17
  COPY . .
18
 
19
- # Create necessary directories
20
- RUN mkdir -p uploads results
21
 
22
  # Expose port
23
  EXPOSE 7860
 
16
  # Copy application files
17
  COPY . .
18
 
19
+ # Create necessary directories with proper permissions
20
+ RUN mkdir -p uploads results && chmod 755 uploads results
21
 
22
  # Expose port
23
  EXPOSE 7860
app.py CHANGED
@@ -23,8 +23,13 @@ app.config['UPLOAD_FOLDER'] = 'uploads'
23
  app.config['MAX_CONTENT_LENGTH'] = 500 * 1024 * 1024 # 500MB max file size
24
  socketio = SocketIO(app, cors_allowed_origins="*")
25
 
26
- # Ensure upload directory exists
27
  os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
 
 
 
 
 
28
 
29
  # Global variables for progress tracking
30
  current_progress = {'step': 'idle', 'progress': 0, 'details': ''}
@@ -730,12 +735,28 @@ def upload_file():
730
  normalization_path = os.path.join(app.config['UPLOAD_FOLDER'], norm_filename)
731
  norm_file.save(normalization_path)
732
 
733
- # Check if required files exist
734
  if not os.path.exists(model_path):
735
- return jsonify({'success': False, 'error': f'Model file not found: {model_path}'})
 
 
 
 
 
 
 
 
736
 
737
  if not os.path.exists(normalization_path):
738
- return jsonify({'success': False, 'error': f'Normalization file not found: {normalization_path}'})
 
 
 
 
 
 
 
 
739
 
740
  # Save CSV file
741
  csv_filename = secure_filename(csv_file.filename)
 
23
  app.config['MAX_CONTENT_LENGTH'] = 500 * 1024 * 1024 # 500MB max file size
24
  socketio = SocketIO(app, cors_allowed_origins="*")
25
 
26
+ # Ensure upload directory exists with proper permissions
27
  os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
28
+ # Fix permissions for Hugging Face Spaces
29
+ try:
30
+ os.chmod(app.config['UPLOAD_FOLDER'], 0o755)
31
+ except:
32
+ pass # In case we don't have permission to change permissions
33
 
34
  # Global variables for progress tracking
35
  current_progress = {'step': 'idle', 'progress': 0, 'details': ''}
 
735
  normalization_path = os.path.join(app.config['UPLOAD_FOLDER'], norm_filename)
736
  norm_file.save(normalization_path)
737
 
738
+ # Check if required files exist - try both uploaded and default locations
739
  if not os.path.exists(model_path):
740
+ # If uploaded model not found, try default location
741
+ if model_path.startswith(app.config['UPLOAD_FOLDER']):
742
+ default_model_path = 'best_model.pth'
743
+ if os.path.exists(default_model_path):
744
+ model_path = default_model_path
745
+ else:
746
+ return jsonify({'success': False, 'error': f'Model file not found in uploads ({model_path}) or root (best_model.pth). Please upload a model file.'})
747
+ else:
748
+ return jsonify({'success': False, 'error': f'Model file not found: {model_path}'})
749
 
750
  if not os.path.exists(normalization_path):
751
+ # If uploaded normalization not found, try default location
752
+ if normalization_path.startswith(app.config['UPLOAD_FOLDER']):
753
+ default_norm_path = 'normalization_params_1_atlanttic_regular_intervals_with_lat_lon_velocity_and_time_difference_filter_outlier_segment_min_20_points.json'
754
+ if os.path.exists(default_norm_path):
755
+ normalization_path = default_norm_path
756
+ else:
757
+ return jsonify({'success': False, 'error': f'Normalization file not found in uploads ({normalization_path}) or root. Please upload a normalization file.'})
758
+ else:
759
+ return jsonify({'success': False, 'error': f'Normalization file not found: {normalization_path}'})
760
 
761
  # Save CSV file
762
  csv_filename = secure_filename(csv_file.filename)