Skip to content

Refactor: Replace hardcoded paths with argparse and os.path.join for cross-platform support#69

Open
Codingbysid wants to merge 2 commits intofwitmer:masterfrom
Codingbysid:fix-paths-cross-platform
Open

Refactor: Replace hardcoded paths with argparse and os.path.join for cross-platform support#69
Codingbysid wants to merge 2 commits intofwitmer:masterfrom
Codingbysid:fix-paths-cross-platform

Conversation

@Codingbysid
Copy link

Summary

This PR refactors path handling across multiple files to improve cross-platform compatibility and make the codebase more maintainable.

Changes Made

batchprocess.py

  • ✅ Replaced all string concatenation with os.path.join() for cross-platform compatibility
  • ✅ Fixed path construction in file processing loops
  • ✅ Improved directory creation logic

process_snap_data.py

  • ✅ Removed hardcoded absolute paths (/usr/local/coastal/...)
  • ✅ Added argparse for configurable input/output directories
  • ✅ Added --snap_data_dir, --transect_file, --output_dir, --output_prefix arguments
  • ✅ Defaults to relative paths (./data/snap_data, etc.)
  • ✅ Added directory existence checks with helpful error messages
  • ✅ Fixed path concatenation in read_data() function

data_preprocessing.py

  • ✅ Replaced string concatenation with os.path.join() in augment_tiles()
  • ✅ Added argparse for configurable input/output directories
  • ✅ Made make_tiles() accept configurable output_dir parameter
  • ✅ Added --augment flag to optionally run tile augmentation
  • ✅ Added directory existence checks with helpful error messages

Benefits

  • 🌍 Cross-platform compatibility: Works on Windows, macOS, and Linux
  • 🔧 Configurability: Users can specify their own paths via command-line arguments
  • 🛡️ Error handling: Better validation and error messages
  • 📦 Maintainability: Consistent path handling throughout the codebase

Testing

  • All path operations tested with os.path.join() for cross-platform compatibility
  • Error handling verified for missing directories
  • Default paths maintain backward compatibility

…cross-platform support

- batchprocess.py: Replace all string concatenation with os.path.join() for cross-platform compatibility
- process_snap_data.py: Remove hardcoded absolute paths, add argparse for configurable paths
  - Add --snap_data_dir, --transect_file, --output_dir, --output_prefix arguments
  - Default to relative paths (./data/snap_data, etc.)
  - Add directory existence checks with helpful error messages
  - Fix path concatenation in read_data() function

This improves portability and makes the code work on Windows, macOS, and Linux without modification.
- Replace string concatenation with os.path.join() in augment_tiles()
- Add argparse for configurable input/output directories
- Make make_tiles() accept configurable output_dir parameter
- Add directory existence checks with helpful error messages
- Add --augment flag to optionally run tile augmentation
- Add additional command-line options for tile dimensions and processing

This improves cross-platform compatibility and makes the script more flexible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant