Class representing a remote folder in a project.
| 8 | |
| 9 | |
| 10 | class RemoteFolder: |
| 11 | """ |
| 12 | Class representing a remote folder in a project. |
| 13 | """ |
| 14 | def __init__(self, handle: core.BNRemoteFolderHandle): |
| 15 | self._handle = ctypes.cast(handle, core.BNRemoteFolderHandle) |
| 16 | |
| 17 | def __del__(self): |
| 18 | if core is not None: |
| 19 | core.BNFreeRemoteFolder(self._handle) |
| 20 | |
| 21 | def __eq__(self, other): |
| 22 | if not isinstance(other, RemoteFolder): |
| 23 | return False |
| 24 | return self.id == other.id |
| 25 | |
| 26 | def __repr__(self): |
| 27 | path = self.name |
| 28 | parent = self.parent |
| 29 | while parent is not None: |
| 30 | path = parent.name + '/' + path |
| 31 | parent = parent.parent |
| 32 | return f'<folder: {self.remote.name}/{self.project.name}/{path}>' |
| 33 | |
| 34 | def __str__(self): |
| 35 | path = self.name |
| 36 | parent = self.parent |
| 37 | while parent is not None: |
| 38 | path = parent.name + '/' + path |
| 39 | parent = parent.parent |
| 40 | return f'<folder: {self.remote.name}/{self.project.name}/{path}>' |
| 41 | |
| 42 | @property |
| 43 | def core_folder(self) -> 'core_project.ProjectFolder': |
| 44 | core_handle = core.BNRemoteFolderGetCoreFolder(self._handle) |
| 45 | if core_handle is None: |
| 46 | raise RuntimeError(util._last_error()) |
| 47 | return core_project.ProjectFolder(handle=ctypes.cast(core_handle, ctypes.POINTER(core.BNProjectFolder))) |
| 48 | |
| 49 | @property |
| 50 | def project(self) -> 'project.RemoteProject': |
| 51 | """ |
| 52 | Owning Project. |
| 53 | |
| 54 | :return: Project object |
| 55 | """ |
| 56 | value = core.BNRemoteFolderGetProject(self._handle) |
| 57 | if value is None: |
| 58 | raise RuntimeError(util._last_error()) |
| 59 | return project.RemoteProject(handle=value) |
| 60 | |
| 61 | @property |
| 62 | def remote(self) -> 'remote.Remote': |
| 63 | """ |
| 64 | Owning Remote |
| 65 | |
| 66 | :return: Remote object |
| 67 | """ |