Пример #1
0
def create_sample_data():
    """creation of nodes and relationship between those"""
    # create skills
    python: Union[Skill, Any] = Skill(name="Python").save()
    fim_process = Skill(name="FIM Process").save()
    neo4j = Skill(name="neo4j").save()
    data_engineering = Skill(name="Data Engineering").save()
    data_visualization = Skill(name="Data Visualization").save()

    # create team members and connect to skill
    tom = TeamMember(first_name="Tom", last_name="Holiday").save()
    tom.skill.connect(python, {"year": 2019, "score": 4.0})
    tom.skill.connect(fim_process, {"year": 2019, "score": 5.0})
    tom.skill.connect(python, {"year": 2020, "score": 5.0})
    tom.skill.connect(fim_process, {"year": 2020, "score": 5.0})
    tran = TeamMember(first_name="Tran", last_name="Charismatic").save()
    tran.skill.connect(python, {"year": 2019, "score": 3.0})
    ron = TeamMember(first_name="Ron", last_name="Paradise").save()
    ron.skill.connect(neo4j, {"year": 2019, "score": 2.0})
    ron.skill.connect(python, {"year": 2019, "score": 3.0})
    ron.skill.connect(data_engineering, {"year": 2019, "score": 5.0})
    dev = TeamMember(first_name="Dev", last_name="Global").save()
    dev.skill.connect(data_engineering, {"year": 2019, "score": 4.0})
    dev.skill.connect(data_visualization, {"year": 2019, "score": 3.0})
    aqua = TeamMember(first_name="Aqua", last_name="Gloss").save()
    aqua.skill.connect(data_visualization, {"year": 2019, "score": 2.0})
    aqua.skill.connect(python, {"year": 2019, "score": 2.0})
    prem = TeamMember(first_name="Prem", last_name="Chopra").save()
    prem.skill.connect(fim_process, {"year": 2019, "score": 3.0})
    print("Created sample data ...")
Пример #2
0
def parse_skills(skills_json):
    skill_objs = []
    for skill in skills_json:
        # import ipdb; ipdb.set_trace()# BREAKPOINT)
        skill_objs.append(Skill(id=skill['id'], name=skill['name']))

    return skill_objs
Пример #3
0
def create_skill():

	try:
		if 'skill_name' not in request.json or 'skill_type' not in request.json:
			return (jsonify("skill_name and skill_type must be included in the request"),400)
		elif type(request.json["skill_name"]) != str or type(request.json["skill_type"]) != str:
			return (jsonify("skill_name and skill_type need to be in string format"),400)
		else:
			skill_name = request.json["skill_name"]
			skill_type = request.json["skill_type"]
		
		temp_list = ["Hard skill","Soft skill"]
		
		if skill_type not in temp_list:
			return(jsonify("Skill_type only accepts values 'Hard skill' or 'Soft skill', case sensitive"),400)
		else:
			valid_skill_name = Skill.query.filter_by(skill_name=skill_name).first()

			if valid_skill_name is not None:
				return(jsonify("The skill you are trying to add already exists"),400)
			else:
				new_entry = Skill(skill_name=skill_name,skill_type=skill_type)
				db.session.add(new_entry)
				db.session.commit()
		
			return (jsonify("{} has been added to the database".format(new_entry.skill_name)),200)
	
	except Exception as e:
		return(str(e),400)
Пример #4
0
def add_skills():
    name = request.get_json(force=True)['name']

    skill = Skill()
    skill.name = name

    db.session.add(skill)
    db.session.commit()
Пример #5
0
  def post(self):
    user = self.user_model
    employer = cgi.escape(self.request.get('employer')).strip()
    profession = cgi.escape(self.request.get('job')).strip()
    field = cgi.escape(self.request.get('field')).strip()
    tools = cgi.escape(self.request.get('tools'))
    specialty = cgi.escape(self.request.get('specialty')).strip()
    tool_list = tools.split(',')
    new_skills_count = 0 #for field and specialty
    for i in tool_list:
      if i != " ":
        i = i.lower().strip()
        skill_query = Skill.query(Skill.name == i).get()
        #don't add duplicate skill
        if skill_query == None:
          new_skill = Skill(name=i)
          new_skill.put()
          user.skills.append(new_skill.key)
          user.subscriptions.append(new_skill.name.replace(" ",""))
        else:
          user.skills.append(skill_query.key)
          user.subscriptions.append(skill_query.name.replace(" ", ""))
        new_skills_count += 1
    
    # Add new User Info
    if field != "":
      field_skill = Skill(name=field.lower())
      field_skill.put()
      user.skills.append(field_skill.key)
      new_skills_count += 1
    if specialty != "":
      specialty_skill = Skill(name=specialty.lower())
      specialty_skill.put()
      user.skills.append(specialty_skill.key)
      new_skills_count += 1
    if employer != " ":
      user.employer = employer
      user.lower_employer = employer.lower()
    if profession != " ":
      user.profession = profession
      user.lower_profession = profession.lower()

    user.skills_count += new_skills_count
    user.subscriptions.append(employer.lower().replace(" ", ""))
    user.put()
Пример #6
0
def resolve_create_skill(_, info, input):
    skill = Skill(**input)
    skill.id = str(uuid4())
    try:
        session.add(skill)
        session.commit()
    except Exception:
        session.rollback()
    return skill
Пример #7
0
def save_skill(request):
    data = request.json
    skill = Skill({
        "name": data["name"],
        "icon": data["icon"],
        "type": data["type"]
    })
    skill.m.save()
    skill = decode.decode_object_id(skill)
    return skill
Пример #8
0
def add_skill():
    if session['is_admin']:
        form = AddSkill()
        if form.validate_on_submit():
            skill_name = form.skill_name.data
            new_skill = Skill(skill_name)
            db.session.add(new_skill)
            db.session.commit()
            return redirect(url_for('list_skill'))
        return render_template('skill/addSkill.html', form=form)
    else:
        abort(404, description="You dont have access to this URL.")
Пример #9
0
def save_skill():
    try:
        cat_id = request.form['cat_id']
        title = request.form['title']
        # saving skill in db
        skill = Skill(cat_id, title)
        db.session.add(skill)
        db.session.commit()
    except Exception as exp:
        print "save_skill() :: Got Excetion: %s" % exp
        print(traceback.format_exc())
    return "Save Skill"
Пример #10
0
def handle_skill():
    """
    Create person and retrieve all persons
    """
    # POST request
   
    body = request.get_json()
    if body is None:
        raise APIException("You need to specify the request body as a json object", status_code=400)    
    skill1 = Skill(skill_type=body['skill_type'], user_id=body['user_id'])
    db.session.add(skill1)
    db.session.commit()
    return "ok", 200
Пример #11
0
def read_skill_csv():
    import csv
    with open('skill.csv', newline='') as csvfile:
        spamreader = csv.DictReader(csvfile)
        for row in spamreader:
            icon = get_skill_icon(row['Name'], row['Grade Value'],
                                  row['Type 1'], row['Float Value 1'])
            name = row['Name']
            name_kr = row['NameKr']
            description = row['Description']
            condition = row['Condition']
            if icon[0] > -1 or icon[1] > -1:
                icon_uri = f"i_skill{icon[0]}_{icon[1]}.png"
                skill = Skill(name, name_kr, description, condition, icon_uri)
                db_session.add(skill)
    db_session.commit()
Пример #12
0
def get_or_make_skill():
    if request.method == "GET":
        skills = session.query(Skill).all()
        if len(skills) == 0:
            return "No skills added yet, how sad!"
        return jsonify(skills=[skill.serialize for skill in skills])

    elif request.method == "POST":
        if request.json.get('name'):
            name = request.json.get('name').lower().strip()
        if request.json.get('level'):
            level = request.json.get('level')
        skill = Skill(name=name, level=level)
        session.add(skill)
        session.commit()
        return jsonify(skill.serialize), 201
Пример #13
0
    def restore_object(self, attrs, instance=None):
        classgroup = attrs.get('classgroup')
        name = attrs.get('name')

        attributes = ['grading_policy']
        user = self.context['request'].user

        if instance is None:
            instance = Skill(classgroup=classgroup,
                             name=alphanumeric_name(name),
                             display_name=name)
            instance.save()
        else:
            if not ClassGroupPermissions.is_teacher(classgroup, user):
                raise serializers.ValidationError(
                    "You do not have permission to modify this skill.")
            instance.name = alphanumeric_name(name)
            instance.display_name = name

        resources = self.context['request'].DATA.get('resources')
        if isinstance(resources, basestring):
            resources = [resources]
        if resources is not None:
            resources = [str(r).strip() for r in resources]
        else:
            resources = []

        skill_resources = []
        for (i, r) in enumerate(resources):
            if len(r) < 1:
                continue
            resource = Resource.objects.get(display_name=r,
                                            classgroup=classgroup)
            skill_resource, created = SkillResource.objects.get_or_create(
                resource=resource, skill=instance)
            skill_resource.priority = i
            skill_resource.save()
            skill_resources.append(skill_resource)

        for s in SkillResource.objects.filter(skill=instance):
            if s not in skill_resources:
                s.delete()

        instance = set_attributes(attributes, attrs, instance)
        return instance
Пример #14
0
def parse_teams(teams_json, session):
    team_objs = []
    for team in teams_json:
        new_team = Team(name=team['name'],
            idea_description=team['idea_description'], repository=team['repository'],
            need_more_members=team['need_more_members'], room=team['room'],
            place=team['place'])
        if team['technologies_full']:
            for skill in team['technologies_full']:
                try:
                    skill = session.query(Skill).filter(Skill.name == skill['name']).one()
                    # print(skill)
                    new_team.skill.append(skill)
                except Exception:
                    new_team.skill = [Skill(name=skill['name'])]
        team_objs.append(new_team)

    return team_objs
Пример #15
0
 def post(self):
   user = self.user_model
   skills = cgi.escape(self.request.get('skills'))
   new_skills = skills.split(',')
   new_skills = [skill for skill in new_skills if len(skill) >0]
   to_add_skills = []
   to_add_subscriptions = []
   for i in new_skills:
     i = i.lower().strip()
     skill_query = Skill.query(Skill.name == i).get()
     if skill_query == None: # Not in skills database
       new_skill = Skill(name=i)
       new_skill_key = new_skill.put()
       print "New Skill Added to Database"
       print new_skill.name
       to_add_subscriptions.append(new_skill.name.replace(" ", ""))
       to_add_skills.append(new_skill_key)
     else: # In skills database
       # Search user skills to see if exists
       flag = " "
       for skill in user.skills:
         skill = skill.get()
         if skill.name == i:
           flag = "exists"
           print skill.name
           print "already exists in user skills"
           break
       if flag != "exists":
         new_skill = Skill.query(Skill.name == i).get()
         print("Added to user skills:")
         print(new_skill.name)
         to_add_subscriptions.append(new_skill.name.replace(" ", ""))
         to_add_skills.append(new_skill.key)
     
     # Add to user skills
   user.skills.extend(to_add_skills)
   user.skills_count += len(to_add_skills)
     # Add to user subscriptions
   user.subscriptions.extend(to_add_subscriptions)
   time.sleep(1)
   user.put()
Пример #16
0
 def parse_skills(self, xml_skills):
     """
     Parse all active skill setups from the given xml
     :param xml_skills: root node containing the skills
     :return: list of skills
     """
     skills = []
     # parse skills and the supported gems
     for skill in xml_skills:
         gems = []
         for gem in skill:
             gems.append(
                 Gem(Parser.get_attrib_if_exists(gem, 'skillId'),
                     gem.attrib['nameSpec'], gem.attrib['level'],
                     gem.attrib['quality'],
                     Parser.get_attrib_if_exists(gem, 'skillPart'),
                     gem.attrib['enabled']))
         slot = Parser.get_attrib_if_exists(skill, 'slot')
         if slot:
             pass
         skills.append(Skill(gems, skill.attrib['mainActiveSkill'], slot))
     return skills
Пример #17
0
    def post_new_skill(jwt):
        try:
            # Get request data
            req_data = request.get_json()
            name = req_data.get('name')
            description = req_data.get('description', None)
            
            # Create new Skill instance
            new_skill = Skill(
                name = name,
                description = description
            )

            # Create new entry in database
            new_skill.insert()
            
            return jsonify({
                'success':True,
                'skill': new_skill.format()
            })
        except:
            db.session.rollback()
            abort(422)
Пример #18
0
    def parse(self, response):
        for hero in response.xpath(
                '//body//span[@class="character_icon"]/a/@href'):
            yield response.follow(
                'http://dota.wikia.com' + str(hero.extract()), self.parse)
            # yield {'heroe': 'http://dota.wikia.com' + str(hero.extract())}

        names = []
        lore = ''
        for skill in response.xpath('//body//div[@title="Dota 2"]/table/tr'):
            skill_names = skill.xpath('//td[1]/b/text()')
            for name in skill_names.extract():
                if 'Ability Name' not in name and name not in names:
                    names.append(name)

        descs = response.xpath(
            '//body//div[@title="Dota 2"]/table/tr/td[2]').extract()[1:]

        descs = [re.sub('<.*?>', '', x) for x in descs]
        self.log(descs)

        for lore_found in response.xpath('//body//div[@title="Lore"]'):
            value = lore_found.xpath('//p[2]').extract()
            lore = ' '.join(value).strip().replace('  ', '').replace('\n', '')
            if len(lore) < 20:
                value = lore_found.xpath('//p[3]').extract()
                lore = ' '.join(value).strip().replace('  ',
                                                       '').replace('\n', '')
            lore = re.sub('<.*?>', '', lore)

        hero_type = response.xpath(
            '//body//tr[contains(td, " Attributes")]').extract()[0]
        if 'Agility' in hero_type:
            hero_type = 'Agility'
        if 'Intelligence' in hero_type:
            hero_type = 'Intelligence'
        if 'Strength' in hero_type:
            hero_type = 'Strength'

        hero_name = response.url.split('/')[-1]

        hero = Hero()
        hero.lore = lore
        hero.name = hero_name
        hero.type = hero_type
        session.add(hero)
        session.commit()

        mongo_skills = []
        mongo_hero = {'lore': lore, 'name': hero_name, 'type': hero_type}

        i = 0
        for name in names:
            db_skill = Skill()
            db_skill.name = name
            db_skill.description = descs[i]
            db_skill.hero_id = hero.id
            session.add(db_skill)
            mongo_skills.append({
                'name': name,
                'description': descs[i],
            })
            i += 1

        mongo_hero['skills'] = mongo_skills
        heroes.insert_one(mongo_hero)

        session.commit()

        session.close()
Пример #19
0
from datetime import date

from models import Skill


web_engineering = Skill(
    'Web Engineering',
    'Django',
    'Angular',
    'Rails',
    'Ractive',
    'Chef',
    'Jenkins',
    'AWS',
    'Protractor'
)

print web_engineering.render()
Пример #20
0
from models import db, Task, Member, Skill
from task import app
# if "createdb" in sys.argv:
with app.app_context():
    db.create_all()
print("Database created!")

# elif "seeddb" in sys.argv:
with app.app_context():

    s1 = Skill(name="python", level=5)
    db.session.add(s1)
    s2 = Skill(name="finance", level=2)
    db.session.add(s2)
    s3 = Skill(name="sql", level=4)
    db.session.add(s3)
    s4 = Skill(name="critical thinking", level=3)
    db.session.add(s4)
    s5 = Skill(name="react", level=4)
    db.session.add(s5)
    s6 = Skill(name="scrum master", level=5)
    db.session.add(s6)
    s7 = Skill(name="sap consulting", level=5)
    db.session.add(s7)
    s8 = Skill(name="abap", level=5)
    db.session.add(s8)

    t1 = Task(name="Create Git", desc="We need to create a microservice for calulating the amount of materials that we will have to use in production. We have to use cloud environment for this task. It can use MachineLearning algorithms to utilize our past data. While working on this service we should focus on high-availability.", status="OPEN")
    db.session.add(t1)
    t2 = Task(name="Create UI", desc="Frontend with buttons", status="DONE")
    db.session.add(t2)
Пример #21
0
from sqlalchemy.orm import sessionmaker
from models import Base, Skill, Person
import json

engine = create_engine('sqlite://')
Session = sessionmaker(bind=engine)
session = Session()

# Setup of in memory database, from data.json if tables doesn´t exist
if not engine.dialect.has_table(engine.connect(), "skills"):
    Base.metadata.create_all(bind=engine)
    data = json.load(open('../datasource/data.json'))

    skills = data['skills']
    for skill in skills:
        new_skill = Skill(**skill)
        session.add(new_skill)
        session.commit()

    persons = data['persons']
    for person in persons:
        friends = []
        skills = []
        if 'friends' in person:
            person_ids = person.pop('friends')
            friends = session.query(Person).filter(
                Person.id.in_(person_ids)).all()
        if 'skills' in person:
            skill_ids = person.pop('skills')
            skills = session.query(Skill).filter(Skill.id.in_(skill_ids)).all()
Пример #22
0
keywords = [
    "python", "javascript", "html", "css", "ruby", "bash", "linux", "unix",
    "rest", "restful", "api", "aws", "cloud", "svn", "git", "junit", "testng",
    "java", "php", "agile", "scrum", "nosql", "mysql", "postgresdb",
    "postgres", "shell", "scripting", "mongodb", "puppet", "chef", "ansible",
    "nagios", "sumo", "nginx", "haproxy", "docker", "automation", "jvm",
    "scikit-learn", "tensorflow", "vue", "react", "angular", "webpack",
    "drupal", "gulp", "es6", "jquery", "sass", "scss", "less", "nodejs",
    "node.js", "graphql", "postgresql", "db2", "sql", "spring",
    "microservices", "kubernates", "swagger", "hadoop", "ci/cd", "django",
    "elasticsearch", "redis", "c++", "c", "hive", "spark", "apache", "mesos",
    "gcp", "jenkins", "azure", "allcloud", "amqp", "gcp", "objective-c",
    "kotlin"
    "kafka", "jira", "cassandra", "containers", "oop", "redis", "memcached",
    "redux", "bigquery", "bigtable", "hbase", "ec2", "s3", "gradle", ".net",
    "riak", "shell", "hudson", "maven", "j2ee", "oracle", "swarm", "sysbase",
    "dynamodb", "neo4", "allcloud", "grunt", "gulp", "apex", "rails", "mongo",
    "apis", "html5", "css3", "rails", "scala", "rasa", "soa", "soap",
    "microservices", "storm", "flink", "gitlab", "ajax", "micro-services",
    "oop", "saas", "struts", "jsp", "freemarker", "hibernate", "rlak",
    "solidity", "heroku", "ecs", "gce", "scripting", "perl", "c#", "golang",
    "xml", "newrelic", "grafana", "helm", "polymer", "closure", "backbone",
    "atlassian", "angularjs", "flask", "scikitlearn", "theano", "numpy",
    "scipy", "panda", "tableau", "gensim", "rpc", "graphql", "iaas", "paas",
    "azure", "es", "solr", "http", "iot", "kinesis", "lambda", "typescript",
    "gradle", "buck", "bazel"
]
for skill in keywords:
    new_skill = Skill(name=skill)
    new_skill.save()