def main(): global no_of_tabs, block_buffer, condition_stack, for_else, isOnElse, if_pos print("opening: {0}".format(sample)) with open(sample) as file: lines = file.readlines() for eachline in lines: matched = re.match(identation_expression, eachline).groups() if matched[0] is not None: tabs = len(matched[0]) else: tabs = 0 if tabs > no_of_tabs: block_buffer = [eachline] elif tabs < no_of_tabs: try: condition_stack.pop() except: pass conditional_block = ConditionalBlock(condition_stack, Block(block_buffer)) graph.connect(conditional_block) else: block_buffer.append(eachline) eachline = eachline.strip() is_conditional_statement = re.match(conditional_expression, eachline.strip()) is_else_conditional_statement = re.match(else_expression, eachline.strip()) if is_conditional_statement is not None: if eachline.startswith('elif'): condition_stack.pop() condition_stack.append( Condition(is_conditional_statement.groups()[1])) for_else.append( Condition(is_conditional_statement.groups()[1]).negate()) no_of_tabs -= 4 elif is_else_conditional_statement is not None: condition_stack.extend(for_else[if_pos * -1:-1]) no_of_tabs -= 4 for_else = [] try: condition_stack.pop() except: pass no_of_tabs = tabs print( "inside :", " AND ".join( map( lambda x: "'{0}'".format(x), condition_stack if len(condition_stack) > 0 else ["global"])), " -------------> ", eachline.strip())
def main(): global no_of_tabs, block_buffer, condition_stack print("opening: {0}".format(sample)) with open(sample) as file: lines = file.readlines() for eachline in lines: eachline = eachline.strip() matched = re.match(identation_expression, eachline).groups() if matched[0] is not None: tabs = len(matched[0]) else: tabs = 0 if tabs > no_of_tabs: block_buffer = [eachline] elif tabs < no_of_tabs: conditional_block = ConditionalBlock(condition_stack, Block(block_buffer)) graph.connect(conditional_block) condition_stack.pop() # if(isOnElse): # condition_stack.pop() else: block_buffer.append(eachline) no_of_tabs = tabs print("inside :", " AND ".join( map( lambda x: "'{0}'".format(x), condition_stack if len(condition_stack) > 0 else ["global"])), end=" ") print(" -------------> ", eachline.strip()) is_conditional_statement = re.match(conditional_expression, eachline.strip()) is_else_conditional_statement = re.match(else_expression, eachline.strip()) if is_conditional_statement is not None: if eachline.startswith('elif'): condition_stack.pop() condition_stack.append( Condition(is_conditional_statement.groups()[0], is_conditional_statement.groups()[1])) for_else.append( Condition(is_conditional_statement.groups()[0], is_conditional_statement.groups()[1])) no_of_tabs -= 1 isOnElse = False elif is_else_conditional_statement is not None: condition_stack.append(condition_stack.pop().negate()) no_of_tabs -= 1 isOnElse = True condition_stack.pop() else: isOnElse = False
def create_condition(): form = ConditionForm() if form.validate_on_submit(): if Condition.query.filter_by(name=form.name.data).first(): flash('A condition with this name already exists.', 'danger') return render_template('condition.html', action=url_for('nbg.create_condition'), form=form) condition = Condition(form.name.data) for field in form.pairs: condition.pairs.append(StringPair(field.key.data, field.value.data)) db.session.add(condition) db.session.commit() flash('Condition created', 'success') return redirect(url_for('nbg.list_conditions')) return render_template('condition.html', action=url_for('nbg.create_condition'), form=form)
def copyProjectExperiments(project, new_project): t_experiments = Experiment.objects.filter(project=project) for experiment in t_experiments: new_experiment = Experiment(project=new_project, name=str(experiment.name), notes=str(experiment.notes)) new_experiment.save() t_conditions = Condition.objects.filter(experiment=experiment) for condition in t_conditions: new_condition = Condition(experiment=new_experiment, name=str(condition.name), notes=str(condition.notes)) new_condition.save() t_observations = Observation.objects.filter(condition=condition) for t_observation in t_observations: new_observation = Observation( condition=new_condition, species=t_observation.species, time=t_observation.time, value=t_observation.value, stddev=t_observation.stddev, steady_state=t_observation.steady_state, min_steady_state=t_observation.min_steady_state, max_steady_state=t_observation.max_steady_state) new_observation.save() t_treatments = Treatment.objects.filter(condition=condition) for t_treatment in t_treatments: new_treatment = Treatment(condition=new_condition, species=t_treatment.species, time=t_treatment.time, value=t_treatment.value) new_treatment.save() new_condition.save() new_experiment.save()
def check_reports_html(sr_dict): """Does report alerts/reapprovals, requires loading HTML page.""" global r logging.info('Checking reports html page') reports_page = r._request('http://www.reddit.com/r/mod/about/reports') soup = BeautifulSoup(reports_page) # check for report alerts for reported_item in soup.findAll( attrs={'class': 'rounded reported-stamp stamp'}): permalink = (reported_item.parent .findAll('li', attrs={'class': 'first'})[0].a['href']) sub_name = re.search('^http://www.reddit.com/r/([^/]+)', permalink).group(1).lower() try: subreddit = sr_dict[sub_name] except KeyError: continue if not subreddit.report_threshold: continue reports = re.search('(\d+)$', reported_item.text).group(1) if int(reports) >= subreddit.report_threshold: try: # check log to see if this item has already had an alert ActionLog.query.filter( and_(ActionLog.subreddit_id == subreddit.id, ActionLog.permalink == permalink, ActionLog.action == 'alert')).one() except NoResultFound: c = Condition() c.action = 'alert' perform_action(subreddit, permalink, c) # do auto-reapprovals for approved_item in soup.findAll( attrs={'class': 'approval-checkmark'}): report_stamp = approved_item.parent.parent.findAll( attrs={'class': 'rounded reported-stamp stamp'})[0] permalink = (report_stamp.parent .findAll('li', attrs={'class': 'first'})[0].a['href']) sub_name = re.search('^http://www.reddit.com/r/([^/]+)', permalink).group(1).lower() try: subreddit = sr_dict[sub_name] except KeyError: continue if not subreddit.auto_reapprove: continue num_reports = re.search('(\d+)$', report_stamp.text).group(1) num_reports = int(num_reports) try: # see if this item has already been auto-reapproved entry = (AutoReapproval.query.filter( and_(AutoReapproval.subreddit_id == subreddit.id, AutoReapproval.permalink == permalink)) .one()) in_db = True except NoResultFound: entry = AutoReapproval() entry.subreddit_id = subreddit.id entry.permalink = permalink entry.original_approver = (re.search('approved by (.+)$', approved_item['title']) .group(1)) entry.total_reports = 0 entry.first_approval_time = datetime.utcnow() in_db = False if (in_db or approved_item['title'].lower() != \ 'approved by '+cfg_file.get('reddit', 'username').lower()): sub = r.get_submission(permalink) sub.approve() entry.total_reports += num_reports entry.last_approval_time = datetime.utcnow() db.session.add(entry) db.session.commit() logging.info(' Re-approved %s', entry.permalink)
def manage_reward(request, key): form = None riddle_form = None condition_form = None try: #loading existing reward reward = Reward.objects.get(key=key) except Reward.DoesNotExist: #creating new reward, initialize variables reward = Reward() reward.key = key riddle = reward.riddle_set.all() if riddle.count() == 0: riddle = Riddle() else: riddle = riddle[0] condition = reward.condition_set.all() if condition.count() == 0: condition = Condition() else: condition = condition[0] if request.method == 'POST': form = RewardManageForm(instance=reward, data=request.POST) if form.is_valid(): reward = form.save() blob_infos = get_blobinfo_from_post(request) for blob_info in blob_infos: #print "blobkey: " + str(blob_info.key()) image = Image() image.blob_key = str(blob_info.key()) image.reward = reward image.save() riddle.reward = reward riddle_form = RiddleManageForm(instance=riddle, data=request.POST) if riddle_form.is_valid(): riddle_form.save() condition.reward = reward condition_form = ConditionManageForm(instance=condition, data=request.POST) if condition_form.is_valid(): condition_form.save() images = list(reward.image_set.all()) images.append(Image()) if form is None: form = RewardManageForm(instance=reward) image_forms = [] for image in images: image_forms.append(ImageManageForm(instance=image)) if riddle_form is None: riddle_form = RiddleManageForm(instance=riddle) if condition_form is None: condition_form = ConditionManageForm(instance=condition) url = reverse('manage_reward', kwargs={'key': key}) upload_url = blobstore.create_upload_url(url) return render_to_response('reward/manage.html', {'upload_url': upload_url, 'form': form, 'reward': reward, 'image_forms':image_forms, 'riddle_form':riddle_form, 'condition_form':condition_form }, context_instance=RequestContext(request))
def refreshDBwithFHIR(request): #get json from dir with open("hit_server/FHIRJsonResponse.json") as data_file: data = json.load(data_file) for p in data.keys(): print p, data[p]["Contact Info"]["first_name"], data[p][ "Contact Info"]["last_name"] patientobj = PatientInfo() # create a patient object. patientobj.pid = p patientobj.first_name = data[p]["Contact Info"]["first_name"] patientobj.last_name = data[p]["Contact Info"]["last_name"] patientobj.save() #first add all conditions to patient? all_conditions = data[p]["Conditions"].keys() for con in all_conditions: conditionobj = Condition() conditionobj.condition_name = data[p]["Conditions"][con]["name"] conditionobj.onset_date = data[p]["Conditions"][con]["onset_date"] conditionobj.condition_code = data[p]["Conditions"][con]["code"] conditionobj.condition_desc = data[p]["Conditions"][con]["text"] conditionobj.condition_for_patients = patientobj # how to use related object conditionobj.save() all_medications = data[p]["Medications"].keys() if len(all_medications) == 0: pass else: for meds in all_medications: medicationobj = Medication() medicationobj.med_status = data[p]["Medications"][meds][ "status"] medicationobj.med_name = data[p]["Medications"][meds]["name"] medicationobj.med_code = data[p]["Medications"][meds]["code"] medicationobj.med_dosage_value = data[p]["Medications"][meds][ "dosage_value"] medicationobj.med_dosage_text = data[p]["Medications"][meds][ "dosage_text"] medicationobj.med_dosage_units = data[p]["Medications"][meds][ "dosage_units"] medicationobj.med_date_written = data[p]["Medications"][meds][ "date_written"] medicationobj.med_code_system = data[p]["Medications"][meds][ "code_system"] medicationobj.medications_for_patients = patientobj # how to use related object medicationobj.save() all_observations = data[p]["Observations"].keys() for obs in all_observations: observationobj = Observation() observationobj.obs_name = data[p]["Observations"][obs]["name"] observationobj.obs_code = data[p]["Observations"][obs]["code"] observationobj.obs_desc = data[p]["Observations"][obs]["text"] check_existance_of_value = data[p]["Observations"][obs].keys() if "value" in check_existance_of_value: observationobj.obs_value = data[p]["Observations"][obs][ "value"] else: observationobj.obs_value = 0.0 if "units" in check_existance_of_value: observationobj.obs_units = data[p]["Observations"][obs][ "units"] else: observationobj.obs_units = "NULL" observationobj.obs_date = data[p]["Observations"][obs]["date_time"] observationobj.obs_for_patients = patientobj # how to use related object observationobj.save() return HttpResponse() '''
def refreshDBwithFHIR(request): #get json from dir with open("hit_server/FHIRJsonResponse.json") as data_file: data = json.load(data_file) for p in data.keys(): print p, data[p]["Contact Info"]["first_name"], data[p]["Contact Info"]["last_name"] patientobj = PatientInfo() # create a patient object. patientobj.pid = p patientobj.first_name = data[p]["Contact Info"]["first_name"] patientobj.last_name = data[p]["Contact Info"]["last_name"] patientobj.save() #first add all conditions to patient? all_conditions = data[p]["Conditions"].keys() for con in all_conditions: conditionobj = Condition() conditionobj.condition_name = data[p]["Conditions"][con]["name"] conditionobj.onset_date = data[p]["Conditions"][con]["onset_date"] conditionobj.condition_code = data[p]["Conditions"][con]["code"] conditionobj.condition_desc = data[p]["Conditions"][con]["text"] conditionobj.condition_for_patients = patientobj # how to use related object conditionobj.save() all_medications = data[p]["Medications"].keys() if len(all_medications) == 0: pass else: for meds in all_medications: medicationobj = Medication() medicationobj.med_status = data[p]["Medications"][meds]["status"] medicationobj.med_name = data[p]["Medications"][meds]["name"] medicationobj.med_code = data[p]["Medications"][meds]["code"] medicationobj.med_dosage_value = data[p]["Medications"][meds]["dosage_value"] medicationobj.med_dosage_text = data[p]["Medications"][meds]["dosage_text"] medicationobj.med_dosage_units = data[p]["Medications"][meds]["dosage_units"] medicationobj.med_date_written = data[p]["Medications"][meds]["date_written"] medicationobj.med_code_system = data[p]["Medications"][meds]["code_system"] medicationobj.medications_for_patients = patientobj # how to use related object medicationobj.save() all_observations = data[p]["Observations"].keys() for obs in all_observations: observationobj = Observation() observationobj.obs_name = data[p]["Observations"][obs]["name"] observationobj.obs_code = data[p]["Observations"][obs]["code"] observationobj.obs_desc = data[p]["Observations"][obs]["text"] check_existance_of_value = data[p]["Observations"][obs].keys() if "value" in check_existance_of_value: observationobj.obs_value = data[p]["Observations"][obs]["value"] else: observationobj.obs_value = 0.0 if "units" in check_existance_of_value: observationobj.obs_units = data[p]["Observations"][obs]["units"] else: observationobj.obs_units = "NULL" observationobj.obs_date = data[p]["Observations"][obs]["date_time"] observationobj.obs_for_patients = patientobj # how to use related object observationobj.save() return HttpResponse() '''