From a2d8c3c435b61a7e57aef78e3c1ebf923855e099 Mon Sep 17 00:00:00 2001 From: Brendan Leonard Date: Thu, 7 Feb 2019 16:07:44 -0500 Subject: [PATCH] Export URL arg support, new section names, blood 4digit HS name change (#6) * Add support for downloading sheets using export URL args * New SITC and HS naming changes (section names, blood) * Bump version --- google_docs_download.py | 11 ++++++ product/HS/IntlAtlas/clean.py | 16 ++++++--- product/HS/IntlAtlas/download_sheets.py | 31 ++++++++++++----- product/HS/IntlAtlas/in/HS92_Atlas_Names.tsv | 18 +++++----- product/HS/IntlAtlas/out/hs92_atlas.csv | 18 +++++----- product/HS/IntlAtlas/out/hs92_atlas.dta | Bin 11043352 -> 11053442 bytes product/SITC/IntlAtlas/clean_sitc.py | 2 ++ product/SITC/IntlAtlas/download_sheets.py | 32 ++++++++++++------ product/SITC/IntlAtlas/in/SITC_Rev2_Names.tsv | 20 +++++------ product/SITC/IntlAtlas/out/sitc_rev2.csv | 20 +++++------ product/SITC/IntlAtlas/out/sitc_rev2.dta | Bin 744218 -> 729170 bytes .../IntlAtlas/out/sitc_rev2_with3digit.csv | 20 +++++------ .../IntlAtlas/out/sitc_rev2_with3digit.dta | Bin 962420 -> 947372 bytes setup.py | 2 +- 14 files changed, 117 insertions(+), 73 deletions(-) diff --git a/google_docs_download.py b/google_docs_download.py index 7333c89..e6c6f3a 100644 --- a/google_docs_download.py +++ b/google_docs_download.py @@ -1,4 +1,5 @@ import gspread +import requests from oauth2client.service_account import ServiceAccountCredentials import pandas as pd @@ -13,6 +14,16 @@ def bytes_to_df(data, **kwargs): return pd.read_csv(io, **kwargs) +def download_sheet(key, sheet_id, output_path): + url = ( + f"https://docs.google.com/spreadsheets/" + f"d/{key}/export?format=csv&id={key}&gid={sheet_id}" + ) + + df = bytes_to_df(requests.get(url).content, dtype="str") + df.to_csv(f"{output_path}.tsv", sep="\t", index=False, encoding="utf-8") + + def get_classification_from_gdrive(url, credentials_path=None): if credentials_path is None: diff --git a/product/HS/IntlAtlas/clean.py b/product/HS/IntlAtlas/clean.py index 03ed5de..31b0fc8 100644 --- a/product/HS/IntlAtlas/clean.py +++ b/product/HS/IntlAtlas/clean.py @@ -1,5 +1,7 @@ import pandas as pd +import sys +sys.path.append("../../..") from classification import ( Hierarchy, repeated_table_to_parent_id_table, @@ -9,6 +11,14 @@ Classification, ) + +def get_hs_services(file="./in/Services_Hierarchy.csv"): + services = pd.read_csv(file, encoding="utf-8", dtype="str") + # Spread out services similarly to each set of exports but buffered further + service_starts = {"section": 10, "2digit": 400, "4digit": 4000, "6digit": 11000} + return spread_out_entries(services, service_starts, h) + + if __name__ == "__main__": names = pd.read_table( "./in/HS92_Atlas_Names.tsv", encoding="utf-8", dtype={"code": str} @@ -18,8 +28,6 @@ "./in/HS92_Atlas_Hierarchy.tsv", encoding="utf-8", dtype="str" ) - services = pd.read_csv("./in/Services_Hierarchy.csv", encoding="utf-8", dtype="str") - fields = {"section": [], "2digit": [], "4digit": [], "6digit": []} h = Hierarchy(["section", "2digit", "4digit", "6digit"]) @@ -51,9 +59,7 @@ parent_id_table = spread_out_entries(parent_id_table, level_starts, h) # Append services to table - # Spread out services similarly to each set of exports but buffered further - service_starts = {"section": 10, "2digit": 400, "4digit": 4000, "6digit": 11000} - services = spread_out_entries(services, service_starts, h) + services = get_hs_services() # Append to main table and sort on combined spread out indices parent_id_table = parent_id_table.append(services).sort_index() diff --git a/product/HS/IntlAtlas/download_sheets.py b/product/HS/IntlAtlas/download_sheets.py index 3a5c0d7..34facd2 100644 --- a/product/HS/IntlAtlas/download_sheets.py +++ b/product/HS/IntlAtlas/download_sheets.py @@ -1,9 +1,22 @@ -from google_docs_download import get_classification_from_gdrive - -hierarchy, names = get_classification_from_gdrive( - "https://docs.google.com/spreadsheets/d/1y6UUixlfbW0jLnUtKycHF1ICUaD-kROQIvscwCGFzzE/edit#gid=0" -) -hierarchy.to_csv( - "./in/HS92_Atlas_Hierarchy.tsv", sep="\t", index=False, encoding="utf-8" -) -names.to_csv("./in/HS92_Atlas_Names.tsv", sep="\t", index=False, encoding="utf-8") +import sys + +sys.path.append("../../..") +from google_docs_download import download_sheet + +if __name__ == "__main__": + + sheets = [ + { + "key": "1xPMiNhKf8DKMMU3ntUADQsouCWOLM2-2lY_2o58gSIQ", + "sheet_id": "0", + "output_path": "./in/HS92_Atlas_Hierarchy", + }, + { + "key": "1xPMiNhKf8DKMMU3ntUADQsouCWOLM2-2lY_2o58gSIQ", + "sheet_id": "1029116973", + "output_path": "./in/HS92_Atlas_Names", + }, + ] + + for sheet in sheets: + download_sheet(**sheet) diff --git a/product/HS/IntlAtlas/in/HS92_Atlas_Names.tsv b/product/HS/IntlAtlas/in/HS92_Atlas_Names.tsv index 6b379af..bbfb338 100644 --- a/product/HS/IntlAtlas/in/HS92_Atlas_Names.tsv +++ b/product/HS/IntlAtlas/in/HS92_Atlas_Names.tsv @@ -361,7 +361,7 @@ code level name_en name_es name_short_es name_short_en 2941 4digit Antibiotics Antibióticos. Antibióticos Antibiotics 2942 4digit Other organic compounds Los demás compuestos orgánicos. Los demás compuestos orgánicos Other organic compounds 3001 4digit Glands and other organs for organotherapeutic uses, dried, whether or not powdered; extracts of glands or other organs or of their secretions for organotherapeutic uses; heparin and its salts; other human or animal substances prepared for therapeutic or p Glándulas y demás órganos para usos opoterápicos, desecados, incluso pulverizados; extractos de glándulas o de otros órganos o de sus secreciones, para usos opoterápicos; heparina y sus sales; las demás sustancias humanas o animales preparadas para usos terapéuticos o profilácticos, no expresadas ni comprendidas en otra parte. Órganos para usos opoterapicos Heparin for therapeutic use -3002 4digit Human blood; animal blood prepared for therapeutic, prophylactic or diagnostic uses; antisera and other blood fractions and modified immunological products, whether or not obtained by means of biotechnological processes; vaccines, toxins, cultures of micr Sangre humana; sangre animal preparada para usos terapéuticos, profilácticos o de diagnóstico; antisueros (sueros con anticuerpos), demás fracciones de la sangre y productos inmunológicos, incluso modificados u obtenidos por procesos biotecnológicos; vacunas, toxinas, cultivos de microorganismos (excepto las levaduras) y productos similares. Sangre Blood +3002 4digit Human blood; animal blood prepared for therapeutic, prophylactic or diagnostic uses; antisera and other blood fractions and modified immunological products, whether or not obtained by means of biotechnological processes; vaccines, toxins, cultures of micr Sangre humana; sangre animal preparada para usos terapéuticos, profilácticos o de diagnóstico; antisueros (sueros con anticuerpos), demás fracciones de la sangre y productos inmunológicos, incluso modificados u obtenidos por procesos biotecnológicos; vacunas, toxinas, cultivos de microorganismos (excepto las levaduras) y productos similares. Sangre Antisera, vaccines and blood 3003 4digit Medicaments (excluding goods of heading 3002, 3005 or 3006) consisting of two or more constituents which have been mixed together for therapeutic or prophylactic uses, not put up in measured doses or in forms or packings for retail sale Medicamentos (excepto los productos de las partidas 30.02, 30.05 ó 30.06) constituidos por productos mezclados entre sí, preparados para usos terapéuticos o profilácticos, sin dosificar ni acondicionar para la venta al por menor. Medicamentos, no envasados Medicaments, not packaged 3004 4digit Medicaments (excluding goods of heading 3002, 3005 or 3006) consisting of mixed or unmixed products for therapeutic or prophylactic uses, put up in measured doses (including those in the form of transdermal administration systems) or in forms or packings Medicamentos (excepto los productos de las partidas 30.02, 30.05 ó 30.06) constituidos por productos mezclados o sin mezclar, preparados para usos terapéuticos o profilácticos, dosificados (incluidos los administrados por vía transdérmica) o acondicionados para la venta al por menor. Medicamentos, envasados Medicaments, packaged 3005 4digit Wadding, gauze, bandages and similar articles (for example, dressings, adhesive plasters, poultices), impregnated or coated with pharmaceutical substances or put up in forms or packings for retail sale for medical, surgical, dental or veterinary purposes Guatas, gasas, vendas y artículos análogos (por ejemplo: apósitos, esparadrapos, sinapismos), impregnados o recubiertos de sustancias farmacéuticas o acondicionados para la venta al por menor con fines médicos, quirúrgicos, odontológicos o veterinarios. Guatas, gasas, y vendas Wadding, gauze and bandages @@ -1341,14 +1341,14 @@ XXXX 4digit Trade data discrepancies Trade data discrepancies Trade data discrep 97 2digit Works of art, collectors' pieces and antiques. Obras de arte, piezas de colección y antigüedades Arte Art 98 2digit (Reserved for special uses by Contracting Parties) (Reservado para usos especiales de las Partes Contratantes) (Reservado para usos especiales de las Partes Contratantes) (Reserved for special uses by Contracting Parties) 99 2digit Other Other Other Other -0 section Textiles and furniture Textiles y muebles Textiles y muebles Textiles and furniture -1 section Vegetables, foodstuffs and wood Vegetales, alimentos y madera Vegetales, alimentos y madera Vegetables, foodstuffs and wood -2 section Stone and glass Piedra y vidrio Piedra y vidrio Stone and glass -3 section Minerals Minerales Minerales Minerals +0 section Textiles, garments, footwear and furniture Textiles y muebles Textiles y muebles Textiles +1 section Vegetables, animals, wood and paper Vegetales, alimentos y madera Vegetales, alimentos y madera Agriculture +2 section Stone, glass and ceramics Piedra y vidrio Piedra y vidrio Stone +3 section Minerals, fuels, ores and salts Minerales Minerales Minerals 4 section Metals Metales Metales Metals -5 section Chemicals and plastics Químicos y plásticos Químicos y plásticos Chemicals and plastics -6 section Transport vehicles Vehículos de transporte Vehículos de transporte Transport vehicles -7 section Machinery Maquinaria Maquinaria Machinery +5 section Chemicals and plastics Químicos y plásticos Químicos y plásticos Chemicals +6 section Transport vehicles Vehículos de transporte Vehículos de transporte Vehicles +7 section Machinery and instruments Maquinaria Maquinaria Machinery 8 section Electronics Electrónicos Electrónicos Electronics 9 section Other Other Other Other 010111 6digit Live horses, pure-bred Horses, pure-bred @@ -4837,7 +4837,7 @@ XXXX 4digit Trade data discrepancies Trade data discrepancies Trade data discrep 740110 6digit Copper mattes Copper mattes 740120 6digit Cement copper (precipitated copper) Cement copper 740200 6digit Unrefined copper, copper anodes, electrolytic refinin Unrefined copper -740311 6digit Copper cathodes and sections of cathodes unwrought COpper cathodes +740311 6digit Copper cathodes and sections of cathodes unwrought Copper cathodes 740312 6digit Wire bars, copper, unwrought Wire bars, copper, unwrought 740313 6digit Billets, copper, unwrought Billets, copper, unwrought 740319 6digit Refined copper products, unwrought, nes Refined copper products, unwrought diff --git a/product/HS/IntlAtlas/out/hs92_atlas.csv b/product/HS/IntlAtlas/out/hs92_atlas.csv index 9b561b6..17a983f 100644 --- a/product/HS/IntlAtlas/out/hs92_atlas.csv +++ b/product/HS/IntlAtlas/out/hs92_atlas.csv @@ -1,12 +1,12 @@ "","code","name","level","name_en","name_es","name_short_en","name_short_es","parent_id" -0,"0","Textiles and furniture","section","Textiles and furniture","Textiles y muebles","Textiles and furniture","Textiles y muebles","" -1,"1","Vegetables, foodstuffs and wood","section","Vegetables, foodstuffs and wood","Vegetales, alimentos y madera","Vegetables, foodstuffs and wood","Vegetales, alimentos y madera","" -2,"2","Stone and glass","section","Stone and glass","Piedra y vidrio","Stone and glass","Piedra y vidrio","" -3,"3","Minerals","section","Minerals","Minerales","Minerals","Minerales","" +0,"0","Textiles, garments, footwear and furniture","section","Textiles, garments, footwear and furniture","Textiles y muebles","Textiles","Textiles y muebles","" +1,"1","Vegetables, animals, wood and paper","section","Vegetables, animals, wood and paper","Vegetales, alimentos y madera","Agriculture","Vegetales, alimentos y madera","" +2,"2","Stone, glass and ceramics","section","Stone, glass and ceramics","Piedra y vidrio","Stone","Piedra y vidrio","" +3,"3","Minerals, fuels, ores and salts","section","Minerals, fuels, ores and salts","Minerales","Minerals","Minerales","" 4,"4","Metals","section","Metals","Metales","Metals","Metales","" -5,"5","Chemicals and plastics","section","Chemicals and plastics","Químicos y plásticos","Chemicals and plastics","Químicos y plásticos","" -6,"6","Transport vehicles","section","Transport vehicles","Vehículos de transporte","Transport vehicles","Vehículos de transporte","" -7,"7","Machinery","section","Machinery","Maquinaria","Machinery","Maquinaria","" +5,"5","Chemicals and plastics","section","Chemicals and plastics","Químicos y plásticos","Chemicals","Químicos y plásticos","" +6,"6","Transport vehicles","section","Transport vehicles","Vehículos de transporte","Vehicles","Vehículos de transporte","" +7,"7","Machinery and instruments","section","Machinery and instruments","Maquinaria","Machinery","Maquinaria","" 8,"8","Electronics","section","Electronics","Electrónicos","Electronics","Electrónicos","" 9,"9","Other","section","Other","Other","Other","Other","" 10,"services","Services","section","Services","Services","Services","Services","" @@ -474,7 +474,7 @@ 1009,"2941","Antibiotics","4digit","Antibiotics","Antibióticos.","Antibiotics","Antibióticos",128.0 1010,"2942","Other organic compounds","4digit","Other organic compounds","Los demás compuestos orgánicos.","Other organic compounds","Los demás compuestos orgánicos",128.0 1011,"3001","Glands and other organs for organotherapeutic uses, dried, whether or not powdered; extracts of glands or other organs or of their secretions for organotherapeutic uses; heparin and its salts; other human or animal substances prepared for therapeutic or p","4digit","Glands and other organs for organotherapeutic uses, dried, whether or not powdered; extracts of glands or other organs or of their secretions for organotherapeutic uses; heparin and its salts; other human or animal substances prepared for therapeutic or p","Glándulas y demás órganos para usos opoterápicos, desecados, incluso pulverizados; extractos de glándulas o de otros órganos o de sus secreciones, para usos opoterápicos; heparina y sus sales; las demás sustancias humanas o animales preparadas para usos terapéuticos o profilácticos, no expresadas ni comprendidas en otra parte.","Heparin for therapeutic use","Órganos para usos opoterapicos",129.0 -1012,"3002","Human blood; animal blood prepared for therapeutic, prophylactic or diagnostic uses; antisera and other blood fractions and modified immunological products, whether or not obtained by means of biotechnological processes; vaccines, toxins, cultures of micr","4digit","Human blood; animal blood prepared for therapeutic, prophylactic or diagnostic uses; antisera and other blood fractions and modified immunological products, whether or not obtained by means of biotechnological processes; vaccines, toxins, cultures of micr","Sangre humana; sangre animal preparada para usos terapéuticos, profilácticos o de diagnóstico; antisueros (sueros con anticuerpos), demás fracciones de la sangre y productos inmunológicos, incluso modificados u obtenidos por procesos biotecnológicos; vacunas, toxinas, cultivos de microorganismos (excepto las levaduras) y productos similares.","Blood","Sangre",129.0 +1012,"3002","Human blood; animal blood prepared for therapeutic, prophylactic or diagnostic uses; antisera and other blood fractions and modified immunological products, whether or not obtained by means of biotechnological processes; vaccines, toxins, cultures of micr","4digit","Human blood; animal blood prepared for therapeutic, prophylactic or diagnostic uses; antisera and other blood fractions and modified immunological products, whether or not obtained by means of biotechnological processes; vaccines, toxins, cultures of micr","Sangre humana; sangre animal preparada para usos terapéuticos, profilácticos o de diagnóstico; antisueros (sueros con anticuerpos), demás fracciones de la sangre y productos inmunológicos, incluso modificados u obtenidos por procesos biotecnológicos; vacunas, toxinas, cultivos de microorganismos (excepto las levaduras) y productos similares.","Antisera, vaccines and blood","Sangre",129.0 1013,"3003","Medicaments (excluding goods of heading 3002, 3005 or 3006) consisting of two or more constituents which have been mixed together for therapeutic or prophylactic uses, not put up in measured doses or in forms or packings for retail sale","4digit","Medicaments (excluding goods of heading 3002, 3005 or 3006) consisting of two or more constituents which have been mixed together for therapeutic or prophylactic uses, not put up in measured doses or in forms or packings for retail sale","Medicamentos (excepto los productos de las partidas 30.02, 30.05 ó 30.06) constituidos por productos mezclados entre sí, preparados para usos terapéuticos o profilácticos, sin dosificar ni acondicionar para la venta al por menor.","Medicaments, not packaged","Medicamentos, no envasados",129.0 1014,"3004","Medicaments (excluding goods of heading 3002, 3005 or 3006) consisting of mixed or unmixed products for therapeutic or prophylactic uses, put up in measured doses (including those in the form of transdermal administration systems) or in forms or packings","4digit","Medicaments (excluding goods of heading 3002, 3005 or 3006) consisting of mixed or unmixed products for therapeutic or prophylactic uses, put up in measured doses (including those in the form of transdermal administration systems) or in forms or packings","Medicamentos (excepto los productos de las partidas 30.02, 30.05 ó 30.06) constituidos por productos mezclados o sin mezclar, preparados para usos terapéuticos o profilácticos, dosificados (incluidos los administrados por vía transdérmica) o acondicionados para la venta al por menor.","Medicaments, packaged","Medicamentos, envasados",129.0 1015,"3005","Wadding, gauze, bandages and similar articles (for example, dressings, adhesive plasters, poultices), impregnated or coated with pharmaceutical substances or put up in forms or packings for retail sale for medical, surgical, dental or veterinary purposes","4digit","Wadding, gauze, bandages and similar articles (for example, dressings, adhesive plasters, poultices), impregnated or coated with pharmaceutical substances or put up in forms or packings for retail sale for medical, surgical, dental or veterinary purposes","Guatas, gasas, vendas y artículos análogos (por ejemplo: apósitos, esparadrapos, sinapismos), impregnados o recubiertos de sustancias farmacéuticas o acondicionados para la venta al por menor con fines médicos, quirúrgicos, odontológicos o veterinarios.","Wadding, gauze and bandages","Guatas, gasas, y vendas",129.0 @@ -4846,7 +4846,7 @@ 8483,"740110","Copper mattes","6digit","Copper mattes","","Copper mattes","",1517.0 8484,"740120","Cement copper (precipitated copper)","6digit","Cement copper (precipitated copper)","","Cement copper","",1517.0 8485,"740200","Unrefined copper, copper anodes, electrolytic refinin","6digit","Unrefined copper, copper anodes, electrolytic refinin","","Unrefined copper","",1518.0 -8486,"740311","Copper cathodes and sections of cathodes unwrought","6digit","Copper cathodes and sections of cathodes unwrought","","COpper cathodes","",1519.0 +8486,"740311","Copper cathodes and sections of cathodes unwrought","6digit","Copper cathodes and sections of cathodes unwrought","","Copper cathodes","",1519.0 8487,"740312","Wire bars, copper, unwrought","6digit","Wire bars, copper, unwrought","","Wire bars, copper, unwrought","",1519.0 8488,"740313","Billets, copper, unwrought","6digit","Billets, copper, unwrought","","Billets, copper, unwrought","",1519.0 8489,"740319","Refined copper products, unwrought, nes","6digit","Refined copper products, unwrought, nes","","Refined copper products, unwrought","",1519.0 diff --git a/product/HS/IntlAtlas/out/hs92_atlas.dta b/product/HS/IntlAtlas/out/hs92_atlas.dta index 1f77e965dde4e11b59a1ab78a5b674b8790959e4..b86e48c5a5db0c26c73678038d8d7588b55bdcff 100644 GIT binary patch delta 315108 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 delta 312009 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 XkHSApRku~~#P}<(oi62$KP>(WagUoz diff --git a/product/SITC/IntlAtlas/clean_sitc.py b/product/SITC/IntlAtlas/clean_sitc.py index aa53566..9fbef9c 100644 --- a/product/SITC/IntlAtlas/clean_sitc.py +++ b/product/SITC/IntlAtlas/clean_sitc.py @@ -1,5 +1,7 @@ import pandas as pd +import sys +sys.path.append("../../..") from classification import ( Hierarchy, repeated_table_to_parent_id_table, diff --git a/product/SITC/IntlAtlas/download_sheets.py b/product/SITC/IntlAtlas/download_sheets.py index bdccdc9..0fbc2a3 100644 --- a/product/SITC/IntlAtlas/download_sheets.py +++ b/product/SITC/IntlAtlas/download_sheets.py @@ -1,10 +1,22 @@ -from google_docs_download import get_classification_from_gdrive - -# SITC Rev2 -hierarchy, names = get_classification_from_gdrive( - "https://docs.google.com/spreadsheets/d/1pgVamRALdpc7IlmzkvJrLk4Hkm4H4wvNyoIycQ6wr_E/edit#gid=1207195644" -) -hierarchy.to_csv( - "./in/SITC_Rev2_Hierarchy.tsv", sep="\t", index=False, encoding="utf-8" -) -names.to_csv("./in/SITC_Rev2_Names.tsv", sep="\t", index=False, encoding="utf-8") +import sys + +sys.path.append("../../..") +from google_docs_download import download_sheet + +if __name__ == "__main__": + + sheets = [ + { + "key": "16Wpxs5SL4s1YUus29lqCkbgC2acXQ19iXZwWEPvvcpM", + "sheet_id": "0", + "output_path": "./in/SITC_Rev2_Hierarchy", + }, + { + "key": "16Wpxs5SL4s1YUus29lqCkbgC2acXQ19iXZwWEPvvcpM", + "sheet_id": "1207195644", + "output_path": "./in/SITC_Rev2_Names", + }, + ] + + for sheet in sheets: + download_sheet(**sheet) diff --git a/product/SITC/IntlAtlas/in/SITC_Rev2_Names.tsv b/product/SITC/IntlAtlas/in/SITC_Rev2_Names.tsv index fe0d47e..f4d2ad0 100644 --- a/product/SITC/IntlAtlas/in/SITC_Rev2_Names.tsv +++ b/product/SITC/IntlAtlas/in/SITC_Rev2_Names.tsv @@ -1,14 +1,14 @@ code level name_en name_short_en name_es name_short_es -0 section Food and live animals chiefly for food Food & live animals for food -1 section Beverages and tobacco Drinks and tobacco -2 section Crude materials, inedible, except fuels Crude materials (inedible) -3 section Mineral fuels, lubricants and related materials Fuels, lubricants & related materials -4 section Animal and vegetable oils, fats and waxes Animal and vegetable oils, fats and waxes -5 section Chemicals and related products, nes Chemicals and related products -6 section Manufactured goods classified chiefly by materials Manufactured goods -7 section Machinery and transport equipment Machinery & transport -8 section Miscellaneous manufactured articles Other manufactured articles -9 section Commodities and transactions not classified elsewhere in the SITC Other +0 section Food and live animals chiefly for food Food +1 section Beverages and tobacco Beverages +2 section Crude materials, inedible, except fuels Crude materials +3 section Mineral fuels, lubricants and related materials Fuels +4 section Animal and vegetable oils, fats and waxes Vegetable oils +5 section Chemicals and related products, nes Chemicals +6 section Manufactured goods classified chiefly by materials Material manufacturers +7 section Machinery and transport equipment Machinery and vehicles +8 section Miscellaneous manufactured articles Other manufacturers +9 section Commodities and transactions not classified elsewhere in the SITC Unspecified 00 2digit Live animals chiefly for food Live animals chiefly for food 01 2digit Meat and preparations Meat and preparations 02 2digit Dairy products and birds' eggs Dairy products and birds' eggs diff --git a/product/SITC/IntlAtlas/out/sitc_rev2.csv b/product/SITC/IntlAtlas/out/sitc_rev2.csv index 7bd376e..9ef7bfe 100644 --- a/product/SITC/IntlAtlas/out/sitc_rev2.csv +++ b/product/SITC/IntlAtlas/out/sitc_rev2.csv @@ -1,14 +1,14 @@ "","code","name","level","name_en","name_es","name_short_en","name_short_es","parent_id" -0,"0","Food and live animals chiefly for food","section","Food and live animals chiefly for food","","Food & live animals for food","","" -1,"1","Beverages and tobacco","section","Beverages and tobacco","","Drinks and tobacco","","" -2,"2","Crude materials, inedible, except fuels","section","Crude materials, inedible, except fuels","","Crude materials (inedible)","","" -3,"3","Mineral fuels, lubricants and related materials","section","Mineral fuels, lubricants and related materials","","Fuels, lubricants & related materials","","" -4,"4","Animal and vegetable oils, fats and waxes","section","Animal and vegetable oils, fats and waxes","","Animal and vegetable oils, fats and waxes","","" -5,"5","Chemicals and related products, nes","section","Chemicals and related products, nes","","Chemicals and related products","","" -6,"6","Manufactured goods classified chiefly by materials","section","Manufactured goods classified chiefly by materials","","Manufactured goods","","" -7,"7","Machinery and transport equipment","section","Machinery and transport equipment","","Machinery & transport","","" -8,"8","Miscellaneous manufactured articles","section","Miscellaneous manufactured articles","","Other manufactured articles","","" -9,"9","Commodities and transactions not classified elsewhere in the SITC","section","Commodities and transactions not classified elsewhere in the SITC","","Other","","" +0,"0","Food and live animals chiefly for food","section","Food and live animals chiefly for food","","Food","","" +1,"1","Beverages and tobacco","section","Beverages and tobacco","","Beverages","","" +2,"2","Crude materials, inedible, except fuels","section","Crude materials, inedible, except fuels","","Crude materials","","" +3,"3","Mineral fuels, lubricants and related materials","section","Mineral fuels, lubricants and related materials","","Fuels","","" +4,"4","Animal and vegetable oils, fats and waxes","section","Animal and vegetable oils, fats and waxes","","Vegetable oils","","" +5,"5","Chemicals and related products, nes","section","Chemicals and related products, nes","","Chemicals","","" +6,"6","Manufactured goods classified chiefly by materials","section","Manufactured goods classified chiefly by materials","","Material manufacturers","","" +7,"7","Machinery and transport equipment","section","Machinery and transport equipment","","Machinery and vehicles","","" +8,"8","Miscellaneous manufactured articles","section","Miscellaneous manufactured articles","","Other manufacturers","","" +9,"9","Commodities and transactions not classified elsewhere in the SITC","section","Commodities and transactions not classified elsewhere in the SITC","","Unspecified","","" 10,"services","Services","section","Services","Services","Services","Services","" 100,"00","Live animals chiefly for food","2digit","Live animals chiefly for food","","Live animals chiefly for food","",0.0 101,"01","Meat and preparations","2digit","Meat and preparations","","Meat and preparations","",0.0 diff --git a/product/SITC/IntlAtlas/out/sitc_rev2.dta b/product/SITC/IntlAtlas/out/sitc_rev2.dta index 339cd4a4cc32b08e66b80a7b3ff761362e1e9987..f9cca09db3dc3fc022cd4292651944cd46087f27 100644 GIT binary patch delta 14874 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 As{jB1 delta 17452 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 bKEqJ4aQFa=)Y%Xg4M!L}0%7%K7vlc_@6MyZ diff --git a/product/SITC/IntlAtlas/out/sitc_rev2_with3digit.csv b/product/SITC/IntlAtlas/out/sitc_rev2_with3digit.csv index 2021338..2a8efdd 100644 --- a/product/SITC/IntlAtlas/out/sitc_rev2_with3digit.csv +++ b/product/SITC/IntlAtlas/out/sitc_rev2_with3digit.csv @@ -1,14 +1,14 @@ "","code","name","level","name_en","name_es","name_short_en","name_short_es","parent_id" -0,"0","Food and live animals chiefly for food","section","Food and live animals chiefly for food","","Food & live animals for food","","" -1,"1","Beverages and tobacco","section","Beverages and tobacco","","Drinks and tobacco","","" -2,"2","Crude materials, inedible, except fuels","section","Crude materials, inedible, except fuels","","Crude materials (inedible)","","" -3,"3","Mineral fuels, lubricants and related materials","section","Mineral fuels, lubricants and related materials","","Fuels, lubricants & related materials","","" -4,"4","Animal and vegetable oils, fats and waxes","section","Animal and vegetable oils, fats and waxes","","Animal and vegetable oils, fats and waxes","","" -5,"5","Chemicals and related products, nes","section","Chemicals and related products, nes","","Chemicals and related products","","" -6,"6","Manufactured goods classified chiefly by materials","section","Manufactured goods classified chiefly by materials","","Manufactured goods","","" -7,"7","Machinery and transport equipment","section","Machinery and transport equipment","","Machinery & transport","","" -8,"8","Miscellaneous manufactured articles","section","Miscellaneous manufactured articles","","Other manufactured articles","","" -9,"9","Commodities and transactions not classified elsewhere in the SITC","section","Commodities and transactions not classified elsewhere in the SITC","","Other","","" +0,"0","Food and live animals chiefly for food","section","Food and live animals chiefly for food","","Food","","" +1,"1","Beverages and tobacco","section","Beverages and tobacco","","Beverages","","" +2,"2","Crude materials, inedible, except fuels","section","Crude materials, inedible, except fuels","","Crude materials","","" +3,"3","Mineral fuels, lubricants and related materials","section","Mineral fuels, lubricants and related materials","","Fuels","","" +4,"4","Animal and vegetable oils, fats and waxes","section","Animal and vegetable oils, fats and waxes","","Vegetable oils","","" +5,"5","Chemicals and related products, nes","section","Chemicals and related products, nes","","Chemicals","","" +6,"6","Manufactured goods classified chiefly by materials","section","Manufactured goods classified chiefly by materials","","Material manufacturers","","" +7,"7","Machinery and transport equipment","section","Machinery and transport equipment","","Machinery and vehicles","","" +8,"8","Miscellaneous manufactured articles","section","Miscellaneous manufactured articles","","Other manufacturers","","" +9,"9","Commodities and transactions not classified elsewhere in the SITC","section","Commodities and transactions not classified elsewhere in the SITC","","Unspecified","","" 10,"services","Services","section","Services","Services","Services","Services","" 100,"00","Live animals chiefly for food","2digit","Live animals chiefly for food","","Live animals chiefly for food","",0.0 101,"01","Meat and preparations","2digit","Meat and preparations","","Meat and preparations","",0.0 diff --git a/product/SITC/IntlAtlas/out/sitc_rev2_with3digit.dta b/product/SITC/IntlAtlas/out/sitc_rev2_with3digit.dta index ee846674729cba4ccc31c984d8ba4918bdaa7a98..ca3e7e590c1178377449f5eba2414f53e5c437ba 100644 GIT binary patch delta 14654 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 diff --git a/setup.py b/setup.py index 99b0d54..5dfebe3 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="linnaeus", - version="v108", + version="v109", author="Mali Akmanalp ", description=("Harvard CID's classification tools."), url="http://github.com/cid-harvard/classifications/",