def post(self): check_role('annotator') args = self.parse_args() msg = 'Invalid Submission!' if self.store_annotations(args['annotation'], args['assignment_id']): msg = 'Assignment Submitted!' flash(msg) return redirect(url_for('annotatorapi'))
def get(self): check_role('instructor') datasets = [(d.name, d.author.name) for d in DataSet.objects()] instructor = User.objects(email=current_user.email).first() assignments = {} for assignment in Assignment.objects(instructor=instructor): assignments[(assignment.name, assignment.instructor.name)] = ( self.get_judgement_score(assignment)) return make_response( render_template('instructor.html', datasets=datasets, assignments=assignments))
def get(self, instructor_name, assignment_name): # TODO: annotation view check_role('annotator') instructor = User.objects(name=instructor_name).first() assignment = Assignment.objects(name=assignment_name, instructor=instructor).first() if not assignment: flash('No Such Assignment!') return redirect(url_for('annotatorapi')) queries = {} assignment_score = Score.objects(assignment=assignment) for q in assignment.queries_need_to_show: scores = assignment_score.filter(query=q) queries[q] = [score.document for score in scores] return make_response( render_template('assignment.html', assignment=assignment, queries=queries))
def post(self): check_role('instructor') args = parser.parse_args() queries = [q for q in args['query[]'] if q != ''] if not queries: flash('Empty Query!') return redirect(url_for('instructorapi')) ranker = args['ranker'] assignment_name = args['assignment_name'] dataset_name = args['ds_name'] params = self.generate_params_dict(ranker, args['param[]']) num_results = args['num_results'] instructor = User.objects(email=current_user.email).first() dataset = DataSet.objects(name=dataset_name).first() assignment = Assignment(name=assignment_name, instructor=instructor, data_set=dataset, ranker=ranker, params=params, num_results=num_results) try: assignment.save() except (NotUniqueError, ValidationError): flash('Invalid Input!') return redirect(url_for('instructorapi')) q = self.generate_queries(queries) assignment.update(queries=q) assignment.update(queries_need_to_show=q) try: self.search(assignment, dataset_name, queries, ranker, params, num_results) except Exception as e: print(e) flash('Assignment Created!') return redirect(url_for('instructorapi'))
def get(self): check_role('annotator') return make_response( render_template('annotator.html', datasets=DataSet.objects(), assignments=Assignment.objects()))
from rx_mode import main_rx from tx_mode import main_tx from util import util while True: # We first check the role of the device role = util.check_role() # And then execute the corresponding code if role == "tx": main_tx.transmitter() elif role == "rx": main_rx.receiver() else: exit(0)
def post(self): check_role('instructor') args = parser.parse_args() ds_name = args['ds_name'] author = User.objects(email=current_user.email).first() author_dir = os.path.join(current_app.root_path, 'data', author.name) ds_dir = os.path.join(author_dir, ds_name) if args['_method'] == 'DELETE': dataset = DataSet.objects(author=author, name=ds_name).first() shutil.rmtree(ds_dir) for doc in Document.objects(data_set=dataset): doc.delete() dataset.delete() if not DataSet.objects(author=author).first(): shutil.rmtree(author_dir) flash('Dataset deleted.') return redirect(url_for('instructorapi')) else: # check file format files = request.files.getlist('file') for f in files: if not f or not allowed_file(f.filename): flash('Wrong file format.') return redirect(url_for('uploadapi')) # create dataset object dataset = DataSet(author, ds_name) try: dataset.save() except NotUniqueError: flash('Dataset name is occupied.') return redirect(url_for('uploadapi')) # save documents if not os.path.exists(author_dir): os.mkdir(author_dir) os.mkdir(ds_dir) for f in files: filename = secure_filename(f.filename) f_path = os.path.join(ds_dir, filename) f.save(f_path) doc = Document(f.filename, dataset, f_path) doc.save() # create config files - copied from guoqiao's gift if len(os.listdir(ds_dir)) != 0: file_corpus = open(ds_dir + "/dataset-full-corpus.txt", "w") file_toml = open(ds_dir + "/file.toml", "w") file_metadata = open(ds_dir + "/metadata.data", "w") for file in os.listdir(ds_dir): if file[-3:] == "txt" and file != "dataset-full-corpus.txt": file_corpus.write("[None] " + file + "\n") file_metadata.write(file + " " + file[:-4] + "\n") file_toml.write("type = \"file-corpus\"" + "\n") file_toml.write("list = \"dataset\"") file_corpus.close() file_toml.close() file_metadata.close() flash('Dataset uploaded.') return redirect(url_for('instructorapi'))
def get(self): check_role('instructor') return make_response(render_template('upload.html'))