lists.arthurdejong.org
RSS feed

python-stdnum branch master updated. 1.5-9-g194f025

[Date Prev][Date Next] [Thread Prev][Thread Next]

python-stdnum branch master updated. 1.5-9-g194f025



This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "python-stdnum".

The branch, master has been updated
       via  194f02576de66a1cdd47f57081fb0a24519cc91a (commit)
       via  d43c394049e52e474575948b94ab52ee8567fd44 (commit)
       via  61d73c17201a31b11bbdb0d7ab71423a1ce06fbb (commit)
       via  649f073f27154aa0664c04be0a53eb55d5600ae9 (commit)
      from  c957318aacacf6496e7fef6198f6b9e791552b70 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://arthurdejong.org/git/python-stdnum/commit/?id=194f02576de66a1cdd47f57081fb0a24519cc91a

commit 194f02576de66a1cdd47f57081fb0a24519cc91a
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sun Mar 26 23:32:17 2017 +0200

    Add unicode robustness tests
    
    This tests a few unicode strings and fixes a bug in the MEID module.

diff --git a/stdnum/meid.py b/stdnum/meid.py
index be52fbd..3077753 100644
--- a/stdnum/meid.py
+++ b/stdnum/meid.py
@@ -1,6 +1,6 @@
 # meid.py - functions for handling Mobile Equipment Identifiers (MEIDs)
 #
-# Copyright (C) 2010-2016 Arthur de Jong
+# Copyright (C) 2010-2017 Arthur de Jong
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -48,7 +48,7 @@ _hex_alphabet = '0123456789ABCDEF'
 def _cleanup(number):
     """Remove any grouping information from the number and removes surrounding
     whitespace."""
-    return clean(str(number), ' -').strip().upper()
+    return clean(number, ' -').strip().upper()
 
 
 def _ishex(number):
diff --git a/tests/test_robustness.doctest b/tests/test_robustness.doctest
index 8ce1f35..b4ba36a 100644
--- a/tests/test_robustness.doctest
+++ b/tests/test_robustness.doctest
@@ -22,7 +22,9 @@ This file contains some tests for modules in the stdnum 
package to
 check whether all provided is_valid() functions can handle clearly
 invalid junk.
 
->>> testvalues = (None, '*&^%$', '', 0, False, object(), 'Z', 'QQ', '3')
+>>> testvalues = (
+...     None, '*&^%$', '', 0, False, object(), 'Z', 'QQ', '3', '€', u'€',
+...     '😴', '¥')
 >>> from stdnum.util import get_number_modules
 
 Go over each module and try every value.

https://arthurdejong.org/git/python-stdnum/commit/?id=d43c394049e52e474575948b94ab52ee8567fd44

commit d43c394049e52e474575948b94ab52ee8567fd44
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sun Mar 26 23:27:42 2017 +0200

    Add test for Ñ in Referencia Catastral
    
    This supports the Referencia Catastral with an Ñ in it for both byte
    strings (Python 2) and unicode strings (Python 2 and 3). Support for
    literal unicode strings in Python 2 doctests is flaky so the test is a
    bit ugly.
    
    This also adds a few numbers that were found online. Sadly no real
    numbers with an Ñ in it have been found so the one in the test was
    constructed.

diff --git a/stdnum/es/referenciacatastral.py b/stdnum/es/referenciacatastral.py
index fefb108..b9882cf 100644
--- a/stdnum/es/referenciacatastral.py
+++ b/stdnum/es/referenciacatastral.py
@@ -2,7 +2,7 @@
 # coding: utf-8
 #
 # Copyright (C) 2016 David García Garzón
-# Copyright (C) 2016 Arthur de Jong
+# Copyright (C) 2016-2017 Arthur de Jong
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -90,8 +90,16 @@ def _check_digit(number):
     return 'MQWERTYUIOPASDFGHJKLBZX'[s % 23]
 
 
+def _force_unicode(number):
+    """Convert the number to unicode."""
+    if not hasattr(number, 'isnumeric'):  # pragma: no cover (Python 2 code)
+        number = number.decode('utf-8')
+    return number
+
+
 def calc_check_digits(number):
     """Calculate the check digits for the number."""
+    number = _force_unicode(compact(number))
     return (
         _check_digit(number[0:7] + number[14:18]) +
         _check_digit(number[7:14] + number[14:18]))
@@ -101,11 +109,12 @@ def validate(number):
     """Checks to see if the number provided is a valid Cadastral Reference.
     This checks the length, formatting and check digits."""
     number = compact(number)
-    if not all(c in alphabet for c in number):
+    n = _force_unicode(number)
+    if not all(c in alphabet for c in n):
         raise InvalidFormat()
-    if len(number) != 20:
+    if len(n) != 20:
         raise InvalidLength()
-    if calc_check_digits(number) != number[18:]:
+    if calc_check_digits(n) != n[18:]:
         raise InvalidChecksum()
     return number
 
diff --git a/tests/test_es_referenciacatastral.doctest 
b/tests/test_es_referenciacatastral.doctest
index f175d1c..94610ee 100644
--- a/tests/test_es_referenciacatastral.doctest
+++ b/tests/test_es_referenciacatastral.doctest
@@ -1,7 +1,7 @@
 test_es_referenciacatastral.doctest - more detailed doctests
 
 Copyright (C) 2016 David García Garzón
-Copyright (C) 2015 Arthur de Jong
+Copyright (C) 2015-2017 Arthur de Jong
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
@@ -72,6 +72,19 @@ An online validator can be found at
 https://www1.sedecatastro.gob.es/CYCBienInmueble/OVCBusqueda.aspx
 
 
+This is a constructed example of a Referencia Catastral with an Ñ in it. It
+seems that unicode literals do not work so we are escaping Ñ.
+
+>>> referenciacatastral.calc_check_digits('9872023 ÑH5797S 0001')
+'WP'
+>>> referenciacatastral.calc_check_digits(u'9872023 \xd1H5797S 0001')
+'WP'
+>>> referenciacatastral.validate('9872023 ÑH5797S 0001 WP') == 
'9872023ÑH5797S0001WP'
+True
+>>> referenciacatastral.validate(u'9872023 \xd1H5797S 0001 WP') == 
u'9872023\xd1H5797S0001WP'
+True
+
+
 These have been found online and should all be valid numbers.
 
 >>> numbers = '''
@@ -147,6 +160,9 @@ These have been found online and should all be valid 
numbers.
 ... 1344504PD5614S0001XE
 ... 1468103QC6316N0001PQ
 ... 1470436TJ5117S0001EP
+... 15001A005004610000JK
+... 15001A005004620000JR
+... 15037A024005060000PX
 ... 1665311QC6316S0001OO
 ... 1811701QC3711S0001RM
 ... 1927510QD2812N0001GJ
@@ -178,6 +194,8 @@ These have been found online and should all be valid 
numbers.
 ... 3065602TH8836N0001KA
 ... 3117006QC3731N0001KM
 ... 3135901PD7033E0001MF
+... 3174922NH0737S0011QS
+... 3174932NH0737S0001AT
 ... 3178101UJ2337N0001IB
 ... 3327002TJ6332N0001QH
 ... 3368022PE8136N0001LJ
@@ -193,6 +211,7 @@ These have been found online and should all be valid 
numbers.
 ... 4637801TK6843N0001WI
 ... 4878424TK6347N0001GT
 ... 4926002QE4142N0001UP
+... 50210A003001510000LT
 ... 5034623PC6853S0001MO
 ... 5078102VK8957N0001TB
 ... 5172401PD7057A0001HI
@@ -236,6 +255,7 @@ These have been found online and should all be valid 
numbers.
 ... 6795121QD0069N0008EU
 ... 6821105TK5662S0001QI
 ... 6822811QD2162S0001GP
+... 6837203FT3063N0001YP
 ... 6893505QC5569S0001LO
 ... 6991224PD3869S0001FW
 ... 7076102TJ5177N0001ZE
@@ -247,6 +267,7 @@ These have been found online and should all be valid 
numbers.
 ... 7384201TJ5178S0019OB
 ... 7384201TJ5178S0043QS
 ... 7479113QE2477N0001UY
+... 7499524NH0179N0001RJ
 ... 7570012TJ4377S0001PO
 ... 7640222QE4374B0001FR
 ... 7682601TJ5178S0001XT
@@ -259,6 +280,7 @@ These have been found online and should all be valid 
numbers.
 ... 8344202PC6684S0001FT
 ... 8354003PD7085C0001RR
 ... 8384416TJ8688S0001IQ
+... 8579507NH0387N0001QB
 ... 8645036TJ5984N0001TL
 ... 8670604TJ4587S0004BE
 ... 8679007TJ5187N0001LU

https://arthurdejong.org/git/python-stdnum/commit/?id=61d73c17201a31b11bbdb0d7ab71423a1ce06fbb

commit 61d73c17201a31b11bbdb0d7ab71423a1ce06fbb
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sun Mar 26 18:11:41 2017 +0200

    Add European NACE classification
    
    This number is used to classify business. Validation is done based on a
    downloaded registry.

diff --git a/getnace.py b/getnace.py
new file mode 100755
index 0000000..0830563
--- /dev/null
+++ b/getnace.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python3
+
+# getnace.py - script to get the NACE v2 catalogue
+#
+# Copyright (C) 2017 Arthur de Jong
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA
+
+"""This script downloads XML data from the European commission RAMON Eurostat
+Metadata Server and extracts the information that is used for validating NACE
+codes."""
+
+from xml.etree import ElementTree
+import cgi
+import urllib.request
+
+
+# the location of the ISBN Ranges XML file
+download_url = 
'http://ec.europa.eu/eurostat/ramon/nomenclatures/index.cfm?TargetUrl=ACT_OTH_CLS_DLD&StrNom=NACE_REV2&StrFormat=XML&StrLanguageCode=EN'
+
+
+def get(f=None):
+    if f is None:
+        f = urllib.request.urlopen(download_url)
+        _, params = cgi.parse_header(f.info().get('Content-Disposition', ''))
+        filename = params.get('filename', '?')
+        yield '# generated from %s, downloaded from' % filename
+        yield '# %s' % download_url
+    else:
+        yield '# generated from %s' % f
+
+    # parse XML document
+    doc = ElementTree.parse(f).getroot()
+
+    # output header
+    yield '# %s: %s' % (
+        doc.find('Classification').get('id'),
+        doc.find('Classification/Label/LabelText[@language="EN"]').text)
+
+    for item in doc.findall('Classification/Item'):
+        number = item.get('id')
+        level = int(item.get('idLevel', 0))
+        label = item.find('Label/LabelText[@language="EN"]').text
+        isic = item.find(
+            'Property[@genericName="ISIC4_REF"]/PropertyQualifier/' +
+            'PropertyText').text
+        if level == 1:
+            section = number
+            yield '%s label="%s" isic="%s"' % (number, label, isic)
+        elif level == 2:
+            yield '%s section="%s" label="%s" isic="%s"' % (
+                number, section, label, isic)
+        else:
+            yield '%s%s label="%s" isic="%s"' % (
+                ' ' * (level - 2), number[level], label, isic)
+
+
+if __name__ == '__main__':
+    #get('NACE_REV2_20170326_162216.xml')
+    for row in get():
+        print(row)
diff --git a/stdnum/eu/nace.dat b/stdnum/eu/nace.dat
new file mode 100644
index 0000000..370d5e6
--- /dev/null
+++ b/stdnum/eu/nace.dat
@@ -0,0 +1,999 @@
+# generated from NACE_REV2_20170326_174221.xml, downloaded from
+# 
http://ec.europa.eu/eurostat/ramon/nomenclatures/index.cfm?TargetUrl=ACT_OTH_CLS_DLD&StrNom=NACE_REV2&StrFormat=XML&StrLanguageCode=EN
+# NACE_REV2: Statistical Classification of Economic Activities in the European 
Community, Rev. 2 (2008)
+A label="AGRICULTURE, FORESTRY AND FISHING" isic="A"
+01 section="A" label="Crop and animal production, hunting and related service 
activities" isic="01"
+ 1 label="Growing of non-perennial crops" isic="011"
+  1 label="Growing of cereals (except rice), leguminous crops and oil seeds" 
isic="0111"
+  2 label="Growing of rice" isic="0112"
+  3 label="Growing of vegetables and melons, roots and tubers" isic="0113"
+  4 label="Growing of sugar cane" isic="0114"
+  5 label="Growing of tobacco" isic="0115"
+  6 label="Growing of fibre crops" isic="0116"
+  9 label="Growing of other non-perennial crops" isic="0119"
+ 2 label="Growing of perennial crops" isic="012"
+  1 label="Growing of grapes" isic="0121"
+  2 label="Growing of tropical and subtropical fruits" isic="0122"
+  3 label="Growing of citrus fruits" isic="0123"
+  4 label="Growing of pome fruits and stone fruits" isic="0124"
+  5 label="Growing of other tree and bush fruits and nuts" isic="0125"
+  6 label="Growing of oleaginous fruits" isic="0126"
+  7 label="Growing of beverage crops" isic="0127"
+  8 label="Growing of spices, aromatic, drug and pharmaceutical crops" 
isic="0128"
+  9 label="Growing of other perennial crops" isic="0129"
+ 3 label="Plant propagation" isic="013"
+  0 label="Plant propagation" isic="0130"
+ 4 label="Animal production" isic="014"
+  1 label="Raising of dairy cattle" isic="0141"
+  2 label="Raising of other cattle and buffaloes" isic="0141"
+  3 label="Raising of horses and other equines" isic="0142"
+  4 label="Raising of camels and camelids" isic="0143"
+  5 label="Raising of sheep and goats" isic="0144"
+  6 label="Raising of swine/pigs" isic="0145"
+  7 label="Raising of poultry" isic="0146"
+  9 label="Raising of other animals" isic="0149"
+ 5 label="Mixed farming" isic="015"
+  0 label="Mixed farming" isic="0150"
+ 6 label="Support activities to agriculture and post-harvest crop activities" 
isic="016"
+  1 label="Support activities for crop production" isic="0161"
+  2 label="Support activities for animal production" isic="0162"
+  3 label="Post-harvest crop activities" isic="0163"
+  4 label="Seed processing for propagation" isic="0164"
+ 7 label="Hunting, trapping and related service activities" isic="017"
+  0 label="Hunting, trapping and related service activities" isic="0170"
+02 section="A" label="Forestry and logging" isic="02"
+ 1 label="Silviculture and other forestry activities" isic="021"
+  0 label="Silviculture and other forestry activities" isic="0210"
+ 2 label="Logging" isic="022"
+  0 label="Logging" isic="0220"
+ 3 label="Gathering of wild growing non-wood products" isic="023"
+  0 label="Gathering of wild growing non-wood products" isic="0230"
+ 4 label="Support services to forestry" isic="024"
+  0 label="Support services to forestry" isic="0240"
+03 section="A" label="Fishing and aquaculture" isic="03"
+ 1 label="Fishing" isic="031"
+  1 label="Marine fishing" isic="0311"
+  2 label="Freshwater fishing" isic="0312"
+ 2 label="Aquaculture" isic="032"
+  1 label="Marine aquaculture" isic="0321"
+  2 label="Freshwater aquaculture" isic="0322"
+B label="MINING AND QUARRYING" isic="B"
+05 section="B" label="Mining of coal and lignite" isic="05"
+ 1 label="Mining of hard coal" isic="051"
+  0 label="Mining of hard coal" isic="0510"
+ 2 label="Mining of lignite" isic="052"
+  0 label="Mining of lignite" isic="0520"
+06 section="B" label="Extraction of crude petroleum and natural gas" isic="06"
+ 1 label="Extraction of crude petroleum" isic="061"
+  0 label="Extraction of crude petroleum" isic="0610"
+ 2 label="Extraction of natural gas" isic="062"
+  0 label="Extraction of natural gas" isic="0620"
+07 section="B" label="Mining of metal ores" isic="07"
+ 1 label="Mining of iron ores" isic="071"
+  0 label="Mining of iron ores" isic="0710"
+ 2 label="Mining of non-ferrous metal ores" isic="072"
+  1 label="Mining of uranium and thorium ores" isic="0721"
+  9 label="Mining of other non-ferrous metal ores" isic="0729"
+08 section="B" label="Other mining and quarrying" isic="08"
+ 1 label="Quarrying of stone, sand and clay" isic="081"
+  1 label="Quarrying of ornamental and building stone, limestone, gypsum, 
chalk and slate" isic="0810"
+  2 label="Operation of gravel and sand pits; mining of clays and kaolin" 
isic="0810"
+ 9 label="Mining and quarrying n.e.c." isic="089"
+  1 label="Mining of chemical and fertiliser minerals" isic="0891"
+  2 label="Extraction of peat" isic="0892"
+  3 label="Extraction of salt" isic="0893"
+  9 label="Other mining and quarrying n.e.c." isic="0899"
+09 section="B" label="Mining support service activities" isic="09"
+ 1 label="Support activities for petroleum and natural gas extraction" 
isic="091"
+  0 label="Support activities for petroleum and natural gas extraction" 
isic="0910"
+ 9 label="Support activities for other mining and quarrying" isic="099"
+  0 label="Support activities for other mining and quarrying" isic="0990"
+C label="MANUFACTURING" isic="C"
+10 section="C" label="Manufacture of food products" isic="10"
+ 1 label="Processing and preserving of meat and production of meat products" 
isic="101"
+  1 label="Processing and preserving of meat" isic="1010"
+  2 label="Processing and preserving of poultry meat" isic="1010"
+  3 label="Production of meat and poultry meat products" isic="1010"
+ 2 label="Processing and preserving of fish, crustaceans and molluscs" 
isic="102"
+  0 label="Processing and preserving of fish, crustaceans and molluscs" 
isic="1020"
+ 3 label="Processing and preserving of fruit and vegetables" isic="103"
+  1 label="Processing and preserving of potatoes" isic="1030"
+  2 label="Manufacture of fruit and vegetable juice" isic="1030"
+  9 label="Other processing and preserving of fruit and vegetables" isic="1030"
+ 4 label="Manufacture of vegetable and animal oils and fats" isic="104"
+  1 label="Manufacture of oils and fats" isic="1040"
+  2 label="Manufacture of margarine and similar edible fats" isic="1040"
+ 5 label="Manufacture of dairy products" isic="105"
+  1 label="Operation of dairies and cheese making" isic="1050"
+  2 label="Manufacture of ice cream" isic="1050"
+ 6 label="Manufacture of grain mill products, starches and starch products" 
isic="106"
+  1 label="Manufacture of grain mill products" isic="1061"
+  2 label="Manufacture of starches and starch products" isic="1062"
+ 7 label="Manufacture of bakery and farinaceous products" isic="107"
+  1 label="Manufacture of bread; manufacture of fresh pastry goods and cakes" 
isic="1071"
+  2 label="Manufacture of rusks and biscuits; manufacture of preserved pastry 
goods and cakes" isic="1071"
+  3 label="Manufacture of macaroni, noodles, couscous and similar farinaceous 
products" isic="1074"
+ 8 label="Manufacture of other food products" isic="107"
+  1 label="Manufacture of sugar" isic="1072"
+  2 label="Manufacture of cocoa, chocolate and sugar confectionery" isic="1073"
+  3 label="Processing of tea and coffee" isic="1079"
+  4 label="Manufacture of condiments and seasonings" isic="1079"
+  5 label="Manufacture of prepared meals and dishes" isic="1075"
+  6 label="Manufacture of homogenised food preparations and dietetic food" 
isic="1079"
+  9 label="Manufacture of other food products n.e.c." isic="1079"
+ 9 label="Manufacture of prepared animal feeds" isic="108"
+  1 label="Manufacture of prepared feeds for farm animals" isic="1080"
+  2 label="Manufacture of prepared pet foods" isic="1080"
+11 section="C" label="Manufacture of beverages" isic="11"
+ 0 label="Manufacture of beverages" isic="110"
+  1 label="Distilling, rectifying and blending of spirits" isic="1101"
+  2 label="Manufacture of wine from grape" isic="1102"
+  3 label="Manufacture of cider and other fruit wines" isic="1102"
+  4 label="Manufacture of other non-distilled fermented beverages" isic="1102"
+  5 label="Manufacture of beer" isic="1103"
+  6 label="Manufacture of malt" isic="1103"
+  7 label="Manufacture of soft drinks; production of mineral waters and other 
bottled waters" isic="1104"
+12 section="C" label="Manufacture of tobacco products" isic="12"
+ 0 label="Manufacture of tobacco products" isic="120"
+  0 label="Manufacture of tobacco products" isic="1200"
+13 section="C" label="Manufacture of textiles" isic="13"
+ 1 label="Preparation and spinning of textile fibres" isic="131"
+  0 label="Preparation and spinning of textile fibres" isic="1311"
+ 2 label="Weaving of textiles" isic="131"
+  0 label="Weaving of textiles" isic="1312"
+ 3 label="Finishing of textiles" isic="131"
+  0 label="Finishing of textiles" isic="1313"
+ 9 label="Manufacture of other textiles" isic="139"
+  1 label="Manufacture of knitted and crocheted fabrics" isic="1391"
+  2 label="Manufacture of made-up textile articles, except apparel" isic="1392"
+  3 label="Manufacture of carpets and rugs" isic="1393"
+  4 label="Manufacture of cordage, rope, twine and netting" isic="1394"
+  5 label="Manufacture of non-wovens and articles made from non-wovens, except 
apparel" isic="1399"
+  6 label="Manufacture of other technical and industrial textiles" isic="1399"
+  9 label="Manufacture of other textiles n.e.c." isic="1399"
+14 section="C" label="Manufacture of wearing apparel" isic="14"
+ 1 label="Manufacture of wearing apparel, except fur apparel" isic="141"
+  1 label="Manufacture of leather clothes" isic="1410"
+  2 label="Manufacture of workwear" isic="1410"
+  3 label="Manufacture of other outerwear" isic="1410"
+  4 label="Manufacture of underwear" isic="1410"
+  9 label="Manufacture of other wearing apparel and accessories" isic="1410"
+ 2 label="Manufacture of articles of fur" isic="142"
+  0 label="Manufacture of articles of fur" isic="1420"
+ 3 label="Manufacture of knitted and crocheted apparel" isic="143"
+  1 label="Manufacture of knitted and crocheted hosiery" isic="1430"
+  9 label="Manufacture of other knitted and crocheted apparel" isic="1430"
+15 section="C" label="Manufacture of leather and related products" isic="15"
+ 1 label="Tanning and dressing of leather; manufacture of luggage, handbags, 
saddlery and harness; dressing and dyeing of fur" isic="151"
+  1 label="Tanning and dressing of leather; dressing and dyeing of fur" 
isic="1511"
+  2 label="Manufacture of luggage, handbags and the like, saddlery and 
harness" isic="1512"
+ 2 label="Manufacture of footwear" isic="152"
+  0 label="Manufacture of footwear" isic="1520"
+16 section="C" label="Manufacture of wood and of products of wood and cork, 
except furniture; manufacture of articles of straw and plaiting materials" 
isic="16"
+ 1 label="Sawmilling and planing of wood" isic="161"
+  0 label="Sawmilling and planing of wood" isic="1610"
+ 2 label="Manufacture of products of wood, cork, straw and plaiting materials" 
isic="162"
+  1 label="Manufacture of veneer sheets and wood-based panels" isic="1621"
+  2 label="Manufacture of assembled parquet floors" isic="1622"
+  3 label="Manufacture of other builders' carpentry and joinery" isic="1622"
+  4 label="Manufacture of wooden containers" isic="1623"
+  9 label="Manufacture of other products of wood; manufacture of articles of 
cork, straw and plaiting materials" isic="1629"
+17 section="C" label="Manufacture of paper and paper products" isic="17"
+ 1 label="Manufacture of pulp, paper and paperboard" isic="170"
+  1 label="Manufacture of pulp" isic="1701"
+  2 label="Manufacture of paper and paperboard" isic="1701"
+ 2 label="Manufacture of articles of paper and paperboard " isic="170"
+  1 label="Manufacture of corrugated paper and paperboard and of containers of 
paper and paperboard" isic="1702"
+  2 label="Manufacture of household and sanitary goods and of toilet 
requisites" isic="1709"
+  3 label="Manufacture of paper stationery" isic="1709"
+  4 label="Manufacture of wallpaper" isic="1709"
+  9 label="Manufacture of other articles of paper and paperboard" isic="1709"
+18 section="C" label="Printing and reproduction of recorded media" isic="18"
+ 1 label="Printing and service activities related to printing" isic="181"
+  1 label="Printing of newspapers" isic="1811"
+  2 label="Other printing" isic="1811"
+  3 label="Pre-press and pre-media services" isic="1812"
+  4 label="Binding and related services" isic="1812"
+ 2 label="Reproduction of recorded media" isic="182"
+  0 label="Reproduction of recorded media" isic="1820"
+19 section="C" label="Manufacture of coke and refined petroleum products" 
isic="19"
+ 1 label="Manufacture of coke oven products" isic="191"
+  0 label="Manufacture of coke oven products" isic="1910"
+ 2 label="Manufacture of refined petroleum products" isic="192"
+  0 label="Manufacture of refined petroleum products" isic="1920"
+20 section="C" label="Manufacture of chemicals and chemical products" isic="20"
+ 1 label="Manufacture of basic chemicals, fertilisers and nitrogen compounds, 
plastics and synthetic rubber in primary forms" isic="201"
+  1 label="Manufacture of industrial gases" isic="2011"
+  2 label="Manufacture of dyes and pigments" isic="2011"
+  3 label="Manufacture of other inorganic basic chemicals" isic="2011"
+  4 label="Manufacture of other organic basic chemicals" isic="2011"
+  5 label="Manufacture of fertilisers and nitrogen compounds" isic="2012"
+  6 label="Manufacture of plastics in primary forms" isic="2013"
+  7 label="Manufacture of synthetic rubber in primary forms" isic="2013"
+ 2 label="Manufacture of pesticides and other agrochemical products" isic="202"
+  0 label="Manufacture of pesticides and other agrochemical products" 
isic="2021"
+ 3 label="Manufacture of paints, varnishes and similar coatings, printing ink 
and mastics" isic="202"
+  0 label="Manufacture of paints, varnishes and similar coatings, printing ink 
and mastics" isic="2022"
+ 4 label="Manufacture of soap and detergents, cleaning and polishing 
preparations, perfumes and toilet preparations" isic="202"
+  1 label="Manufacture of soap and detergents, cleaning and polishing 
preparations" isic="2023"
+  2 label="Manufacture of perfumes and toilet preparations" isic="2023"
+ 5 label="Manufacture of other chemical products" isic="202"
+  1 label="Manufacture of explosives" isic="2029"
+  2 label="Manufacture of glues" isic="2029"
+  3 label="Manufacture of essential oils" isic="2029"
+  9 label="Manufacture of other chemical products n.e.c." isic="2029"
+ 6 label="Manufacture of man-made fibres" isic="203"
+  0 label="Manufacture of man-made fibres" isic="2030"
+21 section="C" label="Manufacture of basic pharmaceutical products and 
pharmaceutical preparations" isic="21"
+ 1 label="Manufacture of basic pharmaceutical products" isic="210"
+  0 label="Manufacture of basic pharmaceutical products" isic="2100"
+ 2 label="Manufacture of pharmaceutical preparations" isic="210"
+  0 label="Manufacture of pharmaceutical preparations" isic="2100"
+22 section="C" label="Manufacture of rubber and plastic products" isic="22"
+ 1 label="Manufacture of rubber products" isic="221"
+  1 label="Manufacture of rubber tyres and tubes; retreading and rebuilding of 
rubber tyres" isic="2211"
+  9 label="Manufacture of other rubber products" isic="2219"
+ 2 label="Manufacture of plastic products" isic="222"
+  1 label="Manufacture of plastic plates, sheets, tubes and profiles" 
isic="2220"
+  2 label="Manufacture of plastic packing goods" isic="2220"
+  3 label="Manufacture of builders’ ware of plastic" isic="2220"
+  9 label="Manufacture of other plastic products" isic="2220"
+23 section="C" label="Manufacture of other non-metallic mineral products" 
isic="23"
+ 1 label="Manufacture of glass and glass products" isic="231"
+  1 label="Manufacture of flat glass" isic="2310"
+  2 label="Shaping and processing of flat glass" isic="2310"
+  3 label="Manufacture of hollow glass" isic="2310"
+  4 label="Manufacture of glass fibres" isic="2310"
+  9 label="Manufacture and processing of other glass, including technical 
glassware" isic="2310"
+ 2 label="Manufacture of refractory products" isic="239"
+  0 label="Manufacture of refractory products" isic="2391"
+ 3 label="Manufacture of clay building materials" isic="239"
+  1 label="Manufacture of ceramic tiles and flags" isic="2392"
+  2 label="Manufacture of bricks, tiles and construction products, in baked 
clay" isic="2392"
+ 4 label="Manufacture of other porcelain and ceramic products" isic="239"
+  1 label="Manufacture of ceramic household and ornamental articles" 
isic="2393"
+  2 label="Manufacture of ceramic sanitary fixtures" isic="2393"
+  3 label="Manufacture of ceramic insulators and insulating fittings" 
isic="2393"
+  4 label="Manufacture of other technical ceramic products" isic="2393"
+  9 label="Manufacture of other ceramic products" isic="2393"
+ 5 label="Manufacture of cement, lime and plaster" isic="239"
+  1 label="Manufacture of cement" isic="2394"
+  2 label="Manufacture of lime and plaster" isic="2394"
+ 6 label="Manufacture of articles of concrete, cement and plaster" isic="239"
+  1 label="Manufacture of concrete products for construction purposes" 
isic="2395"
+  2 label="Manufacture of plaster products for construction purposes" 
isic="2395"
+  3 label="Manufacture of ready-mixed concrete" isic="2395"
+  4 label="Manufacture of mortars" isic="2395"
+  5 label="Manufacture of fibre cement" isic="2395"
+  9 label="Manufacture of other articles of concrete, plaster and cement" 
isic="2395"
+ 7 label="Cutting, shaping and finishing of stone" isic="239"
+  0 label="Cutting, shaping and finishing of stone" isic="2396"
+ 9 label="Manufacture of abrasive products and non-metallic mineral products 
n.e.c." isic="239"
+  1 label="Production of abrasive products" isic="2399"
+  9 label="Manufacture of other non-metallic mineral products n.e.c." 
isic="2399"
+24 section="C" label="Manufacture of basic metals" isic="24"
+ 1 label="Manufacture of basic iron and steel and of ferro-alloys" isic="241"
+  0 label="Manufacture of basic iron and steel and of ferro-alloys " 
isic="2410"
+ 2 label="Manufacture of tubes, pipes, hollow profiles and related fittings, 
of steel" isic="241"
+  0 label="Manufacture of tubes, pipes, hollow profiles and related fittings, 
of steel" isic="2410"
+ 3 label="Manufacture of other products of first processing of steel" 
isic="241"
+  1 label="Cold drawing of bars" isic="2410"
+  2 label="Cold rolling of narrow strip" isic="2410"
+  3 label="Cold forming or folding" isic="2410"
+  4 label="Cold drawing of wire" isic="2410"
+ 4 label="Manufacture of basic precious and other non-ferrous metals" 
isic="242"
+  1 label="Precious metals production" isic="2420"
+  2 label="Aluminium production" isic="2420"
+  3 label="Lead, zinc and tin production" isic="2420"
+  4 label="Copper production" isic="2420"
+  5 label="Other non-ferrous metal production" isic="2420"
+  6 label="Processing of nuclear fuel " isic="2420"
+ 5 label="Casting of metals" isic="243"
+  1 label="Casting of iron" isic="2431"
+  2 label="Casting of steel" isic="2431"
+  3 label="Casting of light metals" isic="2432"
+  4 label="Casting of other non-ferrous metals" isic="2432"
+25 section="C" label="Manufacture of fabricated metal products, except 
machinery and equipment" isic="25"
+ 1 label="Manufacture of structural metal products" isic="251"
+  1 label="Manufacture of metal structures and parts of structures" isic="2511"
+  2 label="Manufacture of doors and windows of metal" isic="2511"
+ 2 label="Manufacture of tanks, reservoirs and containers of metal" isic="251"
+  1 label="Manufacture of central heating radiators and boilers" isic="2512"
+  9 label="Manufacture of other tanks, reservoirs and containers of metal" 
isic="2512"
+ 3 label="Manufacture of steam generators, except central heating hot water 
boilers" isic="251"
+  0 label="Manufacture of steam generators, except central heating hot water 
boilers" isic="2513"
+ 4 label="Manufacture of weapons and ammunition" isic="252"
+  0 label="Manufacture of weapons and ammunition" isic="2520"
+ 5 label="Forging, pressing, stamping and roll-forming of metal; powder 
metallurgy" isic="259"
+  0 label="Forging, pressing, stamping and roll-forming of metal; powder 
metallurgy" isic="2591"
+ 6 label="Treatment and coating of metals; machining" isic="259"
+  1 label="Treatment and coating of metals" isic="2592"
+  2 label="Machining" isic="2592"
+ 7 label="Manufacture of cutlery, tools and general hardware" isic="259"
+  1 label="Manufacture of cutlery" isic="2593"
+  2 label="Manufacture of locks and hinges" isic="2593"
+  3 label="Manufacture of tools" isic="2593"
+ 9 label="Manufacture of other fabricated metal products" isic="259"
+  1 label="Manufacture of steel drums and similar containers" isic="2599"
+  2 label="Manufacture of light metal packaging " isic="2599"
+  3 label="Manufacture of wire products, chain and springs" isic="2599"
+  4 label="Manufacture of fasteners and screw machine products" isic="2599"
+  9 label="Manufacture of other fabricated metal products n.e.c." isic="2599"
+26 section="C" label="Manufacture of computer, electronic and optical 
products" isic="26"
+ 1 label="Manufacture of electronic components and boards" isic="261"
+  1 label="Manufacture of electronic components" isic="2610"
+  2 label="Manufacture of loaded electronic boards" isic="2610"
+ 2 label="Manufacture of computers and peripheral equipment" isic="262"
+  0 label="Manufacture of computers and peripheral equipment" isic="2620"
+ 3 label="Manufacture of communication equipment" isic="263"
+  0 label="Manufacture of communication equipment" isic="2630"
+ 4 label="Manufacture of consumer electronics" isic="264"
+  0 label="Manufacture of consumer electronics" isic="2640"
+ 5 label="Manufacture of instruments and appliances for measuring, testing and 
navigation; watches and clocks" isic="265"
+  1 label="Manufacture of instruments and appliances for measuring, testing 
and navigation" isic="2651"
+  2 label="Manufacture of watches and clocks" isic="2652"
+ 6 label="Manufacture of irradiation, electromedical and electrotherapeutic 
equipment" isic="266"
+  0 label="Manufacture of irradiation, electromedical and electrotherapeutic 
equipment" isic="2660"
+ 7 label="Manufacture of optical instruments and photographic equipment" 
isic="267"
+  0 label="Manufacture of optical instruments and photographic equipment" 
isic="2670"
+ 8 label="Manufacture of magnetic and optical media" isic="268"
+  0 label="Manufacture of magnetic and optical media" isic="2680"
+27 section="C" label="Manufacture of electrical equipment" isic="27"
+ 1 label="Manufacture of electric motors, generators, transformers and 
electricity distribution and control apparatus" isic="271"
+  1 label="Manufacture of electric motors, generators and transformers" 
isic="2710"
+  2 label="Manufacture of electricity distribution and control apparatus" 
isic="2710"
+ 2 label="Manufacture of batteries and accumulators" isic="272"
+  0 label="Manufacture of batteries and accumulators" isic="2720"
+ 3 label="Manufacture of wiring and wiring devices" isic="273"
+  1 label="Manufacture of fibre optic cables" isic="2731"
+  2 label="Manufacture of other electronic and electric wires and cables" 
isic="2732"
+  3 label="Manufacture of wiring devices" isic="2733"
+ 4 label="Manufacture of electric lighting equipment" isic="274"
+  0 label="Manufacture of electric lighting equipment" isic="2740"
+ 5 label="Manufacture of domestic appliances" isic="275"
+  1 label="Manufacture of electric domestic appliances" isic="2750"
+  2 label="Manufacture of non-electric domestic appliances" isic="2750"
+ 9 label="Manufacture of other electrical equipment" isic="279"
+  0 label="Manufacture of other electrical equipment" isic="2790"
+28 section="C" label="Manufacture of machinery and equipment n.e.c." isic="28"
+ 1 label="Manufacture of general-purpose machinery" isic="281"
+  1 label="Manufacture of engines and turbines, except aircraft, vehicle and 
cycle engines" isic="2811"
+  2 label="Manufacture of fluid power equipment" isic="2812"
+  3 label="Manufacture of other pumps and compressors" isic="2813"
+  4 label="Manufacture of other taps and valves" isic="2813"
+  5 label="Manufacture of bearings, gears, gearing and driving elements" 
isic="2814"
+ 2 label="Manufacture of other general-purpose machinery" isic="281"
+  1 label="Manufacture of ovens, furnaces and furnace burners" isic="2815"
+  2 label="Manufacture of lifting and handling equipment" isic="2816"
+  3 label="Manufacture of office machinery and equipment (except computers and 
peripheral equipment)" isic="2817"
+  4 label="Manufacture of power-driven hand tools" isic="2818"
+  5 label="Manufacture of non-domestic cooling and ventilation equipment" 
isic="2819"
+  9 label="Manufacture of other general-purpose machinery n.e.c." isic="2819"
+ 3 label="Manufacture of agricultural and forestry machinery" isic="282"
+  0 label="Manufacture of agricultural and forestry machinery" isic="2821"
+ 4 label="Manufacture of metal forming machinery and machine tools" isic="282"
+  1 label="Manufacture of metal forming machinery" isic="2822"
+  9 label="Manufacture of other machine tools" isic="2822"
+ 9 label="Manufacture of other special-purpose machinery" isic="282"
+  1 label="Manufacture of machinery for metallurgy" isic="2823"
+  2 label="Manufacture of machinery for mining, quarrying and construction" 
isic="2824"
+  3 label="Manufacture of machinery for food, beverage and tobacco processing" 
isic="2825"
+  4 label="Manufacture of machinery for textile, apparel and leather 
production" isic="2826"
+  5 label="Manufacture of machinery for paper and paperboard production" 
isic="2829"
+  6 label="Manufacture of plastics and rubber machinery" isic="2829"
+  9 label="Manufacture of other special-purpose machinery n.e.c." isic="2829"
+29 section="C" label="Manufacture of motor vehicles, trailers and 
semi-trailers" isic="29"
+ 1 label="Manufacture of motor vehicles" isic="291"
+  0 label="Manufacture of motor vehicles" isic="2910"
+ 2 label="Manufacture of bodies (coachwork) for motor vehicles; manufacture of 
trailers and semi-trailers" isic="292"
+  0 label="Manufacture of bodies (coachwork) for motor vehicles; manufacture 
of trailers and semi-trailers" isic="2920"
+ 3 label="Manufacture of parts and accessories for motor vehicles" isic="293"
+  1 label="Manufacture of electrical and electronic equipment for motor 
vehicles" isic="2930"
+  2 label="Manufacture of other parts and accessories for motor vehicles" 
isic="2930"
+30 section="C" label="Manufacture of other transport equipment" isic="30"
+ 1 label="Building of ships and boats" isic="301"
+  1 label="Building of ships and floating structures" isic="3011"
+  2 label="Building of pleasure and sporting boats" isic="3012"
+ 2 label="Manufacture of railway locomotives and rolling stock" isic="302"
+  0 label="Manufacture of railway locomotives and rolling stock" isic="3020"
+ 3 label="Manufacture of air and spacecraft and related machinery" isic="303"
+  0 label="Manufacture of air and spacecraft and related machinery" isic="3030"
+ 4 label="Manufacture of military fighting vehicles" isic="304"
+  0 label="Manufacture of military fighting vehicles" isic="3040"
+ 9 label="Manufacture of transport equipment n.e.c." isic="309"
+  1 label="Manufacture of motorcycles" isic="3091"
+  2 label="Manufacture of bicycles and invalid carriages" isic="3092"
+  9 label="Manufacture of other transport equipment n.e.c." isic="3099"
+31 section="C" label="Manufacture of furniture" isic="31"
+ 0 label="Manufacture of furniture" isic="310"
+  1 label="Manufacture of office and shop furniture" isic="3100"
+  2 label="Manufacture of kitchen furniture" isic="3100"
+  3 label="Manufacture of mattresses" isic="3100"
+  9 label="Manufacture of other furniture" isic="3100"
+32 section="C" label="Other manufacturing" isic="32"
+ 1 label="Manufacture of jewellery, bijouterie and related articles" isic="321"
+  1 label="Striking of coins" isic="3211"
+  2 label="Manufacture of jewellery and related articles" isic="3211"
+  3 label="Manufacture of imitation jewellery and related articles" isic="3212"
+ 2 label="Manufacture of musical instruments" isic="322"
+  0 label="Manufacture of musical instruments" isic="3220"
+ 3 label="Manufacture of sports goods" isic="323"
+  0 label="Manufacture of sports goods" isic="3230"
+ 4 label="Manufacture of games and toys" isic="324"
+  0 label="Manufacture of games and toys" isic="3240"
+ 5 label="Manufacture of medical and dental instruments and supplies" 
isic="325"
+  0 label="Manufacture of medical and dental instruments and supplies" 
isic="3250"
+ 9 label="Manufacturing n.e.c." isic="329"
+  1 label="Manufacture of brooms and brushes" isic="3290"
+  9 label="Other manufacturing n.e.c. " isic="3290"
+33 section="C" label="Repair and installation of machinery and equipment" 
isic="33"
+ 1 label="Repair of fabricated metal products, machinery and equipment" 
isic="331"
+  1 label="Repair of fabricated metal products" isic="3311"
+  2 label="Repair of machinery" isic="3312"
+  3 label="Repair of electronic and optical equipment" isic="3313"
+  4 label="Repair of electrical equipment" isic="3314"
+  5 label="Repair and maintenance of ships and boats" isic="3315"
+  6 label="Repair and maintenance of aircraft and spacecraft" isic="3315"
+  7 label="Repair and maintenance of other transport equipment" isic="3315"
+  9 label="Repair of other equipment" isic="3319"
+ 2 label="Installation of industrial machinery and equipment" isic="332"
+  0 label="Installation of industrial machinery and equipment" isic="3320"
+D label="ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY" isic="D"
+35 section="D" label="Electricity, gas, steam and air conditioning supply" 
isic="35"
+ 1 label="Electric power generation, transmission and distribution" isic="351"
+  1 label="Production of electricity" isic="3510"
+  2 label="Transmission of electricity" isic="3510"
+  3 label="Distribution of electricity" isic="3510"
+  4 label="Trade of electricity" isic="3510"
+ 2 label="Manufacture of gas; distribution of gaseous fuels through mains" 
isic="352"
+  1 label="Manufacture of gas" isic="3520"
+  2 label="Distribution of gaseous fuels through mains" isic="3520"
+  3 label="Trade of gas through mains" isic="3520"
+ 3 label="Steam and air conditioning supply" isic="353"
+  0 label="Steam and air conditioning supply" isic="3530"
+E label="WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES" 
isic="E"
+36 section="E" label="Water collection, treatment and supply" isic="36"
+ 0 label="Water collection, treatment and supply" isic="360"
+  0 label="Water collection, treatment and supply" isic="3600"
+37 section="E" label="Sewerage" isic="37"
+ 0 label="Sewerage" isic="370"
+  0 label="Sewerage" isic="3700"
+38 section="E" label="Waste collection, treatment and disposal activities; 
materials recovery" isic="38"
+ 1 label="Waste collection" isic="381"
+  1 label="Collection of non-hazardous waste" isic="3811"
+  2 label="Collection of hazardous waste" isic="3812"
+ 2 label="Waste treatment and disposal" isic="382"
+  1 label="Treatment and disposal of non-hazardous waste" isic="3821"
+  2 label="Treatment and disposal of hazardous waste" isic="3822"
+ 3 label="Materials recovery" isic="383"
+  1 label="Dismantling of wrecks" isic="3830"
+  2 label="Recovery of sorted materials" isic="3830"
+39 section="E" label="Remediation activities and other waste management 
services" isic="39"
+ 0 label="Remediation activities and other waste management services" 
isic="390"
+  0 label="Remediation activities and other waste management services" 
isic="3900"
+F label="CONSTRUCTION" isic="F"
+41 section="F" label="Construction of buildings" isic="41"
+ 1 label="Development of building projects" isic="410"
+  0 label="Development of building projects" isic="4100"
+ 2 label="Construction of residential and non-residential buildings" isic="410"
+  0 label="Construction of residential and non-residential buildings" 
isic="4100"
+42 section="F" label="Civil engineering" isic="42"
+ 1 label="Construction of roads and railways" isic="421"
+  1 label="Construction of roads and motorways" isic="4210"
+  2 label="Construction of railways and underground railways" isic="4210"
+  3 label="Construction of bridges and tunnels" isic="4210"
+ 2 label="Construction of utility projects" isic="422"
+  1 label="Construction of utility projects for fluids" isic="4220"
+  2 label="Construction of utility projects for electricity and 
telecommunications" isic="4220"
+ 9 label="Construction of other civil engineering projects" isic="429"
+  1 label="Construction of water projects" isic="4290"
+  9 label="Construction of other civil engineering projects n.e.c." isic="4290"
+43 section="F" label="Specialised construction activities" isic="43"
+ 1 label="Demolition and site preparation" isic="431"
+  1 label="Demolition" isic="4311"
+  2 label="Site preparation" isic="4312"
+  3 label="Test drilling and boring" isic="4312"
+ 2 label="Electrical, plumbing and other construction installation activities" 
isic="432"
+  1 label="Electrical installation" isic="4321"
+  2 label="Plumbing, heat and air-conditioning installation" isic="4322"
+  9 label="Other construction installation" isic="4329"
+ 3 label="Building completion and finishing" isic="433"
+  1 label="Plastering" isic="4330"
+  2 label="Joinery installation" isic="4330"
+  3 label="Floor and wall covering" isic="4330"
+  4 label="Painting and glazing" isic="4330"
+  9 label="Other building completion and finishing" isic="4330"
+ 9 label="Other specialised construction activities" isic="439"
+  1 label="Roofing activities" isic="4390"
+  9 label="Other specialised construction activities n.e.c." isic="4390"
+G label="WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES" 
isic="G"
+45 section="G" label="Wholesale and retail trade and repair of motor vehicles 
and motorcycles" isic="45"
+ 1 label="Sale of motor vehicles" isic="451"
+  1 label="Sale of cars and light motor vehicles" isic="4510"
+  9 label="Sale of other motor vehicles" isic="4510"
+ 2 label="Maintenance and repair of motor vehicles" isic="452"
+  0 label="Maintenance and repair of motor vehicles" isic="4520"
+ 3 label="Sale of motor vehicle parts and accessories" isic="453"
+  1 label="Wholesale trade of motor vehicle parts and accessories" isic="4530"
+  2 label="Retail trade of motor vehicle parts and accessories" isic="4530"
+ 4 label="Sale, maintenance and repair of motorcycles and related parts and 
accessories" isic="454"
+  0 label="Sale, maintenance and repair of motorcycles and related parts and 
accessories" isic="4540"
+46 section="G" label="Wholesale trade, except of motor vehicles and 
motorcycles" isic="46"
+ 1 label="Wholesale on a fee or contract basis" isic="461"
+  1 label="Agents involved in the sale of agricultural raw materials, live 
animals, textile raw materials and semi-finished goods" isic="4610"
+  2 label="Agents involved in the sale of fuels, ores, metals and industrial 
chemicals" isic="4610"
+  3 label="Agents involved in the sale of timber and building materials" 
isic="4610"
+  4 label="Agents involved in the sale of machinery, industrial equipment, 
ships and aircraft" isic="4610"
+  5 label="Agents involved in the sale of furniture, household goods, hardware 
and ironmongery" isic="4610"
+  6 label="Agents involved in the sale of textiles, clothing, fur, footwear 
and leather goods" isic="4610"
+  7 label="Agents involved in the sale of food, beverages and tobacco" 
isic="4610"
+  8 label="Agents specialised in the sale of other particular products" 
isic="4610"
+  9 label="Agents involved in the sale of a variety of goods" isic="4610"
+ 2 label="Wholesale of agricultural raw materials and live animals" isic="462"
+  1 label="Wholesale of grain, unmanufactured tobacco, seeds and animal feeds" 
isic="4620"
+  2 label="Wholesale of flowers and plants" isic="4620"
+  3 label="Wholesale of live animals" isic="4620"
+  4 label="Wholesale of hides, skins and leather" isic="4620"
+ 3 label="Wholesale of food, beverages and tobacco" isic="463"
+  1 label="Wholesale of fruit and vegetables" isic="4630"
+  2 label="Wholesale of meat and meat products" isic="4630"
+  3 label="Wholesale of dairy products, eggs and edible oils and fats" 
isic="4630"
+  4 label="Wholesale of beverages" isic="4630"
+  5 label="Wholesale of tobacco products" isic="4630"
+  6 label="Wholesale of sugar and chocolate and sugar confectionery" 
isic="4630"
+  7 label="Wholesale of coffee, tea, cocoa and spices" isic="4630"
+  8 label="Wholesale of other food, including fish, crustaceans and molluscs" 
isic="4630"
+  9 label="Non-specialised wholesale of food, beverages and tobacco" 
isic="4630"
+ 4 label="Wholesale of household goods" isic="464"
+  1 label="Wholesale of textiles" isic="4641"
+  2 label="Wholesale of clothing and footwear" isic="4641"
+  3 label="Wholesale of electrical household appliances" isic="4649"
+  4 label="Wholesale of china and glassware and cleaning materials" isic="4649"
+  5 label="Wholesale of perfume and cosmetics" isic="4649"
+  6 label="Wholesale of pharmaceutical goods" isic="4649"
+  7 label="Wholesale of furniture, carpets and lighting equipment" isic="4649"
+  8 label="Wholesale of watches and jewellery" isic="4649"
+  9 label="Wholesale of other household goods" isic="4649"
+ 5 label="Wholesale of information and communication equipment" isic="465"
+  1 label="Wholesale of computers, computer peripheral equipment and software" 
isic="4651"
+  2 label="Wholesale of electronic and telecommunications equipment and parts" 
isic="4652"
+ 6 label="Wholesale of other machinery, equipment and supplies" isic="466"
+  1 label="Wholesale of agricultural machinery, equipment and supplies" 
isic="4653"
+  2 label="Wholesale of machine tools" isic="4659"
+  3 label="Wholesale of mining, construction and civil engineering machinery" 
isic="4659"
+  4 label="Wholesale of machinery for the textile industry and of sewing and 
knitting machines" isic="4659"
+  5 label="Wholesale of office furniture" isic="4659"
+  6 label="Wholesale of other office machinery and equipment" isic="4659"
+  9 label="Wholesale of other machinery and equipment" isic="4659"
+ 7 label="Other specialised wholesale" isic="466"
+  1 label="Wholesale of solid, liquid and gaseous fuels and related products" 
isic="4661"
+  2 label="Wholesale of metals and metal ores" isic="4662"
+  3 label="Wholesale of wood, construction materials and sanitary equipment" 
isic="4663"
+  4 label="Wholesale of hardware, plumbing and heating equipment and supplies" 
isic="4663"
+  5 label="Wholesale of chemical products" isic="4669"
+  6 label="Wholesale of other intermediate products" isic="4669"
+  7 label="Wholesale of waste and scrap" isic="4669"
+ 9 label="Non-specialised wholesale trade" isic="469"
+  0 label="Non-specialised wholesale trade" isic="4690"
+47 section="G" label="Retail trade, except of motor vehicles and motorcycles" 
isic="47"
+ 1 label="Retail sale in non-specialised stores" isic="471"
+  1 label="Retail sale in non-specialised stores with food, beverages or 
tobacco predominating" isic="4711"
+  9 label="Other retail sale in non-specialised stores" isic="4719"
+ 2 label="Retail sale of food, beverages and tobacco in specialised stores" 
isic="472"
+  1 label="Retail sale of fruit and vegetables in specialised stores" 
isic="4721"
+  2 label="Retail sale of meat and meat products in specialised stores" 
isic="4721"
+  3 label="Retail sale of fish, crustaceans and molluscs in specialised 
stores" isic="4721"
+  4 label="Retail sale of bread, cakes, flour confectionery and sugar 
confectionery in specialised stores" isic="4721"
+  5 label="Retail sale of beverages in specialised stores" isic="4722"
+  6 label="Retail sale of tobacco products in specialised stores" isic="4723"
+  9 label="Other retail sale of food in specialised stores" isic="4721"
+ 3 label="Retail sale of automotive fuel in specialised stores" isic="473"
+  0 label="Retail sale of automotive fuel in specialised stores" isic="4730"
+ 4 label="Retail sale of information and communication equipment in 
specialised stores" isic="474"
+  1 label="Retail sale of computers, peripheral units and software in 
specialised stores" isic="4741"
+  2 label="Retail sale of telecommunications equipment in specialised stores" 
isic="4741"
+  3 label="Retail sale of audio and video equipment in specialised stores" 
isic="4742"
+ 5 label="Retail sale of other household equipment in specialised stores" 
isic="475"
+  1 label="Retail sale of textiles in specialised stores" isic="4751"
+  2 label="Retail sale of hardware, paints and glass in specialised stores" 
isic="4752"
+  3 label="Retail sale of carpets, rugs, wall and floor coverings in 
specialised stores" isic="4753"
+  4 label="Retail sale of electrical household appliances in specialised 
stores" isic="4759"
+  9 label="Retail sale of furniture, lighting equipment and other household 
articles in specialised stores" isic="4759"
+ 6 label="Retail sale of cultural and recreation goods in specialised stores" 
isic="476"
+  1 label="Retail sale of books in specialised stores" isic="4761"
+  2 label="Retail sale of newspapers and stationery in specialised stores" 
isic="4761"
+  3 label="Retail sale of music and video recordings in specialised stores" 
isic="4762"
+  4 label="Retail sale of sporting equipment in specialised stores" isic="4763"
+  5 label="Retail sale of games and toys in specialised stores" isic="4764"
+ 7 label="Retail sale of other goods in specialised stores" isic="477"
+  1 label="Retail sale of clothing in specialised stores" isic="4771"
+  2 label="Retail sale of footwear and leather goods in specialised stores" 
isic="4771"
+  3 label="Dispensing chemist in specialised stores" isic="4772"
+  4 label="Retail sale of medical and orthopaedic goods in specialised stores" 
isic="4772"
+  5 label="Retail sale of cosmetic and toilet articles in specialised stores" 
isic="4772"
+  6 label="Retail sale of flowers, plants, seeds, fertilisers, pet animals and 
pet food in specialised stores" isic="4773"
+  7 label="Retail sale of watches and jewellery in specialised stores" 
isic="4773"
+  8 label="Other retail sale of new goods in specialised stores" isic="4773"
+  9 label="Retail sale of second-hand goods in stores" isic="4774"
+ 8 label="Retail sale via stalls and markets" isic="478"
+  1 label="Retail sale via stalls and markets of food, beverages and tobacco 
products" isic="4781"
+  2 label="Retail sale via stalls and markets of textiles, clothing and 
footwear" isic="4782"
+  9 label="Retail sale via stalls and markets of other goods" isic="4789"
+ 9 label="Retail trade not in stores, stalls or markets" isic="479"
+  1 label="Retail sale via mail order houses or via Internet" isic="4791"
+  9 label="Other retail sale not in stores, stalls or markets" isic="4799"
+H label="TRANSPORTATION AND STORAGE" isic="H"
+49 section="H" label="Land transport and transport via pipelines" isic="49"
+ 1 label="Passenger rail transport, interurban" isic="491"
+  0 label="Passenger rail transport, interurban" isic="4911"
+ 2 label="Freight rail transport" isic="491"
+  0 label="Freight rail transport" isic="4912"
+ 3 label="Other passenger land transport " isic="492"
+  1 label="Urban and suburban passenger land transport" isic="4921"
+  2 label="Taxi operation" isic="4922"
+  9 label="Other passenger land transport n.e.c." isic="4922"
+ 4 label="Freight transport by road and removal services" isic="492"
+  1 label="Freight transport by road" isic="4923"
+  2 label="Removal services" isic="4923"
+ 5 label="Transport via pipeline" isic="493"
+  0 label="Transport via pipeline" isic="4930"
+50 section="H" label="Water transport" isic="50"
+ 1 label="Sea and coastal passenger water transport" isic="501"
+  0 label="Sea and coastal passenger water transport" isic="5011"
+ 2 label="Sea and coastal freight water transport" isic="501"
+  0 label="Sea and coastal freight water transport" isic="5012"
+ 3 label="Inland passenger water transport" isic="502"
+  0 label="Inland passenger water transport" isic="5021"
+ 4 label="Inland freight water transport" isic="502"
+  0 label="Inland freight water transport" isic="5022"
+51 section="H" label="Air transport" isic="51"
+ 1 label="Passenger air transport" isic="511"
+  0 label="Passenger air transport" isic="5110"
+ 2 label="Freight air transport and space transport" isic="512"
+  1 label="Freight air transport" isic="5120"
+  2 label="Space transport" isic="5120"
+52 section="H" label="Warehousing and support activities for transportation" 
isic="52"
+ 1 label="Warehousing and storage" isic="521"
+  0 label="Warehousing and storage" isic="5210"
+ 2 label="Support activities for transportation" isic="522"
+  1 label="Service activities incidental to land transportation" isic="5221"
+  2 label="Service activities incidental to water transportation" isic="5222"
+  3 label="Service activities incidental to air transportation" isic="5223"
+  4 label="Cargo handling" isic="5224"
+  9 label="Other transportation support activities " isic="5229"
+53 section="H" label="Postal and courier activities" isic="53"
+ 1 label="Postal activities under universal service obligation" isic="531"
+  0 label="Postal activities under universal service obligation" isic="5310"
+ 2 label="Other postal and courier activities" isic="532"
+  0 label="Other postal and courier activities" isic="5320"
+I label="ACCOMMODATION AND FOOD SERVICE ACTIVITIES" isic="I"
+55 section="I" label="Accommodation" isic="55"
+ 1 label="Hotels and similar accommodation" isic="551"
+  0 label="Hotels and similar accommodation" isic="5510"
+ 2 label="Holiday and other short-stay accommodation" isic="551"
+  0 label="Holiday and other short-stay accommodation" isic="5510"
+ 3 label="Camping grounds, recreational vehicle parks and trailer parks" 
isic="552"
+  0 label="Camping grounds, recreational vehicle parks and trailer parks" 
isic="5520"
+ 9 label="Other accommodation" isic="559"
+  0 label="Other accommodation" isic="5590"
+56 section="I" label="Food and beverage service activities" isic="56"
+ 1 label="Restaurants and mobile food service activities" isic="561"
+  0 label="Restaurants and mobile food service activities" isic="5610"
+ 2 label="Event catering and other food service activities" isic="562"
+  1 label="Event catering activities" isic="5621"
+  9 label="Other food service activities" isic="5629"
+ 3 label="Beverage serving activities" isic="563"
+  0 label="Beverage serving activities" isic="5630"
+J label="INFORMATION AND COMMUNICATION" isic="J"
+58 section="J" label="Publishing activities" isic="58"
+ 1 label="Publishing of books, periodicals and other publishing activities" 
isic="581"
+  1 label="Book publishing" isic="5811"
+  2 label="Publishing of directories and mailing lists" isic="5812"
+  3 label="Publishing of newspapers" isic="5813"
+  4 label="Publishing of journals and periodicals" isic="5813"
+  9 label="Other publishing activities" isic="5819"
+ 2 label="Software publishing" isic="582"
+  1 label="Publishing of computer games" isic="5820"
+  9 label="Other software publishing" isic="5820"
+59 section="J" label="Motion picture, video and television programme 
production, sound recording and music publishing activities" isic="59"
+ 1 label="Motion picture, video and television programme activities" isic="591"
+  1 label="Motion picture, video and television programme production 
activities" isic="5911"
+  2 label="Motion picture, video and television programme post-production 
activities" isic="5912"
+  3 label="Motion picture, video and television programme distribution 
activities" isic="5913"
+  4 label="Motion picture projection activities" isic="5914"
+ 2 label="Sound recording and music publishing activities" isic="592"
+  0 label="Sound recording and music publishing activities" isic="5920"
+60 section="J" label="Programming and broadcasting activities" isic="60"
+ 1 label="Radio broadcasting" isic="601"
+  0 label="Radio broadcasting" isic="6010"
+ 2 label="Television programming and broadcasting activities" isic="602"
+  0 label="Television programming and broadcasting activities" isic="6020"
+61 section="J" label="Telecommunications" isic="61"
+ 1 label="Wired telecommunications activities" isic="611"
+  0 label="Wired telecommunications activities" isic="6110"
+ 2 label="Wireless telecommunications activities" isic="612"
+  0 label="Wireless telecommunications activities" isic="6120"
+ 3 label="Satellite telecommunications activities" isic="613"
+  0 label="Satellite telecommunications activities" isic="6130"
+ 9 label="Other telecommunications activities" isic="619"
+  0 label="Other telecommunications activities" isic="6190"
+62 section="J" label="Computer programming, consultancy and related 
activities" isic="62"
+ 0 label="Computer programming, consultancy and related activities" isic="620"
+  1 label="Computer programming activities" isic="6201"
+  2 label="Computer consultancy activities" isic="6202"
+  3 label="Computer facilities management activities" isic="6202"
+  9 label="Other information technology and computer service activities" 
isic="6209"
+63 section="J" label="Information service activities" isic="63"
+ 1 label="Data processing, hosting and related activities; web portals" 
isic="631"
+  1 label="Data processing, hosting and related activities" isic="6311"
+  2 label="Web portals" isic="6312"
+ 9 label="Other information service activities" isic="639"
+  1 label="News agency activities" isic="6391"
+  9 label="Other information service activities n.e.c." isic="6399"
+K label="FINANCIAL AND INSURANCE ACTIVITIES" isic="K"
+64 section="K" label="Financial service activities, except insurance and 
pension funding" isic="64"
+ 1 label="Monetary intermediation" isic="641"
+  1 label="Central banking" isic="6411"
+  9 label="Other monetary intermediation" isic="6419"
+ 2 label="Activities of holding companies" isic="642"
+  0 label="Activities of holding companies" isic="6420"
+ 3 label="Trusts, funds and similar financial entities" isic="643"
+  0 label="Trusts, funds and similar financial entities" isic="6430"
+ 9 label="Other financial service activities, except insurance and pension 
funding" isic="649"
+  1 label="Financial leasing" isic="6491"
+  2 label="Other credit granting" isic="6492"
+  9 label="Other financial service activities, except insurance and pension 
funding n.e.c." isic="6499"
+65 section="K" label="Insurance, reinsurance and pension funding, except 
compulsory social security" isic="65"
+ 1 label="Insurance" isic="651"
+  1 label="Life insurance" isic="6511"
+  2 label="Non-life insurance" isic="6512"
+ 2 label="Reinsurance" isic="652"
+  0 label="Reinsurance" isic="6520"
+ 3 label="Pension funding" isic="653"
+  0 label="Pension funding" isic="6530"
+66 section="K" label="Activities auxiliary to financial services and insurance 
activities" isic="66"
+ 1 label="Activities auxiliary to financial services, except insurance and 
pension funding" isic="661"
+  1 label="Administration of financial markets" isic="6611"
+  2 label="Security and commodity contracts brokerage" isic="6612"
+  9 label="Other activities auxiliary to financial services, except insurance 
and pension funding" isic="6619"
+ 2 label="Activities auxiliary to insurance and pension funding" isic="662"
+  1 label="Risk and damage evaluation" isic="6621"
+  2 label="Activities of insurance agents and brokers" isic="6622"
+  9 label="Other activities auxiliary to insurance and pension funding" 
isic="6629"
+ 3 label="Fund management activities" isic="663"
+  0 label="Fund management activities" isic="6630"
+L label="REAL ESTATE ACTIVITIES" isic="L"
+68 section="L" label="Real estate activities" isic="68"
+ 1 label="Buying and selling of own real estate" isic="681"
+  0 label="Buying and selling of own real estate" isic="6810"
+ 2 label="Rental and operating of own or leased real estate" isic="681"
+  0 label="Rental and operating of own or leased real estate" isic="6810"
+ 3 label="Real estate activities on a fee or contract basis" isic="682"
+  1 label="Real estate agencies" isic="6820"
+  2 label="Management of real estate on a fee or contract basis" isic="6820"
+M label="PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES" isic="M"
+69 section="M" label="Legal and accounting activities" isic="69"
+ 1 label="Legal activities" isic="691"
+  0 label="Legal activities" isic="6910"
+ 2 label="Accounting, bookkeeping and auditing activities; tax consultancy" 
isic="692"
+  0 label="Accounting, bookkeeping and auditing activities; tax consultancy" 
isic="6920"
+70 section="M" label="Activities of head offices; management consultancy 
activities" isic="70"
+ 1 label="Activities of head offices" isic="701"
+  0 label="Activities of head offices" isic="7010"
+ 2 label="Management consultancy activities" isic="702"
+  1 label="Public relations and communication activities" isic="7020"
+  2 label="Business and other management consultancy activities" isic="7020"
+71 section="M" label="Architectural and engineering activities; technical 
testing and analysis" isic="71"
+ 1 label="Architectural and engineering activities and related technical 
consultancy" isic="711"
+  1 label="Architectural activities " isic="7110"
+  2 label="Engineering activities and related technical consultancy" 
isic="7110"
+ 2 label="Technical testing and analysis" isic="712"
+  0 label="Technical testing and analysis" isic="7120"
+72 section="M" label="Scientific research and development " isic="72"
+ 1 label="Research and experimental development on natural sciences and 
engineering" isic="721"
+  1 label="Research and experimental development on biotechnology" isic="7210"
+  9 label="Other research and experimental development on natural sciences and 
engineering" isic="7210"
+ 2 label="Research and experimental development on social sciences and 
humanities" isic="722"
+  0 label="Research and experimental development on social sciences and 
humanities" isic="7220"
+73 section="M" label="Advertising and market research" isic="73"
+ 1 label="Advertising" isic="731"
+  1 label="Advertising agencies" isic="7310"
+  2 label="Media representation" isic="7310"
+ 2 label="Market research and public opinion polling" isic="732"
+  0 label="Market research and public opinion polling" isic="7320"
+74 section="M" label="Other professional, scientific and technical activities" 
isic="74"
+ 1 label="Specialised design activities" isic="741"
+  0 label="Specialised design activities" isic="7410"
+ 2 label="Photographic activities" isic="742"
+  0 label="Photographic activities" isic="7420"
+ 3 label="Translation and interpretation activities" isic="749"
+  0 label="Translation and interpretation activities" isic="7490"
+ 9 label="Other professional, scientific and technical activities n.e.c." 
isic="749"
+  0 label="Other professional, scientific and technical activities n.e.c." 
isic="7490"
+75 section="M" label="Veterinary activities" isic="75"
+ 0 label="Veterinary activities" isic="750"
+  0 label="Veterinary activities" isic="7500"
+N label="ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES" isic="N"
+77 section="N" label="Rental and leasing activities" isic="77"
+ 1 label="Rental and leasing of motor vehicles" isic="771"
+  1 label="Rental and leasing of cars and light motor vehicles" isic="7710"
+  2 label="Rental and leasing of trucks" isic="7710"
+ 2 label="Rental and leasing of personal and household goods" isic="772"
+  1 label="Rental and leasing of recreational and sports goods" isic="7721"
+  2 label="Rental of video tapes and disks" isic="7722"
+  9 label="Rental and leasing of other personal and household goods" 
isic="7729"
+ 3 label="Rental and leasing of other machinery, equipment and tangible goods" 
isic="773"
+  1 label="Rental and leasing of agricultural machinery and equipment" 
isic="7730"
+  2 label="Rental and leasing of construction and civil engineering machinery 
and equipment" isic="7730"
+  3 label="Rental and leasing of office machinery and equipment (including 
computers)" isic="7730"
+  4 label="Rental and leasing of water transport equipment" isic="7730"
+  5 label="Rental and leasing of air transport equipment" isic="7730"
+  9 label="Rental and leasing of other machinery, equipment and tangible goods 
n.e.c." isic="7730"
+ 4 label="Leasing of intellectual property and similar products, except 
copyrighted works" isic="774"
+  0 label="Leasing of intellectual property and similar products, except 
copyrighted works" isic="7740"
+78 section="N" label="Employment activities" isic="78"
+ 1 label="Activities of employment placement agencies" isic="781"
+  0 label="Activities of employment placement agencies" isic="7810"
+ 2 label="Temporary employment agency activities" isic="782"
+  0 label="Temporary employment agency activities" isic="7820"
+ 3 label="Other human resources provision" isic="783"
+  0 label="Other human resources provision" isic="7830"
+79 section="N" label="Travel agency, tour operator and other reservation 
service and related activities" isic="79"
+ 1 label="Travel agency and tour operator activities" isic="791"
+  1 label="Travel agency activities" isic="7911"
+  2 label="Tour operator activities" isic="7912"
+ 9 label="Other reservation service and related activities" isic="799"
+  0 label="Other reservation service and related activities" isic="7990"
+80 section="N" label="Security and investigation activities" isic="80"
+ 1 label="Private security activities" isic="801"
+  0 label="Private security activities" isic="8010"
+ 2 label="Security systems service activities" isic="802"
+  0 label="Security systems service activities" isic="8020"
+ 3 label="Investigation activities" isic="803"
+  0 label="Investigation activities" isic="8030"
+81 section="N" label="Services to buildings and landscape activities" isic="81"
+ 1 label="Combined facilities support activities" isic="811"
+  0 label="Combined facilities support activities" isic="8110"
+ 2 label="Cleaning activities" isic="812"
+  1 label="General cleaning of buildings" isic="8121"
+  2 label="Other building and industrial cleaning activities" isic="8129"
+  9 label="Other cleaning activities" isic="8129"
+ 3 label="Landscape service activities" isic="813"
+  0 label="Landscape service activities" isic="8130"
+82 section="N" label="Office administrative, office support and other business 
support activities" isic="82"
+ 1 label="Office administrative and support activities" isic="821"
+  1 label="Combined office administrative service activities" isic="8211"
+  9 label="Photocopying, document preparation and other specialised office 
support activities" isic="8219"
+ 2 label="Activities of call centres" isic="822"
+  0 label="Activities of call centres" isic="8220"
+ 3 label="Organisation of conventions and trade shows" isic="823"
+  0 label="Organisation of conventions and trade shows" isic="8230"
+ 9 label="Business support service activities n.e.c." isic="829"
+  1 label="Activities of collection agencies and credit bureaus" isic="8291"
+  2 label="Packaging activities" isic="8292"
+  9 label="Other business support service activities n.e.c." isic="8299"
+O label="PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY" 
isic="O"
+84 section="O" label="Public administration and defence; compulsory social 
security" isic="84"
+ 1 label="Administration of the State and the economic and social policy of 
the community" isic="841"
+  1 label="General public administration activities" isic="8411"
+  2 label="Regulation of the activities of providing health care, education, 
cultural services and other social services, excluding social security" 
isic="8412"
+  3 label="Regulation of and contribution to more efficient operation of 
businesses" isic="8413"
+ 2 label="Provision of services to the community as a whole" isic="842"
+  1 label="Foreign affairs" isic="8421"
+  2 label="Defence activities" isic="8422"
+  3 label="Justice and judicial activities" isic="8423"
+  4 label="Public order and safety activities" isic="8423"
+  5 label="Fire service activities" isic="8423"
+ 3 label="Compulsory social security activities" isic="843"
+  0 label="Compulsory social security activities" isic="8430"
+P label="EDUCATION" isic="P"
+85 section="P" label="Education" isic="85"
+ 1 label="Pre-primary education" isic="851"
+  0 label="Pre-primary education " isic="8510"
+ 2 label="Primary education" isic="851"
+  0 label="Primary education " isic="8510"
+ 3 label="Secondary education" isic="852"
+  1 label="General secondary education " isic="8521"
+  2 label="Technical and vocational secondary education " isic="8522"
+ 4 label="Higher education" isic="853"
+  1 label="Post-secondary non-tertiary education" isic="8530"
+  2 label="Tertiary education" isic="8530"
+ 5 label="Other education" isic="854"
+  1 label="Sports and recreation education" isic="8541"
+  2 label="Cultural education" isic="8542"
+  3 label="Driving school activities" isic="8549"
+  9 label="Other education n.e.c." isic="8549"
+ 6 label="Educational support activities" isic="855"
+  0 label="Educational support activities" isic="8550"
+Q label="HUMAN HEALTH AND SOCIAL WORK ACTIVITIES" isic="Q"
+86 section="Q" label="Human health activities" isic="86"
+ 1 label="Hospital activities" isic="861"
+  0 label="Hospital activities" isic="8610"
+ 2 label="Medical and dental practice activities" isic="862"
+  1 label="General medical practice activities" isic="8620"
+  2 label="Specialist medical practice activities" isic="8620"
+  3 label="Dental practice activities" isic="8620"
+ 9 label="Other human health activities" isic="869"
+  0 label="Other human health activities" isic="8690"
+87 section="Q" label="Residential care activities" isic="87"
+ 1 label="Residential nursing care activities" isic="871"
+  0 label="Residential nursing care activities" isic="8710"
+ 2 label="Residential care activities for mental retardation, mental health 
and substance abuse" isic="872"
+  0 label="Residential care activities for mental retardation, mental health 
and substance abuse" isic="8720"
+ 3 label="Residential care activities for the elderly and disabled" isic="873"
+  0 label="Residential care activities for the elderly and disabled" 
isic="8730"
+ 9 label="Other residential care activities" isic="879"
+  0 label="Other residential care activities" isic="8790"
+88 section="Q" label="Social work activities without accommodation" isic="88"
+ 1 label="Social work activities without accommodation for the elderly and 
disabled" isic="881"
+  0 label="Social work activities without accommodation for the elderly and 
disabled" isic="8810"
+ 9 label="Other social work activities without accommodation" isic="889"
+  1 label="Child day-care activities" isic="8890"
+  9 label="Other social work activities without accommodation n.e.c." 
isic="8890"
+R label="ARTS, ENTERTAINMENT AND RECREATION" isic="R"
+90 section="R" label="Creative, arts and entertainment activities" isic="90"
+ 0 label="Creative, arts and entertainment activities" isic="900"
+  1 label="Performing arts" isic="9000"
+  2 label="Support activities to performing arts" isic="9000"
+  3 label="Artistic creation" isic="9000"
+  4 label="Operation of arts facilities" isic="9000"
+91 section="R" label="Libraries, archives, museums and other cultural 
activities" isic="91"
+ 0 label="Libraries, archives, museums and other cultural activities" 
isic="910"
+  1 label="Library and archives activities" isic="9101"
+  2 label="Museums activities" isic="9102"
+  3 label="Operation of historical sites and buildings and similar visitor 
attractions" isic="9102"
+  4 label="Botanical and zoological gardens and nature reserves activities" 
isic="9103"
+92 section="R" label="Gambling and betting activities" isic="92"
+ 0 label="Gambling and betting activities" isic="920"
+  0 label="Gambling and betting activities" isic="9200"
+93 section="R" label="Sports activities and amusement and recreation 
activities" isic="93"
+ 1 label="Sports activities" isic="931"
+  1 label="Operation of sports facilities" isic="9311"
+  2 label="Activities of sports clubs" isic="9312"
+  3 label="Fitness facilities" isic="9311"
+  9 label="Other sports activities" isic="9319"
+ 2 label="Amusement and recreation activities" isic="932"
+  1 label="Activities of amusement parks and theme parks" isic="9321"
+  9 label="Other amusement and recreation activities" isic="9329"
+S label="OTHER SERVICE ACTIVITIES" isic="S"
+94 section="S" label="Activities of membership organisations" isic="94"
+ 1 label="Activities of business, employers and professional membership 
organisations" isic="941"
+  1 label="Activities of business and employers membership organisations" 
isic="9411"
+  2 label="Activities of professional membership organisations" isic="9412"
+ 2 label="Activities of trade unions" isic="942"
+  0 label="Activities of trade unions" isic="9420"
+ 9 label="Activities of other membership organisations" isic="949"
+  1 label="Activities of religious organisations" isic="9491"
+  2 label="Activities of political organisations" isic="9492"
+  9 label="Activities of other membership organisations n.e.c." isic="9499"
+95 section="S" label="Repair of computers and personal and household goods" 
isic="95"
+ 1 label="Repair of computers and communication equipment" isic="951"
+  1 label="Repair of computers and peripheral equipment" isic="9511"
+  2 label="Repair of communication equipment" isic="9512"
+ 2 label="Repair of personal and household goods" isic="952"
+  1 label="Repair of consumer electronics" isic="9521"
+  2 label="Repair of household appliances and home and garden equipment" 
isic="9522"
+  3 label="Repair of footwear and leather goods" isic="9523"
+  4 label="Repair of furniture and home furnishings" isic="9524"
+  5 label="Repair of watches, clocks and jewellery" isic="9529"
+  9 label="Repair of other personal and household goods" isic="9529"
+96 section="S" label="Other personal service activities" isic="96"
+ 0 label="Other personal service activities" isic="960"
+  1 label="Washing and (dry-)cleaning of textile and fur products" isic="9601"
+  2 label="Hairdressing and other beauty treatment" isic="9602"
+  3 label="Funeral and related activities" isic="9603"
+  4 label="Physical well-being activities" isic="9609"
+  9 label="Other personal service activities n.e.c." isic="9609"
+T label="ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND 
SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE" isic="T"
+97 section="T" label="Activities of households as employers of domestic 
personnel" isic="97"
+ 0 label="Activities of households as employers of domestic personnel" 
isic="970"
+  0 label="Activities of households as employers of domestic personnel" 
isic="9700"
+98 section="T" label="Undifferentiated goods- and services-producing 
activities of private households for own use" isic="98"
+ 1 label="Undifferentiated goods-producing activities of private households 
for own use" isic="981"
+  0 label="Undifferentiated goods-producing activities of private households 
for own use" isic="9810"
+ 2 label="Undifferentiated service-producing activities of private households 
for own use" isic="982"
+  0 label="Undifferentiated service-producing activities of private households 
for own use" isic="9820"
+U label="ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES" isic="U"
+99 section="U" label="Activities of extraterritorial organisations and bodies" 
isic="99"
+ 0 label="Activities of extraterritorial organisations and bodies" isic="990"
+  0 label="Activities of extraterritorial organisations and bodies" isic="9900"
diff --git a/stdnum/eu/nace.py b/stdnum/eu/nace.py
new file mode 100644
index 0000000..344629c
--- /dev/null
+++ b/stdnum/eu/nace.py
@@ -0,0 +1,109 @@
+# nace.py - functions for handling EU NACE classification
+# coding: utf-8
+#
+# Copyright (C) 2017 Arthur de Jong
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA
+
+"""NACE (classification for businesses in the European Union).
+
+The NACE (nomenclature statistique des activités économiques dans la
+Communauté européenne) is a 4-level (and up to 4 digit) code for classifying
+economic activities. It is the European implementation of the UN
+classification ISIC.
+
+The first 4 digits are the same in all EU countries while additional levels
+and digits may be vary between countries. This module validates the numbers
+according to revision 2 and based on the registry as published by the EC.
+
+More information:
+
+* 
https://en.wikipedia.org/wiki/Statistical_Classification_of_Economic_Activities_in_the_European_Community
+* 
http://ec.europa.eu/eurostat/ramon/nomenclatures/index.cfm?TargetUrl=LST_NOM_DTL&StrNom=NACE_REV2&StrLanguageCode=EN&IntPcKey=&StrLayoutCode=HIERARCHIC
+
+>>> validate('A')
+'A'
+>>> validate('62.01')
+'6201'
+>>> str(label('62.01'))
+'Computer programming activities'
+>>> validate('62.05')
+Traceback (most recent call last):
+    ...
+InvalidComponent: ...
+>>> validate('62059')  # does not validate country-specific numbers
+Traceback (most recent call last):
+    ...
+InvalidLength: ...
+>>> format('6201')
+'62.01'
+"""
+
+from stdnum.exceptions import *
+from stdnum.util import clean
+
+
+def compact(number):
+    """Convert the number to the minimal representation. This strips the
+    number of any valid separators and removes surrounding whitespace."""
+    return clean(number, '.').strip()
+
+
+def info(number):
+    """Lookup information about the specified NACE. This returns a dict."""
+    number = compact(number)
+    from stdnum import numdb
+    info = dict()
+    for n, i in numdb.get('eu/nace').info(number):
+        if not i:
+            raise InvalidComponent()
+        info.update(i)
+    return info
+
+
+def label(number):
+    """Lookup the category label for the number."""
+    return info(number)['label']
+
+
+def validate(number):
+    """Checks to see if the number provided is a valid NACE. This checks the
+    format and searches the registry to see if it exists."""
+    number = compact(number)
+    if len(number) > 4:
+        raise InvalidLength()
+    elif len(number) == 1:
+        if not number.isalpha():
+            raise InvalidFormat()
+    else:
+        if not number.isdigit():
+            raise InvalidFormat()
+    info(number)
+    return number
+
+
+def is_valid(number):
+    """Checks to see if the number provided is a valid NACE. This checks the
+    format and searches the registry to see if it exists."""
+    try:
+        return bool(validate(number))
+    except ValidationError:
+        return False
+
+
+def format(number):
+    """Reformat the passed number to the standard format."""
+    return '.'.join((number[:2], number[2:])).strip('.')
diff --git a/tests/test_robustness.doctest b/tests/test_robustness.doctest
index 8e2c4be..8ce1f35 100644
--- a/tests/test_robustness.doctest
+++ b/tests/test_robustness.doctest
@@ -1,6 +1,6 @@
 test_robustness.doctest - test is_valid() functions to not break
 
-Copyright (C) 2011-2016 Arthur de Jong
+Copyright (C) 2011-2017 Arthur de Jong
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
@@ -22,7 +22,7 @@ This file contains some tests for modules in the stdnum 
package to
 check whether all provided is_valid() functions can handle clearly
 invalid junk.
 
->>> testvalues = (None, '*&^%$', '', 0, False, object(), 'Q', 'QQ', '3')
+>>> testvalues = (None, '*&^%$', '', 0, False, object(), 'Z', 'QQ', '3')
 >>> from stdnum.util import get_number_modules
 
 Go over each module and try every value.

https://arthurdejong.org/git/python-stdnum/commit/?id=649f073f27154aa0664c04be0a53eb55d5600ae9

commit 649f073f27154aa0664c04be0a53eb55d5600ae9
Author: Arthur de Jong <arthur@arthurdejong.org>
Date:   Sun Mar 26 18:07:41 2017 +0200

    Remove unused import

diff --git a/stdnum/mc/tva.py b/stdnum/mc/tva.py
index dacf803..9acb222 100644
--- a/stdnum/mc/tva.py
+++ b/stdnum/mc/tva.py
@@ -35,7 +35,6 @@ InvalidComponent: ...
 """
 
 from stdnum.exceptions import *
-from stdnum.util import clean
 from stdnum.fr import tva
 
 

-----------------------------------------------------------------------

Summary of changes:
 getnace.py                                |  74 +++
 stdnum/es/referenciacatastral.py          |  17 +-
 stdnum/eu/nace.dat                        | 999 ++++++++++++++++++++++++++++++
 stdnum/eu/nace.py                         | 109 ++++
 stdnum/mc/tva.py                          |   1 -
 stdnum/meid.py                            |   4 +-
 tests/test_es_referenciacatastral.doctest |  24 +-
 tests/test_robustness.doctest             |   6 +-
 8 files changed, 1224 insertions(+), 10 deletions(-)
 create mode 100755 getnace.py
 create mode 100644 stdnum/eu/nace.dat
 create mode 100644 stdnum/eu/nace.py


hooks/post-receive
-- 
python-stdnum
-- 
To unsubscribe send an email to
python-stdnum-commits-unsubscribe@lists.arthurdejong.org or see
https://lists.arthurdejong.org/python-stdnum-commits/