def get_organizations(self, search=""): """Get a list of your :class:`organizations <tracker_client.organization.Organization>`. Note that the optional search term is supplied as part of the GraphQL query variables and affects the API response received, rather than filtering results client-side. :param str search: Search term to filter results with. For example, supplying the string "canada" would return only Organizations containing "canada" in their name. :return: A list of your organizations. :rtype: list[Organization] :raises ValueError: if your organizations can't be retrieved. """ params = {"after": "", "search": search} has_next = True org_list = [] # The maximum number of organizations that can be requested at once is 100 # This loop gets 100 orgs, checks if there are more, and if there are # it gets another 100 starting after the last org it got while has_next: result = self.execute_query(queries.GET_ALL_ORGS, params) if "error" in result: print("Server error: ", result) raise ValueError("Unable to get your organizations.") for edge in result["findMyOrganizations"]["edges"]: org_list.append(Organization(self, **edge["node"])) has_next = result["findMyOrganizations"]["pageInfo"]["hasNextPage"] params["after"] = result["findMyOrganizations"]["pageInfo"][ "endCursor"] return org_list
def test_maximum_efficiency(self): orga = Organization() orga.add_layer(1, size=2, efficiency_weight=1.0) orga.add_layer(2, size=3, efficiency_weight=0.6) orga.add_layer(3, size=5, efficiency_weight=0.2) self.assertEquals((2*10*1.0 + 3*10*0.6 + 5*10*0.2) / 10, orga.maximum_efficiency())
def main(): employer = Employer('Victa Kironde', 25, 'male', 'LFA') organization = Organization('Andela', 'www.andela.com') employer.work_for(organization) #add subordinates employee = Employee('Bruce Bigirwenkya', 22, 'male', 'Fellow') employer.hire(employee) employer.hire(Employee('Daniel', 22, 'male', 'Developer')) employer.hire(Employee('Joshua', 18, 'male', 'Fellow')) employer.hire(Employee('Martina', 19, 'female', 'fellow')) employer.hire(Employee('Joshua', 20, 'male', 'Supervisor')) print("\n_____________________") print("Organization") print("---XXX---") print("Name: " + employer.organization.name) print("Address: " + employer.organization.web_address) print("\n_____________________") print("Details of employer:") print("---XXX---") print("Name: " + employer.name) print("Age: " + str(employer.age)) print("Gender: " + employer.gender) print("Title: " + employer.title) print("Number of subordinates:" + str(len(employer.subordinates))) print("\n_____________________") print("Show polymorphism:") print("---XXX---") print("Message for employee:" + employee.message()) print("Message for employer:" + employer.message())
def test_workforce(self): orga = Organization() orga.add_layer(1, size=2, efficiency_weight=1.0) orga.add_layer(2, size=3, efficiency_weight=1.0) orga.add_layer(3, size=5, efficiency_weight=1.0) self.assertEquals(10, orga.workforce())
def __init__ (self): """ """ self.data = {} resp = self.getResponse() for item in resp: org = Organization (item) self.data[org.acronym] = org
def get_organization(self, id): response = requests.get(self.base_url + str(id), params=self.params) response.raise_for_status() data = response.json()['data'] name = data['name'] latitude, longitude = self.address_to_coords(data['address']) return Organization(id, name, latitude, longitude)
def _generate_ovpn_conf(self): if not self.get_orgs(): raise ValueError('Ovpn conf cannot be generated without ' + \ 'any organizations') logger.debug('Generating server ovpn conf. %r' % { 'server_id': self.id, }) if not self.primary_organization or not self.primary_user: self._create_primary_user() if not os.path.isfile(self.dh_param_path): self._generate_dh_param() primary_org = Organization(self.primary_organization) primary_user = primary_org.get_user(self.primary_user) self.generate_ca_cert() self._generate_tls_verify() self._generate_user_pass_verify() if self.local_network: push = 'route %s %s' % self._parse_network(self.local_network) else: push = 'redirect-gateway' server_conf = OVPN_SERVER_CONF % ( self.port, self.protocol, self.interface, self.ca_cert_path, primary_user.cert_path, primary_user.key_path, self.tls_verify_path, self.dh_param_path, '%s %s' % self._parse_network(self.network), self.ifc_pool_path, push, self.ovpn_status_path, 4 if self.debug else 1, 8 if self.debug else 3, ) if self.otp_auth: server_conf += 'auth-user-pass-verify %s via-file\n' % ( self.user_pass_verify_path) if self.lzo_compression: server_conf += 'comp-lzo\npush "comp-lzo"\n' if self.local_network: server_conf += 'client-to-client\n' with open(self.ovpn_conf_path, 'w') as ovpn_conf: ovpn_conf.write(server_conf)
def parseCordisOrganizationRDF(self, entry, graph): Organization = namedtuple('Organization', 'identifier, referenceID, projectName, role, name, shortName, country, activityType, endOfParticipation, city, postalCode, street, homepage, contact, id') org = [] org.append(entry[0]) org.append(entry[1]) org.append(entry[2]) org.append(entry[3]) org.append(entry[5]) org.append(entry[6]) if len(entry[10]) > 1: org.append(self.alpha2Name(entry[10])) else: org.append('') org.append(entry[7]) org.append(entry[8]) org.append('http://dbpedia.org/page/' + parse.quote(self.capitalizeAll(self.setLiterals(entry[12])))) org.append(entry[13]) org.append( entry[11]) org.append((entry[14][:4] != 'http')*'http://' + entry[14]) org.append(parse.quote_plus(entry[17] + entry[18] + entry[6])) org.append(entry[4]) organization = Organization(*org) """ Create triples """ if len(organization.id) > 1: orgRDF = CORG[self.setLiterals(organization.id)] else: orgRDF = CORG[parse.quote_plus(organization.name)] graph.add((orgRDF, RDF.type, FOAF.Organization)) graph.add((orgRDF, CORDIS.organizationName, Literal(self.setLiterals(organization.name)))) graph.add((orgRDF, CORDIS.organizationShortName, Literal(self.setLiterals(organization.shortName)))) if len(organization.country) > 1: graph.add((orgRDF, CORDIS.organizationCountry, DBR[self.setLiterals(organization.country)])) if len(organization.activityType) > 1: graph.add((orgRDF, CORDIS.activityType, Literal(self.setLiterals(organization.activityType)))) if len(organization.endOfParticipation) > 1: graph.add((orgRDF, CORDIS.endOfParticipation, Literal(self.setLiterals(organization.endOfParticipation)))) if len(organization.city) > 1: graph.add((orgRDF, DBO.locationCity, URIRef(organization.city))) if len(organization.street) > 1: graph.add((orgRDF, DBO.address, Literal(self.setLiterals(organization.street)))) if len(organization.postalCode) > 1: graph.add((orgRDF, DBO.postalCode, Literal(self.setLiterals(organization.postalCode)))) if len(organization.homepage) > 1: if ';' in organization.homepage: for homepage in organization.homepage.split(';'): graph.add((orgRDF, FOAF.homepage, URIRef(self.setLiterals(homepage).replace('"', '').replace("'",'')))) if ',' in organization.homepage: for homepage in organization.homepage.split(','): graph.add((orgRDF, FOAF.homepage, URIRef(self.setLiterals(homepage).replace('"', '').replace("'",'')))) if len(organization.contact) > 1: graph.add((orgRDF, FOAF.person, CPEO[organization.contact])) return organization
def create_organization(self, name, latitude, longitude): address = self.coords_to_address(latitude, longitude) data = {'name': name, 'address': address} response = requests.post(self.base_url, data=data, params=self.params) response.raise_for_status() id = response.json()['data']['id'] organization = Organization(id, name, latitude, longitude) return organization
def test_global_efficiency(self): orga = Organization() orga.add_layer(1, size=2, efficiency_weight=1.0) orga.add_layer(2, size=3, efficiency_weight=0.6) orga.add_layer(3, size=5, efficiency_weight=0.2) orga.layers[1].employees = [emp(25, 8.0), emp(25, 9.0)] orga.layers[2].employees = [emp(25, 7.0), emp(25, 2.0), emp(25, 7.0)] orga.layers[3].employees = [emp(25, 6.0), emp(25, 5.5), emp(25, 10.0), None, emp(25, 7.0)] self.assertEquals(100 * ((8.0 + 9.0) * 1.0 + (7.0 + 2.0 + 7.0) * 0.6 + (6.0 + 5.5 + 10.0 + 7.0) * 0.2) / (orga.workforce() * orga.maximum_efficiency()), orga.global_efficiency())
def get_orgs(self): orgs = [] for org_id in self.organizations: org = Organization(org_id) if not os.path.isfile(org.ca_cert.cert_path): logger.warning('Removing non existent organization ' + \ 'from server. %r' % { 'server_id': self.id, 'org_id': org_id, }) self.remove_org(org_id) continue orgs.append(org) return orgs
def get_organizations(self): response = requests.get(self.base_url, params=self.params) response.raise_for_status() organizations = {} data = response.json()['data'] for entry in data: id = int(entry['id']) name = entry['name'] latitude, longitude = self.address_to_coords(entry['address']) organizations[id] = Organization(id, name, latitude, longitude) return organizations
def organization(self, name) -> Organization: if name in self._organizations: return self._organizations[name] org = Organization(name) oj = self.json["organizations"][name] if "server_jira" in oj: oj_jira = oj["server_jira"] org.set_jira( Jira(oj_jira["url"], oj_jira["username"], oj_jira["password"])) if "server_confluence" in oj: oj_confluence = oj["server_confluence"] org.set_confluence( Confluence( oj_confluence["url"], oj_confluence["username"], oj_confluence["password"], oj_confluence["global_identifier"], oj_confluence["name"], )) if "server_phabricator" in oj: oj_phabricator = oj["server_phabricator"] org.set_phabricator( Phabricator( oj_phabricator["url"], oj_phabricator["user_phid"], oj_phabricator["token"], )) if "server_calendar" in oj: oj_cal = oj["server_calendar"] org.set_calendar( CalDAV(oj_cal["url"], oj_cal["username"], oj_cal["password"])) if "server_badgebox" in oj: oj_badge = oj["server_badgebox"] org.set_badgebox( BadgeBox(oj_badge["username"], oj_badge["password"])) if "server_smtp" in oj: oj_smtp = oj["server_smtp"] org.set_smtp( SMTP( oj_smtp["address"], oj_smtp["port"], oj_smtp["username"], oj_smtp["password"], oj_smtp["default_from_address"], oj_smtp["html_signature"], )) self._organizations[name] = org return org
def check_node_existence(self, data): """Checks if the nodes for the relationship exists, if not creates new nodes.""" # import pdb; pdb.set_trace() if data: permalink = Transform.to_str(data.get('Permalink')) label = Transform.to_str(data.get('PrimaryRole')) uuid = Transform.to_str(data.get('Uuid')) try: organization = Organization() organization.check_create_organization_node(label, permalink) event = Event() event.check_create_event_node(uuid) except Exception as e: pass
def check_node_existence(self, data): """Checks if the nodes for the relationship exists, if not creates new nodes.""" if data: permalink = Transform.to_str(data.get('Permalink')) label = Transform.to_str(data.get('PrimaryRole')) name = Transform.to_str(data.get('Name')) try: organization = Organization() organization.check_create_organization_node(label, permalink) category = Category() category.check_create_category_node(name) except Exception as e: pass
def add_org(self, org_id): logger.debug('Adding organization to server. %r' % { 'server_id': self.id, 'org_id': org_id, }) org = Organization(org_id) if org.id in self.organizations: logger.debug('Organization already on server, skipping. %r' % { 'server_id': self.id, 'org_id': org.id, }) return self.organizations.append(org.id) self.commit() Event(type=SERVERS_UPDATED) Event(type=SERVER_ORGS_UPDATED, resource_id=self.id)
def check_node_existence(self, data): """Checks if the nodes for the relationship exists, if not creates new nodes.""" if data: permalink = Transform.to_str(data.get('Permalink')) label = Transform.to_str(data.get('PrimaryRole')) people_permalink = Transform.to_str(data.get('PeoplePermalink')) try: organization = Organization() organization.check_create_organization_node(label, permalink) person = Person() person.check_create_person_node(people_permalink) except Exception as e: pass
def check_node_existence(self, data): """Checks if the nodes for the relationship exists, if not creates new nodes.""" if data: permalink = Transform.to_str(data.get('Permalink')) label = Transform.to_str(data.get('PrimaryRole')) fund_id = Transform.to_str(data.get('FundsId')) try: organization = Organization() organization.check_create_organization_node(label, permalink) fund = Fund() fund.check_create_fund_node(fund_id) except Exception as e: pass
def check_node_existence(self, data): """Checks if the nodes for the relationship exists, if not creates new nodes.""" if data: permalinks = [ (data.get('OrganizationAcquireeID'), data.get('AcquireePrimaryRole')), (data.get('OrganizationAcquirerID'), data.get('AcquirerPrimaryRole')) ] for permalink, label in permalinks: permalink = Transform.to_str(permalink) label = Transform.to_str(label) try: organization = Organization() organization.check_create_organization_node(label, permalink) except Exception as e: pass
def get_organization(self, name): """Get an :class:`~tracker_client.organization.Organization` from specified name. You must be a member of that organization. :param str name: name of organization to get and construct :class:`~tracker_client.organization.Organization` for. :return: The specified organization. :rtype: Organization :raises ValueError: if an invalid organization name is given. """ params = {"orgSlug": slugify(name)} result = self.execute_query(queries.GET_ORG, params) if "error" in result: print("Server error: ", result) raise ValueError("Unable to get organization " + name) return Organization(self, **result["findOrganizationBySlug"])
def __init__(self): """ Constructor for SearchZendesk class """ self.main_choices = { 1: "Select 1 to search Zendesk", 2: "Select 2 to view a list of searchable fields", 3: "Exit" } # main menu choices self.sub_choices = { 1: "Select 1 to search users", 2: "Select 2 to search tickets", 3: "Select 3 to search organizations", 4: "Select 4 to go back to main menu" } # search menu choices self.user = User() # instantiates user class self.ticket = Ticket() # instantiates ticket class self.organization = Organization() # instantiates organization class
def test_promote(self): hypothesis = MockHypothesis() orga = Organization() orga.set_strategies(hypothesis=hypothesis, strategy=BestStrategy()) orga.add_layer(1, size=1, efficiency_weight=1.0) orga.add_layer(2, size=3, efficiency_weight=1.0) best_employee = emp(38, 7.5) worst_employee = emp(25, 3.0) average_employee = emp(49, 6.3) # layer 1 has a vacancy orga.layers[2].employees = [worst_employee, best_employee, average_employee] orga.promote(origin=orga.layers[2], destination=orga.layers[1]) self.assertEquals([best_employee], orga.layers[1].employees) self.assertEquals([worst_employee, None, average_employee], orga.layers[2].employees) self.assertTrue(hypothesis.called) self.assertEquals(7.5, orga.layers[1].employees[0].competence)
def AuthenticatedPost(self, org, _): global_admin = False local_admin = False if org.name == GLOBAL_ADMIN_NAME: global_admin = True if org.is_admin == True and global_admin == False: local_admin = True if global_admin == False and local_admin == False: self.redirect("/") return # create form form = (GlobalAdminCreateOrganizationForm(self.request.POST) if global_admin else CreateOrganizationForm(self.request.POST)) events = self._get_events(org, global_admin, local_admin) form.incident.choices = [(str(event.key().id()), event.name) for event in events] if form.validate() and not form.errors: # create new org event = event_db.Event.get_by_id(int(form.incident.data)) new_org = Organization(name=form.name.data, ) new_org.incidents = [event.key()] new_org.save() del (form.incident) del (form.incidents) form.populate_obj(new_org) new_org.save() organization.PutAndCache(new_org) # redirect to the add contact page self.redirect('/admin-create-contact?selected_org=%d' % new_org.key().id()) else: self.response.out.write( template.render({ "form": form, "global_admin": global_admin, }))
def parseCordisOrganization(self, entry): Organization = namedtuple('Organization', 'identifier, referenceID, projectName, role, name, shortName, country, activityType, endOfParticipation, city, postalCode, street, homepage, contact') org = [] org.append(entry[0]) org.append(entry[1]) org.append(entry[2]) org.append(entry[3]) org.append(entry[5]) org.append(entry[6]) if len(entry[10]) > 1: org.append(self.alpha2Name(entry[10])) else: org.append('') org.append(entry[7]) org.append(entry[8]) org.append('http://dbpedia.org/page/' + self.capitalizeAll(entry[12])) org.append(entry[13]) org.append( entry[11]) org.append((entry[14][:4] != 'http')*'http://' + entry[14]) org.append(parse.quote_plus(entry[17] + entry[18] + entry[6])) output = Organization(*org) return [self.createOrganizationOutput(output), output.name, [output.role, output.identifier, output.name]]
def parse_json_index(url, prefix, limit): """This function will parse the given url as json.""" index = urllib2.urlopen(url) objects = ijson.items(index, prefix) counter = 0 filings = (obj for obj in objects if obj[FORM_TYPE] in ['990','990EZ']) for filing in filings: if counter == limit: break else: counter += 1 field_dict = xmlparser.parse_xml_form(filing[URL], filing[FORM_TYPE]) field_dict['electronic_id'] = filing[ELECTRONIC_ID] field_dict['form_type'] = filing[FORM_TYPE] field_dict['organization_name'] = filing[ORGANIZATION_NAME] org = Organization(field_dict) if (org['electronic_id'] is not None and org['form_type'] is not None): yield org else: continue
def _remove_primary_user(self): logger.debug('Removing primary user. %r' % { 'server_id': self.id, }) primary_organization = self.primary_organization primary_user = self.primary_user self.primary_organization = None self.primary_user = None if not primary_organization or not primary_user: return org = Organization(primary_organization) user = org.get_user(primary_user) if not user: logger.debug('Primary user not found, skipping remove. %r' % { 'server_id': self.id, 'org_id': org.id, 'user_id': user.id, }) return if user: user.remove()
def run(self): self.run_name = "Organization" self.organization = Organization(token=self.token, base_url=self.url) self.by_field = None self.by_value = None self.by_list = False self.ret_field = None self.title = "Get" self.res = self.organizations_result self.exe = self.organization.get() self.test_exe() self.title = "Get: organization_id" self.exe = self.organization.get(organization_id=self.organization_id), self.res = self.organization_result self.test_exe() self.exe = self.organization.get() self.title = "Get: by_field(id)" self.by_field = 'id' self.by_value = self.organization_id self.res = self.organization_result self.test_exe() self.title = "Get: by_field(id), by_list" self.by_list = True self.res = [self.organization_result] self.test_exe() self.title = "Get: by_field(id), ret_field" self.ret_field = 'name' self.by_list = False self.res = self.organization_name self.test_exe() self.title = "Get: by_field(id), ret_field, by_list" self.by_list = True self.res = [self.organization_name] self.test_exe() self.by_field = None self.by_value = None self.by_list = False self.ret_field = None self.title = "Get: by_field(name)" self.by_field = 'name' self.by_value = self.organization_name self.res = self.organization_result self.test_exe() self.title = "Get: by_field(name), by_list" self.by_list = True self.res = [self.organization_result] self.test_exe() self.title = "Get: by_field(name), ret_field" self.ret_field = 'id' self.by_list = False self.res = self.organization_id self.test_exe() self.title = "Get: by_field(name), ret_field, by_list" self.by_list = True self.res = [self.organization_id] self.test_exe()
# coding: utf8 import os import sys from special_serializer import SpecialSerializer from organization import Organization Filename = 'organization.txt' Organization = Organization() def remove_trash(): keys = Organization.dict.copy().keys() for key in keys: if not Organization.dict[key]: Organization.dict.pop(key) def exit_program(): remove_trash() with open(Filename, 'w') as f: SpecialSerializer.write(Organization.dict, f) sys.exit() def print_menu(): print('1 - внести нового сотрудника в список\n' '2 - удалить сотрудника из списка\n' '3 - просмотреть данные о сотруднике\n' '4 - изменить данные о сотруднике\n' '5 - просмотреть весь список сотрудников\n'
def organization_create(name, company): orgs = Organization(name=name, company=company) orgs.create()