code: def get_categories(self):
          
          posts = self.get_posts(include_draft=True)
          result = {}
          for post in posts:
              for category_name in set(post.categories):
                  result[category_name] = result.setdefault(
                      category_name,
                      Pair(0, 0)) + Pair(1, 0 if post.is_draft else 1)
          return list(result.items())
docs: Get all categories and post count of each category.
  
          :return dict_item(category_name, Pair(count_all, count_published))