Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
ea4cdd2
Fixed Code for 3 files
kartik-s21 Apr 7, 2026
91d22a7
NameError Resolved
kartik-s21 Apr 8, 2026
c3084c4
Merge branch 'master' into code_fix_unenergy
kartik-s21 Apr 10, 2026
297374c
Merge branch 'master' into code_fix_unenergy
kartik-s21 Apr 12, 2026
34bb357
Merge pull request #1 from kartik-s21/code_fix_unenergy
kartik-s21 Apr 13, 2026
ee1e0b2
Merge branch 'datacommonsorg:master' into master
kartik-s21 Apr 30, 2026
8707bba
Merge branch 'datacommonsorg:master' into master
kartik-s21 May 5, 2026
5527dcd
Merge branch 'datacommonsorg:master' into master
kartik-s21 May 5, 2026
e41a8a7
Merge branch 'datacommonsorg:master' into master
kartik-s21 May 5, 2026
7f17aa3
Resolve merge conflict in energy process script
kartik-s21 May 17, 2026
59bcad2
Merge branch 'datacommonsorg:master' into master
kartik-s21 May 17, 2026
4fc439a
Merge branch 'datacommonsorg:master' into master
kartik-s21 May 28, 2026
9e5417c
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 2, 2026
cb72442
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 4, 2026
d9bb0a6
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 5, 2026
2515f96
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 7, 2026
c099907
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 10, 2026
1359560
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 12, 2026
0dfeecc
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 15, 2026
b09267f
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 17, 2026
776feff
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 18, 2026
4b06212
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jun 30, 2026
8bb164a
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 8, 2026
7ebbdce
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 13, 2026
7eb092e
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 20, 2026
2f9a79b
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 20, 2026
fb658bd
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 22, 2026
29db8fa
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 24, 2026
3026f30
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 29, 2026
7a815af
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 30, 2026
cb02292
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 31, 2026
305fb69
Merge branch 'datacommonsorg:master' into master
kartik-s21 Jul 31, 2026
a146ef9
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 3, 2026
c7ad25e
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 3, 2026
2b81be4
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 4, 2026
5a4e570
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 6, 2026
5b6dbc1
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 17, 2026
ac6de11
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 19, 2026
dd720d8
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 19, 2026
f44bb19
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 24, 2026
fe7698d
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 24, 2026
4472a5e
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 25, 2026
9aaa16b
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 26, 2026
7c56c23
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 27, 2026
49da787
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 28, 2026
7ea4414
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 30, 2026
d350d46
Merge branch 'datacommonsorg:master' into master
kartik-s21 Aug 31, 2026
abd1d2c
Merge branch 'datacommonsorg:master' into master
kartik-s21 Sep 1, 2026
2e248e4
Merge branch 'datacommonsorg:master' into master
kartik-s21 Sep 2, 2026
3a45487
Merge branch 'datacommonsorg:master' into master
kartik-s21 Sep 4, 2026
130fb5a
Merge branch 'datacommonsorg:master' into master
kartik-s21 Sep 6, 2026
f6b4f84
Merge branch 'datacommonsorg:master' into master
kartik-s21 Sep 8, 2026
f3fbbc7
Merge branch 'datacommonsorg:master' into master
kartik-s21 Sep 9, 2026
78845d9
Fix Mongolia_Employment duplicate Ulaanbaatar and missing references
kartik-s21 Sep 9, 2026
fd1a4e1
Use temporary file for in-place edit in run.sh to support macOS BSD sed
kartik-s21 Sep 10, 2026
083e077
Mongolia_Employment: Address code review findings for PR #2216
kartik-s21 Sep 10, 2026
63b90ba
Mongolia_Employment: Remove check_max_date_consistent and check_max_d…
kartik-s21 Sep 10, 2026
d398ef3
Mongolia_Employment: Restore validation_config.json to match origin/m…
kartik-s21 Sep 11, 2026
fafb0e5
Mongolia_Employment: Restore run.sh to match origin/master
kartik-s21 Sep 11, 2026
1047372
Merge branch 'master' into fix-mongolia-employment-missing-refs
balit-raibot Sep 11, 2026
f866945
Merge branch 'master' into fix-mongolia-employment-missing-refs
kartik-s21 Sep 17, 2026
e400e6d
Mongolia_Employment: Sort region codes and document exclusion of code…
kartik-s21 Sep 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions statvar_imports/mongolia_imports/common_download_script.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,25 @@
},
{
"url": "https://data.1212.mn/api/v1/en/NSO/Labour%2C%20business/Labour/DT_NSO_0400_002V5.px",
"filename": "registered_unemployed_by_education_level_region_gender_month.csv"
"filename": "registered_unemployed_by_education_level_region_gender_month.csv",
# PxWeb API does not support negative/exclusion filters, so we explicitly list
# all 27 valid region codes to exclude legacy duplicate code "511" (" Ulaanbaatar"),
# which collides with code "5" ("Ulaanbaatar") after whitespace stripping and has
# conflicting historical counts (2008-01 to 2011-09).
"query": [{
"code": "Бүс",
"selection": {
"filter": "item",
"values": [
"0",
"1", "181", "182", "183", "184", "185",
"2", "261", "262", "263", "264", "265", "267",
"3", "341", "342", "343", "344", "345", "346", "348",
"4", "421", "422", "423",
"5"
]
}
}]
Comment thread
kartik-s21 marked this conversation as resolved.
}
]

Expand Down Expand Up @@ -159,14 +177,14 @@ def main(_):
os.makedirs(demographics_dir, exist_ok=True)
for table in DEMOGRAPHICS_TABLES:
filepath = os.path.join(demographics_dir, table['filename'])
fetch_and_save_data(table['url'], filepath)
fetch_and_save_data(table['url'], filepath, table.get('query'))

# Education Data
education_dir = os.path.join(_SCRIPT_DIR, "mongolia_education", "input_files")
os.makedirs(education_dir, exist_ok=True)
for table in EDUCATION_TABLES:
filepath = os.path.join(education_dir, table['filename'])
fetch_and_save_data(table['url'], filepath)
fetch_and_save_data(table['url'], filepath, table.get('query'))

# Health Data
health_dir = os.path.join(_SCRIPT_DIR, "mongolia_health", "input_files")
Expand All @@ -180,7 +198,7 @@ def main(_):
os.makedirs(employment_dir, exist_ok=True)
for table in EMPLOYMENT_TABLES:
filepath = os.path.join(employment_dir, table['filename'])
fetch_and_save_data(table['url'], filepath)
fetch_and_save_data(table['url'], filepath, table.get('query'))

logging.info("All tasks completed")

Expand Down
45 changes: 45 additions & 0 deletions statvar_imports/mongolia_imports/common_download_script_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,51 @@ def test_main_processes_all_25_tables(self, mock_makedirs, mock_fetch):
common_download_script.main(None)
self.assertEqual(mock_fetch.call_count, 25)

def test_registered_unemployed_query_excludes_duplicate_ulaanbaatar(self):
"""Verifies registered unemployed table defines query excluding code 511."""
target_table = [
t
for t in common_download_script.EMPLOYMENT_TABLES
if t['filename']
== 'registered_unemployed_by_education_level_region_gender_month.csv'
][0]
self.assertIn('query', target_table)
query = target_table['query']
self.assertEqual(query[0]['code'], 'Бүс')
values = query[0]['selection']['values']
self.assertIn('5', values)
self.assertNotIn('511', values)
expected_values = [
"0",
"1", "181", "182", "183", "184", "185",
"2", "261", "262", "263", "264", "265", "267",
"3", "341", "342", "343", "344", "345", "346", "348",
"4", "421", "422", "423",
"5"
]
self.assertEqual(values, expected_values)

@mock.patch('common_download_script.fetch_and_save_data')
@mock.patch('os.makedirs')
def test_main_passes_query_for_registered_unemployed(
self, mock_makedirs, mock_fetch
):
"""Verifies that main() forwards query filter for registered unemployed."""
common_download_script.main(None)
unemployed_calls = [
c
for c in mock_fetch.call_args_list
if 'registered_unemployed_by_education_level_region_gender_month.csv'
in c[0][1]
]
self.assertEqual(len(unemployed_calls), 1)
args, kwargs = unemployed_calls[0]
query = args[2] if len(args) > 2 else kwargs.get('query')
self.assertIsNotNone(query)
self.assertEqual(query[0]['code'], 'Бүс')
self.assertNotIn('511', query[0]['selection']['values'])


if __name__ == '__main__':
unittest.main()

Loading