def _set_taxonomy_from_category(dataset_metadata, elem):

    taxonomy_tags = ckanapiutils.get_all_tags_from_tag_vocabulary(
        {'vocabulary_id': config['taxonomy_tag_vocab']})

    dataset_metadata['taxonomy'] = []
    for category in elem.findall('category'):
        category_name = script_utils._prepare_string_for_ckan_tag_name(
            category.text)
        category_name = script_utils._str_capitalize_underscore_replaced_with_space(
            category_name)
        if category_name in taxonomies:
            mapped = taxonomies[category_name]
            for tag in mapped:
                tag_name = script_utils._prepare_string_for_ckan_tag_name(tag)
                tag_name = script_utils._str_capitalize_underscore_replaced_with_space(
                    tag_name)
        else:
            tag_name = script_utils._prepare_string_for_ckan_tag_name(
                category_name)
            tag_name = script_utils._str_capitalize_underscore_replaced_with_space(
                category_name)

        if tag_name not in dataset_metadata['taxonomy']:
            if tag_name in taxonomy_tags:
                dataset_metadata['taxonomy'].append(tag_name)

    return dataset_metadata
def _map_geoserver_feature_to_ckan_dataset(feature_namespace,feature_name,feature_title,taxonomy_tags,config):

  # First, extract the information from the layer (Title, Abstract, Tags)
  params_dict = {}

  # Specify the package_type
  params_dict['type'] = config.package_type

  params_dict['maintainer'] = config.IMPORTER_NAME
  params_dict['maintainer_email'] = config.IMPORTER_EMAIL

  # The dataset id will be set when we find or create it
  params_dict['state'] = 'active'

  # Extract title (Mandatory)
  params_dict['title'] = feature_title

  # Extract name (Mandatory, lowcase and without characters except _-')
  params_dict['name'] = script_utils._prepare_string_for_ckan_name(feature_name)

  # Notes / Description / Abstract
  params_dict['notes'] = 'Imported Geoserver Layer: '+params_dict['title'] + '.'

  params_dict['taxonomy'] = []
  category_name = script_utils._prepare_string_for_ckan_tag_name(feature_namespace)
  category_name =  script_utils._str_capitalize_underscore_replaced_with_space(category_name)
  if (category_name in taxonomy_tags):
    params_dict['taxonomy'].append(category_name)

  return params_dict
def _set_taxonomy_from_category(dataset_metadata,elem):

  taxonomy_tags = ckanapiutils.get_all_tags_from_tag_vocabulary({'vocabulary_id': config['taxonomy_tag_vocab']})

  dataset_metadata['taxonomy'] = []
  for category in elem.findall('category'):
    category_name = script_utils._prepare_string_for_ckan_tag_name(category.text)
    category_name = script_utils._str_capitalize_underscore_replaced_with_space(category_name)
    if category_name in taxonomies:
      mapped = taxonomies[category_name]
      for tag in mapped:
        tag_name = script_utils._prepare_string_for_ckan_tag_name(tag)
        tag_name = script_utils._str_capitalize_underscore_replaced_with_space(tag_name)
    else:
      tag_name = script_utils._prepare_string_for_ckan_tag_name(category_name)
      tag_name = script_utils._str_capitalize_underscore_replaced_with_space(category_name)

    if tag_name not in dataset_metadata['taxonomy']:
      if tag_name in taxonomy_tags:
        dataset_metadata['taxonomy'].append(tag_name)

  return dataset_metadata
def _map_geoserver_feature_to_ckan_dataset(feature_namespace, feature_name,
                                           feature_title, taxonomy_tags,
                                           config):

    # First, extract the information from the layer (Title, Abstract, Tags)
    params_dict = {}

    # Specify the package_type
    params_dict['type'] = config.package_type

    params_dict['maintainer'] = config.IMPORTER_NAME
    params_dict['maintainer_email'] = config.IMPORTER_EMAIL

    # The dataset id will be set when we find or create it
    params_dict['state'] = 'active'

    # Extract title (Mandatory)
    params_dict['title'] = feature_title

    # Extract name (Mandatory, lowcase and without characters except _-')
    params_dict['name'] = script_utils._prepare_string_for_ckan_name(
        feature_name)

    # Notes / Description / Abstract
    params_dict[
        'notes'] = 'Imported Geoserver Layer: ' + params_dict['title'] + '.'

    params_dict['taxonomy'] = []
    category_name = script_utils._prepare_string_for_ckan_tag_name(
        feature_namespace)
    category_name = script_utils._str_capitalize_underscore_replaced_with_space(
        category_name)
    if (config.DEBUG):
        print(category_name)
    if (category_name in taxonomy_tags):
        params_dict['taxonomy'].append(category_name)

    return params_dict