~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/util/configobj/docs/validate.txt

  • Committer: Martin Pool
  • Date: 2006-03-06 11:20:10 UTC
  • mfrom: (1593 +trunk)
  • mto: This revision was merged to the branch mainline in revision 1611.
  • Revision ID: mbp@sourcefrog.net-20060306112010-17c0170dde5d1eea
[merge] large merge to sync with bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 
9
9
 
10
10
:Authors: `Michael Foord`_, `Nicola Larosa`_, `Mark Andrews`_
11
 
:Version: Validate 0.2.0
12
 
:Date: 2005/08/25
 
11
:Version: Validate 0.2.1
 
12
:Date: 2005/12/16
13
13
:Homepage: `Validate Homepage`_
14
14
:License: `BSD License`_
15
15
:Support: `Mailing List`_
20
20
.. _Mark Andrews: mark@la-la.com
21
21
.. _This Document:
22
22
.. _Validate Homepage: http://www.voidspace.org.uk/python/validate.html
23
 
.. _BSD License: http://www.voidspace.org.uk/documents/BSD-LICENSE.txt
 
23
.. _BSD License: http://www.voidspace.org.uk/python/license.shtml
24
24
 
25
25
 
26
26
.. contents:: Validate Manual
56
56
into every validator. Additional checks are easy to write: they can be provided
57
57
when the ``Validator`` is instantiated, or added afterwards.
58
58
 
59
 
Validate was primarily written to support ConfigObj_, but was designed to be 
 
59
Validate was primarily written to support ConfigObj_, but is designed to be 
60
60
applicable to many other situations.
61
61
 
62
62
For support and bug reports please use the ConfigObj `Mailing List`_.
66
66
Downloading
67
67
===========
68
68
 
69
 
The current version is **0.2.0**, dated 25th August 2005. 
 
69
The current version is **0.2.1**, dated 16th December 2005. 
70
70
 
71
71
You can get obtain validate in the following ways :
72
72
 
76
76
* validate.py_ from Voidspace
77
77
 
78
78
* configobj.zip from Voidspace - See the homepage of ConfigObj_ for the latest 
79
 
  version and downlaod links.
 
79
  version and download links.
80
80
 
81
81
    This contains validate.py and `this document`_. (As well as ConfigObj_ and 
82
82
    the ConfigObj documentation).
101
101
Python Projects`_.
102
102
 
103
103
.. _configobj.py: http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=configobj.py
104
 
.. _configobj.zip: http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=configobj-4.0.0b4.zip
 
104
.. _configobj.zip: http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=configobj-4.1.0.zip
105
105
.. _validate.py: http://www.voidspace.org.uk/cgi-bin/voidspace/downman.py?file=validate.py
106
106
.. _API Docs: http://www.voidspace.org.uk/python/configobj-api/
107
107
.. _Subversion Repository: http://svn.rest2web.python-hosting.com/branches/configobj4/
203
203
    from validate import Validator
204
204
    #
205
205
    vtor = Validator()
206
 
    newval1 = vtor.check(value1, 'integer')
207
 
    newval2 = vtor.check(value2, 'bool')
 
206
    newval1 = vtor.check('integer', value1)
 
207
    newval2 = vtor.check('bool', value2)
208
208
    # etc ...
209
209
 
210
210
    {-coloring}
215
215
    them in ``try...except`` blocks. Better still,  use ConfigObj for a higher
216
216
    level interface.
217
217
 
 
218
 
218
219
Using Validator
219
220
===============
220
221
 
332
333
    Although the value can be a string, if it represents a list it should
333
334
    already have been turned into a list of strings.
334
335
 
 
336
 
335
337
Default Values
336
338
~~~~~~~~~~~~~~
337
339
 
365
367
that this check contains no useful value when missing, i.e. the value is
366
368
optional, and may be omitted without harm.
367
369
 
 
370
 
 
371
List Values
 
372
~~~~~~~~~~~
 
373
 
 
374
It's possible that you would like your default value to be a list. It's even
 
375
possible that you will write your own check functions - and would like to pass
 
376
them keyword arguments as lists from within the check.
 
377
 
 
378
To avoid confusing syntax with commas and quotes you use a list constructor to
 
379
specify that keyword arguments are lists. This includes the ``default`` value.
 
380
This makes checks look something like : ::
 
381
 
 
382
    checkname(default=list('val1', 'val2', 'val3'))
 
383
 
368
384
Validator Exceptions
369
385
====================
370
386
 
539
555
 
540
556
* A regex check function ?
541
557
* A timestamp check function ? (Using the ``parse`` function from ``DateUtil``).
542
 
* Allow triple quotes ? (getting a bit heavy for a single regex)
 
558
* Allow triple quotes ? (getting a bit heavy for a regex)
543
559
 
544
560
ISSUES
545
561
======
549
565
    Please file any bug reports to `Michael Foord`_ or the ConfigObj
550
566
    `Mailing List`_.
551
567
 
552
 
Lists passed as function arguments need additional quotes. Ugly, could do
553
 
with fixing this.
554
 
 
555
568
If we could pull tuples out of arguments, it would be easier
556
569
to specify arguments for 'mixed_lists'.
557
570
 
558
571
CHANGELOG
559
572
=========
560
573
 
 
574
2005/12/16      Version 0.2.1
 
575
-----------------------------
 
576
 
 
577
Fixed bug so we can handle keyword argument values with commas.
 
578
 
 
579
We now use a list constructor for passing list values to keyword arguments
 
580
(including ``default``) : ::
 
581
 
 
582
    default=list("val", "val", "val")
 
583
 
 
584
Added the ``_test`` test. {sm;:-)}
 
585
 
 
586
Moved a function call outside a try...except block.
561
587
 
562
588
2005/08/18      Version 0.2.0
563
589
-----------------------------