5
* http://code.google.com/p/pyrrd/issues/list
14
* Move test code around (testing and admin/testRunner).
18
* Add wiki examples for using info and fetch
20
* Add a wrapper for the Python RRDTool bindings
22
- Since the doctests are mostly to show API functionality, we'll need to add
23
unit tests for both backends (cli wrapper and bindings wrapper).
25
- DONE - The python bindings should be fairly straight-forward to support,
26
since we should just be able to split on the parameters that are currently
31
On that last point, this is how PyRRD currently wraps the command line
34
* a private function concatenates a string of "rrdtool", the rrdtool
35
command to execute, and then the list of arguments that need to be
36
passed to the chosen rrdtool command
38
* this string is then used in a call to subprocess.Popen.
40
The list of arguments is built by functions whose primary job is to finagle
41
arguements such that they can be passed to the private (and generalized)
42
_cmd function. It is these functions that are used by the object oriented
43
code. The module that contains these functions is pyrrd.external and the
44
work that is does needs to be adjusted for use by the bindings in
47
In a twist of awkwardness (that needs to be refactored), these functions
48
are called by the object wrapper after calling another utility function,
49
prepareObject. preparObject does the final massaging of parameters suitable
50
for consumption by the command line tool. If this workflow is preserved,
51
then pyrrd.bindings will need a prepareObject function as well.
53
The python bindings essentially have the same usage as the command line
54
tool. As such, the rrdtool parameters that are currently prepared by PyRRD
55
look to be almost usable as-is with the python bindings. Some adjustments
56
will have to be made, however. Currently, the parameters are assembled
57
strings passed to Popen with shell=True. There's a good chance that we'd
58
get very close to perfect suitability with the bindings if PyRRD changed to
59
a list of parameters and called Popen with shell=False.
61
Yikes! That last bit won't work: some parameters are quoted strings with
62
spaces in them, and that needs to be supported.
64
In addition to wrapping the bindings, the following adjustments will need
67
So, in a nutshell, the plan is this:
69
* DONE - write some proof of concept code that demonstrates the use of
70
PyRRD with the python bindings for rrdtool
72
* compare this with the current implementation, and generalize
75
* refactor the current awkward parameter processing to be as
76
straight-forward as possible
78
* adjust individual method implementations as necessary, based on
79
performance (bindings vs. external)
81
* Allow for users to supply their own fd to pyrrd.graph.
83
* DONE - Allow for users to decide which backend will be used on an
84
instance-by-instance basis.
86
* Update all examples for recent dates like example4 has been updated.
88
* Stop using actual file writes and doctests for file tests; use unit tests
89
(and StringIO) instead.
96
* Add a DS collection class that has a get() method for getting a
97
particular DS by name.
99
* Add support for atomic operations.