David Pomerenke commited on
Commit
566c57e
·
1 Parent(s): d91b022

Speed things up

Browse files
evals/backend.py CHANGED
@@ -32,16 +32,15 @@ async def data(request: Request):
32
  data = json.loads(body)
33
  selected_languages = data.get("selectedLanguages", {})
34
  df = results
35
- if selected_languages:
36
- df = df[df["bcp_47"].isin(l["bcp_47"] for l in selected_languages)]
37
-
38
  _, lang_results, model_results, task_results = aggregate(df)
39
- print(lang_results)
40
  # lang_results = pd.merge(languages, lang_results, on="bcp_47", how="outer")
41
- model_table = make_model_table(model_results, models)
42
  language_table = make_language_table(lang_results, languages)
43
  datasets_df = pd.read_json("data/datasets.json")
44
  countries = make_country_table(language_table)
 
 
 
 
45
  all_tables = {
46
  "model_table": serialize(model_table),
47
  "language_table": serialize(language_table),
 
32
  data = json.loads(body)
33
  selected_languages = data.get("selectedLanguages", {})
34
  df = results
 
 
 
35
  _, lang_results, model_results, task_results = aggregate(df)
 
36
  # lang_results = pd.merge(languages, lang_results, on="bcp_47", how="outer")
 
37
  language_table = make_language_table(lang_results, languages)
38
  datasets_df = pd.read_json("data/datasets.json")
39
  countries = make_country_table(language_table)
40
+ if selected_languages:
41
+ # the filtering is only applied for the model table
42
+ df = df[df["bcp_47"].isin(lang["bcp_47"] for lang in selected_languages)]
43
+ model_table = make_model_table(model_results, models)
44
  all_tables = {
45
  "model_table": serialize(model_table),
46
  "language_table": serialize(language_table),
evals/countries.py CHANGED
@@ -1,12 +1,14 @@
1
  import re
2
  import xml.etree.ElementTree as ET
3
  from collections import defaultdict
4
-
5
  import pandas as pd
6
  from language_data.population_data import LANGUAGE_SPEAKING_POPULATION
7
  from language_data.util import data_filename
8
 
 
9
 
 
10
  def get_population_data():
11
  filename = data_filename("supplementalData.xml")
12
  root = ET.fromstring(open(filename).read())
@@ -28,7 +30,7 @@ def population(bcp_47):
28
  }
29
  return items
30
 
31
-
32
  def make_country_table(language_table):
33
  countries = defaultdict(list)
34
  for lang in language_table.itertuples():
 
1
  import re
2
  import xml.etree.ElementTree as ET
3
  from collections import defaultdict
4
+ from joblib.memory import Memory
5
  import pandas as pd
6
  from language_data.population_data import LANGUAGE_SPEAKING_POPULATION
7
  from language_data.util import data_filename
8
 
9
+ cache = Memory(location=".cache", verbose=0).cache
10
 
11
+ @cache
12
  def get_population_data():
13
  filename = data_filename("supplementalData.xml")
14
  root = ET.fromstring(open(filename).read())
 
30
  }
31
  return items
32
 
33
+ @cache
34
  def make_country_table(language_table):
35
  countries = defaultdict(list)
36
  for lang in language_table.itertuples():
frontend/src/components/LanguageTable.js CHANGED
@@ -124,7 +124,7 @@ const LanguageTable = ({ data, selectedLanguages, setSelectedLanguages }) => {
124
 
125
  return (
126
  <DataTable
127
- value={data}
128
  header={<>Languages</>}
129
  sortField='speakers'
130
  removableSort
@@ -134,9 +134,11 @@ const LanguageTable = ({ data, selectedLanguages, setSelectedLanguages }) => {
134
  selection={selectedLanguages}
135
  onSelectionChange={e => setSelectedLanguages(e.value)}
136
  frozenValue={selectedLanguages}
 
137
  scrollable
138
  scrollHeight='600px'
139
  id='language-table'
 
140
  >
141
  <Column selectionMode="multiple" headerStyle={{ width: '3rem' }} />
142
  <Column
 
124
 
125
  return (
126
  <DataTable
127
+ value={data.filter(item => !selectedLanguages.some(l => l.bcp_47 === item.bcp_47))}
128
  header={<>Languages</>}
129
  sortField='speakers'
130
  removableSort
 
134
  selection={selectedLanguages}
135
  onSelectionChange={e => setSelectedLanguages(e.value)}
136
  frozenValue={selectedLanguages}
137
+ virtualScrollerOptions={{ itemSize: 50 }}
138
  scrollable
139
  scrollHeight='600px'
140
  id='language-table'
141
+ style={{ width: '800px' }}
142
  >
143
  <Column selectionMode="multiple" headerStyle={{ width: '3rem' }} />
144
  <Column