changes_0.2
|
Size: 1403
Comment:
|
Size: 3088
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 31: | Line 31: |
| * objectify the current Bug -class: * `Comments`, `Attachments` and `InfoTable` are new container classes * `Comment`, `Attachment` and `Info` - objects are elements of this containers |
|
| Line 32: | Line 35: |
| * changeable elements have their own `edit`,`add` or `remove` method: e.g. * `Comments` will have a `add` method * `Attachments` will have `add` and `remove` * `Info` will have an `edit` method * `Comment` and `InfoTable` are read-only |
|
| Line 33: | Line 41: |
| * 'edit local and apply at once' - approach The following lines of code should explain that approach: {{{ bug = Bug(1) bug.attachments.add('fix.patch', comment='first attempt to fix that issue') bug.status = 'Needs Info' bug.tags.append('bitesize') bug.apply() }}} * There should not be an extra module for exceptions * There is only one argument required in the Bug- constructor: * a `BugInfo` instance ''or'' * an integer type `bugnumber` ''or'' * an `url` to the bugreport * `ATTACHMENT_PATH`, `CONTENT_TYPES` and `ATTACHMENT_REGEX` are global options |
|
| Line 39: | Line 68: |
| == current implementation == With revision 70 I added a Connector module to [http://bazaar.launchpad.net/~thekorn/python-launchpad-bugs/api.changes.gsoc api.changes.gsoc]. '''Example usage:''' ''loading the default Bug-class:'' {{{ import launchpadBugs.Connector as C (Bug,) = C.LaunchpadConnector(Bug) b = Bug(12) }}} ''loading the Bug-class from xxx:'' {{{ import launchpadBugs.Connector as C (Bug,) = C.LaunchpadConnector(Bug="xxx") b = Bug(12) }}} ''loading of various classes:'' {{{ import launchpadBugs.Connector as C (Bug, Buglist) = C.LaunchpadConnector(Bug, BugList) b = Bug(12) }}} = Discussion = |
(This is still work in progress)
As part of my Google Summer of code project I'm going to rewrite python-launchpad-bugs. This wiki-page will give a view of my ideas and a starting point for further discussions. Some of the following items are already implemented in my developing branch [http://bazaar.launchpad.net/~thekorn/python-launchpad-bugs/api.changes.gsoc]
Splitting HTMLOperations.py
I would like to split the existing HTMLOperations module into a Buglist and a Bug module.
all connection related functions like safe_urlopen() will be moved to utils
setting the cookie_handler should be a global option
Buglist
This module will basically consist of the old BugList and BugPage classes.
BugList
- Filtering should be a global option
the only required parameter in the constructor is url
BugList.bugs will be a SET
I almost finished the Buglist module, I wrote a small script api_test_Buglist.py to give an overview over the new API.
Bug
api_test_Bug.py shows the state of the developing progress.
- objectify the current Bug -class:
Comments, Attachments and InfoTable are new container classes
Comment, Attachment and Info - objects are elements of this containers
changeable elements have their own edit,add or remove method: e.g.
Comments will have a add method
Attachments will have add and remove
Info will have an edit method
Comment and InfoTable are read-only
- 'edit local and apply at once' - approach The following lines of code should explain that approach:
bug = Bug(1)
bug.attachments.add('fix.patch', comment='first attempt to fix that issue')
bug.status = 'Needs Info'
bug.tags.append('bitesize')
bug.apply()- There should not be an extra module for exceptions
- There is only one argument required in the Bug- constructor:
a BugInfo instance or
an integer type bugnumber or
an url to the bugreport
ATTACHMENT_PATH, CONTENT_TYPES and ATTACHMENT_REGEX are global options
Use a LaunchpadConnector class
We could use a LaunchpadConnector class and have several backends implementing it. That way we can have an easy transition to XMLRPC once we get it from Launchpad.
current implementation
With revision 70 I added a Connector module to [http://bazaar.launchpad.net/~thekorn/python-launchpad-bugs/api.changes.gsoc api.changes.gsoc].
Example usage:
loading the default Bug-class:
import launchpadBugs.Connector as C (Bug,) = C.LaunchpadConnector(Bug) b = Bug(12)
loading the Bug-class from xxx:
import launchpadBugs.Connector as C (Bug,) = C.LaunchpadConnector(Bug="xxx") b = Bug(12)
loading of various classes:
import launchpadBugs.Connector as C (Bug, Buglist) = C.LaunchpadConnector(Bug, BugList) b = Bug(12)
Discussion
Go Back to [:BugHelper/Dev].BR CategoryBugHelper
BugHelper/Dev/python-launchpad-bugs/changes_0.2 (last edited 2008-08-06 17:01:19 by localhost)