コード例 #1
0
    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
コード例 #2
0
    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())
コード例 #3
0
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())
コード例 #4
0
    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())
コード例 #5
0
ファイル: orgs.py プロジェクト: ostwald/python-lib
	def __init__ (self):
		"""
		"""
		self.data = {}
		resp = self.getResponse()
		
		for item in resp:
			org = Organization (item)
			self.data[org.acronym] = org
コード例 #6
0
    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)
コード例 #7
0
ファイル: server.py プロジェクト: gourneau/pritunl
    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)
コード例 #8
0
ファイル: csv2rdf.py プロジェクト: RPOD/CSV2RDF
 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
コード例 #9
0
    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
コード例 #10
0
    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())
コード例 #11
0
ファイル: server.py プロジェクト: gourneau/pritunl
 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
コード例 #12
0
    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
コード例 #13
0
 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
コード例 #14
0
    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
コード例 #15
0
    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
コード例 #16
0
ファイル: server.py プロジェクト: gourneau/pritunl
 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)
コード例 #17
0
    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
コード例 #18
0
    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
コード例 #19
0
	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
コード例 #20
0
    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"])
コード例 #21
0
    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
コード例 #22
0
    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,
                }))
コード例 #24
0
ファイル: csv2rdf.py プロジェクト: RPOD/CSV2RDF
 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]]
コード例 #25
0
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
コード例 #26
0
ファイル: server.py プロジェクト: gourneau/pritunl
    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()
コード例 #27
0
    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()
コード例 #28
0
# 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'
コード例 #29
0
def organization_create(name, company):
    orgs = Organization(name=name, company=company)
    orgs.create()