Overview

Title
write an interwiki map loader
Duration
96
Difficulty
Easy
Type
Code
Tags
python
Mentors
thomaswaldmann,rb_proj,ronny_pfannschmidt,xoraxax
Count
-1

Description

Abstract

Write an interwiki map file (intermap.txt) loader that reads the file and returns a python dict.

Details

In moin2 the wikiconfig value "interwiki" is now just a dict. Thus we need a loader returning a python dict for people who want to load the file (intermap.txt).

Note: your code should also be able to process a unicode object (instead of a file) as input.

You need to write the code implementing the functionality, a unit test testing it and some docs for admins showing how to use it from the wikiconfig.

Deliverables: a patch or changeset.

Skill Requirements

python, py.test, rst

Discussion

Claimed by MicheleOrru

Implementation

The code is avaible at: http://bitbucket.org/maker/moin-2.0-dev/ Since the repo is private, for now only Thomas and Alexander have +r access.

The module datastruct.backends.wiki_map implements the class InterWikiMap, which provides a set of utilities for parsing and checking a interwiki maps. Its main job is to load an interwiki file/string, and then store everything into a dictionary containing the name of the link as key, and its url as value.

In order to parse a string/file object, you simply have to use (respectively) InterWikiMap.from_file and InterWikiMap.from_string methods.

e.g.

   1  from MoinMoin.datastruct.backends.wiki_map import InterWikiMap
   2  interwiki_map = InterWikiMap.from_file('intermap.txt').iwmap

Now, use interwiki_map to access urls, just like you would do with a simple dictionary:

e.g.

   1   'FOO' in interwiki_map
   2    print interwiki_map
   3    for name, url in interwiki_map.iteritems():
   4        print name, '-->', url
   5    [etc.]

MoinMoin: EasyToDo/write a interwiki file (intermap.txt) -> dict loader (last edited 2010-11-22 17:07:35 by host29-81-dynamic)