pimutils / pimutils/vdirsyncer

Accept NotFoundErrors

Open
#760 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
1.9k
Forks
185
Avg merge
11h 49m
Merged PRs (30d)
1

Description

  • Your vdirsyncer version: vdirsyncer, version 0.16.7
  • If applicable, which server software (and which version) you're using: Apple Calendar Server
  • Your Python version: Python 3.6.5
  • Your operating system: MacOS 10.13.6

Hi there,

I am trying to utilize vdirsyncer to one-way sync some calendars from Apple Calendar Server into a singlefile ics. Unfortunately, it seems there are some broken URLs/Files reported by the server. I would like to accept these errors and just skip over them, but unfortunately vdirsyncer raises an exception and quits:

error: Unknown error occured for username/calendar: /calendars/__uids__/181DB98E-F898-4643-B5A9-E7DBA477B001/calendar/https:%2Fwww.xing.com%2Fevents%2Fgrowthmarketingsummit-2018-1939105.ics
error: Use `-vdebug` to see the full traceback.
debug:   File "/Users/jan/.venvs/vdirsyncer/lib/python3.6/site-packages/vdirsyncer/cli/tasks.py", line 69, in sync_collection
debug:     partial_sync=pair.partial_sync
debug:   File "/Users/jan/.venvs/vdirsyncer/lib/python3.6/site-packages/vdirsyncer/sync/__init__.py", line 136, in sync
debug:     b_nonempty = b_info.prepare_new_status()
debug:   File "/Users/jan/.venvs/vdirsyncer/lib/python3.6/site-packages/vdirsyncer/sync/__init__.py", line 59, in prepare_new_status
debug:     if prefetch else ()):
debug:   File "/Users/jan/.venvs/vdirsyncer/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 507, in get_multi
debug:     raise exceptions.NotFoundError(href)

Is there any way (hidden switch) to change this behaviour?

Thank you & best regards,
Jan

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the traceback entry points in vdirsyncer/sync/init.py and vdirsyncer/storage/dav.py, especially get_multi where NotFoundError is raised. Reproduce the one-way sync against the reported broken calendar URL and determine how the requested skip behavior should work; done means the sync continues without quitting on that error.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.