code: def _upload(self, project_id, updating, file_path, language_code=None,
                  overwrite=False, sync_terms=False, tags=None, fuzzy_trigger=None):
          
          options = [
              self.UPDATING_TERMS,
              self.UPDATING_TERMS_TRANSLATIONS,
              self.UPDATING_TRANSLATIONS
          ]
          if updating not in options:
              raise POEditorArgsException(
                  'Updating arg must be in {}'.format(options)
              )
  
          options = [
              self.UPDATING_TERMS_TRANSLATIONS,
              self.UPDATING_TRANSLATIONS
          ]
          if language_code is None and updating in options:
              raise POEditorArgsException(
                  'Language code is required only if updating is '
                  'terms_translations or translations)'
              )
  
          if updating == self.UPDATING_TRANSLATIONS:
              tags = None
              sync_terms = None
  
          # Special content type:
          tags = tags or ''
          language_code = language_code or ''
          sync_terms = '1' if sync_terms else '0'
          overwrite = '1' if overwrite else '0'
          fuzzy_trigger = '1' if fuzzy_trigger else '0'
          project_id = str(project_id)
  
          with open(file_path, 'r+b') as local_file:
              data = self._run(
                  url_path="projects/upload",
                  id=project_id,
                  language=language_code,
                  file=local_file,
                  updating=updating,
                  tags=tags,
                  sync_terms=sync_terms,
                  overwrite=overwrite,
                  fuzzy_trigger=fuzzy_trigger
              )
          return data['result']
docs: Internal: updates terms / translations
  
          File uploads are limited to one every 30 seconds