code: def clean(ctx, node=False, translations=False, all=False):
      '''Cleanup all build artifacts'''
      header('Clean all build artifacts')
      patterns = [
          'build', 'dist', 'cover', 'docs/_build',
          '**/*.pyc', '*.egg-info', '.tox', 'udata/static/*'
      ]
      if node or all:
          patterns.append('node_modules')
      if translations or all:
          patterns.append('udata/translations/*/LC_MESSAGES/udata.mo')
      for pattern in patterns:
          info(pattern)
      lrun('rm -rf {0}'.format(' '.join(patterns))f clean(ctx, node=False, translations=False, all=False):
      '''Cleanup all build artifacts'''
      header('Clean all build artifacts')
      patterns = [
          'build', 'dist', 'cover', 'docs/_build',
          '**/*.pyc', '*.egg-info', '.tox', 'udata/static/*'
      ]
      if node or all:
          patterns.append('node_modules')
      if translations or all:
          patterns.append('udata/translations/*/LC_MESSAGES/udata.mo')
      for pattern in patterns:
          info(pattern)
      lrun('rm -rf {0}'.format(' '.join(patterns)))
docs: Cleanup all build artifacts