def bundle(dir): branch = Branch.open(dir) output_zip = '%s_%d.zip'%(dir, branch.revno()) temp_dir = '/tmp/output_%d'%(branch.revno()) #Empty the temp_dir shutil.rmtree(temp_dir, True) #export the bzr repository to temp_dir export(branch.basis_tree(), temp_dir) #Compile the source code in templocation compileall.compile_dir(temp_dir) #Remove the .py files from the exported directory. clean_path(temp_dir, [".py"]) #create a HISTORY file in the temp_dir show_log(branch, ShortLogFormatter(open(temp_dir+os.sep+'HISTORY', 'w'))) #create a VERSION file in temp_dir f = open(temp_dir+os.sep+'VERSION', 'w') f.write(str(branch.revno())) f.close() #write to zip z.toZip(temp_dir, output_zip)
def test_clean_path(self): '''test_clean_path will test the clean_path function ''' print("Testing utils.clean_path...") from utils import clean_path ideal_path = '/home/vanessa/Desktop/stuff' self.assertEqual(clean_path('/home/vanessa/Desktop/stuff/'),ideal_path) self.assertEqual(clean_path('/home/vanessa/Desktop/stuff//'),ideal_path) self.assertEqual(clean_path('/home/vanessa//Desktop/stuff/'),ideal_path)
def http_request_handler(request, config): if request.path[0] != '/': raise BadRequest() path = '%s/%s' % (config.root.rstrip('/'), utils.clean_path(request.path)) if path.endswith('.j2'): raise FileNotFoundError() if os.path.isdir(path): if request.path[-1] != '/': return redirect(301, '%s/' % request.path) index_exts = config.get('index_exts', ['php', 'cgi', 'html', 'xml']) for ext in index_exts: index_file = '%s/index.%s' % (path, ext) if os.path.isfile(index_file): return FileResponse(index_file) for ext in index_exts: template_file = '%s/index.%s.j2' % (path, ext) if os.path.isfile(template_file): return TemplateResponse(template_file) raise PermissionError() elif os.path.isfile('%s.j2' % path): return TemplateResponse('%s.j2' % path) else: return FileResponse(path)
def index(self, request, path=None): """ Show list of files in a url inside of the document root. """ if request.method == 'POST': selection = request.POST.getlist('_selected_action') act = request.POST.get('action') if act and selection: response = self.actions[int(act)][0](self, request, path) if response: return response url = utils.clean_path(path) directory = Dir(utils.url_to_path(url)) sort_by = request.GET.get('s', 'n') sort_dir = request.GET.get('ot', 'asc') order = defaultdict(lambda : ['', '', 'asc'], {sort_by: ['sorted', sort_dir, sort_dir == 'asc' and 'desc' or 'asc']}) key = ORDER_MAP.get(sort_by, None ) if key: func = lambda el: getattr(el, key) files = sorted(directory.files, key=func, reverse=sort_dir == 'desc') else: directory.files.sort() files = directory.files return render_to_response("iadmin/fm/index.html", {'directory': directory, 'path': url, 'title' : 'FileManager', 'fmindex': reverse('%s:iadmin.fm.index' % self.name, kwargs={'path': ''}), 'order': order, 'filemanager' : self, 'files': files}, context_instance=template.RequestContext(request))
def upload(self, request, path=None): """ Upload a new file. """ if not request.user.has_perm('iadmin.can_upload_file'): raise PermissionDenied from iadmin.plugins.fm.forms import UploadForm path = utils.url_to_path(path) base = Dir( path ) url = utils.clean_path(path) if request.method == 'POST': form = UploadForm(base.absolute_path, data=request.POST, files=request.FILES) if form.is_valid(): file_path = os.path.join(base.absolute_path, form.cleaned_data['file'].name) destination = open(file_path, 'wb+') for chunk in form.cleaned_data['file'].chunks(): destination.write(chunk) messages.info(request, '`%s` uploaded' % form.cleaned_data['file'].name) return redirect( base ) #return redirect('admin:iadmin.fm.index', path=base.relative_path) else: form = UploadForm(base.absolute_path) return render_to_response("iadmin/fm/upload.html", template.RequestContext(request, {'form': form, 'directory': base, 'title' : 'FileManager', 'filemanager' : self, 'fmindex' : reverse('%s:iadmin.fm.index' % self.name, kwargs={'path': ''}), 'max_size' : utils.get_max_upload_size(), 'url': url}))
parser.add_argument( '-s', '--stats', action='store_true', help="Whether to report statistics of the data. default: False") return parser if __name__ == '__main__': parser = setup_parser() args = parser.parse_args() path = os.path.join("data", "raw", "all_characters") if args.crawl: dialogs = crawl.crawl_data() utils.clean_path(path) path = os.path.join(path, "all_characters.json") utils.save_all_characters(dialogs, path) """# Saving raw data""" """# Clean up data""" if args.process: """## Save Michael and Dwight dialogues""" dialogs = utils.load_all_characters() path = os.path.join("data", "raw", "michael_dwight_dialogues") utils.clean_path(path) characters = ['michael', 'dwight'] dialogs = {character: dialogs[character] for character in characters} print(len(dialogs['michael']), len(dialogs['dwight'])) utils.save_characters_raw(dialogs) dialogs, _ = utils.load_cleaned(path)