Commit Graph

256 Commits

Author SHA1 Message Date
Jason Gerard DeRose
8dc21d6f30 Make plugin browser show plugin parent class 2009-10-14 15:08:30 -06:00
Jason Gerard DeRose
f58ff2921d Giant webui patch take 2 2009-10-13 11:28:00 -06:00
Jason Gerard DeRose
c0f558d98b Removed PluginProxy and all its uses 2009-08-05 12:18:51 -04:00
Pavel Zuna
c47d716e95 Modify PluginProxy to use __public__ defined in derived classes instead of base classes. 2009-06-10 11:53:07 -04:00
Pavel Zuna
7d0bd4b895 Rename errors2.py to errors.py. Modify all affected files. 2009-04-23 10:29:14 -04:00
Jason Gerard DeRose
4ab133c3cb Implemented more elegant way for entire plugin module to be conditionally skipped; updated cert.py and ra.py modules to use this 2009-02-17 16:03:10 -05:00
Jason Gerard DeRose
a8c3f054d4 Started cleanup work on ra plugin; fixed problem in api.bootstrap() when process does not have permision to open log file 2009-02-17 16:03:08 -05:00
Jason Gerard DeRose
c2b0c80140 Started work on a much simplified mod_python server 2009-02-03 15:29:05 -05:00
Jason Gerard DeRose
231f0bd65a Finished reworked cli.CLI class into cli.cli plugin 2009-02-03 15:29:04 -05:00
Jason Gerard DeRose
db0168f7af Started reworking CLI class into cli plugin 2009-02-03 15:29:03 -05:00
Jason Gerard DeRose
0cfb0e191a Removed the depreciated Context and LazyContext classes 2009-02-03 15:29:03 -05:00
Jason Gerard DeRose
6aadeb9aea Added Object.params_minus() method; various small tweaks 2009-02-03 15:29:00 -05:00
Jason Gerard DeRose
6fe78a4944 Renamed all references to 'ipa_server' to 'ipaserver' 2009-01-04 18:39:39 -07:00
Jason Gerard DeRose
912ab9e68b Removed unneeded import of errors from plugable.py 2009-01-03 18:08:39 -07:00
Jason Gerard DeRose
bb6e9cfe9f Plugin.call() now uses errors2 version of SubprocessError 2009-01-03 18:02:58 -07:00
Jason Gerard DeRose
6b6e6b1cab Ported plugin registration errors into errors2.py; plugable.Registrar now raises new errors2 exceptions 2009-01-03 17:27:53 -07:00
Jason Gerard DeRose
72340a594d Removed unneeded import of check_type, check_instance in plugable.py 2009-01-02 01:16:17 -07:00
Jason Gerard DeRose
b4dc333ee2 Removed depreciated code in ipalib.plugable that has been moving into ipalib.base 2009-01-02 00:46:45 -07:00
Jason Gerard DeRose
5b637f6a18 Removed depreciated code from config.py; removed corresponding unit tests 2008-12-22 15:41:24 -07:00
Jason Gerard DeRose
f82c48f775 Added note in Plugin.set_api() about Plugin.log attribute being depreciated 2008-12-21 19:58:48 -07:00
Jason Gerard DeRose
9d091c98f1 Plugin.__init__() now checks that subclass hasn't defined attributes that conflict with the logger methods; added corresponding unit test 2008-12-21 19:34:32 -07:00
Jason Gerard DeRose
4390523b7f Improved Plugin.call() method and added its unit test 2008-12-21 17:12:00 -07:00
Jason Gerard DeRose
4f24f0fd88 Plugin.doc instance attribute is now parsed out using inspect.getdoc(); added Plugin.summary instance attribute, created in Plugin.__init__() 2008-12-17 23:08:52 -07:00
Jason Gerard DeRose
171ed58367 Removed Plugin.doc property and replaced with instance attribute created in Plugin.__init__() 2008-12-17 21:57:58 -07:00
Jason Gerard DeRose
69041c3b1b Removed Plugin.name property and replaced with instance attribute created in Plugin.__init__() 2008-12-17 21:47:43 -07:00
Jason Gerard DeRose
2db738e899 Some changes to make reading dubugging output easier 2008-11-24 10:09:30 -07:00
Jason Gerard DeRose
c26a3c8542 Finished fist draft of plugin tutorial in ipalib/__init__.py docstring 2008-11-07 02:26:38 -07:00
Jason Gerard DeRose
5bdf860647 Added Plugin.call() method that calls an external executable via subprocess.call() 2008-11-06 11:57:21 -07:00
Jason Gerard DeRose
242a8183a7 Added custom log formatter util.LogFormatter that makes the human-readable time stamp in UTC 2008-10-31 20:25:33 -06:00
Jason Gerard DeRose
5e5a83e4e8 Renamed API.bootstrap_from_options() to bootstrap_with_global_options() 2008-10-31 19:03:07 -06:00
Jason Gerard DeRose
5269d1396c Logging formats are now env variables; added log_format_stderr_debug format used when env.debug is True 2008-10-31 18:55:32 -06:00
Jason Gerard DeRose
a23d41a57f Reoganized global option functionality to it is easy for any script to use the environment-related global options; lite-xmlrpc.py now uses same global options 2008-10-31 18:17:08 -06:00
Jason Gerard DeRose
cdfb7bfd5e Logging is now configured in API.bootstrap(); removed depreciated util.configure_logging() function 2008-10-31 13:27:42 -06:00
Jason Gerard DeRose
140458cfc6 API.finalize() now cascades call to API.load_plugins() 2008-10-31 12:29:59 -06:00
Jason Gerard DeRose
3076cb4d2f Plugin.set_api() now sets convience instance attributes from api for env, context, log, and all NameSpace 2008-10-30 14:11:24 -06:00
Jason Gerard DeRose
6879140db7 Added ipalib.plugins.f_misc with new 'context' Command; moved 'env' Command from cli to f_misc 2008-10-30 02:20:28 -06:00
Jason Gerard DeRose
ddb5449c7f Did some initial work for Context plugins 2008-10-30 01:11:33 -06:00
Jason Gerard DeRose
fbcb55bd11 lite-xmlrpc.py now uses api.bootstrap() property, logs to api.logger 2008-10-28 02:10:56 -06:00
Jason Gerard DeRose
316bd855d5 Added util.configure_logging() function; API.bootstrap() now calls util.configure_logging() 2008-10-28 01:39:02 -06:00
Jason Gerard DeRose
83d6c95e46 API.load_plugins() no longer takes dry_run=False kwarg and instead checks in env.mode == 'unit_test' to decide whether to load the plugins; it also only loads ipa_server.plugins in env.in_server is True 2008-10-27 23:39:43 -06:00
Jason Gerard DeRose
bb9691099b API.bootstrap() now calls Env._finalize_core(); updated unit tests 2008-10-27 15:36:41 -06:00
Jason Gerard DeRose
e6254026fe Implemented basic CLI.bootstrap(); added corresponding unit tests 2008-10-27 15:19:49 -06:00
Jason Gerard DeRose
d76202fea3 API.env is now an Env instance rather than an Environment instance 2008-10-27 01:35:40 -06:00
Jason Gerard DeRose
03accc5fb3 Copied plugin loading function from load_plugins.py to util.py; API.load_plugins() method now calls functions in util 2008-10-27 00:23:43 -06:00
Jason Gerard DeRose
4fe03f5e17 Added API.load_plugins() place-holder, which cascades call to API.bootstrap() 2008-10-26 23:53:44 -06:00
Jason Gerard DeRose
6b8abb0d78 Implemented placeholder API.bootstrap() method; added API __doing(), __do_if_not_done(), isdone() methods borrowed from Env; API.finalize() now cascades call to API.bootstrap() 2008-10-26 23:28:06 -06:00
Jason Gerard DeRose
5e0a0fa745 In second example in NameSpace docstring, renamed 'member' class to 'Member' to make the example clearer 2008-10-21 08:47:08 -06:00
Jason Gerard DeRose
77a378bd61 Some PEP-257 and reStructuredText cleanup in plugable.py 2008-10-18 01:02:31 -06:00
Jason Gerard DeRose
f1eb74e22c make-test now runs doctests also; fixed several broken doctests 2008-10-17 20:50:34 -06:00
Martin Nagy
3a80297b04 Reworking Environment, moved it to config.py 2008-10-17 23:11:51 +02:00
Jason Gerard DeRose
20fa90cfb6 Some small cleanup on Environment, filled in docstrings 2008-10-14 00:39:23 -06:00
Rob Crittenden
75bad44c27 Enable the verbose flag to pass thru xmlrpc 2008-10-10 05:23:00 -04:00
Martin Nagy
149429f305 Environment is now subclassed from object, rather then dict. Added tests for Environment and config.py 2008-10-02 17:22:41 -06:00
Martin Nagy
afdc721038 Add support for environment variables, change tests accordingly 2008-09-29 17:45:14 -06:00
Jason Gerard DeRose
023f612921 361: Implemented crud.Add.get_options() method; added corresponding unit tests 2008-09-25 02:13:16 +00:00
Jason Gerard DeRose
f531f7da81 354: Added NameSpace.__todict__() method that returns copy of NameSpace.__map; updated NameSpace unit test to also test __todict__() 2008-09-24 23:49:44 +00:00
Jason Gerard DeRose
3e70c3b56b 325: API.finalize() now creates instance attribtue 'plugins', which is a tuple of PluginInfo objects; renamed show_plugins cli command to namespaces; added new cli command plugins 2008-09-24 04:44:52 +00:00
Jason Gerard DeRose
19bbc48eb6 323: Added Command.run() method that dispatches to execute() or forward(); added corresponding unit tests 2008-09-24 02:52:19 +00:00
Jason Gerard DeRose
f3aaf65f1c 320: plugable.API now respects the Plugin.__proxy__ flag; added test for plugins without proxy to unit tests for API 2008-09-24 00:44:41 +00:00
Jason Gerard DeRose
b206ef6843 314: Completed some missing features in Command.__call__(); removed depreciated Command.print_call() method 2008-09-22 01:28:57 +00:00
Jason Gerard DeRose
f73d976bda 307: Split Plugin.finalize() into two steps 1) Plugin.set_api() and 2) Plugin.finalize(); updated unit tests 2008-09-21 21:50:56 +00:00
Jason Gerard DeRose
5872221bd4 306: Added Plugin.set_api() method; added corresponding unit tests 2008-09-21 21:30:19 +00:00
Jason Gerard DeRose
ef0d7a71ab 299: Cleaned up unit tests for ReadOnly class 2008-09-18 22:39:48 +00:00
Jason Gerard DeRose
81ebe078be 298: Cleaned up docstrings in ReadOnly methods 2008-09-18 22:01:04 +00:00
Jason Gerard DeRose
e524c826db 297: Added a better example in docstring for ReadOnly 2008-09-18 21:45:25 +00:00
Jason Gerard DeRose
14eb96493b 296: Added more to docstrings for NameSpace.__iter_() and NameSpace.__call__() 2008-09-18 21:23:05 +00:00
Jason Gerard DeRose
84a721d408 294: NameSpace no longer subclasses from DictProxy; NameSpace.__getitem__() now works with int and slice objects 2008-09-18 20:35:23 +00:00
Jason Gerard DeRose
0453aa465f 274: NameSpace.__init__() now takes sort=True keyword arument to allow for non-sorted NameSpaces; updated and improved NameSpace unit tests 2008-09-09 23:10:49 +00:00
Jason Gerard DeRose
13f030d91e 271: Improved __repr__ methods for better output from the show-plugins command 2008-09-08 21:51:05 +00:00
Jason Gerard DeRose
e74713a076 267: Finished builtin CLI api command 2008-09-08 21:37:02 +00:00
Jason Gerard DeRose
8b7fe7139d 228: plugable.check_name() now uses errors.check_type() 2008-09-02 17:29:01 +00:00
Jason Gerard DeRose
ab10f0843b 179: DictProxy now has __call__() method that iterates through the values; removed __call__() method from NameSpace as it subclasses from DictProxys; DictProxy unit tests now test __call__() 2008-08-15 05:19:02 +00:00
Jason Gerard DeRose
a24f2121d5 178: Registrar now subclasses from DictProxy; made Registrar.__iter__ behave same as the other container emulation in plugable.py, and made the dictorary interface return the base and the attribute interface return the MagicDict; updated API class and unit tests 2008-08-15 05:07:17 +00:00
Jason Gerard DeRose
5ed58fdb42 177: Docstring cleanup in NameSpace.__call__() 2008-08-15 03:45:07 +00:00
Jason Gerard DeRose
db8099febc 176: PluginProxy now subclasses from SetProxy 2008-08-15 03:41:17 +00:00
Jason Gerard DeRose
233293fb4a 175: Renamed Proxy to PluginProxy 2008-08-15 03:32:38 +00:00
Jason Gerard DeRose
ec0596b429 174: Fleshed out docstrings for SetProxy, DictProxy, and MagicDict 2008-08-15 03:24:37 +00:00
Jason Gerard DeRose
3e3b596f68 173: NameSpace now subclasses from DictProxy 2008-08-15 01:46:11 +00:00
Jason Gerard DeRose
1a92bdf29b 172: API now subclasses from DictProxy 2008-08-15 01:32:20 +00:00
Jason Gerard DeRose
e43a5c642e 171: MagicDict now subclasses from DictProxy; updated unit tests 2008-08-15 01:24:51 +00:00
Jason Gerard DeRose
f6c2181eeb 170: Added SetProxy and DictProxy classes to plugable so container emulation can be consolidated 2008-08-15 01:04:19 +00:00
Jason Gerard DeRose
88a5b3ae25 169: Renamed DictProxy to MagicDict 2008-08-14 23:49:36 +00:00
Jason Gerard DeRose
07cd537277 168: plugable.API now implements the all the usual container methods 2008-08-14 22:13:42 +00:00
Jason Gerard DeRose
5f38daf6de 167: In API.finalize(), lock(plugin) is used instead of plugin.__lock__(); more docstring improvements in plugable.py 2008-08-14 21:40:37 +00:00
Jason Gerard DeRose
d229a76474 165: Added unit tests for plugable.lock() function; replaced occurances of 'self.__lock__()' with 'lock(self)' in plugable.py 2008-08-14 20:32:35 +00:00
Jason Gerard DeRose
43c04f1cd3 163: Docstring improvement for ipalib/__init__.py and plugable.py 2008-08-14 19:36:54 +00:00
Jason Gerard DeRose
f423f2c9f0 162: Added link to container emulation documentation in plugable.py docstring 2008-08-14 18:59:12 +00:00
Jason Gerard DeRose
7c64c8b954 161: Registrar now takes advantage of DictProxy; updated corresponding unit tests 2008-08-14 18:50:21 +00:00
Jason Gerard DeRose
87cad5078a 160: DictProxy now checks type of d in __init__(); updated unit tests 2008-08-14 17:29:13 +00:00
Jason Gerard DeRose
b403fd822b 159: Added plugable.DictProxy class; added corresponding unit tests; added setitem(), delitem() functions to tstutil 2008-08-14 17:21:21 +00:00
Jason Gerard DeRose
ca53615ddd 158: Name local arg 'cls' to 'klass' in Registrar methods to avoid confusion with classmethods; some docstring improvement in Registrar 2008-08-14 09:38:28 +00:00
Jason Gerard DeRose
a3dc04ade4 157: More docstring cleanup; fixed remaining epydoc warnings 2008-08-14 09:01:02 +00:00
Jason Gerard DeRose
f0dfb9f873 156: Fixed all broken docstring cross references 2008-08-14 08:28:48 +00:00
Jason Gerard DeRose
8c27f4c2de 155: More docstring cleanup in plugable.py 2008-08-14 07:43:43 +00:00
Jason Gerard DeRose
00f4272662 154: Merged ProxyTarget functionality into Plugin to make things a bit clearer 2008-08-14 07:10:07 +00:00
Jason Gerard DeRose
a59d6698d2 153: Started cleaning up docstrings in Proxy and also experimented with restructuredtext formatting 2008-08-14 06:53:05 +00:00
Jason Gerard DeRose
ba8d32a110 150: NameSpace.__iter__() now iterates through the names, not the members; added NameSpace.__call__() method which iterates through the members; NameSpace no longer requires members to be Proxy instances; updated unit tests and affected code; cleaned up NameSpace docstrings and switch to epydoc param docstrings 2008-08-14 05:46:20 +00:00
Jason Gerard DeRose
0fed74b56d 138: Added ProxyTarget.doc property; CLI.print_commands() now uses cmd.doc instead of cmd.get_doc() 2008-08-13 02:34:36 +00:00
Jason Gerard DeRose
70cbe10624 124: Fixed case in example in ReadOnly class docstring 2008-08-12 23:45:36 +00:00
Jason Gerard DeRose
7db3aae1b2 123: API.finalize() now raises AssetionError if called more than once; added corresponding unit tests 2008-08-12 23:40:36 +00:00
Jason Gerard DeRose
b72cfa5dcc 121: Renamed API.__call__() method to API.finalize() 2008-08-12 22:52:37 +00:00
Jason Gerard DeRose
f767543fe7 120: Moved ProxyTarget below Proxy to emphasize relationship with Plugin; added docstrings for ProxyTarget.implements() and implemented_by() classmethods; fixed typo in Plugin.finalize() docstring 2008-08-12 22:40:06 +00:00
Jason Gerard DeRose
8640523632 119: Added ProxyTarget.implemented_by() classmethod; added corresponding unit tests 2008-08-12 21:45:54 +00:00
Jason Gerard DeRose
d7958f3fde 103: Fixed missing API.__keys assignment 2008-08-09 19:48:47 +00:00
Jason Gerard DeRose
0edb22c9ac 102: After the API instance calls plugin.finalize(), it also calls plugin.__lock__() 2008-08-09 19:39:58 +00:00
Jason Gerard DeRose
543aea31a4 101: Registrar now subclasses from ReadOnly 2008-08-09 19:33:13 +00:00
Jason Gerard DeRose
0e532cd7b3 100: Cleaned up NameSpace docstrings; cleanup up NameSpace unit tests 2008-08-09 19:28:01 +00:00
Jason Gerard DeRose
e756e12718 99: Cleaned up unit tests for plugable.Plugin 2008-08-09 19:09:10 +00:00
Jason Gerard DeRose
5315514f6c 98: Completed docstrings in Proxy 2008-08-09 18:58:46 +00:00
Jason Gerard DeRose
9712eae51c 97: Some whitespace and docstring cleanup; Plugin now subclasses from ProxyTarget 2008-08-09 05:19:40 +00:00
Jason Gerard DeRose
409f688ef5 96: Fixed typo is ReadOnly docstring 2008-08-09 04:37:37 +00:00
Jason Gerard DeRose
72f3132d2b 95: Improved docstrings for ReadOnly class; added ReadOnly.__islocked__() method; added corresponding unit tests 2008-08-09 04:35:06 +00:00
Jason Gerard DeRose
3495c67d57 94: Renamed Proxy._clone() method to Proxy.__clone__(); updated unit tests 2008-08-09 01:46:12 +00:00
Jason Gerard DeRose
cc5b017494 93: Added Proxy.implements() method; addeded corresponding unit tests 2008-08-09 01:06:42 +00:00
Jason Gerard DeRose
45201e31c1 92: Added ProxyTarget.name property; added corresponding unit tests 2008-08-08 23:26:17 +00:00
Jason Gerard DeRose
e3811f3f45 91: Fleshed out docstrings in plugable.Proxy 2008-08-08 23:07:22 +00:00
Jason Gerard DeRose
5a1223e943 90: Renamed plugable.Abstract to ProxyTarget, which now subclasses from ReadOnly; updated unit tests 2008-08-08 22:45:09 +00:00
Jason Gerard DeRose
1744723d11 88: Renamed ReadOnly._lock() to ReadOnly.__lock__(); updated subclasses and unit tests 2008-08-08 21:49:09 +00:00
Jason Gerard DeRose
3fe13d5945 87: Moved to_cli(), from_cli() functions from plugable.py into new cli.py file; moved corresponding unit tests into new test_cli.py file 2008-08-08 21:46:23 +00:00
Jason Gerard DeRose
fdfa827a36 86: Actually change *all* tab indentation to 4-space: 'sed s/\t/ /g' 2008-08-08 21:40:03 +00:00
Jason Gerard DeRose
58a3b1d091 85: Added ReadOnly._lock() method to make class easier to use; updated subclasses and unit tests 2008-08-08 21:28:56 +00:00
Jason Gerard DeRose
6dc60a18c7 84: Renamed Proxy.__public to Proxy.__public__ so it works with Abstract.implements() 2008-08-08 20:55:08 +00:00
Jason Gerard DeRose
d171dc9011 82: Cleaned up unit tests for public.option; added some doodles in plugable.Base 2008-08-08 19:53:45 +00:00
Jason Gerard DeRose
8e46824815 81: Switch from tab to 4-space indentation 2008-08-08 17:11:29 +00:00
Jason Gerard DeRose
f904cb0422 71: Proxy now uses base.__public__ instead of base.public; updated unit tests 2008-08-07 00:51:34 +00:00
Jason Gerard DeRose
778a019129 70: Plugin.__repr__ now again returns 'module_name.class_name()' form; updated unit test 2008-08-07 00:35:51 +00:00
Jason Gerard DeRose
19dbd57141 69: Made Proxy.base a private attribute; updated unit tests 2008-08-07 00:21:50 +00:00
Jason Gerard DeRose
7335af8a9e 68: Ported to changes in NameSpace, Proxy; updated unit tests 2008-08-07 00:14:38 +00:00
Jason Gerard DeRose
03bad04e7b 67: Deleted NameSpace, Proxy; renamed NameSpace2, Proxy2 to NameSpace, Proxy 2008-08-06 23:22:29 +00:00
Jason Gerard DeRose
e63453a858 66: Added NameSpace2 (bit simpler than NameSpace, better suited to Proxy2); added corresponding unit tests 2008-08-06 22:59:50 +00:00
Jason Gerard DeRose
f13f1226b4 65: Finished simplified Proxy2 class; updated unit tests 2008-08-06 21:54:56 +00:00
Jason Gerard DeRose
0c7769473c 64: Almost finish with Proxy2, where base class is passed to __init__ and methods use @export decorator; added corresponding unit tests 2008-08-06 20:38:07 +00:00
Jason Gerard DeRose
495f96a73f 62: NameSpace no longer takes base=base kwarg 2008-08-06 15:06:39 +00:00
Jason Gerard DeRose
4e825ba2d9 61: Proxy now does a setattr for all callable attributes in __slots__ (and uses __getattr__ for rest 2008-08-06 14:59:54 +00:00
Jason Gerard DeRose
62d2cd65f2 59: Removed NameSpace.__call__ method (returned max_len) 2008-08-06 14:27:33 +00:00
Jason Gerard DeRose
2081987186 58: A bit of docstring cleanup in plugable.py 2008-08-06 14:22:38 +00:00
Jason Gerard DeRose
e618d99bc7 57: to_cli() function no longer replaces '__' with '.'; from_cli() function no longer replaces '.' with '__'; updated unit tests 2008-08-06 03:58:15 +00:00
Jason Gerard DeRose
8865f516df 56: Fixed Proxy.__call__ 2008-08-06 03:51:33 +00:00
Jason Gerard DeRose
277685439c 55: Cleaned up print_api() function in ipa script 2008-08-06 03:27:00 +00:00
Jason Gerard DeRose
c6f69e1c66 54: Added plugable.Proxy._clone() method; fleshed out public.obj; updated unit tests; port ipa script 2008-08-06 02:00:18 +00:00
Jason Gerard DeRose
f31f7813fe 53: Changed plugable.Registar so the same plugin can be added to in the ns for more than one base (for cmd and mthd) 2008-08-05 23:34:59 +00:00
Jason Gerard DeRose
159207514f 52: Got cli working against new framework 2008-08-05 22:21:57 +00:00
Jason Gerard DeRose
56fa454fdd 47: Added plugable.check_identifier() function; added corresponding unit tests 2008-08-05 06:33:09 +00:00
Jason Gerard DeRose
d134b48306 46: plugable.API now takes allowed base class in __init__ and creates Registrar at API.register, thereby coupling the two; updated correspending unit tests 2008-08-05 05:12:09 +00:00
Jason Gerard DeRose
2b3c2238f6 45: Fixed docstring typo in plugable.__doc__ 2008-08-05 04:40:44 +00:00
Jason Gerard DeRose
42c53b2a53 44: Added Plugin.finalize() method called by API after all plugin instances are created; updated corresponding unit tests 2008-08-05 04:24:19 +00:00
Jason Gerard DeRose
c3bf5ad857 43: Fleshed out new plugable.API class; added corresponding unit tests 2008-08-05 03:21:52 +00:00
Jason Gerard DeRose
74f5719078 42: plugable.Plugin.__init__() now takes the plugable.API instance as its single argument 2008-08-01 21:25:46 +00:00
Jason Gerard DeRose
a0f480a414 41: New plugable.NameSpace now has attributes set for each member; updated unit tests 2008-08-01 20:58:48 +00:00
Jason Gerard DeRose
f3762a76c0 40: Rewrote dictionary interface for plugable.NameSpace to better suite new architecture 2008-08-01 20:42:35 +00:00