Hello community,

here is the log from the commit of package pycarddav for openSUSE:Factory 
checked in at 2013-12-18 16:54:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pycarddav (Old)
 and      /work/SRC/openSUSE:Factory/.pycarddav.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pycarddav"

Changes:
--------
--- /work/SRC/openSUSE:Factory/pycarddav/pycarddav.changes      2013-09-09 
09:54:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pycarddav.new/pycarddav.changes 2013-12-18 
16:54:19.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Dec 17 09:59:11 UTC 2013 - g...@opensuse.org
+
+- update to version 0.6.1
+  - bugfixes
+  - keyring support
+  - new manpages
+
+-------------------------------------------------------------------

Old:
----
  pyCardDAV-0.5.1.tar.gz

New:
----
  pyCardDAV-0.6.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pycarddav.spec ++++++
--- /var/tmp/diff_new_pack.c302VW/_old  2013-12-18 16:54:19.000000000 +0100
+++ /var/tmp/diff_new_pack.c302VW/_new  2013-12-18 16:54:19.000000000 +0100
@@ -20,7 +20,7 @@
 %define orig_name pyCardDAV
 
 Name:           pycarddav
-Version:        0.5.1
+Version:        0.6.1
 Release:        0
 Summary:        Simple to Use CardDAV CLI Client
 License:        MIT
@@ -75,6 +75,11 @@
 
 %install
 python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+for manpage in doc/man/*; do
+    if [ -f "${manpage}" ]; then
+        install -D -p -m 644 "${manpage}" 
"%{buildroot}%{_mandir}/man1/${manpage##*/}"
+    fi
+done
 
 %files
 %defattr(-,root,root)
@@ -84,5 +89,8 @@
 %{_bindir}/pc_query
 %{_bindir}/pycard-import
 %{_bindir}/pycardsyncer
+%{_mandir}/man1/pc_query.1%{ext_man}
+%{_mandir}/man1/pycard-import.1%{ext_man}
+%{_mandir}/man1/pycardsyncer.1%{ext_man}
 
 %changelog

++++++ pyCardDAV-0.5.1.tar.gz -> pyCardDAV-0.6.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/CONTRIBUTORS.txt 
new/pyCardDAV-0.6.1/CONTRIBUTORS.txt
--- old/pyCardDAV-0.5.1/CONTRIBUTORS.txt        2013-09-02 00:16:39.000000000 
+0200
+++ new/pyCardDAV-0.6.1/CONTRIBUTORS.txt        2013-11-26 14:09:37.000000000 
+0100
@@ -5,3 +5,5 @@
 Ben Boeckel - mathstuf [at] gmail [dot] com
 Thomas Glanzmann - tho...@glanzmann.de - http://thomas.glanzmann.de
 Johannes Goetzfried - johan...@jgoetzfried.de - http://jgoetzfried.de
+Steven Allen <ste...@stebalien.com> - http://stebalien.com
+Jamie McClelland - jm@mayfirstorg - http://current.workingdirectory.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/MANIFEST.in 
new/pyCardDAV-0.6.1/MANIFEST.in
--- old/pyCardDAV-0.5.1/MANIFEST.in     2013-09-02 00:15:11.000000000 +0200
+++ new/pyCardDAV-0.6.1/MANIFEST.in     2013-11-26 14:12:22.000000000 +0100
@@ -4,3 +4,4 @@
 include CONTRIBUTORS.txt
 include COPYING
 include NEWS.txt
+recursive-include doc/man *.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/NEWS.txt new/pyCardDAV-0.6.1/NEWS.txt
--- old/pyCardDAV-0.5.1/NEWS.txt        2013-09-02 00:16:39.000000000 +0200
+++ new/pyCardDAV-0.6.1/NEWS.txt        2013-11-26 14:14:37.000000000 +0100
@@ -1,5 +1,14 @@
 News
 ====
+26.11.2013: pyCardDAV v0.6.1 released
+
+ The man pages should now be included in the release tarball.
+
+25.11.2013: pyCardDAV v0.6 released
+
+ This is mostly a bug fix release (thanks to Jamie McClelland for fixing
+ two bugs), but also introduces keyring support (thanks to Steven Allen).
+ Have a look at the README for further information on keyring support.
 
 02.09.2013: pyCardDAV v.0.5.1 released
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/PKG-INFO new/pyCardDAV-0.6.1/PKG-INFO
--- old/pyCardDAV-0.5.1/PKG-INFO        2013-09-02 00:19:35.000000000 +0200
+++ new/pyCardDAV-0.6.1/PKG-INFO        2013-11-26 14:15:21.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pyCardDAV
-Version: 0.5.1
+Version: 0.6.1
 Summary: A CardDAV based address book tool
 Home-page: http://lostpackets.de/pycarddav/
 Author: Christian Geier
@@ -112,6 +112,22 @@
         use all configured accounts, while on adding cards the first 
configured account
         will be used.
         
+        Keyring support
+        ---------------
+        
+        *pycarddav* supports keyring_, (version >=3.0). To use it, you need to 
add a
+        password to the keyring via::
+        
+            keyring set pycarddav:$account $username
+        
+        where $account is the name of an account as configured in your 
configuration
+        file and $username is the corresponding username (and then have no 
password
+        configured for that account). For more details on configuring keyring 
have a
+        look at its documentation_.
+        
+        .. _keyring: https://pypi.python.org/pypi/keyring
+        .. _documentation: https://pypi.python.org/pypi/keyring
+        
         Import Addresses from Mutt
         --------------------------
         You can directly add sender addresses from mutt to *pyCardDAV*, either 
adding
@@ -131,6 +147,14 @@
         checking set *verify* to *false* to disable *any* ssl certificate 
checking (this
         is not recommended).
         
+        Conflict Resolution
+        -------------------
+        
+        In case of conflicting edits (local VCard changed while remote VCard 
also
+        changed), are "resolved" by pycarddav through overwriting the local 
VCard with
+        the remote one (meaning local edits are lost in this case). Syncing 
more
+        frequently can prevent this.
+        
         Additional Information
         ----------------------
         For now, VCard properties that have no value are not shown.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/README.rst 
new/pyCardDAV-0.6.1/README.rst
--- old/pyCardDAV-0.5.1/README.rst      2013-09-02 00:16:39.000000000 +0200
+++ new/pyCardDAV-0.6.1/README.rst      2013-11-26 14:09:37.000000000 +0100
@@ -104,6 +104,22 @@
 use all configured accounts, while on adding cards the first configured account
 will be used.
 
+Keyring support
+---------------
+
+*pycarddav* supports keyring_, (version >=3.0). To use it, you need to add a
+password to the keyring via::
+
+    keyring set pycarddav:$account $username
+
+where $account is the name of an account as configured in your configuration
+file and $username is the corresponding username (and then have no password
+configured for that account). For more details on configuring keyring have a
+look at its documentation_.
+
+.. _keyring: https://pypi.python.org/pypi/keyring
+.. _documentation: https://pypi.python.org/pypi/keyring
+
 Import Addresses from Mutt
 --------------------------
 You can directly add sender addresses from mutt to *pyCardDAV*, either adding
@@ -123,6 +139,14 @@
 checking set *verify* to *false* to disable *any* ssl certificate checking 
(this
 is not recommended).
 
+Conflict Resolution
+-------------------
+
+In case of conflicting edits (local VCard changed while remote VCard also
+changed), are "resolved" by pycarddav through overwriting the local VCard with
+the remote one (meaning local edits are lost in this case). Syncing more
+frequently can prevent this.
+
 Additional Information
 ----------------------
 For now, VCard properties that have no value are not shown.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/README.txt 
new/pyCardDAV-0.6.1/README.txt
--- old/pyCardDAV-0.5.1/README.txt      2013-12-18 16:54:19.000000000 +0100
+++ new/pyCardDAV-0.6.1/README.txt      1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-symbolic link to README.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/doc/man/pc_query.1 
new/pyCardDAV-0.6.1/doc/man/pc_query.1
--- old/pyCardDAV-0.5.1/doc/man/pc_query.1      1970-01-01 01:00:00.000000000 
+0100
+++ new/pyCardDAV-0.6.1/doc/man/pc_query.1      2013-11-26 14:09:37.000000000 
+0100
@@ -0,0 +1,121 @@
+'\" t
+.\"     Title: pc_query
+.\"    Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 11/25/2013
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "PC_QUERY" "1" "11/25/2013" "\ \&" "\ \&"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+pc_query \- query the local address book
+.SH "SYNOPSIS"
+.sp
+\fBpc_query\fR [\fIOPTIONS\fR] [SEARCHSTRING]
+.SH "DESCRIPTION"
+.sp
+pc_query(1) prints contacts from a local address book, synchronized with 
remote CardDAV resources with pycardsyncer(1)\&. Contact information is kept in 
the \fIvCard\fR format, one set of information, corresponding to a business 
card, is therefore often referred to as a \fIcard\fR\&. pc_query(1) can also 
import and export vcards from/to the database\&. pc_query(1) is part of the 
\fIpycarddav\fR package\&.
+.SH "OPTIONS"
+.SS "BASIC STARTUP OPTIONS"
+.PP
+\fB\-a, \-\-account\fR=\fINAME\fR
+.RS 4
+Only use the account/resource
+\fINAME\fR
+(this option can be used more than once)\&.
+.RE
+.PP
+\fB\-c, \-\-config\fR=\fICONFIG\fR
+.RS 4
+Use the configuration file
+\fICONFIG\fR, otherwise pc_query(1) will look in
+\fI$HOME/\&.pycard/\fR
+and
+\fI$HOME/\&.config/pycard/\fR
+for files named
+\fIpycard\&.conf\fR\&.
+.RE
+.PP
+\fB\-\-debug\fR
+.RS 4
+This option enables debugging output\&.
+.RE
+.PP
+\fB\-h, \-\-help\fR
+.RS 4
+Print a small help text and exit\&.
+.RE
+.PP
+\fB\-v, \-\-version\fR
+.RS 4
+Print pc_query\(cqs version number and exit\&.
+.RE
+.SS "PRINTING OPTIONS"
+.sp
+These options can only be used with \fISEARCHSTRING\fR and determine the 
output format of pc_query(1)\&. Without any options pc_query(1) will print the 
name, telephone numbers and email addresses of all matching contact cards\&.
+.PP
+\fB\-A\fR
+.RS 4
+Prints the whole card\&.
+.RE
+.PP
+\fB\-m\fR
+.RS 4
+Only prints names and email addresses, in a mutt friendly format (one line per 
email address)\&.
+.RE
+.PP
+\fB\-t\fR
+.RS 4
+Only prints names and telephone numbers, analogue to \-m (but in different 
sequence)
+.RE
+.SS "FILE INPUT AND OUTPUT OPTIONS"
+.PP
+\fB\-b, \-\-backup\fR\fI=\*(AqFILE\fR
+.RS 4
+Backup the local db to BACKUP, if a SEARCHSTRING is present, only backup cards 
matching it\&.
+.RE
+.PP
+\fB\-\-delete\fR
+.RS 4
+Delete card matching
+\fISEARCHSTRING\fR, if more than one matches, the user has to choose one card 
in an interactive user interface\&.
+.RE
+.PP
+\fB\-i, \-\-import\fR=\fIFILE\fR
+.RS 4
+Import vCard from FILE or
+\fISTDIN\fR
+into the first specified (or default) account
+.RE
+.SH "AUTHOR"
+.sp
+pc_query was mostly written by Christian Geier, with a lot of help by others, 
see \fICONTRIBUTORS\&.txt\fR in the pycarddav distribution\&.
+.SH "RESOURCES"
+.sp
+Main web site: http://lostpackets\&.de/pycarddav/ Please report bugs via the 
contact information at the above web site or via github: 
http://github\&.com/geier/khal/\&;.
+.SH "SEE ALSO"
+.sp
+pycardsyncer(1), pycard\-import(1)
+.SH "COPYING"
+.sp
+Copyright (C) 2011\-2013 Christian Geier and Contributors\&. pc_query and 
pycarddav are released under the terms of the Expat/MIT license, see the 
\fICOPYING\fR file distributed with pycarddav\&.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/doc/man/pycard-import.1 
new/pyCardDAV-0.6.1/doc/man/pycard-import.1
--- old/pyCardDAV-0.5.1/doc/man/pycard-import.1 1970-01-01 01:00:00.000000000 
+0100
+++ new/pyCardDAV-0.6.1/doc/man/pycard-import.1 2013-11-26 14:09:37.000000000 
+0100
@@ -0,0 +1,115 @@
+'\" t
+.\"     Title: pycard-import
+.\"    Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 11/25/2013
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "PYCARD\-IMPORT" "1" "11/25/2013" "\ \&" "\ \&"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+pycard-import \- import email addresses from mails from stdin
+.SH "SYNOPSIS"
+.sp
+\fBpycard\-import\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+pycard\-import(1) imports email addresses from mails piped into its stdin and 
saves those addresses to the database used by pycardsyncer(1) and 
pc_query(1)\&. pycard\-import(1) is part of the \fIpycarddav\fR package\&.
+.SH "OPTIONS"
+.SS "BASIC STARTUP OPTIONS"
+.PP
+\fB\-a, \-\-account\fR=\fINAME\fR
+.RS 4
+Only use the account/resource
+\fINAME\fR
+(this option can be used more than once)\&.
+.RE
+.PP
+\fB\-c, \-\-config\fR=\fICONFIG\fR
+.RS 4
+Use the configuration file
+\fICONFIG\fR, otherwise pycard\-import(1) will look in
+\fI$HOME/\&.pycard/\fR
+and
+\fI$HOME/\&.config/pycard/\fR
+for files named
+\fIpycard\&.conf\fR\&.
+.RE
+.PP
+\fB\-\-debug\fR
+.RS 4
+This option enables debugging output\&.
+.RE
+.PP
+\fB\-h, \-\-help\fR
+.RS 4
+Print a small help text and exit\&.
+.RE
+.PP
+\fB\-v, \-\-version\fR
+.RS 4
+Print pycard\-import\(cqs version number and exit\&.
+.RE
+.SS "IMPORTING OPTIONS"
+.PP
+\fB\-\-batch\fR
+.RS 4
+Do not open the editor\&.
+.RE
+.PP
+\fB\-\-bcc\fR
+.RS 4
+Import the content of the Bcc header\&.
+.RE
+.PP
+\fB\-\-cc\fR
+.RS 4
+Import the content of the Cc header\&.
+.RE
+.PP
+\fB\-f, \-\-from\fR
+.RS 4
+Import the content of the From header\&.
+.RE
+.PP
+\fB\-n, \-\-dry\-run\fR
+.RS 4
+Do not actually update the database (implies \-\-batch)\&.
+.RE
+.PP
+\fB\-t, \-\-to\fR
+.RS 4
+Import the content of the To header\&.
+.RE
+.SH "AUTHOR"
+.sp
+pycard\-import was mostly written by Christian Geier, with a lot of help by 
others, see \fICONTRIBUTORS\&.txt\fR in the pycarddav distribution\&.
+.SH "RESOURCES"
+.sp
+Main web site: http://lostpackets\&.de/pycarddav/ Please report bugs via the 
contact information at the above web site or via github: 
http://github\&.com/geier/khal/\&;.
+.SH "SEE ALSO"
+.sp
+pycardsyncer(1), pc_query(1)
+.SH "COPYING"
+.sp
+Copyright (C) 2011\-2013 Christian Geier and Contributors\&. pycard\-import 
and pycarddav are released under the terms of the Expat/MIT license, see the 
\fICOPYING\fR file distributed with pycarddav\&.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/doc/man/pycardsyncer.1 
new/pyCardDAV-0.6.1/doc/man/pycardsyncer.1
--- old/pyCardDAV-0.5.1/doc/man/pycardsyncer.1  1970-01-01 01:00:00.000000000 
+0100
+++ new/pyCardDAV-0.6.1/doc/man/pycardsyncer.1  2013-11-26 14:09:37.000000000 
+0100
@@ -0,0 +1,83 @@
+'\" t
+.\"     Title: pycardsyncer
+.\"    Author: [see the "AUTHOR" section]
+.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
+.\"      Date: 11/25/2013
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "PYCARDSYNCER" "1" "11/25/2013" "\ \&" "\ \&"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+pycardsyncer \- synchronizes CardDAV resources to local db
+.SH "SYNOPSIS"
+.sp
+\fBpycardsyncer\fR [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+pycardsyncer(1) synchronizes remote CardDAV resources to a local database that 
can then be queried and modified with pc_query(1)\&.
+.SH "OPTIONS"
+.PP
+\fB\-a, \-\-account\fR=\fINAME\fR
+.RS 4
+Sync only the account/resource
+\fINAME\fR
+(this option can be used more than once)\&.
+.RE
+.PP
+\fB\-c, \-\-config\fR=\fICONFIG\fR
+.RS 4
+Use the configuration file
+\fICONFIG\fR, otherwise pycardsyncer will look in
+\fI$HOME/\&.pycard/\fR
+and
+\fI$HOME/\&.config/pycard/\fR
+for files named
+\fIpycard\&.conf\fR\&.
+.RE
+.PP
+\fB\-\-debug\fR
+.RS 4
+This option enables debugging output\&.
+.RE
+.PP
+\fB\-h, \-\-help\fR
+.RS 4
+Print a small help text and exit\&.
+.RE
+.PP
+\fB\-v, \-\-version\fR
+.RS 4
+Print pycardsyncer\(cqs version number and exit\&.
+.RE
+.SH "AUTHOR"
+.sp
+pycardsyncer was mostly written by Christian Geier, with a lot of help by 
others, see \fICONTRIBUTORS\&.txt\fR in the pycarddav distribution\&.
+.SH "RESOURCES"
+.sp
+Main web site: http://lostpackets\&.de/pycarddav/ Please report bugs via the 
contact information at the above web site or via github: 
http://github\&.com/geier/khal/\&;.
+.SH "SEE ALSO"
+.sp
+pc_query(1), pycard\-import(1)
+.SH "COPYING"
+.sp
+Copyright (C) 2011\-2013 Christian Geier and Contributors\&. pycardsyncer and 
pycarddav are released under the terms of the Expat/MIT license, see the 
\fICOPYING\fR file distributed with pycarddav\&.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/pyCardDAV.egg-info/PKG-INFO 
new/pyCardDAV-0.6.1/pyCardDAV.egg-info/PKG-INFO
--- old/pyCardDAV-0.5.1/pyCardDAV.egg-info/PKG-INFO     2013-09-02 
00:19:35.000000000 +0200
+++ new/pyCardDAV-0.6.1/pyCardDAV.egg-info/PKG-INFO     2013-11-26 
14:15:21.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: pyCardDAV
-Version: 0.5.1
+Version: 0.6.1
 Summary: A CardDAV based address book tool
 Home-page: http://lostpackets.de/pycarddav/
 Author: Christian Geier
@@ -112,6 +112,22 @@
         use all configured accounts, while on adding cards the first 
configured account
         will be used.
         
+        Keyring support
+        ---------------
+        
+        *pycarddav* supports keyring_, (version >=3.0). To use it, you need to 
add a
+        password to the keyring via::
+        
+            keyring set pycarddav:$account $username
+        
+        where $account is the name of an account as configured in your 
configuration
+        file and $username is the corresponding username (and then have no 
password
+        configured for that account). For more details on configuring keyring 
have a
+        look at its documentation_.
+        
+        .. _keyring: https://pypi.python.org/pypi/keyring
+        .. _documentation: https://pypi.python.org/pypi/keyring
+        
         Import Addresses from Mutt
         --------------------------
         You can directly add sender addresses from mutt to *pyCardDAV*, either 
adding
@@ -131,6 +147,14 @@
         checking set *verify* to *false* to disable *any* ssl certificate 
checking (this
         is not recommended).
         
+        Conflict Resolution
+        -------------------
+        
+        In case of conflicting edits (local VCard changed while remote VCard 
also
+        changed), are "resolved" by pycarddav through overwriting the local 
VCard with
+        the remote one (meaning local edits are lost in this case). Syncing 
more
+        frequently can prevent this.
+        
         Additional Information
         ----------------------
         For now, VCard properties that have no value are not shown.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/pyCardDAV.egg-info/SOURCES.txt 
new/pyCardDAV-0.6.1/pyCardDAV.egg-info/SOURCES.txt
--- old/pyCardDAV-0.5.1/pyCardDAV.egg-info/SOURCES.txt  2013-09-02 
00:19:35.000000000 +0200
+++ new/pyCardDAV-0.6.1/pyCardDAV.egg-info/SOURCES.txt  2013-11-26 
14:15:21.000000000 +0100
@@ -4,12 +4,14 @@
 MANIFEST.in
 NEWS.txt
 README.rst
-README.txt
 pycard.conf.sample
 setup.py
 bin/pc_query
 bin/pycard-import
 bin/pycardsyncer
+doc/man/pc_query.1
+doc/man/pycard-import.1
+doc/man/pycardsyncer.1
 pyCardDAV.egg-info/PKG-INFO
 pyCardDAV.egg-info/SOURCES.txt
 pyCardDAV.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/pycarddav/__init__.py 
new/pyCardDAV-0.6.1/pycarddav/__init__.py
--- old/pyCardDAV-0.5.1/pycarddav/__init__.py   2013-09-02 00:16:39.000000000 
+0200
+++ new/pyCardDAV-0.6.1/pycarddav/__init__.py   2013-11-26 14:09:37.000000000 
+0100
@@ -195,7 +195,7 @@
     output level using the debug flag read from the command-line or
     the configuration file.
     """
-    DEFAULT_DB_PATH = xdg.BaseDirectory.save_data_path('pycard') + 'abook.db'
+    DEFAULT_DB_PATH = xdg.BaseDirectory.save_data_path('pycard') + '/abook.db'
     DEFAULT_PATH = "pycard"
     DEFAULT_FILE = "pycard.conf"
 
@@ -206,8 +206,9 @@
         # Build parsers and set common options.
         self._check_accounts = check_accounts
         self._conf_parser = ConfigParser.SafeConfigParser()
-        self._arg_parser = argparse.ArgumentParser(
-            description=desc, version=__version__)
+        self._arg_parser = argparse.ArgumentParser(description=desc)
+        self._arg_parser.add_argument(
+            "-v", "--version", action="version", version=__version__)
         self._arg_parser.add_argument(
             "-c", "--config", action="store", dest="filename",
             default=self._get_default_configuration_file(), metavar="FILE",
@@ -307,8 +308,14 @@
                                   ns.user, hostname)
                     result = False
             elif ns.user:
+                try:
+                    import keyring
+                except ImportError:
+                    pass
+                else:
+                    ns.passwd = keyring.get_password('pycarddav:'+ns.name, 
ns.user)
                 # Do not ask for password if execution is already doomed.
-                if result:
+                if result and not ns.passwd:
                     prompt = 'CardDAV password (account ' + ns.name + '): '
                     ns.passwd = getpass.getpass(prompt=prompt)
             else:
@@ -342,7 +349,7 @@
         logging.debug(intro)
 
         for name, value in sorted(dict.copy(conf).iteritems()):
-            if type(value) is list:
+            if type(value) is list and not isinstance(value[0], basestring):
                 for o in value:
                     self.dump(o, '\t' * tab + name + ':', tab + 1)
             elif type(value) is Namespace:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/pycarddav/backend.py 
new/pyCardDAV-0.6.1/pycarddav/backend.py
--- old/pyCardDAV-0.5.1/pycarddav/backend.py    2013-09-02 00:16:39.000000000 
+0200
+++ new/pyCardDAV-0.6.1/pycarddav/backend.py    2013-11-26 14:09:37.000000000 
+0100
@@ -112,15 +112,16 @@
         return result
 
     def _check_table_version(self):
-        """tests for curent db Version
+        """tests for current db Version
         if the table is still empty, insert db_version
         """
-        database_version = 9  # the current db VERSION
+        database_version = 10  # the current db VERSION
         self.cursor.execute('SELECT version FROM version')
         result = self.cursor.fetchone()
         if result is None:
             stuple = (database_version, )  # database version db Version
-            self.cursor.execute('INSERT INTO version (version) VALUES (?)', 
stuple)
+            self.cursor.execute('INSERT INTO version (version) VALUES (?)',
+                                stuple)
             self.conn.commit()
         elif not result[0] == database_version:
             raise Exception(str(self.db_path) +
@@ -129,11 +130,14 @@
                             "using pycardsyncer.\n")
 
     def _create_default_tables(self):
-        """creates version and account tables and instert table version number
+        """creates version and account tables and insert table version number
+
         """
+        # CREATE TABLE IF NOT EXISTS is faster than checking if it exists
         try:
-            self.cursor.execute('''CREATE TABLE IF NOT EXISTS version ( 
version INTEGER )''')
-            logging.debug("created version table")
+            self.cursor.execute('''CREATE TABLE IF NOT EXISTS version
+                                ( version INTEGER )''')
+            logging.debug("made sure version table exists")
         except Exception as error:
             sys.stderr.write('Failed to connect to database,'
                              'Unknown Error: ' + str(error) + "\n")
@@ -143,7 +147,7 @@
                 account TEXT NOT NULL,
                 resource TEXT NOT NULL
                 )''')
-            logging.debug("created accounts table")
+            logging.debug("made sure accounts table exists ")
         except Exception as error:
             sys.stderr.write('Failed to connect to database,'
                              'Unknown Error: ' + str(error) + "\n")
@@ -158,18 +162,26 @@
         return result
 
     def check_account_table(self, account_name, resource):
+        count_sql_s = """SELECT count(*) FROM accounts
+                WHERE account = ? AND resource = ?"""
+        self.cursor.execute(count_sql_s, (account_name, resource))
+        result = self.cursor.fetchone()
+
+        if(result[0] != 0):
+            return
         sql_s = """CREATE TABLE IF NOT EXISTS {0} (
                 href TEXT,
                 etag TEXT,
                 name TEXT,
                 fname TEXT,
                 vcard TEXT,
-                status INT NOT NULL
+                status INT NOT NULL,
+                PRIMARY KEY(href)
                 )""".format(account_name)
         self.sql_ex(sql_s)
         sql_s = 'INSERT INTO accounts (account, resource) VALUES (?, ?)'
         self.sql_ex(sql_s, (account_name, resource))
-        logging.debug("created {0} table".format(account_name))
+        logging.debug("made sure {0} table exists".format(account_name))
 
     def needs_update(self, href, account_name, etag=''):
         """checks if we need to update this vcard
@@ -226,7 +238,15 @@
                 vcard_s = vcard.decode('utf-8')
             except UnicodeEncodeError:
                 vcard_s = vcard  # incase it's already unicode and py2
-            vcard = model.vcard_from_string(vcard)
+            try:
+                vcard = model.vcard_from_string(vcard)
+            except:
+                logging.error('VCard {0} could not be inserted into the '
+                              'db'.format(href))
+                if self.debug:
+                    logging.error('could not be converted to vcard')
+                    logging.error(vcard)
+                return
         else:
             vcard_s = vcard.vcf
         if href == '':
@@ -278,14 +298,16 @@
         """
         stuple = (href, )
         logging.debug("locally deleting " + str(href))
-        self.sql_ex('DELETE FROM {0} WHERE href=(?)'.format(account_name), 
stuple)
+        self.sql_ex('DELETE FROM {0} WHERE href=(?)'.format(account_name),
+                    stuple)
 
     def get_all_href_from_db(self, accounts):
         """returns a list with all hrefs
         """
         result = list()
         for account in accounts:
-            hrefs = self.sql_ex('SELECT href FROM {0} ORDER BY fname COLLATE 
NOCASE'.format(account))
+            hrefs = self.sql_ex('SELECT href FROM {0} ORDER BY fname '
+                                'COLLATE NOCASE'.format(account))
             result = result + [(href[0], account) for href in hrefs]
         return result
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/pycarddav/model.py 
new/pyCardDAV-0.6.1/pycarddav/model.py
--- old/pyCardDAV-0.5.1/pycarddav/model.py      2013-09-02 00:16:39.000000000 
+0200
+++ new/pyCardDAV-0.6.1/pycarddav/model.py      2013-11-26 14:09:37.000000000 
+0100
@@ -75,6 +75,7 @@
 NTEXT = '\x1b[0m'
 BTEXT = '\x1b[1m'
 
+
 def get_names(display_name):
     first_name, last_name = '', display_name
 
@@ -278,6 +279,7 @@
         TODO make shure this random uid is unique"""
         import string
         import random
+
         def generate_random_uid():
             """generate a random uid, when random isn't broken, getting a
             random UID from a pool of roughly 10^56 should be good enough"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/pycarddav/ui.py 
new/pyCardDAV-0.6.1/pycarddav/ui.py
--- old/pyCardDAV-0.5.1/pycarddav/ui.py 2013-09-02 00:16:39.000000000 +0200
+++ new/pyCardDAV-0.6.1/pycarddav/ui.py 2013-11-26 14:09:37.000000000 +0100
@@ -217,6 +217,7 @@
             vcard['EMAIL'].append(self._vcard['EMAIL'][0])
             self._vcard = vcard
             self._w = self._build_ui()
+            self._status = pycarddav.backend.CHANGED
 
     def _build_ui(self):
         content = []
@@ -271,11 +272,15 @@
             [self._fname_edit.edit_text, self._lname_edit.edit_text])
         for i, edit in enumerate(self._email_edits):
             self._vcard['EMAIL'][i] = (edit.edit_text, 
self._vcard['EMAIL'][i][1])
+        if(hasattr(self, '_status')):
+            status = self._status
+        else:
+            status = pycarddav.backend.NEW
         self._db.update(self._vcard,
                         self._account,
                         self._vcard.href,
                         etag=self._vcard.etag,
-                        status=pycarddav.backend.NEW)
+                        status=status)
 
 
 class Window(urwid.Frame):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/pycarddav/version.py 
new/pyCardDAV-0.6.1/pycarddav/version.py
--- old/pyCardDAV-0.5.1/pycarddav/version.py    2013-09-02 00:19:35.000000000 
+0200
+++ new/pyCardDAV-0.6.1/pycarddav/version.py    2013-11-26 14:15:21.000000000 
+0100
@@ -1 +1 @@
-__version__ = '0.5.1'
+__version__ = '0.6.1'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyCardDAV-0.5.1/setup.py new/pyCardDAV-0.6.1/setup.py
--- old/pyCardDAV-0.5.1/setup.py        2013-09-02 00:17:32.000000000 +0200
+++ new/pyCardDAV-0.6.1/setup.py        2013-11-26 14:13:33.000000000 +0100
@@ -10,7 +10,7 @@
 from setuptools import setup
 
 MAJOR = 0
-MINOR = 5
+MINOR = 6
 PATCH = 1
 
 RELEASE = True

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to