aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Logan <cody@lokken.dev>2023-11-06 11:49:53 -0800
committerCody Logan <cody@lokken.dev>2023-11-06 11:49:53 -0800
commit934cf599fdbfd5dec9c7ff5797137e1e695fe6da (patch)
tree6aa77d1e916696c612616278391b338a5a2ec72e
parent831fb088d6f902bf5da52a4da7f2d5d731d9f72e (diff)
downloadwikiget-934cf599fdbfd5dec9c7ff5797137e1e695fe6da.tar.gz
wikiget-934cf599fdbfd5dec9c7ff5797137e1e695fe6da.zip
Add equality comparison for File objects
-rw-r--r--src/wikiget/file.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/wikiget/file.py b/src/wikiget/file.py
index 0f639d3..8de62ae 100644
--- a/src/wikiget/file.py
+++ b/src/wikiget/file.py
@@ -15,6 +15,8 @@
# You should have received a copy of the GNU General Public License
# along with Wikiget. If not, see <https://www.gnu.org/licenses/>.
+from typing import Any
+
from mwclient.image import Image
from wikiget import DEFAULT_SITE
@@ -43,3 +45,21 @@ class File:
self.name = name
self.dest = dest if dest else name
self.site = site if site else DEFAULT_SITE
+
+ def __eq__(self, other: Any) -> bool:
+ """
+ Compares this File object with another for equality.
+
+ :param other: another File to compare
+ :type other: File
+ :return: True if the Files are equal and False otherwise
+ :rtype: bool
+ """
+ if not isinstance(other, File):
+ return NotImplemented
+ return (
+ self.image == other.image
+ and self.name == other.name
+ and self.dest == other.dest
+ and self.site == other.site
+ )