/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/extensionregistry.py
ViewVC logotype

Annotation of /branches/WIP-pyshapelib-bramz/Thuban/UI/extensionregistry.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2353 - (hide annotations)
Tue Sep 28 19:13:21 2004 UTC (20 years, 5 months ago) by jan
Original Path: trunk/thuban/Thuban/UI/extensionregistry.py
File MIME type: text/x-python
File size: 2384 byte(s)
This module defines a registry for Extensions.

1 jan 2353 # Copyright (C) 2004 by Intevation GmbH
2     # Authors:
3     # Jan-Oliver Wagner <[email protected]>
4     #
5     # This program is free software under the GPL (>=v2)
6     # Read the file COPYING coming with Thuban for details.
7    
8     """
9     Registry for Extensions.
10    
11     This module defines a registry for Extensions.
12     This is basically used for displaying information on
13     the active Extensions in the general About-Dialog.
14     A registration is not mandatory to make a Extension
15     work, but any Extension should register to provide
16     a complete information in the Thuban About Dialog.
17    
18     A Extension should define a ExtensionDesc object
19     and apply ext_registry.add() to register it.
20     """
21    
22     __version__ = "$Revision$"
23     # $Source$
24     # $Id$
25    
26     class ExtensionDesc:
27    
28     """
29     A description of a Thuban Extension.
30     """
31    
32     def __init__(self, name, version, authors, copyright, desc):
33     """
34     Initialize a new Thuban Extension information.
35    
36     name -- The name of the Thuban Extension.
37     Example: 'gns2shp'
38    
39     version -- The version number of the Thuban Extension.
40     Example: '1.0.0'
41    
42     authors -- List of authors.
43     Example: [ 'Jan-Oliver Wagner' ]
44    
45     copyright -- Copyright notice.
46     Example: '2003, 2004 Intevation GmbH'
47    
48     desc -- Short description of the Thuban Extension.
49     Example: _('''
50     Converts GNS (Geographical Name Service of NIMA)
51     to Shapefile format and displays the data.
52     ''')
53    
54     """
55     self.name = name
56     self.version = version
57     self.authors = authors
58     self.copyright = copyright
59     self.desc = desc
60    
61     class ExtensionRegistry:
62    
63     """
64     A ExtensionRegistry keeps information on the registered
65     Thuban Extensions.
66    
67     The registry will raise a exception either when the version
68     required for the Extensions exceeds the version of the currently
69     running Thuban or if the name of a registered extension already
70     is used for registering another extension.
71     """
72    
73     def __init__(self):
74     self.registry = []
75    
76     def __nonzero__(self):
77     return len(self.registry) <> 0
78    
79     def __iter__(self):
80     return iter(self.registry)
81    
82     def add(self, ext):
83     self.registry.append(ext)
84    
85    
86     # The central Thuban Extensions registry
87     ext_registry = ExtensionRegistry()

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26