text: # -*- coding: utf-8 -*-
  from __future__ import unicode_literals
  
  import os
  import requests
  try:
      from StringIO import StringIO
  except ImportError:
      from io import BytesIO as StringIO
  from django.conf import settings
  from django.core.management.base import BaseCommand, CommandError
  from django.core.management import call_command
  from django.utils.translation import ugettext_lazy as _
  from django.utils.six.moves import input
  try:
      import czipfile as zipfile
  except ImportError:
      import zipfile
  
  
  class Command(BaseCommand):
      version = 10
      help = _("Initialize the workdir to run the demo of tlmshop.")
      download_url = 'http://192.168.1.71/Zipfile/django-shop-workdir_{tutorial}-0.10.2.zip'
      pwd = b'z7xv'
  # http://192.168.1.71/Zipfile/django-shop-workdir_commodity-0.10.2.zip
      def add_arguments(self, parser):
          parser.add_argument('--noinput', '--no-input', action='store_false', dest='interactive',
                              default=True, help="Do NOT prompt the user for input of any kind.")
  
      def set_options(self, **options):
          self.interactive = options['interactive']
  
      def handle(self, verbosity, *args, **options):
          self.set_options(**options)
          fixture = '{workdir}/{tutorial}/fixtures/tlmshop.json'.format(workdir=settings.WORK_DIR,
                                                                       tutorial=settings.SHOP_TYPE)
  
          if self.interactive:
              mesg = ("\nThis will overwrite your workdir and install a new database for the django-SHOP demo: {tutorial}\n"
                      "Are you sure you want to do this?\n\n"
                      "Type 'yes' to continue, or 'no' to cancel: ").format(tutorial=settings.SHOP_TYPE)
              if input(mesg) != 'yes':
                  raise CommandError("Collecting static files cancelled.")
          else:
              if os.path.isfile(fixture):
                  self.stdout.write(self.style.WARNING("Can not override downloaded data in input-less mode."))
                  return
  
          extract_to = os.path.join(settings.WORK_DIR, os.pardir)
          msg = "Downloading workdir and extracting to {}. Please wait ..."
          self.stdout.write(msg.format(extract_to))
          download_url = self.download_url.format(tutorial=settings.SHOP_TYPE, version=self.version)
          response = requests.get(download_url, stream=True)
          zip_ref = zipfile.ZipFile(StringIO(response.content))
          try:
              zip_ref.extractall(extract_to, pwd=self.pwd)
          finally:
              zip_ref.close()
  
          call_command('migrate')
          # call_command('loaddata', fixture)
          call_command('fix_filer_bug_965')
  