|
96 | 96 | "# set_light_mode()"
|
97 | 97 | ]
|
98 | 98 | },
|
| 99 | + { |
| 100 | + "cell_type": "markdown", |
| 101 | + "metadata": { |
| 102 | + "id": "25lVf3PwsmmV" |
| 103 | + }, |
| 104 | + "source": [ |
| 105 | + "## Setup Cardinal" |
| 106 | + ] |
| 107 | + }, |
| 108 | + { |
| 109 | + "cell_type": "markdown", |
| 110 | + "metadata": { |
| 111 | + "id": "6fzwlrSLOF3w" |
| 112 | + }, |
| 113 | + "source": [ |
| 114 | + "### Install Cardinal" |
| 115 | + ] |
| 116 | + }, |
| 117 | + { |
| 118 | + "cell_type": "markdown", |
| 119 | + "metadata": { |
| 120 | + "id": "1H6SWBCTDq5G" |
| 121 | + }, |
| 122 | + "source": [ |
| 123 | + "This notebook uses [Cardinal](https://cardinal.readthedocs.io/en/latest/), a Rust package to calculate red flags and the coverage of OCDS data." |
| 124 | + ] |
| 125 | + }, |
| 126 | + { |
| 127 | + "cell_type": "code", |
| 128 | + "execution_count": null, |
| 129 | + "metadata": { |
| 130 | + "id": "6syz0fkkEdgj" |
| 131 | + }, |
| 132 | + "outputs": [], |
| 133 | + "source": [ |
| 134 | + "# @title Install { display-mode: \"form\" }\n", |
| 135 | + "\n", |
| 136 | + "! curl -sSOL https://github.com/open-contracting/cardinal-rs/releases/download/0.0.5/ocdscardinal-0.0.5-linux-64-bit.zip\n", |
| 137 | + "! unzip -oj ocdscardinal-0.0.5-linux-64-bit.zip ocdscardinal-0.0.5-linux-64-bit/ocdscardinal\n", |
| 138 | + "\n", |
| 139 | + "def cardinal_calculate_coverage(file_name):\n", |
| 140 | + " coverage = !./ocdscardinal coverage $file_name\n", |
| 141 | + " fields = (\n", |
| 142 | + " pd.DataFrame.from_dict(json.loads(coverage[0]), orient=\"index\", columns=[\"count\"])\n", |
| 143 | + " .reset_index()\n", |
| 144 | + " .rename(columns={\"index\": \"path\"})\n", |
| 145 | + " )\n", |
| 146 | + " # Leaves only object members\n", |
| 147 | + " fields_table = fields[fields.path.str.contains(\"[a-z]$\")].copy()\n", |
| 148 | + " fields_table[\"path\"] = fields_table[\"path\"].str.replace(r\"[][]|^/\", \"\", regex=True)\n", |
| 149 | + " return fields_table" |
| 150 | + ] |
| 151 | + }, |
99 | 152 | {
|
100 | 153 | "cell_type": "markdown",
|
101 | 154 | "metadata": {
|
|
810 | 863 | "id": "vpPltvi1tjEs"
|
811 | 864 | },
|
812 | 865 | "source": [
|
813 |
| - "## Select a publication to download from the [Data Registry](https://data.open-contracting.org/)" |
| 866 | + "## Select a publication to download from the [Data Registry](https://data.open-contracting.org/) and generates its field list" |
814 | 867 | ]
|
815 | 868 | },
|
816 | 869 | {
|
|
855 | 908 | "file_name = download_file(selected_publication, selected_year)"
|
856 | 909 | ]
|
857 | 910 | },
|
858 |
| - { |
859 |
| - "cell_type": "markdown", |
860 |
| - "metadata": { |
861 |
| - "id": "25lVf3PwsmmV" |
862 |
| - }, |
863 |
| - "source": [ |
864 |
| - "## Setup Cardinal" |
865 |
| - ] |
866 |
| - }, |
867 |
| - { |
868 |
| - "cell_type": "markdown", |
869 |
| - "metadata": { |
870 |
| - "id": "6fzwlrSLOF3w" |
871 |
| - }, |
872 |
| - "source": [ |
873 |
| - "### Install Cardinal" |
874 |
| - ] |
875 |
| - }, |
876 |
| - { |
877 |
| - "cell_type": "markdown", |
878 |
| - "metadata": { |
879 |
| - "id": "1H6SWBCTDq5G" |
880 |
| - }, |
881 |
| - "source": [ |
882 |
| - "This notebook uses [Cardinal](https://cardinal.readthedocs.io/en/latest/), a Rust package to calculate red flags and the coverage of OCDS data." |
883 |
| - ] |
884 |
| - }, |
885 |
| - { |
886 |
| - "cell_type": "code", |
887 |
| - "execution_count": null, |
888 |
| - "metadata": { |
889 |
| - "id": "6syz0fkkEdgj" |
890 |
| - }, |
891 |
| - "outputs": [], |
892 |
| - "source": [ |
893 |
| - "# @title Install { display-mode: \"form\" }\n", |
894 |
| - "\n", |
895 |
| - "! curl -sSOL https://github.com/open-contracting/cardinal-rs/releases/download/0.0.5/ocdscardinal-0.0.5-linux-64-bit.zip\n", |
896 |
| - "! unzip -oj ocdscardinal-0.0.5-linux-64-bit.zip ocdscardinal-0.0.5-linux-64-bit/ocdscardinal\n", |
897 |
| - "\n", |
898 |
| - "def cardinal_calculate_coverage(file_name):\n", |
899 |
| - " coverage = !./ocdscardinal coverage $file_name\n", |
900 |
| - " fields = (\n", |
901 |
| - " pd.DataFrame.from_dict(json.loads(coverage[0]), orient=\"index\", columns=[\"count\"])\n", |
902 |
| - " .reset_index()\n", |
903 |
| - " .rename(columns={\"index\": \"path\"})\n", |
904 |
| - " )\n", |
905 |
| - " # Leaves only object members\n", |
906 |
| - " fields_table = fields[fields.path.str.contains(\"[a-z]$\")].copy()\n", |
907 |
| - " fields_table[\"path\"] = fields_table[\"path\"].str.replace(r\"[][]|^/\", \"\", regex=True)\n", |
908 |
| - " return fields_table" |
909 |
| - ] |
910 |
| - }, |
911 | 911 | {
|
912 | 912 | "cell_type": "code",
|
913 | 913 | "execution_count": null,
|
|
0 commit comments