Commit graph

753 commits

Author SHA1 Message Date
Markus Unterwaditzer
b0c498f70a Don't require current-user-principal
See #498
2016-09-12 18:58:02 +02:00
Markus Unterwaditzer
1846b392fa Fix encoding bug with http data 2016-09-08 14:09:56 +02:00
Markus Unterwaditzer
b20fc996a2 Refactor config parsing
Fix #459
2016-09-08 13:34:34 +02:00
Markus Unterwaditzer
18d8bb9fc2 Remove Python 2 support (#499)
* Discontinue Python 2.

See #219

* Remove Python 2 config option

* Remove coerce_native

* Remove PY2 variable

* s/text_type/str/g

* Flake8 fixes

* Remove str = str

* s/to_native/to_unicode/g

* Remove to_unicode = to_unicode

* Remove iteritems

* Remove itervalues

* Remove str import, flake8 fixes

* Remove urlparse compat code

* Remove with_metaclass

* Remove unused PY2 variable

* Remove getargspec_ish

* Remove to_bytes

* Remove compat module

* Remove Python 2 from Travis

* fixup! Remove urlparse compat code

* fixup! Remove urlparse compat code

* fixup! Remove compat module
2016-09-08 12:18:36 +02:00
Markus Unterwaditzer
696e53dc1f Fix up http storage example
Fix #497
2016-09-06 11:32:13 +02:00
Markus Unterwaditzer
b6f009e79e Fix identconflict handling
See #495
2016-09-02 18:23:42 +02:00
Markus Unterwaditzer
540713f006 Replace with slightly less clever code 2016-08-26 16:58:06 +02:00
Markus Unterwaditzer
d89ec31168 Fix bug in Component.__del__ 2016-08-26 10:36:42 +02:00
Markus Unterwaditzer
5ae2d27b66 Refactor IGNORE_PROPS 2016-08-26 00:46:53 +02:00
Markus Unterwaditzer
902d914db6 Remove = from reserved chars
See #491
2016-08-19 20:05:14 +02:00
Markus Unterwaditzer
e1c2e1b5d8 Fix bug in URL normalization 2016-08-19 20:05:14 +02:00
Markus Unterwaditzer
f238a58c85 DAV: Don't violate Storage API (#492)
The implementation of #476 is problematic as it returns None.
`vdirsyncer.sync` has internal assertions that this is a string, which
is why we get a crash like this:

    error: Unknown error occured for cal/markus@unterwaditzer.net:
    error: Use `-vdebug` to see the full traceback.
    debug:   File "/home/untitaker/projects/vdirsyncer/vdirsyncer/cli/tasks.py", line 66, in sync_collection
    debug:     force_delete=force_delete
    debug:   File "/home/untitaker/projects/vdirsyncer/vdirsyncer/sync.py", line 228, in sync
    debug:     action(a_info, b_info, conflict_resolution)
    debug:   File "/home/untitaker/projects/vdirsyncer/vdirsyncer/sync.py", line 276, in inner
    debug:     assert isinstance(dest_etag, (bytes, text_type))

Discovered in #467
2016-08-19 19:58:38 +02:00
Markus Unterwaditzer
214ec10826 Add CREATED to ignored properties 2016-08-19 17:36:17 +02:00
Markus Unterwaditzer
a54999ff17 Introduce collections for singlefile storage (#488)
Fix #485
2016-08-17 17:41:40 +02:00
Markus Unterwaditzer
e9185324ae Fix up links for new docs URL 2016-08-15 20:44:45 +02:00
Martin Zimmermann
48d72aa7a1 fully resolve well-known URI (#481)
Currently, `find_dav` only resolves a single redirect. When using
Baïkal behind a proxy with HTTPS, this becomes an issue:

1. dav.example.com/.well-known/caldav (Apache rewrite to http)
2. dav.example.com/dav.php (http)
3. dav.example.com/dav.php (https)

The Apache configuration is provided by Baïkal, hence it is also
possible to fix it server-side:

  -RewriteRule /.well-known/carddav /dav.php [R,L]
  +RewriteRule /.well-known/carddav https://dav.example.com/dav.php [R,L]
  -RewriteRule /.well-known/caldav /dav.php [R,L]
  +RewriteRule /.well-known/caldav https://dav.example.com/dav.php [R,L]
2016-07-26 21:49:17 +02:00
Markus Unterwaditzer
d8a1fb4a62 Always use string header values
Preparing for https://github.com/kennethreitz/requests/issues/3386
2016-07-25 04:58:10 +02:00
Markus Unterwaditzer
140af81ead Fix XML querying bug
Fix #480
2016-07-25 04:58:10 +02:00
Markus Unterwaditzer
e4a0afcf00 Make auth = basic the default again (#477)
Fix #461
Fix #457
2016-06-17 14:35:06 +02:00
Markus Unterwaditzer
3228e22621 DAV: Fix behavior when PUT doesn't return ETag (#476)
Thanks to @evert for pointing this out in the #sabredav IRC channel.
2016-06-16 21:40:18 +02:00
Markus Unterwaditzer
403a683e70 Cosmetic improvements 2016-06-16 15:10:03 +02:00
Markus Unterwaditzer
8c1ae4f099 Kill special codepath for null-collection 2016-06-16 15:10:03 +02:00
Markus Unterwaditzer
f289437e46 Fix validation bugs for collections parameter 2016-06-15 17:17:07 +02:00
Markus Unterwaditzer
a8c79ed1fc Merge pull request #466 from pimutils/collections-null-google
Improve error for unsupported collections = null
2016-06-10 10:38:10 +02:00
Evgeni Golov
eb2c25ee76 it has to be note:: otherweise sphinx won't render the paragraph at all (#465) 2016-06-10 00:20:24 +02:00
Markus Unterwaditzer
f892389806 Fix traceback output 2016-06-10 00:17:21 +02:00
Markus Unterwaditzer
0fb27cc391 Improve error for unsupported collections = null 2016-06-10 00:15:37 +02:00
Markus Unterwaditzer
3cb03a55e4 Fix race conditions in Google storage (#460)
Fix #456
Fix #404
2016-06-09 23:57:27 +02:00
Markus Unterwaditzer
1b31f1449e Slightly improved error messages 2016-05-30 23:38:43 +02:00
Markus Unterwaditzer
252f634c81 Hide tracebacks from default output 2016-05-30 23:28:10 +02:00
Markus Unterwaditzer
b3d70a7a93 Use os.fstat wherever possible 2016-05-26 20:03:01 +02:00
Markus Unterwaditzer
d24f3835ef Replace text/icalendar with text/calendar
Fix #455
2016-05-25 19:23:25 +02:00
Markus Unterwaditzer
b806f1b827 Remove outdated comment 2016-05-19 20:43:16 +02:00
Markus Unterwaditzer
c0aee14acf setup.py: Refer to packaging.rst 2016-05-19 18:07:29 +02:00
Markus Unterwaditzer
4742ea61bc Nicer error message for InvalidResponse
See #448
2016-05-12 18:40:15 +02:00
Markus Unterwaditzer
e72dc441a5 Simplify main help text 2016-05-04 21:04:20 +02:00
Markus Unterwaditzer
a1532f36f6 Remove old code for deprecations 2016-04-29 20:33:06 +02:00
Markus Unterwaditzer
fc0eca0eb8 Another nocover branch 2016-04-29 20:27:25 +02:00
Markus Unterwaditzer
5749986b54 Don't require coverage for internal assertions 2016-04-29 20:23:02 +02:00
Markus Unterwaditzer
ea17f2ac01 Show error for Python 2 users (#441)
* Show error for Python 2 users

The error can be disabled with a config option.

See #219
2016-04-28 16:44:17 +02:00
Markus Unterwaditzer
632b884e54 New domain for readthedocs 2016-04-28 01:30:56 +02:00
Markus Unterwaditzer
41c59f4c47 Make discovery explicit (#439)
* Make discovery explicit

Fix #438
2016-04-27 02:17:16 +02:00
Markus Unterwaditzer
f1d03e6380 Refactor UX of discovery (#437)
* Refactor UX of discovery

- The new `--list` option for `vdirsyncer discover`, enabled by default,
  makes vdirsyncer list all collections before saving the configuration.
  It is not enabled when vdirsyncer tries to discover when invoked via
  `vdirsyncer sync`. Fix #424

- There are no duplicate collections anymore. Fix #419.

- `vdirsyncer discover` is running with one worker by default now, to
  avoid broken output. See also #404.
2016-04-27 00:35:30 +02:00
Markus Unterwaditzer
90fa9f7f5f Fix XML creation bug 2016-04-23 14:04:46 +02:00
Markus Unterwaditzer
ec2f743ffa Replace LXML with stdlib XML
Just because the XML module is already there, and suits our needs as
well. DoS concerns should be irrelevant as we trust the server to that
extent.
2016-04-22 23:08:32 +02:00
Markus Unterwaditzer
be8df955e9 Ability to sync differently named collections with each other (#423)
* Ability to sync differently named collections

* Fixes

* Fixes

* Add example
2016-04-10 12:36:51 +02:00
Markus Unterwaditzer
777eb35898 Merge pull request #412 from pimutils/remove-google-oauth-creds
Remove default client ID for Google
2016-04-08 00:20:44 +02:00
Markus Unterwaditzer
2386f1c1bc Merge pull request #415 from pimutils/issue-414
Py2: If file doesn't exist, IOError will be raised
2016-04-08 00:20:36 +02:00
Markus Unterwaditzer
46639ff65e Py2: If file doesn't exist, IOError will be raised
Fix #414
2016-04-08 00:03:03 +02:00
Markus Unterwaditzer
374a4921b7 Fix bug in storage init errorhandler
If there are no defaults, spec.args would be sliced like
`spec.args[1:0]` which always produces an empty slice.
2016-04-07 23:22:04 +02:00