def test_get_leaderboard(self): # given self.backend.get_leaderboard_entries.return_value = [ LeaderboardEntry(some_exp_entry_dto) ] # when leaderboard = self.project.get_leaderboard() # then self.backend.get_leaderboard_entries.assert_called_once_with( project=self.project, ids=None, states=None, owners=None, tags=None, min_running_time=None) # and expected_data = {0: some_exp_entry_row} expected_leaderboard = pd.DataFrame.from_dict(data=expected_data, orient='index') expected_leaderboard = expected_leaderboard.reindex( # pylint: disable=protected-access self.project._sort_leaderboard_columns(expected_leaderboard.columns ), axis='columns') self.assertTrue(leaderboard.equals(expected_leaderboard))
def get_leaderboard_entries(self, project, entry_types=None, ids=None, states=None, owners=None, tags=None, min_running_time=None): try: if entry_types is None: entry_types = ['experiment', 'notebook'] def get_portion(limit, offset): return self.leaderboard_swagger_client.api.getLeaderboard( projectIdentifier=project.full_id, entryType=entry_types, shortId=ids, groupShortId=None, state=states, owner=owners, tags=tags, minRunningTimeSeconds=min_running_time, sortBy=['shortId'], sortFieldType=['native'], sortDirection=['ascending'], limit=limit, offset=offset).response().result.entries return [ LeaderboardEntry(e) for e in self._get_all_items(get_portion, step=100) ] except HTTPNotFound: raise ProjectNotFound(project_identifier=project.full_id)
def get_leaderboard_entries( self, project, entry_types=None, # deprecated ids=None, states=None, owners=None, tags=None, min_running_time=None, ): if states is not None: states = [ state if state == "running" else "idle" for state in states ] try: def get_portion(limit, offset): return (self.leaderboard_swagger_client.api.getLeaderboard( projectIdentifier=project.full_id, shortId=ids, state=states, owner=owners, tags=tags, tagsMode="and", minRunningTimeSeconds=min_running_time, sortBy=["sys/id"], sortFieldType=["string"], sortDirection=["ascending"], limit=limit, offset=offset, ).response().result.entries) return [ LeaderboardEntry(self._to_leaderboard_entry_dto(e)) for e in self._get_all_items(get_portion, step=100) ] except HTTPNotFound: raise ProjectNotFound(project_identifier=project.full_id)