Skip to content

Commit

Permalink
Generalize __len__() support (#517)
Browse files Browse the repository at this point in the history
  • Loading branch information
LeMyst committed Mar 3, 2023
1 parent c2ebc02 commit 9bd1b30
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 3 deletions.
6 changes: 3 additions & 3 deletions wikibaseintegrator/models/claims.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,15 +118,15 @@ def get_json(self) -> Dict[str, List]:
del json_data[property]
return json_data

def __len__(self):
return len(self.claims)

def __iter__(self):
iterate = []
for claim in self.claims.values():
iterate.extend(claim)
return iter(iterate)

def __len__(self):
return len(self.claims)


class Claim(BaseModel):
DTYPE = 'claim'
Expand Down
3 changes: 3 additions & 0 deletions wikibaseintegrator/models/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ def get_json(self) -> List[Dict]:

return json_data

def __len__(self):
return len(self.forms)


class Form(BaseModel):
def __init__(self, form_id: Optional[str] = None, representations: Optional[Representations] = None, grammatical_features: Optional[Union[str, int, List[str]]] = None, claims: Optional[Claims] = None):
Expand Down
3 changes: 3 additions & 0 deletions wikibaseintegrator/models/language_values.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ def __contains__(self, language: str) -> bool:
def __iter__(self):
return iter(self.values.values())

def __len__(self):
return len(self.values)


class LanguageValue(BaseModel):
def __init__(self, language: str, value: Optional[str] = None):
Expand Down
3 changes: 3 additions & 0 deletions wikibaseintegrator/models/senses.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ def get_json(self) -> List[Dict]:

return json_data

def __len__(self):
return len(self.senses)


class Sense(BaseModel):
def __init__(self, sense_id: Optional[str] = None, glosses: Optional[Glosses] = None, claims: Optional[Claims] = None):
Expand Down
3 changes: 3 additions & 0 deletions wikibaseintegrator/models/sitelinks.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ def from_json(self, json_data: Dict[str, Dict]) -> Sitelinks:

return self

def __len__(self):
return len(self.sitelinks)


class Sitelink(BaseModel):
def __init__(self, site: Optional[str] = None, title: Optional[str] = None, badges: Optional[List[str]] = None):
Expand Down

0 comments on commit 9bd1b30

Please sign in to comment.