docs: def pull(self):
          """Pull topics from Transifex."""
  
          topic_stats = txlib.api.statistics.Statistics.get(
              project_slug=self.tx_project_slug,
              resource_slug=self.TOPIC_STRINGS_SLUG,
          )
  
          translated = {}
  
          # for each language
          for locale in self.enabled_locales:
  
              if not self._process_locale(locale):
                  continue
  
              locale_stats = getattr(topic_stats, locale, None)
              if locale_stats is None:
                  self.log.debug('Locale %s not present when pulling topics.' %
                                 (locale,))
                  continue
  
              if locale_stats['completed'] == '100%':
                  # get the resource from Tx
                  translation = txlib.api.translations.Translation.get(
                      project_slug=self.tx_project_slug,
                      slug=self.TOPIC_STRINGS_SLUG,
                      lang=locale,
                  )
  
                  translated[locale] = babel.messages.pofile.read_po(
                      StringIO(translation.content.encode('utf-8'))
                  )
  
          # now that we've pulled everything from Tx, upload to Desk
          for topic in self.desk.topics():
  
              for locale in translated:
  
                  if topic.name in translated[locale]:
  
                      self.log.debug(
                          'Updating topic (%s) for locale (%s)' %
                          (topic.name, locale),
                      )
  
                      if locale in topic.translations:
                          topic.translations[locale].update(
                              name=translated[locale][topic.name].string,
                          )
                      else:
                          topic.translations.create(
                              locale=locale,
                              name=translated[locale][topic.name].string,
                          )
                  else:
  
                      self.log.error(
                          'Topic name (%s) does not exist in locale (%s)' %
                          (topic['name'], locale),
                      )