tab.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from pathlib import Path
  2. from file_management.providers.errors import FileDoesNotExistError
  3. class TABFileManager:
  4. def __init__(self, uri):
  5. self._file = Path(uri.database())
  6. self._uri = uri
  7. self._exts = ['.tab', '.map', '.id', '.dat']
  8. def provider_name(self):
  9. return 'Mapinfo TAB'
  10. def rename_layer(self, target_uri):
  11. target_path = Path(target_uri.database())
  12. if not self._file.exists():
  13. raise FileDoesNotExistError
  14. for file in self._file.parent.glob(f'{self._file.stem}.*'):
  15. if file.suffix.lower() in self._exts:
  16. new_file = target_path.with_suffix(file.suffix)
  17. file.rename(new_file)
  18. def rename_database(self, target_uri):
  19. pass
  20. def layer_exists(self, target_uri):
  21. return Path(target_uri.database()).exists()
  22. def database_exists(self, target_uri):
  23. return False
  24. def ask_overwrite_layer(self, target_uri, iface):
  25. return True # already asked in file dialog
  26. def ask_overwrite_database(self, target_uri, iface):
  27. return True
  28. def delete_layer(self, target_uri):
  29. p = Path(target_uri.database())
  30. for file in p.parent.glob(f'{p.stem}.*'):
  31. if file.suffix.lower() in self._exts:
  32. file.unlink()
  33. def delete_database(self, target_uri):
  34. pass