Source code for nycschools.cep

# NYC School Data
# Copyright (C) 2023. Matthew X. Curinga
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU AFFERO GENERAL PUBLIC LICENSE (the "License") as
# published by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the License for more details.
#
# You should have received a copy of the License along with this program.
# If not, see <http://www.gnu.org/licenses/>.
# ==============================================================================
import os.path
import re

import pandas as pd
import requests


from . import config, schools



[docs]def get_ceps(): stem = config.urls["cep"].url_stem df = schools.load_school_demographics() df = df[df.ay == df.ay.max()] out_dir = os.path.join(config.data_dir, "ceps") os.makedirs(out_dir, exist_ok=True) def download(dbn): url = f"{stem}cep_{dbn[2:]}.pdf" out = os.path.join(out_dir, f"{dbn}.pdf") if not os.path.exists(out): r = requests.get(url) if r.status_code == 200: with open(out, "wb") as f: f.write(r.content) return None else: print(f"Error downloading {dbn}: {r.status_code}") return dbn not_found = df.dbn.apply(download)