def handle_label(self, project_name, **options): # Determine the project_name a bit naively -- by looking at the name of # the parent directory. directory = os.getcwd() try: proj_name = __import__(project_name) if proj_name: raise CommandError( "%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name) except ImportError: if project_name in INVALID_PROJECT_NAMES: raise CommandError( "%r contains an invalid project name. Please try another name." % project_name) copy_helper(self.style, 'project', project_name, directory) # Create a random SECRET_KEY hash, and put it in the main settings. main_settings_file = os.path.join(directory, project_name, 'settings.py') settings_contents = open(main_settings_file, 'r').read() fp = open(main_settings_file, 'w') secret_key = ''.join([ choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50) ]) settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents) fp.write(settings_contents) fp.close()
def handle_label(self, project_name, **options): directory = os.getcwd() # Check that the project_name cannot be imported. try: import_module(project_name) except ImportError: pass else: raise CommandError( "%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name) copy_helper(self.style, 'project', project_name, directory) # Create a random SECRET_KEY hash, and put it in the main settings. main_settings_file = os.path.join(directory, project_name, project_name, 'settings.py') settings_contents = open(main_settings_file, 'r').read() fp = open(main_settings_file, 'w') secret_key = ''.join([ choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50) ]) settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents) fp.write(settings_contents) fp.close()
def handle_label(self, app_name, directory=None, **options): package = app_name.split('.') app_name = package.pop() if directory is None: directory = os.getcwd() + '/apps/' for pdir in package: directory += pdir + '/' if not os.path.exists(directory): os.mkdir(directory) init = open(directory+'__init__.py', 'w') init.close() print directory # Determine the project_name by using the basename of directory, # which should be the full path of the project directory (or the # current directory if no directory was passed). project_name = os.path.basename(directory) if app_name == project_name: raise CommandError("You cannot create an app with the same name" " (%r) as your project." % app_name) # Check that the app_name cannot be imported. try: import_module(app_name) except ImportError: pass else: raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name) copy_helper(self.style, 'app', app_name, directory, project_name) update_configuration(package,app_name)
def handle_label(self, app_name, directory=None, **options): # Temporarily adjust django path to that of appenginepatcher, so we # use our own template import django old_path = django.__path__ django.__path__ = appenginepatcher.__path__ if directory is None: directory = os.getcwd() # Determine the project_name by using the basename of directory, # which should be the full path of the project directory (or the # current directory if no directory was passed). project_name = os.path.basename(directory) if app_name == project_name: raise CommandError("You cannot create an app with the same name" " (%r) as your project." % app_name) # Check that the app_name cannot be imported. try: __import__(app_name) except ImportError: pass else: raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name) copy_helper(self.style, 'app', app_name, directory, project_name) django.__path__ = old_path
def handle_label(self, project_name, **options): # Determine the project_name a bit naively -- by looking at the name of # the parent directory. directory = os.getcwd() # Check that the project_name cannot be imported. try: import_module(project_name) except ImportError: pass else: raise CommandError( "%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name ) copy_helper(self.style, "project", project_name, directory) # Create a random SECRET_KEY hash, and put it in the main settings. main_settings_file = os.path.join(directory, project_name, "settings.py") settings_contents = open(main_settings_file, "r").read() fp = open(main_settings_file, "w") secret_key = "".join([choice("abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)") for i in range(50)]) settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents) fp.write(settings_contents) fp.close()
def handle_label(self, app_name, directory=None, **options): if directory is None: directory = os.getcwd() # Determine the project_name by using the basename of directory, # which should be the full path of the project directory (or the # current directory if no directory was passed). project_name = os.path.basename(directory) if app_name == project_name: raise CommandError("You cannot create an app with the same name" " (%r) as your project." % app_name) copy_helper(self.style, 'app', app_name, directory, project_name)
def app(self, path=None, key=None): """ Creates the standard Django app layout at the given path using key as the app name. """ path = self._get_usable_path(path) key = self._contextualize(key) pparts = os.path.split(path) if key in pparts[1]: path = pparts[0] self.empty(path) copy_helper(color_style(), 'app', key, path, self.context["project"])
def handle_label(self, app_name, directory=None, **options): if directory is None: directory = os.getcwd() # Check that the app_name cannot be imported. try: import_module(app_name) except ImportError: pass else: raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name) copy_helper(self.style, 'app', app_name, directory)
def handle_label(self, app_name, directory=None, **options): if directory is None: directory = os.getcwd() # Check that the app_name cannot be imported. try: import_module(app_name) except ImportError: pass else: raise CommandError( "%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name) copy_helper(self.style, 'app', app_name, directory)
def handle_label(self, project_name, **options): # Determine the project_name a bit naively -- by looking at the name of # the parent directory. directory = os.getcwd() # Check that the project_name cannot be imported. try: import_module(project_name) except ImportError: pass else: raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name) copy_helper(self.style, 'project', project_name, directory) # Create a random SECRET_KEY hash, and put it in the main settings. main_settings_file = os.path.join(directory, project_name, 'settings.py') settings_contents = open(main_settings_file, 'r').read() fp = open(main_settings_file, 'w') secret_key = ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)]) settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents) # fp.write(settings_contents) fp.write(PREPEND_SETTINGS + settings_contents + APPEND_SETTINGS) fp.close() # Create directory structure and make it pyton module os.mkdir(os.path.join(directory, project_name, 'config')) open(os.path.join(directory, project_name, 'config', '__init__.py'), 'w').close() os.mkdir(os.path.join(directory, project_name, 'config', 'settings')) open(os.path.join(directory, project_name, 'config', 'settings', '__init__.py'), 'w').close() os.mkdir(os.path.join(directory, project_name, 'config', 'wsgi')) os.mkdir(os.path.join(directory, project_name, 'db')) os.mkdir(os.path.join(directory, project_name, 'lib')) # Default settings override fp = open(os.path.join(directory, project_name, 'config', 'settings','default.py'), 'w') fp.write(settings_contents) fp.close() # Create environtment spesific settings at <project_name>/config/settings/ open(os.path.join(directory, project_name, 'config', 'settings','development.py'), 'w').close() open(os.path.join(directory, project_name, 'config', 'settings','test.py'), 'w').close() open(os.path.join(directory, project_name, 'config', 'settings','production.py'), 'w').close()
def handle_label(self, app_name, directory=None, **options): if directory is None: directory = os.getcwd() # Determine the project_name by using the basename of directory, # which should be the full path of the project directory (or the # current directory if no directory was passed). project_name = os.path.basename(directory) if app_name == project_name: raise CommandError("You cannot create an app with the same name" " (%r) as your project." % app_name) # Check that the app_name cannot be imported. try: import_module(app_name) except ImportError: pass else: raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name) copy_helper(self.style, 'app', app_name, join(directory, self.directory_sufix), project_name)
def handle_label(self, project_name, **options): # Determine the project_name a bit naively -- by looking at the name of # the parent directory. directory = os.getcwd() try: proj_name = __import__(project_name) if proj_name: raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name) except ImportError: if project_name in INVALID_PROJECT_NAMES: raise CommandError("%r contains an invalid project name. Please try another name." % project_name) copy_helper(self.style, 'project', project_name, directory) # Create a random SECRET_KEY hash, and put it in the main settings. main_settings_file = os.path.join(directory, project_name, 'settings.py') settings_contents = open(main_settings_file, 'r').read() fp = open(main_settings_file, 'w') secret_key = ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)]) settings_contents = re.sub(r"(?<=SECRET_KEY = ')'", secret_key + "'", settings_contents) fp.write(settings_contents) fp.close()
def handle_label(self, app_name, directory=None, **options): package = app_name.split('.') app_name = package.pop() if directory is None: directory = os.getcwd() + '/apps/' for pdir in package: directory += pdir + '/' if not os.path.exists(directory): os.mkdir(directory) init = open(directory + '__init__.py', 'w') init.close() print directory # Determine the project_name by using the basename of directory, # which should be the full path of the project directory (or the # current directory if no directory was passed). project_name = os.path.basename(directory) if app_name == project_name: raise CommandError("You cannot create an app with the same name" " (%r) as your project." % app_name) # Check that the app_name cannot be imported. try: import_module(app_name) except ImportError: pass else: raise CommandError( "%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name) copy_helper(self.style, 'app', app_name, directory, project_name) update_configuration(package, app_name)