hockey-blast-common-lib 0.1.46__py3-none-any.whl → 0.1.48__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,18 +9,18 @@ from hockey_blast_common_lib.aggregate_goalie_stats import run_aggregate_goalie_
9
9
  from hockey_blast_common_lib.aggregate_referee_stats import run_aggregate_referee_stats
10
10
 
11
11
  if __name__ == "__main__":
12
- print("Running aggregate_human_stats...")
13
- run_aggregate_human_stats()
14
- print("Finished running aggregate_human_stats\n")
15
-
16
- print("Running aggregate_skater_stats...")
12
+ print("Running aggregate_skater_stats...", flush=True)
17
13
  run_aggregate_skater_stats()
18
14
  print("Finished running aggregate_skater_stats\n")
19
15
 
20
- print("Running aggregate_goalie_stats...")
16
+ print("Running aggregate_goalie_stats...", flush=True)
21
17
  run_aggregate_goalie_stats()
22
18
  print("Finished running aggregate_goalie_stats\n")
23
19
 
24
- print("Running aggregate_referee_stats...")
20
+ print("Running aggregate_referee_stats...", flush=True)
25
21
  run_aggregate_referee_stats()
26
22
  print("Finished running aggregate_referee_stats\n")
23
+
24
+ print("Running aggregate_human_stats...", flush=True)
25
+ run_aggregate_human_stats()
26
+ print("Finished running aggregate_human_stats\n")
@@ -0,0 +1,53 @@
1
+ import time
2
+ import json
3
+ import os
4
+ import requests
5
+ from bs4 import BeautifulSoup
6
+
7
+ def probe_leagues_and_seasons(min_league, max_league, min_season, max_season, interval_seconds, output_file):
8
+ results = []
9
+
10
+ for league_id in range(min_league, max_league + 1):
11
+ league_data = {"league": league_id, "seasons": set()}
12
+ for season_id in range(min_season, max_season + 1):
13
+ url = f"https://stats.sharksice.timetoscore.com/display-schedule.php?stat_class=1&league={league_id}&season={season_id}"
14
+ print(f"Probing URL: {url}")
15
+
16
+ try:
17
+ response = requests.get(url, timeout=10)
18
+ response.raise_for_status()
19
+ schedule_html = response.text
20
+
21
+ # Parse the schedule page to find all game links
22
+ soup = BeautifulSoup(schedule_html, "html.parser")
23
+ tables = soup.find_all('table')
24
+ top_level_tables = [table for table in tables if table.find_parent('table') is None]
25
+
26
+ if len(top_level_tables) > 0:
27
+ print(f"Data found for league {league_id}, season {season_id}")
28
+ league_data["seasons"].add(season_id)
29
+
30
+ # Save the fetched HTML to a subfolder
31
+ folder_path = os.path.join("schedules", f"league={league_id}", f"season={season_id}")
32
+ os.makedirs(folder_path, exist_ok=True)
33
+ with open(os.path.join(folder_path, "schedule.html"), "w") as f:
34
+ f.write(schedule_html)
35
+ else:
36
+ print(f"No data for league {league_id}, season {season_id}")
37
+ except Exception as e:
38
+ print(f"Error probing URL {url}: {e}")
39
+
40
+ # Wait for the specified interval before the next request
41
+ time.sleep(interval_seconds)
42
+
43
+ if league_data["seasons"]:
44
+ league_data["seasons"] = list(league_data["seasons"]) # Convert set to list for JSON serialization
45
+ results.append(league_data)
46
+
47
+ # Save results to a JSON file
48
+ with open(output_file, "w") as f:
49
+ json.dump(results, f, indent=4)
50
+ print(f"Results saved to {output_file}")
51
+
52
+ # Example usage
53
+ probe_leagues_and_seasons(min_league=1, max_league=70, min_season=1, max_season=70, interval_seconds=9, output_file="leagues_seasons_2_70_1_70.json")
@@ -18,7 +18,7 @@ class Division(db.Model):
18
18
  league_number = db.Column(db.Integer) # TODO: Deprecate usage and remove (get this info through Season->League)
19
19
  season_number = db.Column(db.Integer) # TODO: Deprecate usage and remove (get this info from Season by season_id)
20
20
  season_id = db.Column(db.Integer, db.ForeignKey('seasons.id'))
21
- level = db.Column(db.String(100)) # Obsolete, use skill_id instead
21
+ level = db.Column(db.String(100)) # Used to display original level name, however level_id may combine some levels with different name!
22
22
  level_id = db.Column(db.Integer, db.ForeignKey('levels.id')) # New field
23
23
  org_id = db.Column(db.Integer, db.ForeignKey('organizations.id'), nullable=False)
24
24
  __table_args__ = (
@@ -159,7 +159,7 @@ class Level(db.Model):
159
159
  id = db.Column(db.Integer, primary_key=True)
160
160
  org_id = db.Column(db.Integer, db.ForeignKey('organizations.id'), nullable=False)
161
161
  skill_value = db.Column(db.Float) # A number from 0 (NHL) to 100 (pedestrian)
162
- level_name = db.Column(db.String(100), unique=True)
162
+ level_name = db.Column(db.String(100))
163
163
  level_alternative_name = db.Column(db.String(100))
164
164
  is_seed = db.Column(db.Boolean, nullable=True, default=False) # New field
165
165
  skill_propagation_sequence = db.Column(db.Integer, nullable=True, default=-1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hockey-blast-common-lib
3
- Version: 0.1.46
3
+ Version: 0.1.48
4
4
  Summary: Common library for shared functionality and DB models
5
5
  Author: Pavel Kletskov
6
6
  Author-email: kletskov@gmail.com
@@ -1,5 +1,5 @@
1
1
  hockey_blast_common_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- hockey_blast_common_lib/aggregate_all_stats.py,sha256=MUjT23mdOMfCTx-kRSY-LGrLHZ9HNlR6OMqv5KLdzR4,1056
2
+ hockey_blast_common_lib/aggregate_all_stats.py,sha256=2bOj2BW0k3ZPQR1NH04upnkIfO9SastzTz7XwO3ujYo,1104
3
3
  hockey_blast_common_lib/aggregate_goalie_stats.py,sha256=FcYL40NP0-sPY7UI7F8Ny_RaPKz3mfkmhQnPVbeRtOc,12178
4
4
  hockey_blast_common_lib/aggregate_human_stats.py,sha256=VmUAMbqtWRPFM64V8ECJ3eJjRXvblNbeVU9HFYNoPp0,23898
5
5
  hockey_blast_common_lib/aggregate_referee_stats.py,sha256=FszWLTygddDQNcUgbmevQ-eGPrW8Y0nXpRvUluPRKnU,11920
@@ -7,8 +7,9 @@ hockey_blast_common_lib/aggregate_skater_stats.py,sha256=FBc6enJNnFXYg7mVPiXssle
7
7
  hockey_blast_common_lib/assign_skater_skill.py,sha256=p-0fbodGpM8BCjKHDpxNb7BH2FcIlBsJwON844KNrUY,1817
8
8
  hockey_blast_common_lib/db_connection.py,sha256=HvPxDvOj7j5H85RfslGvHVNevfg7mKCd0syJ6NX21mU,1890
9
9
  hockey_blast_common_lib/dump_sample_db.sh,sha256=MY3lnzTXBoWd76-ZlZr9nWsKMEVgyRsUn-LZ2d1JWZs,810
10
- hockey_blast_common_lib/hockey_blast_sample_backup.sql.gz,sha256=EqpH7UlG-5L4FXnMDNpafIZbwUpDPPr3uIIJipBV880,1256779
11
- hockey_blast_common_lib/models.py,sha256=xne38KwdBDcWvzdLyU6toozqkuatB9wiQhyiQ4xvAgU,16413
10
+ hockey_blast_common_lib/find_leagues_seasons.py,sha256=abjzVsnaXXCLhzbTy7-6pDV_0LvXCJexuZVdIvc_DbI,2373
11
+ hockey_blast_common_lib/hockey_blast_sample_backup.sql.gz,sha256=aueh_CTlfYKoztGlzGVWRgaEYQ4GsyMmmYOxxkdDHIE,1256769
12
+ hockey_blast_common_lib/models.py,sha256=nbJjypa2OBO5_fwjAbWVgBp4WDCuE-RtaELzJ9cvqB4,16468
12
13
  hockey_blast_common_lib/options.py,sha256=ejwDM2LVzeARlE5UwUNDt2Zzolat7OkXddhOZpzn1bw,823
13
14
  hockey_blast_common_lib/restore_sample_db.sh,sha256=7W3lzRZeu9zXIu1Bvtnaw8EHc1ulHmFM4mMh86oUQJo,2205
14
15
  hockey_blast_common_lib/skills_in_divisions.py,sha256=m-UEwMwn1KM7wOYvDstgsOEeH57M9V6yrkBoghzGYKE,7005
@@ -17,7 +18,7 @@ hockey_blast_common_lib/stats_models.py,sha256=NWigeIowIJU6o1Sk1cP08kEy4t594LZpe
17
18
  hockey_blast_common_lib/stats_utils.py,sha256=DXsPO4jw8XsdRUN46TGF_IiBAfz3GCIVBswCGp5ELDk,284
18
19
  hockey_blast_common_lib/utils.py,sha256=Sy5Pk40Tk3gsMrhMsUMlBD7i7jiVZmWLUBc94qI3zOA,5235
19
20
  hockey_blast_common_lib/wsgi.py,sha256=7LGUzioigviJp-EUhSEaQcd4jBae0mxbkyBscQfZhlc,730
20
- hockey_blast_common_lib-0.1.46.dist-info/METADATA,sha256=mcYIRcZadOh_NKp-NXSx6rn5FZ2jEDNApYB8IfaUmHI,318
21
- hockey_blast_common_lib-0.1.46.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
22
- hockey_blast_common_lib-0.1.46.dist-info/top_level.txt,sha256=wIR4LIkE40npoA2QlOdfCYlgFeGbsHR8Z6r0h46Vtgc,24
23
- hockey_blast_common_lib-0.1.46.dist-info/RECORD,,
21
+ hockey_blast_common_lib-0.1.48.dist-info/METADATA,sha256=tHKz1KFr43yKZLDk8zSEknKFrQeGRC7RJpRV2SfXu_o,318
22
+ hockey_blast_common_lib-0.1.48.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
23
+ hockey_blast_common_lib-0.1.48.dist-info/top_level.txt,sha256=wIR4LIkE40npoA2QlOdfCYlgFeGbsHR8Z6r0h46Vtgc,24
24
+ hockey_blast_common_lib-0.1.48.dist-info/RECORD,,