{ "info": { "author": "Christian Geier", "author_email": "pycarddav@lostpackets.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console :: Curses", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python :: 2 :: Only", "Topic :: Communications :: Email :: Address Book", "Topic :: Utilities" ], "description": "About\n=====\n*pyCardDAV* is a simple to use CardDAV_ CLI client. It has built in support for\nmutt's *query_command* but also works very well solo (and with other MUAs).\n\n*pyCardDAV* consists of *pycardsyncer*, a program for syncing your CardDAV\nresource into a local database and of *pc_query*, a program for querying the\nlocal database. *pyCardDAV* is some ugly python_ code (actually, it's not\n*that* bad anymore\u2026) that holds together vobject_, lxml_, requests_ and\npysqlite_.\n\n.. _CardDAV: http://en.wikipedia.org/wiki/CardDAV\n.. _python: http://python.org/\n.. _vobject: http://vobject.skyhouseconsulting.com/\n.. _lxml: http://lxml.de/\n.. _pysqlite: http://code.google.com/p/pysqlite/\n.. _requests: http://python-requests.org\n\nFeatures\n--------\n(or rather: limitations)\n\n- *pyCardDAV* is only tested against davical, owncloud and sabredav\n- *pyCardDAV* can import the sender's address directly from mutt\n- *pyCardDAV* can backup and import to/from .vcf files\n- *pyCardDAV* can add email addresses directly from mutt\n- *pyCardDAV* only understands VCard 3.0\n- *pyCardDAV* is not python 3 compatible yet\n\nFeedback\n--------\nPlease do provide feedback if *pyCardDAV* works for you or even more importantly\nif it doesn't. You can reach me by email at pycarddav (at) lostpackets (dot) de , by\njabber/XMPP at geier (at) jabber (dot) lostpackets (dot) de or via github_\n\n.. _github: https://github.com/geier/pycarddav/\n\nInstallation\n------------\nYou can download *pyCardDAV* either from the above download link or check it\nout from git (at github). Then install *pyCardDAV* by executing *python setup.py install*.\nIf you feel more adventurous you can always the *develop* branch on github, which\n*should* always be in a usable state. pyCardDAV is also available on pypi_ and can\nbe installed via pip install pycarddav or easy_install pycarddav.\n\nCopy and edit the supplied pycard.conf.sample file (default location is\n~/.config/pycard/pycard.conf). If you don't want to store the password in\nclear text in the config file, *pyCardDAV* will ask for it while syncing.\n\nMake sure you have sqlite3 (normally available by default), vobject, lxml(>2),\nrequests (>0.10), urwid (>0.9) pyxdg, installed. Users of python 2.6 will also\nneed to install argparse.\n\n*pyCardDAV* has so far been successfully tested on recent versions of FreeBSD,\nNetBSD, Debian and Ubuntu with python 2.6 and 2.7 and against davical 0.9.9.4 -\n1.0.1 (later versions should be ok, too, but 0.9.9.3 and earlier don't seem\nto work), owncloud and sabredav.\n\n.. _pypi: https://pypi.python.org/pypi/pyCardDAV/\n.. _git: http://github.com/geier/pycarddav/\n\nUsage\n-----\n*pyCardDAV* consists of three scripts, *pycardsyncer* which is used to sync the\nlocal database with the server, *pc_query* to interact with the local database\nand *pycard-import* to import email addresses from mutt.\n\nExecute pycardsyncer to sync your addresses to the local database. You can test\npc_query with::\n\n % pc_query searchstring\n\nBy default *pyCardDAV* only prints the names, email addresses and telephone\nnumbers of contacts matching the search string, to see all vCard properties use\nthe \"-A\" option.\n\n\nFor usage with mutt etc., *pyCardDAV* can also print only email addresses in a\nmutt friendly format (with the \"-m\" option). Edit your mutt configuration so\nthat query_command uses pc_query:\n\nExample from .muttrc::\n\n set query_command=\"/home/username/bin/pc_query -m '%s'\"\n\nThe current version features experimental write support. If you want to\ntest this, first make sure **you have a backup of your data** (but please do\n*NOT* rely on *pc_query --backup* for this just yet), then you can put the\nline::\n\n write_support = YesPleaseIDoHaveABackupOfMyData\n\nin your config file (needs to be put into each *Account* section you want to\nenable write support for).\n\nYou can also import, delete or backup single cards (backup also works for the\nwhole collection, but please don't rely on it just yet). See *pc_query --help*\nfor how to use these and for some more options.\n\n*pycarddav* can be configured to use different CardDAV accounts, see the example\nconfig for details. An account can be specified with *-a account_name* with all\nthree utilies. If no account is chosen all searching and syncing actions will\nuse all configured accounts, while on adding cards the first configured account\nwill be used.\n\nKeyring support\n---------------\n\n*pycarddav* supports keyring_, (version >=3.0). To use it, you need to add a\npassword to the keyring via::\n\n keyring set pycarddav:$account $username\n\nwhere $account is the name of an account as configured in your configuration\nfile and $username is the corresponding username (and then have no password\nconfigured for that account). For more details on configuring keyring have a\nlook at its documentation_.\n\n.. _keyring: https://pypi.python.org/pypi/keyring\n.. _documentation: https://pypi.python.org/pypi/keyring\n\nImport Addresses from Mutt\n--------------------------\nYou can directly add sender addresses from mutt to *pyCardDAV*, either adding\nthem to existing contacts or creating a new one. If write support is enabled,\nthey will be uploaded on the server during the next sync.\n\nExample from .muttrc::\n\n macro index,pager A \"pycard-import\" \"add sender address to pycardsyncer\"\n\nSSL\n---\nIf you use SSL to interact with your CardDAV Server (you probably should) and\nyou don't have a certificate signed by a CA your OS Vendor trusts (like a\nself-signed certificate or one signed by CAcert) you can set *verify* to a path\nto the CA's root file (must be in pem format). If you don't want any certificate\nchecking set *verify* to *false* to disable *any* ssl certificate checking (this\nis not recommended).\n\nConflict Resolution\n-------------------\nIn case of conflicting edits (local VCard changed while remote VCard also\nchanged), are \"resolved\" by pycarddav through overwriting the local VCard with\nthe remote one (meaning local edits are lost in this case). Syncing more\nfrequently can prevent this.\n\nAdditional Information\n----------------------\nFor now, VCard properties that have no value are not shown.\n\nAlso, you should be able to use *pyCardDAV*'s CardDAV implementation for other\nprojects. See the *CardDAV* class in *pycarddav/carddav.py*.\n\nIn accordance with RFC 6352 all VCards that are imported or changed by pyCardDAV\nwill automatically get a random UID (if they haven't one already), as some\nCardDAV servers, e.g. Owncloud require these.\n\nDebian Wheezy Quickstart\n------------------------\n\napt-get install python-requests python-vobject python-pytest python-urwid python-lxml python-pyxdg\nsudo python setup.py install\nmkdir -p ~/.config/pycard\nchmod 700 ~/.config/pycard\ncp pycard.conf.sample ~/.config/pycard/pycard.conf\n\nLicense\n-------\n*pyCardDAV* is released under the Expat/MIT License:\n\nCopyright (c) 2011-2014 Christian Geier and contributors\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://lostpackets.de/pycarddav/", "keywords": null, "license": "Expat/MIT", "maintainer": null, "maintainer_email": null, "name": "pyCardDAV", "package_url": "https://pypi.org/project/pyCardDAV/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyCardDAV/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://lostpackets.de/pycarddav/" }, "release_url": "https://pypi.org/project/pyCardDAV/0.7.0/", "requires_dist": null, "requires_python": null, "summary": "A CardDAV based address book tool", "version": "0.7.0" }, "last_serial": 996089, "releases": { "0.4": [], "0.4.0": [ { "comment_text": "", "digests": { "md5": "6c2f7a1ec8aefc59feffe31231560195", "sha256": "9fbfce23baf5d79c41f6df4b806ae123ce96b7ae7327e5c36d5ff37258ccad35" }, "downloads": -1, "filename": "pyCardDAV-0.4.0.tar.gz", "has_sig": false, "md5_digest": "6c2f7a1ec8aefc59feffe31231560195", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22714, "upload_time": "2013-03-27T22:13:42", "url": "https://files.pythonhosted.org/packages/bd/68/99c9593854a347a5d3e91e04776f3333e44b080a88a63dd9e55c9286a265/pyCardDAV-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "ca3511afd7fce531c2bde87b53972fc4", "sha256": "1cff0d3294c43dcb5343e31c1b36a2286b969026164d60f2172b45f380d2c0be" }, "downloads": -1, "filename": "pyCardDAV-0.4.1.tar.gz", "has_sig": false, "md5_digest": "ca3511afd7fce531c2bde87b53972fc4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22979, "upload_time": "2013-03-28T15:22:13", "url": "https://files.pythonhosted.org/packages/37/4e/0ca9be68f2d41bd96a22556a7b3b578babaacfcbe3cf15715eea680a82b5/pyCardDAV-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "3f32d04ff4d0d0a682e8886908d3c055", "sha256": "ce4725911a58c63620bf2f287837ddaf0fd011ad474617c8f149563ea2142ad9" }, "downloads": -1, "filename": "pyCardDAV-0.5.0.tar.gz", "has_sig": false, "md5_digest": "3f32d04ff4d0d0a682e8886908d3c055", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29864, "upload_time": "2013-06-15T17:36:01", "url": "https://files.pythonhosted.org/packages/33/e2/d03884530ccffa4d64fb5bfcf6a0a008301788a912afec6a389b73b4ac2c/pyCardDAV-0.5.0.tar.gz" } ], "0.5.0-1": [ { "comment_text": "", "digests": { "md5": "db01e8e78c51ef8e767543a2a5058775", "sha256": "1e3cdc6b6c4172801d865b2ffe20c34605edc366074c524f8921dd3311df410c" }, "downloads": -1, "filename": "pyCardDAV-0.5.0-1.tar.gz", "has_sig": false, "md5_digest": "db01e8e78c51ef8e767543a2a5058775", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29872, "upload_time": "2013-06-15T17:52:59", "url": "https://files.pythonhosted.org/packages/dc/4b/a3f946e41b4cc5ca3bf5ecaa0540371aad7e740cc24e001b9c788706f039/pyCardDAV-0.5.0-1.tar.gz" } ], "0.5.0-2": [ { "comment_text": "", "digests": { "md5": "55c9d5449a00b35ae37a4e95878e29af", "sha256": "c51b4a0a716b4e204e0c3bc715a66d1c7f40342cca19bb14ddda83a08d6ea5ea" }, "downloads": -1, "filename": "pyCardDAV-0.5.0-2.tar.gz", "has_sig": false, "md5_digest": "55c9d5449a00b35ae37a4e95878e29af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29896, "upload_time": "2013-06-15T17:58:24", "url": "https://files.pythonhosted.org/packages/04/43/8bbfc8cd44ac8f8b2a3c2eab638715a42d0634232370cc10c8b84564393b/pyCardDAV-0.5.0-2.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "06178a8cd8f55e30cf6ab040b961114e", "sha256": "aea8b33659b42dc06a7132f4dc610d58b8d32cd90da1c2257101f8973f6c2273" }, "downloads": -1, "filename": "pyCardDAV-0.5.1.tar.gz", "has_sig": false, "md5_digest": "06178a8cd8f55e30cf6ab040b961114e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31266, "upload_time": "2013-09-01T22:25:09", "url": "https://files.pythonhosted.org/packages/e9/0f/29ef8ba2a4fab2abe4ceb6fcebddc11c6812a076425112216c832529e32d/pyCardDAV-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "4624efa2253da9a9266a2b3236f61c4b", "sha256": "8f93ab74315ac592816973a7d0f7e0217d865f27b91b30869eace88498de61ef" }, "downloads": -1, "filename": "pyCardDAV-0.6.0.tar.gz", "has_sig": false, "md5_digest": "4624efa2253da9a9266a2b3236f61c4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32239, "upload_time": "2013-11-25T22:49:35", "url": "https://files.pythonhosted.org/packages/06/6e/20f1992860559a422873daecf31df4b24d03d17ff8db53b4ad46bd645330/pyCardDAV-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "54a06f8e1c76d818a03d7053e7ecbb1e", "sha256": "32e223ccd7b243024f9d8da46b6f97350d520e204c5b80f8266698c1071e38e0" }, "downloads": -1, "filename": "pyCardDAV-0.6.1.tar.gz", "has_sig": false, "md5_digest": "54a06f8e1c76d818a03d7053e7ecbb1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34158, "upload_time": "2013-11-26T13:15:24", "url": "https://files.pythonhosted.org/packages/3c/01/7ce0a6d25a421dd1485da84facbd81e6c180a2c97ee6652bb83eff32cfa9/pyCardDAV-0.6.1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "65e1f0bfc68369bb95c1b5519265cb9c", "sha256": "a86bca36e361ce194d5fb49295f1ad1b0ed4a4c0759f3d40f8703b1d2fcb732b" }, "downloads": -1, "filename": "pyCardDAV-0.7.0.tar.gz", "has_sig": false, "md5_digest": "65e1f0bfc68369bb95c1b5519265cb9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36677, "upload_time": "2014-02-04T23:41:36", "url": "https://files.pythonhosted.org/packages/da/23/16d230ab5ce12ead477fd8912d783219a72cfff3eb14150e0dd4352e4c8d/pyCardDAV-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "65e1f0bfc68369bb95c1b5519265cb9c", "sha256": "a86bca36e361ce194d5fb49295f1ad1b0ed4a4c0759f3d40f8703b1d2fcb732b" }, "downloads": -1, "filename": "pyCardDAV-0.7.0.tar.gz", "has_sig": false, "md5_digest": "65e1f0bfc68369bb95c1b5519265cb9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36677, "upload_time": "2014-02-04T23:41:36", "url": "https://files.pythonhosted.org/packages/da/23/16d230ab5ce12ead477fd8912d783219a72cfff3eb14150e0dd4352e4c8d/pyCardDAV-0.7.0.tar.gz" } ] }