Package vobject
[show private | hide private]
[frames | no frames]

Package vobject

VObject Overview

vobject parses vCard or vCalendar files, returning a tree of Python objects. It also provids an API to create vCards or vCalendars data structures which can then be serialized.

Parsing existing streams

Streams containing one or many Components can be parsed using readComponents. As each Component is parsed, vobject will attempt to give it a Behavior. If an appropriate Behavior is found, any base64, quoted-printable, or backslash escaped data will automatically be decoded. Dates and datetimes will be transformed to datetime.date or datetime.datetime instances. Components containing recurrence information will have a special rruleset attribute (a dateutil.rrule.rruleset instance).

Validation

Behavior classes implement validation for Components. To validate, an object must have all required children. There (TODO: will be) a toggle to raise an exception or just log unrecognized, non-experimental children and parameters.

Creating objects programatically

A Component can be created from scratch. No encoding is necessary, serialization will encode data automatically. Factory functions (TODO: will be) available to create standard objects.

Serializing objects

Serialization:

Examples

>>> import datetime
>>> import dateutil.rrule as rrule
>>> x = iCalendar()
>>> x.add('vevent')
<VEVENT| []>

>>> x
<VCALENDAR| [<VEVENT| []>]>

>>> v = x.vevent[0]
>>> utc = icalendar.utc
>>> v.add('dtstart').value = datetime.datetime(2004, 12, 15, 14, tzinfo = utc)
>>> v
<VEVENT| [<DTSTART{}2004-12-15 14:00:00+00:00>]>

>>> x
<VCALENDAR| [<VEVENT| [<DTSTART{}2004-12-15 14:00:00+00:00>]>]>

>>> newrule = rrule.rruleset()
>>> newrule.rrule(rrule.rrule(rrule.WEEKLY, count=2, dtstart=v.dtstart[0].value))
>>> v.rruleset = newrule
>>> list(v.rruleset)
[datetime.datetime(2004, 12, 15, 14, 0, tzinfo=tzutc()), datetime.datetime(2004, 12, 22, 14, 0, tzinfo=tzutc())]

>>> v.add('uid').value = "randomuid@MYHOSTNAME"
>>> print x.serialize().replace(vobject.CRLF, vobject.LF).strip()
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//PYVOBJECT//NONSGML Version 1//EN
BEGIN:VEVENT
UID:randomuid@MYHOSTNAME
DTSTART:20041215T140000Z
RRULE:FREQ=WEEKLY;COUNT=2
END:VEVENT
END:VCALENDAR

Submodules
  • behavior: Behavior (validation, encoding, and transformations) for vobjects.
  • ez_setup: Bootstrap setuptools installation
  • icalendar: Definitions and behavior for iCalendar, also known as vCalendar 2.0
  • tests: Long or boring tests for vobjects.
  • vcard: Definitions and behavior for vCard 3.0
  • vobject: vobject module for reading vCard and vCalendar files.

Function Summary
  iCalendar()
  vCard()

Generated by Epydoc 2.1 on Fri Dec 14 17:25:14 2007 http://epydoc.sf.net