本文整理汇总了Python中helpers.team_manipulator.TeamManipulator类的典型用法代码示例。如果您正苦于以下问题:Python TeamManipulator类的具体用法?Python TeamManipulator怎么用?Python TeamManipulator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TeamManipulator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get
def get(self):
df = DatafeedFms()
teams = df.getFmsTeamList()
TeamManipulator.createOrUpdate(teams)
template_values = {
"teams": teams
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/fms_team_list_get.html')
self.response.out.write(template.render(path, template_values))
示例2: get
def get(self, key_name):
# Combines data from three datafeeds with priorities:
# 1) DatafeedFMSAPI
# 2) DatafeedUsfirst (missing rookie year)
# 3) DatafeedUsfirstLegacy (has all info)
legacy_df = DatafeedUsfirstLegacy()
usfirst_df = DatafeedUsfirst()
fms_df = DatafeedFMSAPI('v2.0')
# Start with lowest priority
legacy_team = legacy_df.getTeamDetails(Team.get_by_id(key_name))
usfirst_team = usfirst_df.getTeamDetails(Team.get_by_id(key_name))
fms_details = fms_df.getTeamDetails(tba_config.MAX_YEAR, key_name)
# Separate out the multiple models returned from FMSAPI call
# Since we're only hitting one team at a time, the response won't
# ever be paginated so we can ignore the possibility
if fms_details and fms_details[0]:
models, more_pages = fms_details
fms_team, district_team, robot = models[0]
else:
fms_team = None
district_team = None
robot = None
team = None
if usfirst_team:
team = TeamManipulator.updateMergeBase(usfirst_team, legacy_team)
if fms_team:
team = TeamManipulator.updateMergeBase(fms_team, team)
if district_team:
district_team = DistrictTeamManipulator.createOrUpdate(district_team)
if robot:
robot = RobotManipulator.createOrUpdate(robot)
if team:
team = TeamManipulator.createOrUpdate(team)
success = True
else:
success = False
logging.warning("getTeamDetails failed for team: {}".format(key_name))
template_values = {
'key_name': key_name,
'team': team,
'success': success,
'district': district_team,
'robot': robot,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_team_details_get.html')
self.response.out.write(template.render(path, template_values))
示例3: get
def get(self, key_name):
existing_team = Team.get_by_id(key_name)
fms_df = DatafeedFMSAPI('v2.0')
df2 = DatafeedFIRSTElasticSearch()
year = datetime.date.today().year
fms_details = fms_df.getTeamDetails(year, key_name)
if fms_details:
team, district_team, robot = fms_details[0]
else:
team = None
district_team = None
robot = None
if team:
team = TeamManipulator.mergeModels(team, df2.getTeamDetails(existing_team))
else:
team = df2.getTeamDetails(existing_team)
if team:
team = TeamManipulator.createOrUpdate(team)
# Clean up junk district teams
# https://www.facebook.com/groups/moardata/permalink/1310068625680096/
dt_keys = DistrictTeam.query(
DistrictTeam.team == existing_team.key,
DistrictTeam.year == year).fetch(keys_only=True)
keys_to_delete = set()
for dt_key in dt_keys:
if not district_team or dt_key.id() != district_team.key.id():
keys_to_delete.add(dt_key)
DistrictTeamManipulator.delete_keys(keys_to_delete)
if district_team:
district_team = DistrictTeamManipulator.createOrUpdate(district_team)
if robot:
robot = RobotManipulator.createOrUpdate(robot)
template_values = {
'key_name': key_name,
'team': team,
'success': team is not None,
'district': district_team,
'robot': robot,
}
if 'X-Appengine-Taskname' not in self.request.headers: # Only write out if not in taskqueue
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_team_details_get.html')
self.response.out.write(template.render(path, template_values))
示例4: store_team
def store_team(data):
team = Team(id=data['key'])
team.team_number = data['team_number']
team.nickname = data['nickname']
team.name = data['name']
team.website = data['website']
team.rookie_year = data['rookie_year']
team.motto = data['motto']
team.city = data['city']
team.state_prov = data['state_prov']
team.country = data['country']
TeamManipulator.createOrUpdate(team)
return team
示例5: get
def get(self, key_name):
# Combines data from three datafeeds with priorities:
# 1) DatafeedFMSAPI (missing website)
# 2) DatafeedUsfirst (missing rookie year)
# 3) DatafeedUsfirstLegacy (has all info)
legacy_df = DatafeedUsfirstLegacy()
usfirst_df = DatafeedUsfirst()
fms_df = DatafeedFMSAPI('v2.0')
# Start with lowest priority
legacy_team = legacy_df.getTeamDetails(Team.get_by_id(key_name))
usfirst_team = usfirst_df.getTeamDetails(Team.get_by_id(key_name))
fms_details = fms_df.getTeamDetails(date.today().year, key_name)
if fms_details:
fms_team, district_team, robot = fms_details
else:
fms_team = None
district_team = None
robot = None
team = None
if usfirst_team:
team = TeamManipulator.updateMergeBase(usfirst_team, legacy_team)
if fms_team:
team = TeamManipulator.updateMergeBase(fms_team, team)
if district_team:
district_team = DistrictTeamManipulator.createOrUpdate(district_team)
if robot:
robot = RobotManipulator.createOrUpdate(robot)
if team:
team = TeamManipulator.createOrUpdate(team)
success = True
else:
success = False
logging.warning("getTeamDetails failed for team: {}".format(key_name))
template_values = {
'key_name': key_name,
'team': team,
'success': success,
'district': district_team,
'robot': robot,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_team_details_get.html')
self.response.out.write(template.render(path, template_values))
示例6: test_create_lots_of_teams
def test_create_lots_of_teams(self):
number = 500
teams = [Team(
id = "frc%s" % team_number,
team_number = team_number)
for team_number in range(number)]
TeamManipulator.createOrUpdate(teams)
team = Team.get_by_id("frc177")
self.assertEqual(team.key_name, "frc177")
self.assertEqual(team.team_number, 177)
team = Team.get_by_id("frc%s" % (number - 1))
self.assertEqual(team.key_name, "frc%s" % (number - 1))
self.assertEqual(team.team_number, number - 1)
示例7: get
def get(self, key_name):
df = DatafeedUsfirst()
legacy_df = DatafeedUsfirstLegacy()
team = df.getTeamDetails(Team.get_by_id(key_name))
if not team:
logging.warning("getTeamDetails with DatafeedUsfirst for event id {} failed. Retrying with DatafeedUsfirstLegacy.".format(key_name))
team = legacy_df.getTeamDetails(Team.get_by_id(key_name))
else:
legacy_team = legacy_df.getTeamDetails(Team.get_by_id(key_name))
if legacy_team is not None:
team.rookie_year = legacy_team.rookie_year # only available on legacy df
if team:
team = TeamManipulator.createOrUpdate(team)
success = True
else:
success = False
template_values = {
'key_name': key_name,
'team': team,
'success': success,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_team_details_get.html')
self.response.out.write(template.render(path, template_values))
示例8: get
def get(self, year, first_eid):
datafeed = DatafeedUsfirst()
event = datafeed.getEventDetails(int(year), first_eid)
event = EventManipulator.createOrUpdate(event)
teams = datafeed.getEventTeams(int(year), first_eid)
teams = TeamManipulator.createOrUpdate(teams)
if teams:
event_teams = [EventTeam(
id = event.key.id() + "_" + team.key.id(),
event = event.key,
team = team.key,
year = event.year)
for team in teams]
event_teams = EventTeamManipulator.createOrUpdate(event_teams)
else:
event_teams = []
template_values = {
'event': event,
'event_teams': event_teams,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_event_details_get.html')
self.response.out.write(template.render(path, template_values))
示例9: get
def get(self, event_key):
event = Event.get_by_id(event_key)
team_ids = set()
# Add teams from Matches
for match in Match.query(Match.event == event.key).fetch(1000):
for team in match.team_key_names:
team_ids.add(team)
teams = TeamManipulator.createOrUpdate([Team(
id = team_id,
team_number = int(team_id[3:]))
for team_id in team_ids])
if teams:
event_teams = EventTeamManipulator.createOrUpdate([EventTeam(
id = event_key + "_" + team.key.id(),
event = event.key,
team = team.key,
year = event.year)
for team in teams])
else:
event_teams = None
template_values = {
'event_teams': event_teams,
}
path = os.path.join(os.path.dirname(__file__), '../templates/math/eventteam_update_do.html')
self.response.out.write(template.render(path, template_values))
示例10: scrapeTpids
def scrapeTpids(self, skip, year):
"""
Searches the FIRST list of all teams for tpids, writing in the datastore.
Also creates new Team objects.
This code is modified from Pat Fairbank's frclinks source and modified
to fit in the TBA framework. He has given us permission to borrow
his code.
"""
while 1:
logging.info("Fetching 250 teams based on %s data, skipping %s" % (year, skip))
tpids_dict = dict()
# FIRST is now checking the 'Referer' header for the string 'usfirst.org'.
# See https://github.com/patfair/frclinks/commit/051bf91d23ca0242dad5b1e471f78468173f597f
teamList = urlfetch.fetch(self.TPID_URL_PATTERN % (year, skip), headers={'Referrer': 'usfirst.org'}, deadline=10)
teamResults = self.teamRe.findall(teamList.content)
for teamResult in teamResults:
teamNumber = self.teamNumberRe.findall(teamResult)[0]
teamTpid = self.tpidRe.findall(teamResult)[0]
logging.info("Team %s TPID was %s in year %s." % (teamNumber, teamTpid, year))
tpids_dict[teamNumber] = teamTpid
teams = [Team(
team_number=int(team_number),
first_tpid=int(tpids_dict[team_number]),
first_tpid_year=int(year),
id="frc" + str(team_number)
)
for team_number in tpids_dict]
TeamManipulator.createOrUpdate(teams)
skip = int(skip) + 250
# Handle degenerate cases.
if skip > 10000:
return None
if len(self.lastPageRe.findall(teamList.content)) == 0:
return None
示例11: post
def post(self, event_key_id):
self._require_admin()
event = Event.get_by_id(event_key_id)
teams_csv = self.request.get('teams_csv')
team_numbers = CSVTeamsParser.parse(teams_csv)
event_teams = []
teams = []
for team_number in team_numbers:
event_teams.append(EventTeam(id=event.key.id() + '_frc{}'.format(team_number),
event=event.key,
team=ndb.Key(Team, 'frc{}'.format(team_number)),
year=event.year))
teams.append(Team(id='frc{}'.format(team_number),
team_number=int(team_number)))
EventTeamManipulator.createOrUpdate(event_teams)
TeamManipulator.createOrUpdate(teams)
self.redirect("/admin/event/" + event.key_name)
示例12: get
def get(self, key_name):
existing_team = Team.get_by_id(key_name)
fms_df = DatafeedFMSAPI('v2.0')
df2 = DatafeedFIRSTElasticSearch()
fms_details = fms_df.getTeamDetails(datetime.date.today().year, key_name)
if fms_details:
team, district_team, robot = fms_details[0]
else:
team = None
district_team = None
robot = None
if team:
team = TeamManipulator.mergeModels(team, df2.getTeamDetails(existing_team))
else:
team = df2.getTeamDetails(existing_team)
if team:
team = TeamManipulator.createOrUpdate(team)
if district_team:
district_team = DistrictTeamManipulator.createOrUpdate(district_team)
if robot:
robot = RobotManipulator.createOrUpdate(robot)
template_values = {
'key_name': key_name,
'team': team,
'success': team is not None,
'district': district_team,
'robot': robot,
}
if 'X-Appengine-Taskname' not in self.request.headers: # Only write out if not in taskqueue
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_team_details_get.html')
self.response.out.write(template.render(path, template_values))
示例13: get
def get(self, event_key):
teams, event_teams, et_keys_to_del = EventTeamUpdater.update(event_key)
teams = TeamManipulator.createOrUpdate(teams)
if teams:
event_teams = EventTeamManipulator.createOrUpdate(event_teams)
if et_keys_to_del:
EventTeamManipulator.delete_keys(et_keys_to_del)
template_values = {"event_teams": event_teams, "deleted_event_teams_keys": et_keys_to_del}
path = os.path.join(os.path.dirname(__file__), "../templates/math/eventteam_update_do.html")
self.response.out.write(template.render(path, template_values))
示例14: get
def get(self, event_key):
datafeed = DatafeedFMSAPI('v2.0', save_response=True)
event = Event.get_by_id(event_key)
awards = datafeed.getAwards(event)
if event and event.remap_teams:
EventHelper.remapteams_awards(awards, event.remap_teams)
new_awards = AwardManipulator.createOrUpdate(awards)
if new_awards is None:
new_awards = []
elif type(new_awards) != list:
new_awards = [new_awards]
# create EventTeams
team_ids = set()
for award in new_awards:
for team in award.team_list:
team_ids.add(team.id())
teams = TeamManipulator.createOrUpdate([Team(
id=team_id,
team_number=int(team_id[3:]))
for team_id in team_ids])
if teams:
if type(teams) is not list:
teams = [teams]
event_teams = EventTeamManipulator.createOrUpdate([EventTeam(
id=event_key + "_" + team.key.id(),
event=event.key,
team=team.key,
year=event.year)
for team in teams])
template_values = {
'awards': new_awards,
}
if 'X-Appengine-Taskname' not in self.request.headers: # Only write out if not in taskqueue
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_awards_get.html')
self.response.out.write(template.render(path, template_values))
示例15: resetAll
def resetAll(self, flushed=False):
response = self.testapp.get('/api/v2/events/2010', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
EventManipulator.createOrUpdate(self.event_2010sc_1)
if flushed:
self.assertEqual(memcache.get(self.eventlist_2010_cache_key), None)
TeamManipulator.createOrUpdate(self.team_frc1_1)
TeamManipulator.createOrUpdate(self.team_frc2_1)
EventTeamManipulator.createOrUpdate(self.eventteam_2010sc_frc1)
EventTeamManipulator.createOrUpdate(self.eventteam_2010sc_frc2)
MatchManipulator.createOrUpdate(self.match1_1)
AwardManipulator.createOrUpdate(self.award1_1)
response = self.testapp.get('/api/v2/events/2010', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
if flushed:
self.assertEqual(memcache.get(self.event_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventteams_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventmatches_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventstats_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventrankings_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventawards_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.team_frc1_cache_key), None)
self.assertEqual(memcache.get(self.team_frc2_cache_key), None)
response = self.testapp.get('/api/v2/event/2010sc', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
self.assertNotEqual(memcache.get(self.event_2010sc_cache_key), None)
if flushed:
self.assertEqual(memcache.get(self.eventteams_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventmatches_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventstats_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventrankings_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventawards_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.team_frc1_cache_key), None)
self.assertEqual(memcache.get(self.team_frc2_cache_key), None)
response = self.testapp.get('/api/v2/event/2010sc/teams', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
self.assertNotEqual(memcache.get(self.event_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventteams_2010sc_cache_key), None)
if flushed:
self.assertEqual(memcache.get(self.eventmatches_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventstats_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventrankings_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventawards_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.team_frc1_cache_key), None)
self.assertEqual(memcache.get(self.team_frc2_cache_key), None)
response = self.testapp.get('/api/v2/event/2010sc/matches', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
self.assertNotEqual(memcache.get(self.event_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventteams_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventmatches_2010sc_cache_key), None)
if flushed:
self.assertEqual(memcache.get(self.eventstats_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventrankings_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventawards_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.team_frc1_cache_key), None)
self.assertEqual(memcache.get(self.team_frc2_cache_key), None)
response = self.testapp.get('/api/v2/event/2010sc/stats', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
self.assertNotEqual(memcache.get(self.event_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventteams_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventmatches_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventstats_2010sc_cache_key), None)
if flushed:
self.assertEqual(memcache.get(self.eventrankings_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.eventawards_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.team_frc1_cache_key), None)
self.assertEqual(memcache.get(self.team_frc2_cache_key), None)
response = self.testapp.get('/api/v2/event/2010sc/rankings', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
self.assertNotEqual(memcache.get(self.event_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventteams_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventmatches_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventstats_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventrankings_2010sc_cache_key), None)
if flushed:
self.assertEqual(memcache.get(self.eventawards_2010sc_cache_key), None)
self.assertEqual(memcache.get(self.team_frc1_cache_key), None)
self.assertEqual(memcache.get(self.team_frc2_cache_key), None)
response = self.testapp.get('/api/v2/event/2010sc/awards', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
self.assertNotEqual(memcache.get(self.event_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventteams_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventmatches_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventstats_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventrankings_2010sc_cache_key), None)
self.assertNotEqual(memcache.get(self.eventawards_2010sc_cache_key), None)
if flushed:
self.assertEqual(memcache.get(self.team_frc1_cache_key), None)
self.assertEqual(memcache.get(self.team_frc2_cache_key), None)
response = self.testapp.get('/api/v2/team/frc1/2010', headers={'X-TBA-App-Id': 'tba-tests:api-cache-clear-test:v01'})
self.assertNotEqual(memcache.get(self.eventlist_2010_cache_key), None)
#.........这里部分代码省略.........