diff --git a/data/data-pipeline/data_pipeline/etl/constants.py b/data/data-pipeline/data_pipeline/etl/constants.py index c247cf05..454f57dc 100644 --- a/data/data-pipeline/data_pipeline/etl/constants.py +++ b/data/data-pipeline/data_pipeline/etl/constants.py @@ -59,6 +59,11 @@ DATASET_LIST = [ "module_dir": "doe_energy_burden", "class_name": "DOEEnergyBurden", }, + { + "name": "geocorr", + "module_dir": "geocorr", + "class_name": "GeoCorrETL", + }, ] CENSUS_INFO = { "name": "census", diff --git a/data/data-pipeline/data_pipeline/etl/score/etl_score.py b/data/data-pipeline/data_pipeline/etl/score/etl_score.py index a5b004a2..5102215d 100644 --- a/data/data-pipeline/data_pipeline/etl/score/etl_score.py +++ b/data/data-pipeline/data_pipeline/etl/score/etl_score.py @@ -80,6 +80,9 @@ class ScoreETL(ExtractTransformLoad): self.SCORE_CSV_PATH: Path = self.DATA_PATH / "score" / "csv" / "full" + # Urban Rural Map + self.URBAN_HERUISTIC_FIELD_NAME = "Urban Heuristic Flag" + # dataframes self.df: pd.DataFrame self.ejscreen_df: pd.DataFrame @@ -91,6 +94,7 @@ class ScoreETL(ExtractTransformLoad): self.cdc_life_expectancy_df: pd.DataFrame self.doe_energy_burden_df: pd.DataFrame self.national_risk_index_df: pd.DataFrame + self.geocorr_urban_rural_df: pd.DataFrame def data_sets(self) -> list: # Define a named tuple that will be used for each data set input. @@ -197,6 +201,11 @@ class ScoreETL(ExtractTransformLoad): renamed_field=self.RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_FIELD_NAME, bucket=None, ), + DataSet( + input_field=self.URBAN_HERUISTIC_FIELD_NAME, + renamed_field=self.URBAN_HERUISTIC_FIELD_NAME, + bucket=None, + ), # The following data sets have buckets, because they're used in Score C DataSet( input_field="CANCER", @@ -386,6 +395,16 @@ class ScoreETL(ExtractTransformLoad): low_memory=False, ) + # Load GeoCorr Urban Rural Map + geocorr_urban_rural_csv = ( + self.DATA_PATH / "dataset" / "geocorr" / "usa.csv" + ) + self.geocorr_urban_rural_df = pd.read_csv( + geocorr_urban_rural_csv, + dtype={self.GEOID_TRACT_FIELD_NAME: "string"}, + low_memory=False, + ) + def _join_cbg_dfs(self, census_block_group_dfs: list) -> pd.DataFrame: logger.info("Joining Census Block Group dataframes") census_block_group_df = functools.reduce( @@ -619,6 +638,15 @@ class ScoreETL(ExtractTransformLoad): df["Score G"] = df["Score G (communities)"].astype(int) df["Score G (percentile)"] = df["Score G"] + df["Score H (communities)"] = ( + (df[self.MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD_NAME] < 0.8) + & (df[self.HIGH_SCHOOL_FIELD_NAME] > high_school_cutoff_threshold_2) + ) | ( + (df[self.POVERTY_LESS_THAN_200_FPL_FIELD_NAME] > 0.40) + & (df[self.HIGH_SCHOOL_FIELD_NAME] > high_school_cutoff_threshold_2) + ) + df["Score H"] = df["Score H (communities)"].astype(int) + df["Score I (communities)"] = ( (df[self.MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD_NAME] < 0.7) & (df[self.HIGH_SCHOOL_FIELD_NAME] > high_school_cutoff_threshold) @@ -629,20 +657,10 @@ class ScoreETL(ExtractTransformLoad): df["Score I"] = df["Score I (communities)"].astype(int) df["Score I (percentile)"] = df["Score I"] - df["Score H (communities)"] = ( - (df[self.MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD_NAME] < 0.8) - & (df[self.HIGH_SCHOOL_FIELD_NAME] > high_school_cutoff_threshold_2) - ) | ( - (df[self.POVERTY_LESS_THAN_200_FPL_FIELD_NAME] > 0.40) - & (df[self.HIGH_SCHOOL_FIELD_NAME] > high_school_cutoff_threshold_2) - ) - df["Score H"] = df["Score H (communities)"].astype(int) - df["NMTC (communities)"] = ( (df[self.MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD_NAME] < 0.8) ) | (df[self.POVERTY_LESS_THAN_100_FPL_FIELD_NAME] > 0.20) - df["Score K (communities)"] = ( (df[self.MEDIAN_INCOME_AS_PERCENT_OF_AMI_FIELD_NAME] < 0.8) & (df[self.HIGH_SCHOOL_FIELD_NAME] > high_school_cutoff_threshold_2) @@ -673,6 +691,7 @@ class ScoreETL(ExtractTransformLoad): self.cdc_places_df, self.cdc_life_expectancy_df, self.doe_energy_burden_df, + self.geocorr_urban_rural_df, ] census_tract_df = self._join_tract_dfs(census_tract_dfs) diff --git a/data/data-pipeline/data_pipeline/etl/sources/geocorr/README.md b/data/data-pipeline/data_pipeline/etl/sources/geocorr/README.md new file mode 100644 index 00000000..e69de29b diff --git a/data/data-pipeline/data_pipeline/etl/sources/geocorr/__init__.py b/data/data-pipeline/data_pipeline/etl/sources/geocorr/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/data/data-pipeline/data_pipeline/etl/sources/geocorr/etl.py b/data/data-pipeline/data_pipeline/etl/sources/geocorr/etl.py new file mode 100644 index 00000000..c9c45993 --- /dev/null +++ b/data/data-pipeline/data_pipeline/etl/sources/geocorr/etl.py @@ -0,0 +1,70 @@ +import pandas as pd + +from data_pipeline.config import settings +from data_pipeline.etl.base import ExtractTransformLoad +from data_pipeline.utils import ( + get_module_logger, + unzip_file_from_url, +) + +logger = get_module_logger(__name__) + + +class GeoCorrETL(ExtractTransformLoad): + def __init__(self): + self.OUTPUT_PATH = self.DATA_PATH / "dataset" / "geocorr" + + # Need to change hyperlink to S3 + self.GEOCORR_PLACES_URL = "https://justice40-data.s3.amazonaws.com/data-sources/geocorr_urban_rural.csv.zip" + self.GEOCORR_GEOID_FIELD_NAME = "GEOID10_TRACT" + self.URBAN_HERUISTIC_FIELD_NAME = "Urban Heuristic Flag" + + self.df: pd.DataFrame + + def extract(self) -> None: + logger.info( + "Starting to download 2MB GeoCorr Urban Rural Census Tract Map file." + ) + unzip_file_from_url( + file_url=settings.AWS_JUSTICE40_DATASOURCES_URL + + "/geocorr_urban_rural.csv.zip", + download_path=self.TMP_PATH, + unzipped_file_path=self.TMP_PATH / "geocorr", + ) + + self.df = pd.read_csv( + filepath_or_buffer=self.TMP_PATH + / "geocorr" + / "geocorr_urban_rural.csv", + dtype={ + self.GEOCORR_GEOID_FIELD_NAME: "string", + }, + low_memory=False, + ) + + def transform(self) -> None: + logger.info("Starting GeoCorr Urban Rural Map transform") + + self.df.rename( + columns={ + "urban_heuristic_flag": self.URBAN_HERUISTIC_FIELD_NAME, + }, + inplace=True, + ) + + pass + + # Put in logic from Jupyter Notebook transform when we switch in the hyperlink to Geocorr + + def load(self) -> None: + logger.info("Saving GeoCorr Urban Rural Map Data") + + # mkdir census + self.OUTPUT_PATH.mkdir(parents=True, exist_ok=True) + + self.df.to_csv(path_or_buf=self.OUTPUT_PATH / "usa.csv", index=False) + + def validate(self) -> None: + logger.info("Validating GeoCorr Urban Rural Map Data") + + pass diff --git a/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py b/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py index f0357702..1775b05a 100644 --- a/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py +++ b/data/data-pipeline/data_pipeline/etl/sources/national_risk_index/etl.py @@ -75,7 +75,7 @@ class NationalRiskIndexETL(ExtractTransformLoad): # Reduce columns. # Note: normally we wait until writing to CSV for this step, but since the file is so huge, # move this up here for performance reasons. - df_nri = df_nri[ # pylint: disable=unsubscriptable-object + df_nri = df_nri[ # pylint: disable=unsubscriptable-object [self.RISK_INDEX_EXPECTED_ANNUAL_LOSS_SCORE_FIELD_NAME, TRACT_COL] ] diff --git a/data/data-pipeline/data_pipeline/ipython/scoring_comparison.ipynb b/data/data-pipeline/data_pipeline/ipython/scoring_comparison.ipynb index 9206e0ea..9a1c7b26 100644 --- a/data/data-pipeline/data_pipeline/ipython/scoring_comparison.ipynb +++ b/data/data-pipeline/data_pipeline/ipython/scoring_comparison.ipynb @@ -71,6 +71,7 @@ "GEOID_STATE_FIELD_NAME = \"GEOID10_STATE\"\n", "COUNTRY_FIELD_NAME = \"Country\"\n", "CENSUS_BLOCK_GROUP_POPULATION_FIELD = \"Total population\"\n", + "URBAN_HEURISTIC_FIELD = \"Urban Heuristic Flag\"\n", "\n", "CEJST_SCORE_FIELD = \"cejst_score\"\n", "CEJST_PERCENTILE_FIELD = \"cejst_percentile\"\n", @@ -124,6 +125,7 @@ " \"Percent of individuals < 200% Federal Poverty Line\",\n", " \"Life expectancy (years)\",\n", " \"Energy burden\",\n", + " URBAN_HEURISTIC_FIELD,\n", "]:\n", " print(f\"\\n~~~~Analysis for field `{field}`~~~~\")\n", " print(cejst_df[field].describe())\n", @@ -230,7 +232,7 @@ ")\n", "\n", "\n", - "if len(merged_df) > 220335:\n", + "if len(merged_df) > 220405:\n", " raise ValueError(f\"Too many rows in the join: {len(merged_df)}\")\n", "\n", "merged_df.head()\n", @@ -273,21 +275,16 @@ " other_census_tract_fields_to_keep=[],\n", " ),\n", " Index(\n", + " method_name=\"Score I\",\n", + " priority_communities_field=\"Score I (communities)\",\n", + " other_census_tract_fields_to_keep=[],\n", + " ),\n", + " Index(\n", " method_name=\"NMTC\",\n", " priority_communities_field=\"NMTC (communities)\",\n", " other_census_tract_fields_to_keep=[],\n", " ),\n", " Index(\n", - " method_name=\"NMTC modified\",\n", - " priority_communities_field=\"NMTC modified (communities)\",\n", - " other_census_tract_fields_to_keep=[],\n", - " ),\n", - " Index(\n", - " method_name=\"Score F\",\n", - " priority_communities_field=\"Score F (communities)\",\n", - " other_census_tract_fields_to_keep=[],\n", - " ),\n", - " Index(\n", " method_name=\"Score A\",\n", " priority_communities_field=\"Score A (top 25th percentile)\",\n", " other_census_tract_fields_to_keep=[],\n", @@ -308,6 +305,11 @@ " other_census_tract_fields_to_keep=[],\n", " ),\n", " Index(\n", + " method_name=\"Score F\",\n", + " priority_communities_field=\"Score F (communities)\",\n", + " other_census_tract_fields_to_keep=[],\n", + " ),\n", + " Index(\n", " method_name=\"Poverty\",\n", " priority_communities_field=\"Poverty (Less than 200% of federal poverty line) (top 25th percentile)\",\n", " other_census_tract_fields_to_keep=[],\n", @@ -365,6 +367,8 @@ " summary_dict = {}\n", " summary_dict[COUNTRY_FIELD_NAME] = frame[COUNTRY_FIELD_NAME].unique()[0]\n", "\n", + " summary_dict[\"Analysis grouped by\"] = geography_field\n", + "\n", " if geography_field == COUNTRY_FIELD_NAME:\n", " summary_dict[GEOID_STATE_FIELD_NAME] = \"00\"\n", " summary_dict[\"Geography name\"] = \"(Entire USA)\"\n", @@ -389,9 +393,12 @@ " summary_dict[\"Geography name\"] = division_id\n", "\n", " total_cbgs_in_geography = len(frame)\n", - " total_population_in_geography = frame[\n", - " CENSUS_BLOCK_GROUP_POPULATION_FIELD\n", - " ].sum()\n", + " total_population_in_geography = frame[CENSUS_BLOCK_GROUP_POPULATION_FIELD].sum()\n", + "\n", + " if geography_field == URBAN_HEURISTIC_FIELD:\n", + " urban_flag = frame[URBAN_HEURISTIC_FIELD].unique()[0]\n", + " summary_dict[\"Urban vs Rural\"] = \"Urban\" if urban_flag else \"Rural\"\n", + " summary_dict[\"Geography name\"] = summary_dict[\"Urban vs Rural\"]\n", "\n", " for priority_communities_field in priority_communities_fields:\n", " summary_dict[f\"{priority_communities_field}{POPULATION_SUFFIX}\"] = frame[\n", @@ -465,13 +472,24 @@ " lambda frame: calculate_state_comparison(frame, geography_field=\"division\")\n", " )\n", "\n", - " # Combine the three\n", + " # Next, run the comparison by urban/rural\n", + " urban_grouped_df = df.groupby(URBAN_HEURISTIC_FIELD)\n", + "\n", + " # Run the comparison function on the groups.\n", + " urban_grouped_df = urban_grouped_df.progress_apply(\n", + " lambda frame: calculate_state_comparison(\n", + " frame, geography_field=URBAN_HEURISTIC_FIELD\n", + " )\n", + " )\n", + "\n", + " # Combine the five\n", " combined_df = pd.concat(\n", " [\n", " usa_distribution_df,\n", " state_distribution_df,\n", " region_distribution_df,\n", " division_distribution_df,\n", + " urban_grouped_df,\n", " ]\n", " )\n", "\n", @@ -565,15 +583,17 @@ " priority_communities_fields=fields_to_analyze,\n", ")\n", "\n", + "file_prefix = \"Priority CBGs – Different geographic groupings\"\n", + "\n", "state_distribution_df.to_csv(\n", - " path_or_buf=COMPARISON_OUTPUTS_DIR / \"Priority CBGs by state.csv\",\n", + " path_or_buf=COMPARISON_OUTPUTS_DIR / f\"{file_prefix}.csv\",\n", " na_rep=\"\",\n", " index=False,\n", ")\n", "\n", "write_state_distribution_excel(\n", " state_distribution_df=state_distribution_df,\n", - " file_path=COMPARISON_OUTPUTS_DIR / \"Priority CBGs by state.xlsx\",\n", + " file_path=COMPARISON_OUTPUTS_DIR / f\"{file_prefix}.xlsx\",\n", ")\n", "\n", "state_distribution_df.head()" @@ -625,10 +645,10 @@ "\n", " criteria_description_field_name = \"Description of criteria\"\n", " comparison_df[criteria_description_field_name] = comparison_df.apply(\n", - " func=lambda row: f\"CBGs that are {'not' if row[method_a_priority_census_block_groups_field] is False else ''} \" + \n", - " f\"prioritized by {method_a_priority_census_block_groups_field} \" + \n", - " f\"and are {'not' if row[method_b_priority_census_block_groups_field] is False else ''} \" + \n", - " f\"prioritized by {method_b_priority_census_block_groups_field}\",\n", + " func=lambda row: f\"CBGs that are {'not' if row[method_a_priority_census_block_groups_field] is False else ''} \"\n", + " + f\"prioritized by {method_a_priority_census_block_groups_field} \"\n", + " + f\"and are {'not' if row[method_b_priority_census_block_groups_field] is False else ''} \"\n", + " + f\"prioritized by {method_b_priority_census_block_groups_field}\",\n", " axis=1,\n", " )\n", "\n", @@ -636,7 +656,7 @@ " new_column_order = [criteria_description_field_name] + [\n", " col for col in comparison_df.columns if col != criteria_description_field_name\n", " ]\n", - " \n", + "\n", " comparison_df = comparison_df[new_column_order]\n", "\n", " # Rename fields to reflect the mean aggregation\n", @@ -763,6 +783,7 @@ " \"Linguistic isolation (percent)\",\n", " \"Unemployed civilians (percent)\",\n", " \"Median household income in the past 12 months\",\n", + " URBAN_HEURISTIC_FIELD,\n", "]\n", "\n", "for (index_a, index_b) in itertools.combinations(census_block_group_indices, 2):\n", diff --git a/data/data-pipeline/data_pipeline/ipython/urban_vs_rural.ipynb b/data/data-pipeline/data_pipeline/ipython/urban_vs_rural.ipynb new file mode 100644 index 00000000..0eda22b5 --- /dev/null +++ b/data/data-pipeline/data_pipeline/ipython/urban_vs_rural.ipynb @@ -0,0 +1,311 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "51412a14", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "import collections\n", + "from datetime import datetime\n", + "import functools\n", + "import itertools\n", + "import os\n", + "import pathlib\n", + "import requests\n", + "import string\n", + "import sys\n", + "import typing\n", + "import zipfile\n", + "\n", + "import IPython\n", + "import numpy as np\n", + "import pandas as pd\n", + "import pypandoc\n", + "\n", + "from tqdm.notebook import tqdm_notebook\n", + "\n", + "module_path = os.path.abspath(os.path.join(\"../..\"))\n", + "if module_path not in sys.path:\n", + " sys.path.append(module_path)\n", + "\n", + "from data_pipeline.utils import remove_all_from_dir, get_excel_column_name\n", + "from data_pipeline.etl.sources.census.etl_utils import get_state_information\n", + "\n", + "# Turn on TQDM for pandas so that we can have progress bars when running `apply`.\n", + "tqdm_notebook.pandas()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e3234c61", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Suppress scientific notation in pandas (this shows up for census tract IDs)\n", + "pd.options.display.float_format = \"{:.2f}\".format\n", + "\n", + "# Set some global parameters\n", + "DATA_DIR = pathlib.Path.cwd().parent / \"data\"\n", + "TEMP_DATA_DIR = DATA_DIR / \"tmp\"\n", + "COMPARISON_OUTPUTS_DIR = DATA_DIR / \"comparison_outputs\"\n", + "\n", + "## I (Vincent) created this manually locally. Will need to change potentially when putting into official ETL scripts\n", + "GEOCORR_DATA_DIR = DATA_DIR / \"geocorr\"\n", + "\n", + "# Make the dirs if they don't exist\n", + "TEMP_DATA_DIR.mkdir(parents=True, exist_ok=True)\n", + "COMPARISON_OUTPUTS_DIR.mkdir(parents=True, exist_ok=True)\n", + "\n", + "CEJST_PRIORITY_COMMUNITY_THRESHOLD = 0.75\n", + "\n", + "# Name fields using variables. (This makes it easy to reference the same fields frequently without using strings\n", + "# and introducing the risk of misspelling the field name.)\n", + "\n", + "GEOID_FIELD_NAME = \"GEOID10\"\n", + "GEOID_TRACT_FIELD_NAME = \"GEOID10_TRACT\"\n", + "GEOID_STATE_FIELD_NAME = \"GEOID10_STATE\"\n", + "GEOID_CBG_FIELD_NAME = \"GEOID10_CBG\"\n", + "COUNTRY_FIELD_NAME = \"Country\"\n", + "CENSUS_BLOCK_GROUP_POPULATION_FIELD = \"Total population\"\n", + "\n", + "CEJST_SCORE_FIELD = \"cejst_score\"\n", + "CEJST_PERCENTILE_FIELD = \"cejst_percentile\"\n", + "CEJST_PRIORITY_COMMUNITY_FIELD = \"cejst_priority_community\"\n", + "\n", + "# Define some suffixes\n", + "POPULATION_SUFFIX = \" (priority population)\"" + ] + }, + { + "cell_type": "markdown", + "id": "376f5b2e", + "metadata": {}, + "source": [ + "## Mapping Census Block Group to Urban and Rural Indicators using Geocorr Data\n", + "\n", + "The end result is a dataframe `urban_rural_map`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4147c081", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_map = pd.read_csv(\n", + " os.path.join(GEOCORR_DATA_DIR, 'geocorr2014_2125804280.csv'),\n", + " encoding = \"ISO-8859-1\",\n", + " skiprows=[1],\n", + " dtype='str',\n", + ")\n", + "\n", + "geocorr_urban_rural_map['pop10'] = pd.to_numeric(geocorr_urban_rural_map['pop10'])\n", + "geocorr_urban_rural_map['afact'] = pd.to_numeric(geocorr_urban_rural_map['afact'])\n", + "\n", + "geocorr_urban_rural_map[GEOID_TRACT_FIELD_NAME] = geocorr_urban_rural_map['county'] + geocorr_urban_rural_map['tract'] # + geocorr_urban_rural_map['bg']\n", + "geocorr_urban_rural_map[GEOID_TRACT_FIELD_NAME] = geocorr_urban_rural_map[GEOID_TRACT_FIELD_NAME].str.replace('.', '', regex=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78276a83", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_map[GEOID_TRACT_FIELD_NAME].str.len().value_counts()" + ] + }, + { + "cell_type": "markdown", + "id": "f2890779", + "metadata": {}, + "source": [ + "We want to see that the length of the derived Census Block Group is always 12 digits. Census Tracts are always 11 digits" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fd89f6c8", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_map = geocorr_urban_rural_map[[\n", + " GEOID_TRACT_FIELD_NAME,\n", + " 'ur',\n", + " 'ua',\n", + " 'cntyname',\n", + " 'uaname',\n", + " 'pop10',\n", + " 'afact'\n", + "]]" + ] + }, + { + "cell_type": "markdown", + "id": "e597d7e2", + "metadata": {}, + "source": [ + "Checking Primary Key" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "29929046", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_map.groupby([GEOID_TRACT_FIELD_NAME, 'ur', 'ua'], dropna=False).size().sort_values(ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9e4c0c3f", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_map.loc[geocorr_urban_rural_map[GEOID_TRACT_FIELD_NAME] == '36117020302']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d52761e8", + "metadata": {}, + "outputs": [], + "source": [ + "total_geo_population = geocorr_urban_rural_map.groupby(GEOID_TRACT_FIELD_NAME).agg({'pop10': np.sum}).reset_index()\n", + "total_geo_population.rename(columns={'pop10': 'total_population'}, inplace=True)\n", + "total_geo_population.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "38225b78", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_with_total_pop_map = geocorr_urban_rural_map.groupby([GEOID_TRACT_FIELD_NAME, 'ur']).agg({'pop10': np.sum}).reset_index()\n", + "geocorr_urban_rural_with_total_pop_map = geocorr_urban_rural_with_total_pop_map.merge(total_geo_population, how='inner', on=GEOID_TRACT_FIELD_NAME)\n", + "geocorr_urban_rural_with_total_pop_map.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "41b9448a", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_with_total_pop_map['afact'] = geocorr_urban_rural_with_total_pop_map['pop10'] / geocorr_urban_rural_with_total_pop_map['total_population']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb4ddb9b", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_with_total_pop_map.head()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1e03d1e6", + "metadata": {}, + "outputs": [], + "source": [ + "geocorr_urban_rural_with_total_pop_map.loc[geocorr_urban_rural_with_total_pop_map[GEOID_TRACT_FIELD_NAME] == '01001020200']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1d976cb5", + "metadata": {}, + "outputs": [], + "source": [ + "urban_rural_map = geocorr_urban_rural_with_total_pop_map.pivot(index=GEOID_TRACT_FIELD_NAME, columns='ur', values=['pop10', 'afact'])\n", + "urban_rural_map.columns = ['_'.join(col).strip() for col in urban_rural_map.columns.values]\n", + "urban_rural_map.reset_index(inplace=True)\n", + "urban_rural_map['urban_heuristic_flag'] = 0\n", + "mask = urban_rural_map['afact_U'] >= 0.5\n", + "urban_rural_map.loc[mask, 'urban_heuristic_flag'] = 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f3a0993", + "metadata": {}, + "outputs": [], + "source": [ + "urban_rural_map.rename(\n", + " columns={\n", + " 'pop10_R': 'population_in_rural_areas',\n", + " 'pop10_U': 'population_in_urban_areas',\n", + " 'afact_R': 'perc_population_in_rural_areas',\n", + " 'afact_U': 'perc_population_in_urban_areas',\n", + " }, \n", + " inplace=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ba10f07c", + "metadata": {}, + "outputs": [], + "source": [ + "urban_rural_map.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56098d7b", + "metadata": {}, + "outputs": [], + "source": [ + "urban_rural_map.to_csv(\n", + " path_or_buf=GEOCORR_DATA_DIR / \"urban_rural_map.csv\", na_rep=\"\", index=False\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/data/data-pipeline/poetry.lock b/data/data-pipeline/poetry.lock index 42ee72a3..f94fdd96 100644 --- a/data/data-pipeline/poetry.lock +++ b/data/data-pipeline/poetry.lock @@ -38,7 +38,7 @@ tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] [[package]] name = "astroid" -version = "2.7.3" +version = "2.8.0" description = "An abstract syntax tree for Python with inference support." category = "dev" optional = false @@ -47,7 +47,7 @@ python-versions = "~=3.6" [package.dependencies] lazy-object-proxy = ">=1.4.0" typed-ast = {version = ">=1.4.0,<1.5", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""} -typing-extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} +typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} wrapt = ">=1.11,<1.13" [[package]] @@ -169,7 +169,7 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "2.0.5" +version = "2.0.6" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false @@ -275,7 +275,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "distlib" -version = "0.3.2" +version = "0.3.3" description = "Distribution utilities" category = "dev" optional = false @@ -592,7 +592,7 @@ qtconsole = "*" [[package]] name = "jupyter-client" -version = "7.0.2" +version = "7.0.3" description = "Jupyter protocol implementation and client libraries" category = "main" optional = false @@ -673,14 +673,14 @@ test = ["nbformat", "nose", "pip", "requests", "mock"] [[package]] name = "jupyter-core" -version = "4.7.1" +version = "4.8.1" description = "Jupyter core package. A base package on which Jupyter projects rely." category = "main" optional = false python-versions = ">=3.6" [package.dependencies] -pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\""} +pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} traitlets = "*" [[package]] @@ -956,7 +956,7 @@ python-versions = ">=3.5" [[package]] name = "notebook" -version = "6.4.3" +version = "6.4.4" description = "A web-based notebook environment for interactive computing" category = "main" optional = false @@ -993,7 +993,7 @@ python-versions = ">=3.7" [[package]] name = "openpyxl" -version = "3.0.8" +version = "3.0.9" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" category = "dev" optional = false @@ -1183,19 +1183,20 @@ python-versions = ">=3.5" [[package]] name = "pylint" -version = "2.10.2" +version = "2.11.1" description = "python code static checker" category = "dev" optional = false python-versions = "~=3.6" [package.dependencies] -astroid = ">=2.7.2,<2.8" +astroid = ">=2.8.0,<2.9" colorama = {version = "*", markers = "sys_platform == \"win32\""} isort = ">=4.2.5,<6" mccabe = ">=0.6,<0.7" platformdirs = ">=2.2.0" toml = ">=0.7.1" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [[package]] name = "pypandoc" @@ -1215,7 +1216,7 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] name = "pyproj" -version = "3.2.0" +version = "3.2.1" description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" category = "main" optional = false @@ -1313,7 +1314,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [[package]] name = "pyzmq" -version = "22.2.1" +version = "22.3.0" description = "Python bindings for 0MQ" category = "main" optional = false @@ -1488,7 +1489,7 @@ python-versions = ">= 3.5" [[package]] name = "tox" -version = "3.24.3" +version = "3.24.4" description = "tox is a generic virtualenv management and test command line tool" category = "dev" optional = false @@ -1546,7 +1547,7 @@ python-versions = "*" [[package]] name = "types-requests" -version = "2.25.6" +version = "2.25.8" description = "Typing stubs for requests" category = "main" optional = false @@ -1586,7 +1587,7 @@ jellyfish = "0.6.1" [[package]] name = "virtualenv" -version = "20.7.2" +version = "20.8.0" description = "Virtual Python Environment builder" category = "dev" optional = false @@ -1687,8 +1688,8 @@ argon2-cffi = [ {file = "argon2_cffi-21.1.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:566ffb581bbd9db5562327aee71b2eda24a1c15b23a356740abe3c011bbe0dcb"}, ] astroid = [ - {file = "astroid-2.7.3-py3-none-any.whl", hash = "sha256:dc1e8b28427d6bbef6b8842b18765ab58f558c42bb80540bd7648c98412af25e"}, - {file = "astroid-2.7.3.tar.gz", hash = "sha256:3b680ce0419b8a771aba6190139a3998d14b413852506d99aff8dc2bf65ee67c"}, + {file = "astroid-2.8.0-py3-none-any.whl", hash = "sha256:dcc06f6165f415220013801642bd6c9808a02967070919c4b746c6864c205471"}, + {file = "astroid-2.8.0.tar.gz", hash = "sha256:fe81f80c0b35264acb5653302ffbd935d394f1775c5e4487df745bf9c2442708"}, ] atomicwrites = [ {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, @@ -1769,8 +1770,8 @@ cffi = [ {file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"}, ] charset-normalizer = [ - {file = "charset-normalizer-2.0.5.tar.gz", hash = "sha256:7098e7e862f6370a2a8d1a6398cd359815c45d12626267652c3f13dec58e2367"}, - {file = "charset_normalizer-2.0.5-py3-none-any.whl", hash = "sha256:fa471a601dfea0f492e4f4fca035cd82155e65dc45c9b83bf4322dfab63755dd"}, + {file = "charset-normalizer-2.0.6.tar.gz", hash = "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f"}, + {file = "charset_normalizer-2.0.6-py3-none-any.whl", hash = "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6"}, ] click = [ {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, @@ -1825,8 +1826,8 @@ defusedxml = [ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, ] distlib = [ - {file = "distlib-0.3.2-py2.py3-none-any.whl", hash = "sha256:23e223426b28491b1ced97dc3bbe183027419dfc7982b4fa2f05d5f3ff10711c"}, - {file = "distlib-0.3.2.zip", hash = "sha256:106fef6dc37dd8c0e2c0a60d3fca3e77460a48907f335fa28420463a6f799736"}, + {file = "distlib-0.3.3-py2.py3-none-any.whl", hash = "sha256:c8b54e8454e5bf6237cc84c20e8264c3e991e824ef27e8f1e81049867d861e31"}, + {file = "distlib-0.3.3.zip", hash = "sha256:d982d0751ff6eaaab5e2ec8e691d949ee80eddf01a62eaa96ddb11531fe16b05"}, ] dparse = [ {file = "dparse-0.5.1-py3-none-any.whl", hash = "sha256:e953a25e44ebb60a5c6efc2add4420c177f1d8404509da88da9729202f306994"}, @@ -1920,8 +1921,8 @@ jupyter = [ {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, ] jupyter-client = [ - {file = "jupyter_client-7.0.2-py3-none-any.whl", hash = "sha256:37a30c13d3655b819add61c830594090af7fca40cd2d74f41cad9e2e12118501"}, - {file = "jupyter_client-7.0.2.tar.gz", hash = "sha256:0c6cabd07e003a2e9692394bf1ae794188ad17d2e250ed747232d7a473aa772c"}, + {file = "jupyter_client-7.0.3-py3-none-any.whl", hash = "sha256:b07ceecb8f845f908bbd0f78bb17c0abac7b393de9d929bd92190e36c24c201e"}, + {file = "jupyter_client-7.0.3.tar.gz", hash = "sha256:bb58e3218d74e072673948bd1e2a6bb3b65f32447b3e8c143eeca16b946ee230"}, ] jupyter-console = [ {file = "jupyter_console-6.4.0-py3-none-any.whl", hash = "sha256:7799c4ea951e0e96ba8260575423cb323ea5a03fcf5503560fa3e15748869e27"}, @@ -1936,8 +1937,8 @@ jupyter-contrib-nbextensions = [ {file = "jupyter_contrib_nbextensions-0.5.1.tar.gz", hash = "sha256:eecd28ecc2fc410226c0a3d4932ed2fac4860ccf8d9e9b1b29548835a35b22ab"}, ] jupyter-core = [ - {file = "jupyter_core-4.7.1-py3-none-any.whl", hash = "sha256:8c6c0cac5c1b563622ad49321d5ec47017bd18b94facb381c6973a0486395f8e"}, - {file = "jupyter_core-4.7.1.tar.gz", hash = "sha256:79025cb3225efcd36847d0840f3fc672c0abd7afd0de83ba8a1d3837619122b4"}, + {file = "jupyter_core-4.8.1-py3-none-any.whl", hash = "sha256:8dd262ec8afae95bd512518eb003bc546b76adbf34bf99410e9accdf4be9aa3a"}, + {file = "jupyter_core-4.8.1.tar.gz", hash = "sha256:ef210dcb4fca04de07f2ead4adf408776aca94d17151d6f750ad6ded0b91ea16"}, ] jupyter-highlight-selected-word = [ {file = "jupyter_highlight_selected_word-0.2.0-py2.py3-none-any.whl", hash = "sha256:9545dfa9cb057eebe3a5795604dcd3a5294ea18637e553f61a0b67c1b5903c58"}, @@ -2222,8 +2223,8 @@ nest-asyncio = [ {file = "nest_asyncio-1.5.1.tar.gz", hash = "sha256:afc5a1c515210a23c461932765691ad39e8eba6551c055ac8d5546e69250d0aa"}, ] notebook = [ - {file = "notebook-6.4.3-py3-none-any.whl", hash = "sha256:b50eafa8208d5db966efd1caa4076b4dfc51815e02a805b32ecd717e9e6cc071"}, - {file = "notebook-6.4.3.tar.gz", hash = "sha256:e6b6dfed36b00cf950f63c0d42e947c101d4258aec21624de62b9e0c11ed5c0d"}, + {file = "notebook-6.4.4-py3-none-any.whl", hash = "sha256:33488bdcc5cbef23c3cfa12cd51b0b5459a211945b5053d17405980611818149"}, + {file = "notebook-6.4.4.tar.gz", hash = "sha256:26b0095c568e307a310fd78818ad8ebade4f00462dada4c0e34cbad632b9085d"}, ] numpy = [ {file = "numpy-1.21.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38e8648f9449a549a7dfe8d8755a5979b45b3538520d1e735637ef28e8c2dc50"}, @@ -2256,8 +2257,8 @@ numpy = [ {file = "numpy-1.21.1.zip", hash = "sha256:dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd"}, ] openpyxl = [ - {file = "openpyxl-3.0.8-py2.py3-none-any.whl", hash = "sha256:52150a09b660fe444af7abe2592b156c14e324526b1968a57705525547317a7f"}, - {file = "openpyxl-3.0.8.tar.gz", hash = "sha256:4f2770348c029ce9433316ced8f91ed37d2a605e654f8bfdc93a3524561a8ce2"}, + {file = "openpyxl-3.0.9-py2.py3-none-any.whl", hash = "sha256:8f3b11bd896a95468a4ab162fc4fcd260d46157155d1f8bfaabb99d88cfcf79f"}, + {file = "openpyxl-3.0.9.tar.gz", hash = "sha256:40f568b9829bf9e446acfffce30250ac1fa39035124d55fc024025c41481c90f"}, ] packaging = [ {file = "packaging-21.0-py3-none-any.whl", hash = "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14"}, @@ -2402,8 +2403,8 @@ pygments = [ {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"}, ] pylint = [ - {file = "pylint-2.10.2-py3-none-any.whl", hash = "sha256:e178e96b6ba171f8ef51fbce9ca30931e6acbea4a155074d80cc081596c9e852"}, - {file = "pylint-2.10.2.tar.gz", hash = "sha256:6758cce3ddbab60c52b57dcc07f0c5d779e5daf0cf50f6faacbef1d3ea62d2a1"}, + {file = "pylint-2.11.1-py3-none-any.whl", hash = "sha256:0f358e221c45cbd4dad2a1e4b883e75d28acdcccd29d40c76eb72b307269b126"}, + {file = "pylint-2.11.1.tar.gz", hash = "sha256:2c9843fff1a88ca0ad98a256806c82c5a8f86086e7ccbdb93297d86c3f90c436"}, ] pypandoc = [ {file = "pypandoc-1.6.4-py3-none-win_amd64.whl", hash = "sha256:080903342d8cca6d953835c103b0f280a6cb66a6a20102692143a138b046c44f"}, @@ -2414,32 +2415,26 @@ pyparsing = [ {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, ] pyproj = [ - {file = "pyproj-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:85b7f67a3606b8a846691effd80c187597ac4e2733ae818f3e3e8be33edcb582"}, - {file = "pyproj-3.2.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:72e0c4409a0c2f83ba448ecdf6accc9615d3e4069b8cad2a2a37a464225d0582"}, - {file = "pyproj-3.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e95ad0255610b719e257150c4f989da51e025dea9a4d686b072c68f99ded538d"}, - {file = "pyproj-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1563a854eff7b6ed430fb968f8f711d13fc02d587afb1dc93a88e5cda6d36462"}, - {file = "pyproj-3.2.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64ecfb062697508a1dae9a1422e7a992c27b1e9b848cd09d12668c15d5b13cca"}, - {file = "pyproj-3.2.0-cp37-cp37m-manylinux_2_24_x86_64.whl", hash = "sha256:87a2b36d7847149d1309c850d022da71de9398140a62e1496cfe64cf3e74040a"}, - {file = "pyproj-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:b00e05f374d419be9689c53887149855e277b8fa6196f005b748c2c869ce260f"}, - {file = "pyproj-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:5fb4887893d221a82082e95ac6dbf75cbbc739991fcaa80ba94fc16070321354"}, - {file = "pyproj-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:911d711601d53208eb4dcca95df85661bee13592da6035c7f12ec0e8c7bbfea8"}, - {file = "pyproj-3.2.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:2e8e51e55bc6305b538c0c6576dbc37a45993b7f3e68699237411fbde9220aab"}, - {file = "pyproj-3.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ca0838c2d979db4d71ae131214d336ad206b02b648a51e023e2ce2f5f8c2db11"}, - {file = "pyproj-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:582efc0cf0bae6ac5a4730280995fad6c20d844b56b70f41f4f04fdb1fdbd5d7"}, - {file = "pyproj-3.2.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ce7f9caec1496545fed80e56d2e7d8249aaf7c9da77e6092349cac6d6b9d6fb"}, - {file = "pyproj-3.2.0-cp38-cp38-manylinux_2_24_x86_64.whl", hash = "sha256:2cc06ea53f8c6c97ff37a47a614b32adc4c4b667def08b528ea7f6a351fa8628"}, - {file = "pyproj-3.2.0-cp38-cp38-win32.whl", hash = "sha256:9a7007dea9d739a03afcc214c851dd43230db319876dd4bf3787031b67a57b77"}, - {file = "pyproj-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8c0cd49eed818c9a02ea05cb9dc45d7209d1688fc4c9e08a37bc48a9ec72e852"}, - {file = "pyproj-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ff41af4b3bb33a1cdd0bfc1efe9eb0f0392ae946aeca5323309f66568d073efa"}, - {file = "pyproj-3.2.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:e3415554fd1905c14632254f087f484e704b39865313aea8fe3e4d13017979c7"}, - {file = "pyproj-3.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:413cb8dfd358f3b89cb9756a3380295d34b3ea5059d47f327262e700f1c8baab"}, - {file = "pyproj-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a0a55bbc2d903a6dada943ade11360a46d057ca42d305128c113273bae7cb58"}, - {file = "pyproj-3.2.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e4d5370cb4823f3066c64083985612257f131b354747ea4594dea7cfb319752"}, - {file = "pyproj-3.2.0-cp39-cp39-manylinux_2_24_x86_64.whl", hash = "sha256:5974c1acbeb1d4f34bba111be547191f967ef182f77fc361c34984f8adbe6f66"}, - {file = "pyproj-3.2.0-cp39-cp39-win32.whl", hash = "sha256:89c023b1f7c956343e87bc7165fe67986b5db0b840fd5adf0ca65c0b5dcb5007"}, - {file = "pyproj-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:8206748e1ef61151f19dd54378312e272812cb248226fb7909fda5052498f9b4"}, - {file = "pyproj-3.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:cf52413347479035d361e5f760d1c29876b8941a763bb35e5f1505b3421707ae"}, - {file = "pyproj-3.2.0.tar.gz", hash = "sha256:48df0d5ab085bd2dc6db3bca79e20bf15b08ffca4f4e42df6d87b566633b800c"}, + {file = "pyproj-3.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ce554616880ab59110af9baa2948b4442d2961e20390df00cea49782b7c779fe"}, + {file = "pyproj-3.2.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:40ed2a66d93af811abac9fd2581685a2aade22a6753501f2f9760893ee6b0828"}, + {file = "pyproj-3.2.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8e6821a472f03e3604413b562536e05cb7926c3bd85bfc423c88c4909871f692"}, + {file = "pyproj-3.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a732342136fa57112de717109c2b853a4df3e4e2de56e42da7a2b61e67f0b29"}, + {file = "pyproj-3.2.1-cp37-cp37m-win32.whl", hash = "sha256:b87eda8647d71f27ed81c43da9d8e0b841a403378b645e8dc1d015e9f5133ed1"}, + {file = "pyproj-3.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f2eb0ee7e4183c1c4e2f450cccff09734b59ff929619bad3a4df97a87e3a3d1f"}, + {file = "pyproj-3.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:76dd8a9dbd67a42e5ab8afe0e4a4167f0dfcd8f07e12541852c5289abf49e28f"}, + {file = "pyproj-3.2.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b73973908688a0845ebd78871ed2edcca35d1fad8e90983a416a49aadb350f28"}, + {file = "pyproj-3.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:00ec0cdd218cc8e7c823a9fe7c705b1e55926fe3a9460ef2048403757f9897ec"}, + {file = "pyproj-3.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7d7097b969c7a3f114fcce379021e59c843c1c7b1b9b3f1bb2aa65019793800"}, + {file = "pyproj-3.2.1-cp38-cp38-win32.whl", hash = "sha256:e61c34b1b5a6b8df2ecf5abdbf8dd69322001ebc1971d0897919e4004512c476"}, + {file = "pyproj-3.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:50d312cb7610f93f02f07b7da5b96469c52645717bebe6530ac7214cc69c068e"}, + {file = "pyproj-3.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:faadb5795e99321b5135263080348e184b927352c6331a06c2fcfe77a07ad215"}, + {file = "pyproj-3.2.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:d355ddf4cb29e77cb38e152354fb6ef6796d699d37e1a67a2427890ce2341162"}, + {file = "pyproj-3.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:28026ddf4d779e6bcbbd45954a0ca017348d819f27deb503e860be4eb88f5218"}, + {file = "pyproj-3.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5fb6283da84be5dc909f3f681490fd43de1b3694e9b5bed1ca7bc875130cb93"}, + {file = "pyproj-3.2.1-cp39-cp39-win32.whl", hash = "sha256:604e8041ee0a17eec0fac4e7e10b2f11f45ab49676a4f26eb63753ebb9ba38b0"}, + {file = "pyproj-3.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:8cf6f7c62a7c4144771a330381198e53bff782c0345af623b8989b1913acb919"}, + {file = "pyproj-3.2.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:19e6a7c6d31624b9971639036679fad35460045fd99c0c484899134b6bbf84cc"}, + {file = "pyproj-3.2.1.tar.gz", hash = "sha256:4a936093825ff55b24c1fc6cc093541fcf6d0f6d406589ed699e62048ebf3877"}, ] pyrsistent = [ {file = "pyrsistent-0.18.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f4c8cabb46ff8e5d61f56a037974228e978f26bfefce4f61a4b1ac0ba7a2ab72"}, @@ -2531,43 +2526,43 @@ pyyaml = [ {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, ] pyzmq = [ - {file = "pyzmq-22.2.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:d60a407663b7c2af781ab7f49d94a3d379dd148bb69ea8d9dd5bc69adf18097c"}, - {file = "pyzmq-22.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:631f932fb1fa4b76f31adf976f8056519bc6208a3c24c184581c3dd5be15066e"}, - {file = "pyzmq-22.2.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0471d634c7fe48ff7d3849798da6c16afc71676dd890b5ae08eb1efe735c6fec"}, - {file = "pyzmq-22.2.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f520e9fee5d7a2e09b051d924f85b977c6b4e224e56c0551c3c241bbeeb0ad8d"}, - {file = "pyzmq-22.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1b6619ceb33a8907f1cb82ff8afc8a133e7a5f16df29528e919734718600426"}, - {file = "pyzmq-22.2.1-cp310-cp310-win32.whl", hash = "sha256:31c5dfb6df5148789835128768c01bf6402eb753d06f524f12f6786caf96fb44"}, - {file = "pyzmq-22.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:4842a8263cbaba6fce401bbe4e2b125321c401a01714e42624dabc554bfc2629"}, - {file = "pyzmq-22.2.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b921758f8b5098faa85f341bbdd5e36d5339de5e9032ca2b07d8c8e7bec5069b"}, - {file = "pyzmq-22.2.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:240b83b3a8175b2f616f80092cbb019fcd5c18598f78ffc6aa0ae9034b300f14"}, - {file = "pyzmq-22.2.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:da7f7f3bb08bcf59a6b60b4e53dd8f08bb00c9e61045319d825a906dbb3c8fb7"}, - {file = "pyzmq-22.2.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e66025b64c4724ba683d6d4a4e5ee23de12fe9ae683908f0c7f0f91b4a2fd94e"}, - {file = "pyzmq-22.2.1-cp36-cp36m-win32.whl", hash = "sha256:50d007d5702171bc810c1e74498fa2c7bc5b50f9750697f7fd2a3e71a25aad91"}, - {file = "pyzmq-22.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b4a51c7d906dc263a0cc5590761e53e0a68f2c2fefe549cbef21c9ee5d2d98a4"}, - {file = "pyzmq-22.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:93705cb90baa9d6f75e8448861a1efd3329006f79095ab18846bd1eaa342f7c3"}, - {file = "pyzmq-22.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:620b0abb813958cb3ecb5144c177e26cde92fee6f43c4b9de6b329515532bf27"}, - {file = "pyzmq-22.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2dd3896b3c952cf6c8013deda53c1df16bf962f355b5503d23521e0f6403ae3d"}, - {file = "pyzmq-22.2.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6e9c030222893afa86881d7485d3e841969760a16004bd23e9a83cca28b42778"}, - {file = "pyzmq-22.2.1-cp37-cp37m-win32.whl", hash = "sha256:262f470e7acde18b7217aac78d19d2e29ced91a5afbeb7d98521ebf26461aa7e"}, - {file = "pyzmq-22.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:246f27b88722cfa729bb04881e94484e40b085720d728c1b05133b3f331b0b7b"}, - {file = "pyzmq-22.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0d17bac19e934e9f547a8811b7c2a32651a7840f38086b924e2e3dcb2fae5c3a"}, - {file = "pyzmq-22.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5933d1f4087de6e52906f72d92e1e4dcc630d371860b92c55d7f7a4b815a664c"}, - {file = "pyzmq-22.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ac4497e4b7d134ee53ce5532d9cc3b640d6e71806a55062984e0c99a2f88f465"}, - {file = "pyzmq-22.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66375a6094af72a6098ed4403b15b4db6bf00013c6febc1baa832e7abda827f4"}, - {file = "pyzmq-22.2.1-cp38-cp38-win32.whl", hash = "sha256:b2c16d20bd0aef8e57bc9505fdd80ea0d6008020c3740accd96acf1b3d1b5347"}, - {file = "pyzmq-22.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff345d48940c834168f81fa1d4724675099f148f1ab6369748c4d712ed71bf7c"}, - {file = "pyzmq-22.2.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:f5c84c5de9a773bbf8b22c51e28380999ea72e5e85b4db8edf5e69a7a0d4d9f9"}, - {file = "pyzmq-22.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2534a036b777f957bd6b89b55fb2136775ca2659fb0f1c85036ba78d17d86fd5"}, - {file = "pyzmq-22.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a649065413ba4eab92a783a7caa4de8ce14cf46ba8a2a09951426143f1298adb"}, - {file = "pyzmq-22.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c9cb0bd3a3cb7ccad3caa1d7b0d18ba71ed3a4a3610028e506a4084371d4d223"}, - {file = "pyzmq-22.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4428302c389fffc0c9c07a78cad5376636b9d096f332acfe66b321ae9ff2c63"}, - {file = "pyzmq-22.2.1-cp39-cp39-win32.whl", hash = "sha256:6a5b4566f66d953601d0d47d4071897f550a265bafd52ebcad5ac7aad3838cbb"}, - {file = "pyzmq-22.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:89200ab6ef9081c72a04ed84c52a50b60dcb0655375aeedb40689bc7c934715e"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed67df4eaa99a20d162d76655bda23160abdf8abf82a17f41dfd3962e608dbcc"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:021e22a8c58ab294bd4b96448a2ca4e716e1d76600192ff84c33d71edb1fbd37"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:200ac096cee5499964c90687306a7244b79ef891f773ed4cf15019fd1f3df330"}, - {file = "pyzmq-22.2.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:b3f57bee62e36be5c97712de32237c5589caee0d1154c2ad01a888accfae20bc"}, - {file = "pyzmq-22.2.1.tar.gz", hash = "sha256:6d18c76676771fd891ca8e0e68da0bbfb88e30129835c0ade748016adb3b6242"}, + {file = "pyzmq-22.3.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:6b217b8f9dfb6628f74b94bdaf9f7408708cb02167d644edca33f38746ca12dd"}, + {file = "pyzmq-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2841997a0d85b998cbafecb4183caf51fd19c4357075dfd33eb7efea57e4c149"}, + {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f89468059ebc519a7acde1ee50b779019535db8dcf9b8c162ef669257fef7a93"}, + {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ea12133df25e3a6918718fbb9a510c6ee5d3fdd5a346320421aac3882f4feeea"}, + {file = "pyzmq-22.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c532fd68b93998aab92356be280deec5de8f8fe59cd28763d2cc8a58747b7f"}, + {file = "pyzmq-22.3.0-cp310-cp310-win32.whl", hash = "sha256:67db33bea0a29d03e6eeec55a8190e033318cee3cbc732ba8fd939617cbf762d"}, + {file = "pyzmq-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:7661fc1d5cb73481cf710a1418a4e1e301ed7d5d924f91c67ba84b2a1b89defd"}, + {file = "pyzmq-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79244b9e97948eaf38695f4b8e6fc63b14b78cc37f403c6642ba555517ac1268"}, + {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab888624ed68930442a3f3b0b921ad7439c51ba122dbc8c386e6487a658e4a4e"}, + {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18cd854b423fce44951c3a4d3e686bac8f1243d954f579e120a1714096637cc0"}, + {file = "pyzmq-22.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:de8df0684398bd74ad160afdc2a118ca28384ac6f5e234eb0508858d8d2d9364"}, + {file = "pyzmq-22.3.0-cp36-cp36m-win32.whl", hash = "sha256:3c1895c95be92600233e476fe283f042e71cf8f0b938aabf21b7aafa62a8dac9"}, + {file = "pyzmq-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:851977788b9caa8ed011f5f643d3ee8653af02c5fc723fa350db5125abf2be7b"}, + {file = "pyzmq-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b4ebed0977f92320f6686c96e9e8dd29eed199eb8d066936bac991afc37cbb70"}, + {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42abddebe2c6a35180ca549fadc7228d23c1e1f76167c5ebc8a936b5804ea2df"}, + {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1e41b32d6f7f9c26bc731a8b529ff592f31fc8b6ef2be9fa74abd05c8a342d7"}, + {file = "pyzmq-22.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:be4e0f229cf3a71f9ecd633566bd6f80d9fa6afaaff5489492be63fe459ef98c"}, + {file = "pyzmq-22.3.0-cp37-cp37m-win32.whl", hash = "sha256:7c58f598d9fcc52772b89a92d72bf8829c12d09746a6d2c724c5b30076c1f11d"}, + {file = "pyzmq-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2b97502c16a5ec611cd52410bdfaab264997c627a46b0f98d3f666227fd1ea2d"}, + {file = "pyzmq-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d728b08448e5ac3e4d886b165385a262883c34b84a7fe1166277fe675e1c197a"}, + {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:480b9931bfb08bf8b094edd4836271d4d6b44150da051547d8c7113bf947a8b0"}, + {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7dc09198e4073e6015d9a8ea093fc348d4e59de49382476940c3dd9ae156fba8"}, + {file = "pyzmq-22.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ca6cd58f62a2751728016d40082008d3b3412a7f28ddfb4a2f0d3c130f69e74"}, + {file = "pyzmq-22.3.0-cp38-cp38-win32.whl", hash = "sha256:c0f84360dcca3481e8674393bdf931f9f10470988f87311b19d23cda869bb6b7"}, + {file = "pyzmq-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:f762442bab706fd874064ca218b33a1d8e40d4938e96c24dafd9b12e28017f45"}, + {file = "pyzmq-22.3.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:954e73c9cd4d6ae319f1c936ad159072b6d356a92dcbbabfd6e6204b9a79d356"}, + {file = "pyzmq-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f43b4a2e6218371dd4f41e547bd919ceeb6ebf4abf31a7a0669cd11cd91ea973"}, + {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:acebba1a23fb9d72b42471c3771b6f2f18dcd46df77482612054bd45c07dfa36"}, + {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cf98fd7a6c8aaa08dbc699ffae33fd71175696d78028281bc7b832b26f00ca57"}, + {file = "pyzmq-22.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d072f7dfbdb184f0786d63bda26e8a0882041b1e393fbe98940395f7fab4c5e2"}, + {file = "pyzmq-22.3.0-cp39-cp39-win32.whl", hash = "sha256:e6a02cf7271ee94674a44f4e62aa061d2d049001c844657740e156596298b70b"}, + {file = "pyzmq-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d3dcb5548ead4f1123851a5ced467791f6986d68c656bc63bfff1bf9e36671e2"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3a4c9886d61d386b2b493377d980f502186cd71d501fffdba52bd2a0880cef4f"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:80e043a89c6cadefd3a0712f8a1322038e819ebe9dbac7eca3bce1721bcb63bf"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1621e7a2af72cced1f6ec8ca8ca91d0f76ac236ab2e8828ac8fe909512d566cb"}, + {file = "pyzmq-22.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:d6157793719de168b199194f6b6173f0ccd3bf3499e6870fac17086072e39115"}, + {file = "pyzmq-22.3.0.tar.gz", hash = "sha256:8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c"}, ] qtconsole = [ {file = "qtconsole-5.1.1-py3-none-any.whl", hash = "sha256:73994105b0369bb99f4164df4a131010f3c7b33a7b5169c37366358d8744675b"}, @@ -2725,8 +2720,8 @@ tornado = [ {file = "tornado-6.1.tar.gz", hash = "sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791"}, ] tox = [ - {file = "tox-3.24.3-py2.py3-none-any.whl", hash = "sha256:9fbf8e2ab758b2a5e7cb2c72945e4728089934853076f67ef18d7575c8ab6b88"}, - {file = "tox-3.24.3.tar.gz", hash = "sha256:c6c4e77705ada004283610fd6d9ba4f77bc85d235447f875df9f0ba1bc23b634"}, + {file = "tox-3.24.4-py2.py3-none-any.whl", hash = "sha256:5e274227a53dc9ef856767c21867377ba395992549f02ce55eb549f9fb9a8d10"}, + {file = "tox-3.24.4.tar.gz", hash = "sha256:c30b57fa2477f1fb7c36aa1d83292d5c2336cd0018119e1b1c17340e2c2708ca"}, ] tqdm = [ {file = "tqdm-4.62.0-py2.py3-none-any.whl", hash = "sha256:706dea48ee05ba16e936ee91cb3791cd2ea6da348a0e50b46863ff4363ff4340"}, @@ -2769,8 +2764,8 @@ typed-ast = [ {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"}, ] types-requests = [ - {file = "types-requests-2.25.6.tar.gz", hash = "sha256:e21541c0f55c066c491a639309159556dd8c5833e49fcde929c4c47bdb0002ee"}, - {file = "types_requests-2.25.6-py3-none-any.whl", hash = "sha256:a5a305b43ea57bf64d6731f89816946a405b591eff6de28d4c0fd58422cee779"}, + {file = "types-requests-2.25.8.tar.gz", hash = "sha256:225ac2e86549b6ef3a8a44bf955f80b4955855704a15d2883d8445c8df637242"}, + {file = "types_requests-2.25.8-py3-none-any.whl", hash = "sha256:26e90866bcd773d76b316de7e6bd6e24641f9e1653cf27241c533886600f6824"}, ] typing-extensions = [ {file = "typing_extensions-3.10.0.2-py2-none-any.whl", hash = "sha256:d8226d10bc02a29bcc81df19a26e56a9647f8b0a6d4a83924139f4a8b01f17b7"}, @@ -2785,8 +2780,8 @@ us = [ {file = "us-2.0.2.tar.gz", hash = "sha256:cb11ad0d43deff3a1c3690c74f0c731cff5b862c73339df2edd91133e1496fbc"}, ] virtualenv = [ - {file = "virtualenv-20.7.2-py2.py3-none-any.whl", hash = "sha256:e4670891b3a03eb071748c569a87cceaefbf643c5bac46d996c5a45c34aa0f06"}, - {file = "virtualenv-20.7.2.tar.gz", hash = "sha256:9ef4e8ee4710826e98ff3075c9a4739e2cb1040de6a2a8d35db0055840dc96a0"}, + {file = "virtualenv-20.8.0-py2.py3-none-any.whl", hash = "sha256:a4b987ec31c3c9996cf1bc865332f967fe4a0512c41b39652d6224f696e69da5"}, + {file = "virtualenv-20.8.0.tar.gz", hash = "sha256:4da4ac43888e97de9cf4fdd870f48ed864bbfd133d2c46cbdec941fed4a25aef"}, ] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, diff --git a/data/data-pipeline/requirements.txt b/data/data-pipeline/requirements.txt index fc80b11d..c0a51849 100644 --- a/data/data-pipeline/requirements.txt +++ b/data/data-pipeline/requirements.txt @@ -7,7 +7,7 @@ bleach==4.1.0; python_version >= "3.7" censusdata==1.15; python_version >= "2.7" certifi==2021.5.30; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" cffi==1.14.6; implementation_name == "pypy" and python_version >= "3.6" -charset-normalizer==2.0.5; python_full_version >= "3.6.0" and python_version >= "3" +charset-normalizer==2.0.6; python_full_version >= "3.6.0" and python_version >= "3" click-plugins==1.1.1; python_version >= "3.6" click==8.0.1; python_version >= "3.6" cligj==0.7.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version < "4" and python_version >= "3.6" @@ -30,11 +30,11 @@ jedi==0.18.0; python_version >= "3.7" jellyfish==0.6.1 jinja2==3.0.1; python_version >= "3.7" jsonschema==3.2.0; python_version >= "3.5" -jupyter-client==7.0.2; python_full_version >= "3.6.1" and python_version >= "3.7" +jupyter-client==7.0.3; python_full_version >= "3.6.1" and python_version >= "3.7" jupyter-console==6.4.0; python_version >= "3.6" jupyter-contrib-core==0.3.3 jupyter-contrib-nbextensions==0.5.1 -jupyter-core==4.7.1; python_full_version >= "3.6.1" and python_version >= "3.7" +jupyter-core==4.8.1; python_full_version >= "3.6.1" and python_version >= "3.7" jupyter-highlight-selected-word==0.2.0 jupyter-latex-envs==1.4.6 jupyter-nbextensions-configurator==0.4.1 @@ -52,7 +52,7 @@ nbclient==0.5.4; python_full_version >= "3.6.1" and python_version >= "3.7" nbconvert==6.1.0; python_version >= "3.7" nbformat==5.1.3; python_full_version >= "3.6.1" and python_version >= "3.7" nest-asyncio==1.5.1; python_full_version >= "3.6.1" and python_version >= "3.7" -notebook==6.4.3; python_version >= "3.6" +notebook==6.4.4; python_version >= "3.6" numpy==1.21.1; python_version >= "3.7" packaging==21.0; python_version >= "3.7" pandas==1.3.3; python_full_version >= "3.7.1" @@ -69,14 +69,14 @@ pycparser==2.20; python_version >= "3.6" and python_full_version < "3.0.0" or py pygments==2.10.0; python_version >= "3.7" pypandoc==1.6.4 pyparsing==2.4.7; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7" -pyproj==3.2.0; python_version >= "3.7" +pyproj==3.2.1; python_version >= "3.7" pyrsistent==0.18.0; python_version >= "3.6" python-dateutil==2.8.2; python_full_version >= "3.7.1" and python_version >= "3.7" pytz==2021.1; python_full_version >= "3.7.1" and python_version >= "2.7" -pywin32==301; sys_platform == "win32" and python_version >= "3.6" +pywin32==301; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.6" pywinpty==1.1.4; os_name == "nt" and python_version >= "3.6" pyyaml==5.4.1; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" -pyzmq==22.2.1; python_full_version >= "3.6.1" and python_version >= "3.7" +pyzmq==22.3.0; python_full_version >= "3.6.1" and python_version >= "3.7" qtconsole==5.1.1; python_version >= "3.6" qtpy==1.11.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" requests==2.26.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.6.0") @@ -88,7 +88,7 @@ testpath==0.5.0; python_version >= "3.7" tornado==6.1; python_full_version >= "3.6.1" and python_version >= "3.7" tqdm==4.62.0; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.4.0") traitlets==5.1.0; python_full_version >= "3.6.1" and python_version >= "3.7" -types-requests==2.25.6 +types-requests==2.25.8 typing-extensions==3.10.0.2; python_version < "3.8" and python_version >= "3.6" urllib3==1.26.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version < "4" and python_version >= "2.7" us==2.0.2